================
@@ -766,6 +766,12 @@ SDValue TargetLowering::SimplifyMultipleUseDemandedBits(
unsigned BitWidth = DemandedBits.getBitWidth();
KnownBits LHSKnown, RHSKnown;
switch (Op.getOpcode()) {
+ case ISD::Constant: {
+ const APInt &Value = Op->getAsAPIntVal();
+ if (!Value.isZero() && (Value & DemandedBits).isZero())
----------------
RKSimon wrote:
I'm not sure about adding general constant folding -
SimplifyMultipleUseDemandedBits is mainly about bypassing unnecessary nodes not
creating new ones - returning zero is probably as far as I'd recommend we go
and we should rely on folds making use of ComputeKnownBits to handle other
cases.
https://github.com/llvm/llvm-project/pull/224882
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits