[PATCH] D149027: [X86] Add peephole to convert `(Cmp Op32/Op64, Imm8)` -> `(Cmp Op16/Op8, Imm8)`
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 23 18:10:30 PDT 2023
craig.topper added inline comments.
================
Comment at: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:5695
+ // TODO: Enable imm16 transform as well if -Os is set?
+ if (C.getSignificantBits() <= 8) {
+ EVT NewVT = OpVT;
----------------
goldstein.w.n wrote:
> craig.topper wrote:
> > craig.topper wrote:
> > > I think this can be `isInt<8>(C.getSExtValue())`
> > The alive proof is checking the constant is zero extended from 8 bits, right? But this check is a signed checked.
> This is checking if `C` can be encoded as imm8.
So it needs to be uint<8> to make the transform valid and an sint<8> to make the transform profitable. But we only checked the sint<8> condition?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D149027/new/
https://reviews.llvm.org/D149027
More information about the llvm-commits
mailing list