[InstCombine] Optimise shift+and+boolean conversion pattern to simple comparison
if (`C1` is pow2) & (`(C2 & ~(C1-1)) + C1)` is pow2): ((C1 << X) & C2) == 0 -> X >= (Log2(C2+C1) - Log2(C1)); https://alive2.llvm.org/ce/z/EJAl1R ((C1 << X) & C2) != 0 -> X < (Log2(C2+C1) - Log2(C1)); https://alive2.llvm.org/ce/z/3bVRVz And remove dead code. Fix: https://github.com/llvm/llvm-project/issues/56124 Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D126591
Loading
Please sign in to comment