[PATCH] D20123: [InstCombine] Fold icmp ugt/ult (udiv i32 C2, X), C1
David Majnemer via llvm-commits
llvm-commits at lists.llvm.org
Tue May 10 11:57:14 PDT 2016
majnemer added inline comments.
================
Comment at: lib/Transforms/InstCombine/InstCombineCompares.cpp:2103-2106
@@ +2102,6 @@
+ assert(C2 != 0 && "udiv 0, X should have been simplified already.");
+ // (icmp ugt (udiv C2, X), C1) -> (icmp ule X, C2/(C1+1))
+ if (Pred == ICmpInst::ICMP_UGT)
+ return new ICmpInst(ICmpInst::ICMP_ULE, X,
+ ConstantInt::get(X->getType(), C2.udiv(C1 + 1)));
+ // (icmp ult (udiv C2, X), C1) -> (icmp ugt X, C2/C1)
----------------
What if `C1` is `-1`? Won't this divide by zero?
http://reviews.llvm.org/D20123
More information about the llvm-commits
mailing list