diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index c15f056551b93..f12db53c7f087 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -5700,7 +5700,7 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT, if (OpOpcode == ISD::TRUNCATE) { SDValue OpOp = N1.getOperand(0); if (OpOp.getValueType() == VT) { - if (OpOp.getOpcode() == ISD::AssertZext && N1->hasOneUse()) { + if (OpOp.getOpcode() == ISD::AssertZext) { APInt HiBits = APInt::getBitsSetFrom(VT.getScalarSizeInBits(), N1.getScalarValueSizeInBits()); if (MaskedValueIsZero(OpOp, HiBits)) { diff --git a/llvm/lib/Target/X86/X86ISelLoweringCall.cpp b/llvm/lib/Target/X86/X86ISelLoweringCall.cpp index 754d2042105e5..c47ddae072b4f 100644 --- a/llvm/lib/Target/X86/X86ISelLoweringCall.cpp +++ b/llvm/lib/Target/X86/X86ISelLoweringCall.cpp @@ -2645,7 +2645,8 @@ bool MatchingStackOffset(SDValue Arg, unsigned Offset, ISD::ArgFlagsTy Flags, for (;;) { // Look through nodes that don't alter the bits of the incoming value. unsigned Op = Arg.getOpcode(); - if (Op == ISD::ZERO_EXTEND || Op == ISD::ANY_EXTEND || Op == ISD::BITCAST) { + if (Op == ISD::ZERO_EXTEND || Op == ISD::ANY_EXTEND || Op == ISD::BITCAST || + Op == ISD::AssertZext) { Arg = Arg.getOperand(0); continue; } diff --git a/llvm/test/CodeGen/AArch64/setcc_knownbits.ll b/llvm/test/CodeGen/AArch64/setcc_knownbits.ll index aa62a7aa176c8..af5c1586a4c67 100644 --- a/llvm/test/CodeGen/AArch64/setcc_knownbits.ll +++ b/llvm/test/CodeGen/AArch64/setcc_knownbits.ll @@ -4,8 +4,6 @@ define i1 @load_bv_v4i8(i1 zeroext %a) { ; CHECK-LABEL: load_bv_v4i8: ; CHECK: // %bb.0: -; CHECK-NEXT: cmp w0, #0 -; CHECK-NEXT: cset w0, ne ; CHECK-NEXT: ret %b = zext i1 %a to i32 %c = icmp eq i32 %b, 1 diff --git a/llvm/test/CodeGen/RISCV/rvv/fold-vp-fadd-and-vp-fmul.ll b/llvm/test/CodeGen/RISCV/rvv/fold-vp-fadd-and-vp-fmul.ll index 1eccaaa26154f..f773de3b518c6 100644 --- a/llvm/test/CodeGen/RISCV/rvv/fold-vp-fadd-and-vp-fmul.ll +++ b/llvm/test/CodeGen/RISCV/rvv/fold-vp-fadd-and-vp-fmul.ll @@ -62,9 +62,9 @@ define @fma_reassociate( %a, @llvm.vp.fmul.nxv1f64( %a, %b, %m, i32 %vl) %2 = call fast @llvm.vp.fmul.nxv1f64( %c, %d, %m, i32 %vl)