summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2019-12-31 15:57:17 -0800
committerCraig Topper <craig.topper@intel.com>2019-12-31 15:57:39 -0800
commit26bdc603f76f41a9831f6b980b5fc9a947446544 (patch)
tree547585295b9854cd06ac7b564a9d61898a54edb0 /llvm/lib/Target
parent374e0299cf08dc1ff2c68e7f6c159b98ab55dfb8 (diff)
downloadbcm5719-llvm-26bdc603f76f41a9831f6b980b5fc9a947446544.tar.gz
bcm5719-llvm-26bdc603f76f41a9831f6b980b5fc9a947446544.zip
[X86] Constant fold KSHIFT of an all zeros vector to just an all zeros vector.
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index dda0b431177..a0f171e55dd 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -45722,6 +45722,9 @@ static SDValue combineKSHIFT(SDNode *N, SelectionDAG &DAG,
TargetLowering::DAGCombinerInfo &DCI) {
EVT VT = N->getValueType(0);
+ if (ISD::isBuildVectorAllZeros(N->getOperand(0).getNode()))
+ return DAG.getConstant(0, SDLoc(N), VT);
+
APInt KnownUndef, KnownZero;
const TargetLowering &TLI = DAG.getTargetLoweringInfo();
APInt DemandedElts = APInt::getAllOnesValue(VT.getVectorNumElements());
OpenPOWER on IntegriCloud