================ @@ -5587,11 +5587,17 @@ Instruction *InstCombinerImpl::foldICmpWithZextOrSext(ICmpInst &ICmp) { return new ICmpInst(ICmp.getPredicate(), Builder.CreateOr(X, Y), Constant::getNullValue(X->getType())); + // Treat "zext nneg" as "sext" + bool IsNonNeg0 = isa<PossiblyNonNegInst>(ICmp.getOperand(0)); + bool IsNonNeg1 = isa<PossiblyNonNegInst>(ICmp.getOperand(1)); ---------------- nikic wrote:
This only checks whether the instruction *can* have an nneg flag, not whether it has it. You need to check `isNonNeg()` for that. https://github.com/llvm/llvm-project/pull/70845 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits