diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-01-18 14:47:49 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-01-18 14:47:49 +0000 |
commit | fe2c0ed4cf614bd62f210e69139c47456530714e (patch) | |
tree | 5eaa2f6e7980791da4c7065e759fd02f824ca012 /llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp | |
parent | af76f989b5dbaa66d5de0692fa92c79b7a2b092d (diff) | |
download | bcm5719-llvm-fe2c0ed4cf614bd62f210e69139c47456530714e.tar.gz bcm5719-llvm-fe2c0ed4cf614bd62f210e69139c47456530714e.zip |
[InstCombine][AVX2] Add DemandedElts support for VPERMD/VPERMPS shuffles
Simplify a vpermv shuffle mask based on the elements of the mask that are actually demanded.
llvm-svn: 292371
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp index bf88a7517c1..72db0d444d0 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp @@ -1482,7 +1482,10 @@ Value *InstCombiner::SimplifyDemandedVectorElts(Value *V, APInt DemandedElts, case Intrinsic::x86_avx512_vpermilvar_ps_512: case Intrinsic::x86_avx_vpermilvar_pd: case Intrinsic::x86_avx_vpermilvar_pd_256: - case Intrinsic::x86_avx512_vpermilvar_pd_512: { + case Intrinsic::x86_avx512_vpermilvar_pd_512: + // PERMV + case Intrinsic::x86_avx2_permd: + case Intrinsic::x86_avx2_permps: { Value *Op1 = II->getArgOperand(1); TmpV = SimplifyDemandedVectorElts(Op1, DemandedElts, UndefElts, Depth + 1); |