[llvm] [InstCombine] Implement folds of icmp of UCMP/SCMP call and a constant (PR #96118)
    Nikita Popov via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu Jun 20 23:28:43 PDT 2024
    
    
  
================
@@ -3926,6 +3926,92 @@ foldICmpUSubSatOrUAddSatWithConstant(ICmpInst::Predicate Pred,
       ConstantInt::get(Op1->getType(), EquivInt));
 }
 
+static Instruction *
+foldICmpOfCmpIntrinsicWithConstant(ICmpInst::Predicate Pred, IntrinsicInst *I,
+                                   const APInt &C,
+                                   InstCombiner::BuilderTy &Builder) {
+  Intrinsic::ID IID = I->getIntrinsicID();
+  Value *LHS = I->getOperand(0);
+  Value *RHS = I->getOperand(1);
+
+  switch (Pred) {
----------------
nikic wrote:
I'd suggest extracting another function that always returns just the unsigned predicate, and then use `ICmpInst::getSignedPredicate()` to convert it to signed afterwards for scmp.
https://github.com/llvm/llvm-project/pull/96118
    
    
More information about the llvm-commits
mailing list