summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-10-25 07:00:09 +0000
committerCraig Topper <craig.topper@intel.com>2018-10-25 07:00:09 +0000
commit7ae43cad6525cb3f2be2046cfd780ae65cb9a09a (patch)
tree88b0205f66ab97e6f72e804b5ae848a7aa4d9ad9
parent9ecdb5a711bda1f59080d331c158328031f87220 (diff)
downloadbcm5719-llvm-7ae43cad6525cb3f2be2046cfd780ae65cb9a09a.tar.gz
bcm5719-llvm-7ae43cad6525cb3f2be2046cfd780ae65cb9a09a.zip
[X86] Don't use the OriginalDemandedBits to calculate the DemandedMask for PMULUDQ/PMULDQ inputs.
Multiply a is complex operation so just because some bit of the output isn't used doesn't mean that bit of the input isn't used. We might able to bound it, but it will require some more thought. llvm-svn: 345241
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index d86f9d5a220..f9f8fb4a419 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -31881,7 +31881,8 @@ bool X86TargetLowering::SimplifyDemandedBitsForTargetNode(
KnownBits KnownOp;
SDValue LHS = Op.getOperand(0);
SDValue RHS = Op.getOperand(1);
- APInt DemandedMask = OriginalDemandedBits & APInt::getLowBitsSet(64, 32);
+ // FIXME: Can we bound this better?
+ APInt DemandedMask = APInt::getLowBitsSet(64, 32);
if (SimplifyDemandedBits(LHS, DemandedMask, KnownOp, TLO, Depth + 1))
return true;
if (SimplifyDemandedBits(RHS, DemandedMask, KnownOp, TLO, Depth + 1))
OpenPOWER on IntegriCloud