diff options
author | Craig Topper <craig.topper@intel.com> | 2019-12-31 15:57:17 -0800 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2019-12-31 15:57:39 -0800 |
commit | 26bdc603f76f41a9831f6b980b5fc9a947446544 (patch) | |
tree | 547585295b9854cd06ac7b564a9d61898a54edb0 /llvm/lib/Target | |
parent | 374e0299cf08dc1ff2c68e7f6c159b98ab55dfb8 (diff) | |
download | bcm5719-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.cpp | 3 |
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()); |