[PATCH] D132996: [InstCombine] complete fold extractvalue (any_mul_with_overflow X, -1)
    Sanjay Patel via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Aug 31 13:50:53 PDT 2022
    
    
  
spatel added a comment.
Does this confirm with Alive2? (add link to patch summary)
================
Comment at: llvm/lib/Transforms/InstCombine/InstructionCombining.cpp:3254
   Intrinsic::ID OvID = WO->getIntrinsicID();
-  if (*EV.idx_begin() == 0 &&
-      (OvID == Intrinsic::smul_with_overflow ||
-       OvID == Intrinsic::umul_with_overflow) &&
-      match(WO->getArgOperand(1), m_AllOnes())) {
-    return BinaryOperator::CreateNeg(WO->getArgOperand(0));
+  const APInt *WORHSC = nullptr;
+  if (match(WO->getRHS(), m_APIntAllowUndef(WORHSC))) {
----------------
Nit: that's a lot of capital letters. Just leave this named "C"?
================
Comment at: llvm/lib/Transforms/InstCombine/InstructionCombining.cpp:3290
   // checking for overflow.
-  const APInt *C;
-  if (match(WO->getRHS(), m_APInt(C))) {
+  if (WORHSC) {
     // Compute the no-wrap range for LHS given RHS=C, then construct an
----------------
We need a test for this transform too? (and confirm that it is safe)
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132996/new/
https://reviews.llvm.org/D132996
    
    
More information about the llvm-commits
mailing list