[PATCH] D145890: [InstCombine] Generate better code for std::bit_floor from libstdc++
    Kazu Hirata via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sun Apr  9 15:13:03 PDT 2023
    
    
  
kazu marked 2 inline comments as done.
kazu added a comment.
Please take a look.  Thanks!
================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp:3325
+  return cast<Instruction>(
+      Builder.CreateLShr(ConstantInt::get(NType, ShiftedBit), NewCTLZ));
+}
----------------
goldstein.w.n wrote:
> This can be exact:
> https://alive2.llvm.org/ce/z/Enurag
> 
> I think:
> 
> ```
> BinaryOperator *BO = BinaryOperator::CreateLShr(ConstantInt::get(NType, ShiftedBit), NewCTLZ);
>   BO->setIsExact();
>   return BO;
> ``` 
> 
> Should work.
If I do this, I get:
```
llvm/include/llvm/Transforms/Utils/InstructionWorklist.h:60: void llvm::InstructionWorklist::push(llvm::Instruction *): Assertion `I->getParent() && "Instruction not inserted yet?"' failed.
```
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D145890/new/
https://reviews.llvm.org/D145890
    
    
More information about the llvm-commits
mailing list