[PATCH] D152116: [DAGCombiner] Transform `(icmp eq/ne (and X,C0),(shift X,C1))` to use rotate or to getter constants.
Noah Goldstein via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 20 11:35:02 PDT 2023
goldstein.w.n marked 2 inline comments as done.
goldstein.w.n added inline comments.
================
Comment at: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:12496
+ IsRotate ||
+ (*ShiftCAmt == (~*AndCMask).popcount() && ShiftOpc == ISD::SHL
+ ? (~*AndCMask).isMask()
----------------
RKSimon wrote:
> (~*AndCMask).popcount() - is this the same as !AndCMask->isAllOnes() ?
No, we are checking for something like:
`(icmp eq (and X, 0x1f), (srl, X, 3)`. Not all ones.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D152116/new/
https://reviews.llvm.org/D152116
More information about the llvm-commits
mailing list