[PATCH] D56264: [RISCV] Add patterns for RV64I SLLW/SRLW/SRAW instructions
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 7 15:40:44 PST 2019
efriedma added inline comments.
================
Comment at: lib/Target/RISCV/RISCVISelLowering.cpp:543
+ if (N->getValueType(0) != MVT::i32 || RHS->getOpcode() == ISD::Constant ||
+ (RHS->getOpcode() == ISD::AssertZext))
+ break;
----------------
Is it worth detecting an existing AssertZext with a value type wider than 5 bits?
================
Comment at: lib/Target/RISCV/RISCVInstrInfo.td:667
+def assertzexti5 : PatFrag<(ops node:$src), (assertzext node:$src), [{
+ return cast<VTSDNode>(N->getOperand(1))->getVT().getSizeInBits() == 5;
+}]>;
----------------
`<= 5`?
================
Comment at: lib/Target/RISCV/RISCVInstrInfo.td:673
+def shiftwamt : PatFrags<(ops node:$src),
+ [(assertzexti5 (and node:$src, 0xffffffff)),
+ (assertzexti5 node:$src)]>;
----------------
The literal "0xffffffff" could probably be generalized a bit.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D56264/new/
https://reviews.llvm.org/D56264
More information about the llvm-commits
mailing list