nikic added a comment.
Can you please drop all wasm related tests and instead add an InstCombine test
for the fsh+and pattern?
It would also be good to have a test where we can fold one side to a constant,
but that constant is not zero. We should then consider whether that is
profitable or not. (In that case we can't reduce to a simple shift and will
reduce to a shift and or with constant instead -- is that better or worse than
a rotate?)
================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp:933
+ Depth + 1)))
+ return I;
+ }
----------------
Calling SimplifyDemandedBits() for the case of known demanded bits is a bit
odd, I'd probably write something like this instead:
```
KnownBits LHSKnown = computeKnownBits(I->getOperand(0), Depth + 1, I);
if (DemandedMaskLHS.isSubsetOf(LHSKnown.Zero | LHSKnown.One)) {
replaceOperand(I, 0, Constant::getIntegerValue(VTy, LHSKnown.One);
return &I;
}
KnownBits RHSKnown = computeKnownBits(I->getOperand(1), Depth + 1, I);
if (DemandedMaskRHS.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) {
replaceOperand(I, 1, Constant::getIntegerValue(VTy, RHSKnown.One);
return &I;
}
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D150670/new/
https://reviews.llvm.org/D150670
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits