The last low-bit-mask-pattern-producing-pattern i can think of.
https://rise4fun.com/Alive/UGzE <- non-canonical
But we can not canonicalize it because of extra uses.
Paths
| Differential D52148
[InstCombine] foldICmpWithLowBitMaskedVal(): handle uncanonical ((-1 << y) >> y) mask ClosedPublic Authored by lebedev.ri on Sep 16 2018, 6:06 AM.
Details Summary The last low-bit-mask-pattern-producing-pattern i can think of. https://rise4fun.com/Alive/UGzE <- non-canonical
Diff Detail
Event Timelinelebedev.ri added a parent revision: D52147: [InstCombine] foldICmpWithLowBitMaskedVal(): handle uncanonical ((1 << y)+(-1)) mask. Comment Actions Copying from D52147: This revision is now accepted and ready to land.Sep 18 2018, 10:20 AM Closed by commit rL342548: [InstCombine] foldICmpWithLowBitMaskedVal(): handle uncanonical ((-1 << y) >>… (authored by lebedevri). · Explain WhySep 19 2018, 6:38 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 165680 lib/Transforms/InstCombine/InstCombineCompares.cpp
test/Transforms/InstCombine/canonicalize-low-bit-mask-v4-and-icmp-eq-to-icmp-ule.ll
test/Transforms/InstCombine/canonicalize-low-bit-mask-v4-and-icmp-ne-to-icmp-ugt.ll
|