summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2016-03-03 18:13:53 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2016-03-03 18:13:53 +0000
commitabcee45b7ad3a07359ac92cc2954f4ef489367ae (patch)
tree6a959c604e79d1423a9394b23c71ad0fed7f7615 /llvm/test/CodeGen
parent57d1dda5581594ebdfabcb899bd224d037105a1a (diff)
downloadbcm5719-llvm-abcee45b7ad3a07359ac92cc2954f4ef489367ae.tar.gz
bcm5719-llvm-abcee45b7ad3a07359ac92cc2954f4ef489367ae.zip
[X86][AVX] Better support for the variable mask form of VPERMILPD/VPERMILPS
The variable mask form of VPERMILPD/VPERMILPS were only partially implemented, with much of it still performed as an intrinsic. This patch properly defines the instructions in terms of X86ISD::VPERMILPV, permitting the opcode to be easily combined as a target shuffle. Differential Revision: http://reviews.llvm.org/D17681 llvm-svn: 262635
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll9
1 files changed, 0 insertions, 9 deletions
diff --git a/llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll b/llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
index 758f2becbe6..7d4d892acf3 100644
--- a/llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
+++ b/llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
@@ -22,9 +22,6 @@ declare <4 x double> @llvm.x86.avx.vperm2f128.pd.256(<4 x double>, <4 x double>,
define <4 x float> @combine_vpermilvar_4f32(<4 x float> %a0) {
; ALL-LABEL: combine_vpermilvar_4f32:
; ALL: # BB#0:
-; ALL-NEXT: vmovaps {{.*#+}} xmm1 = [3,2,1,0]
-; ALL-NEXT: vpermilps %xmm1, %xmm0, %xmm0
-; ALL-NEXT: vpermilps %xmm1, %xmm0, %xmm0
; ALL-NEXT: retq
%1 = tail call <4 x float> @llvm.x86.avx.vpermilvar.ps(<4 x float> %a0, <4 x i32> <i32 3, i32 2, i32 1, i32 0>)
%2 = tail call <4 x float> @llvm.x86.avx.vpermilvar.ps(<4 x float> %1, <4 x i32> <i32 3, i32 2, i32 1, i32 0>)
@@ -34,9 +31,6 @@ define <4 x float> @combine_vpermilvar_4f32(<4 x float> %a0) {
define <8 x float> @combine_vpermilvar_8f32(<8 x float> %a0) {
; ALL-LABEL: combine_vpermilvar_8f32:
; ALL: # BB#0:
-; ALL-NEXT: vmovaps {{.*#+}} ymm1 = [3,2,1,0,2,3,0,1]
-; ALL-NEXT: vpermilps %ymm1, %ymm0, %ymm0
-; ALL-NEXT: vpermilps %ymm1, %ymm0, %ymm0
; ALL-NEXT: retq
%1 = tail call <8 x float> @llvm.x86.avx.vpermilvar.ps.256(<8 x float> %a0, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 2, i32 3, i32 0, i32 1>)
%2 = tail call <8 x float> @llvm.x86.avx.vpermilvar.ps.256(<8 x float> %1, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 2, i32 3, i32 0, i32 1>)
@@ -59,9 +53,6 @@ define <2 x double> @combine_vpermilvar_2f64(<2 x double> %a0) {
define <4 x double> @combine_vpermilvar_4f64(<4 x double> %a0) {
; ALL-LABEL: combine_vpermilvar_4f64:
; ALL: # BB#0:
-; ALL-NEXT: vmovapd {{.*#+}} ymm1 = [2,0,2,0]
-; ALL-NEXT: vpermilpd %ymm1, %ymm0, %ymm0
-; ALL-NEXT: vpermilpd %ymm1, %ymm0, %ymm0
; ALL-NEXT: retq
%1 = tail call <4 x double> @llvm.x86.avx.vpermilvar.pd.256(<4 x double> %a0, <4 x i64> <i64 2, i64 0, i64 2, i64 0>)
%2 = tail call <4 x double> @llvm.x86.avx.vpermilvar.pd.256(<4 x double> %1, <4 x i64> <i64 2, i64 0, i64 2, i64 0>)
OpenPOWER on IntegriCloud