summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2016-12-27 05:30:09 +0000
committerCraig Topper <craig.topper@gmail.com>2016-12-27 05:30:09 +0000
commit72f2d4e8d6902dd2f35eeb81795c39dac16a7cb9 (patch)
tree43032c86b564f0037ac4840a0f57af8f55173e2b /llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
parent162504578bf160985aa0da73fcce6dbb1b027503 (diff)
downloadbcm5719-llvm-72f2d4e8d6902dd2f35eeb81795c39dac16a7cb9.tar.gz
bcm5719-llvm-72f2d4e8d6902dd2f35eeb81795c39dac16a7cb9.zip
[InstCombine][X86] Add DemandedElts support for 512-bit PMULDQ/PMULUDQ instructions
PMULDQ/PMULUDQ vXi64 instructions only use the even numbered v2Xi32 input elements which SimplifyDemandedVectorElts should try and use. This builds on r290554 which added supported for 128 and 256-bit. llvm-svn: 290582
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp')
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
index 592eeb7fa0e..0738883be15 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
@@ -1434,7 +1434,9 @@ Value *InstCombiner::SimplifyDemandedVectorElts(Value *V, APInt DemandedElts,
case Intrinsic::x86_sse2_pmulu_dq:
case Intrinsic::x86_sse41_pmuldq:
case Intrinsic::x86_avx2_pmul_dq:
- case Intrinsic::x86_avx2_pmulu_dq: {
+ case Intrinsic::x86_avx2_pmulu_dq:
+ case Intrinsic::x86_avx512_pmul_dq_512:
+ case Intrinsic::x86_avx512_pmulu_dq_512: {
Value *Op0 = II->getArgOperand(0);
Value *Op1 = II->getArgOperand(1);
unsigned InnerVWidth = Op0->getType()->getVectorNumElements();
OpenPOWER on IntegriCloud