summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/avx512-insert-extract.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/avx512-insert-extract.ll')
-rw-r--r--llvm/test/CodeGen/X86/avx512-insert-extract.ll46
1 files changed, 13 insertions, 33 deletions
diff --git a/llvm/test/CodeGen/X86/avx512-insert-extract.ll b/llvm/test/CodeGen/X86/avx512-insert-extract.ll
index 52398acd48f..6f985f0bf3a 100644
--- a/llvm/test/CodeGen/X86/avx512-insert-extract.ll
+++ b/llvm/test/CodeGen/X86/avx512-insert-extract.ll
@@ -12,24 +12,14 @@ define <16 x float> @test1(<16 x float> %x, float* %br, float %y) nounwind {
ret <16 x float> %rrr3
}
+;CHECK-LABEL: test2:
+;KNL: vinsertf32x4 $0
+;SKX: vinsertf64x2 $0
+;CHECK: vextractf32x4 $3
+;KNL: vinsertf32x4 $3
+;SKX: vinsertf64x2 $3
+;CHECK: ret
define <8 x double> @test2(<8 x double> %x, double* %br, double %y) nounwind {
-; KNL-LABEL: test2:
-; KNL: ## BB#0:
-; KNL-NEXT: vmovhpd (%rdi), %xmm0, %xmm2
-; KNL-NEXT: vinsertf32x4 $0, %xmm2, %zmm0, %zmm0
-; KNL-NEXT: vextractf32x4 $3, %zmm0, %xmm2
-; KNL-NEXT: vmovsd %xmm1, %xmm2, %xmm1
-; KNL-NEXT: vinsertf32x4 $3, %xmm1, %zmm0, %zmm0
-; KNL-NEXT: retq
-;
-; SKX-LABEL: test2:
-; SKX: ## BB#0:
-; SKX-NEXT: vmovhpd (%rdi), %xmm0, %xmm2
-; SKX-NEXT: vinsertf64x2 $0, %xmm2, %zmm0, %zmm0
-; SKX-NEXT: vextractf64x2 $3, %zmm0, %xmm2
-; SKX-NEXT: vmovsd %xmm1, %xmm2, %xmm1
-; SKX-NEXT: vinsertf64x2 $3, %xmm1, %zmm0, %zmm0
-; SKX-NEXT: retq
%rrr = load double, double* %br
%rrr2 = insertelement <8 x double> %x, double %rrr, i32 1
%rrr3 = insertelement <8 x double> %rrr2, double %y, i32 6
@@ -46,22 +36,12 @@ define <16 x float> @test3(<16 x float> %x) nounwind {
ret <16 x float> %rrr2
}
+;CHECK-LABEL: test4:
+;CHECK: vextracti32x4 $2
+;KNL: vinserti32x4 $0
+;SKX: vinserti64x2 $0
+;CHECK: ret
define <8 x i64> @test4(<8 x i64> %x) nounwind {
-; KNL-LABEL: test4:
-; KNL: ## BB#0:
-; KNL-NEXT: vextracti32x4 $2, %zmm0, %xmm1
-; KNL-NEXT: vmovq %xmm1, %rax
-; KNL-NEXT: vpinsrq $1, %rax, %xmm0, %xmm1
-; KNL-NEXT: vinserti32x4 $0, %xmm1, %zmm0, %zmm0
-; KNL-NEXT: retq
-;
-; SKX-LABEL: test4:
-; SKX: ## BB#0:
-; SKX-NEXT: vextracti64x2 $2, %zmm0, %xmm1
-; SKX-NEXT: vmovq %xmm1, %rax
-; SKX-NEXT: vpinsrq $1, %rax, %xmm0, %xmm1
-; SKX-NEXT: vinserti64x2 $0, %xmm1, %zmm0, %zmm0
-; SKX-NEXT: retq
%eee = extractelement <8 x i64> %x, i32 4
%rrr2 = insertelement <8 x i64> %x, i64 %eee, i32 1
ret <8 x i64> %rrr2
@@ -162,7 +142,7 @@ define i64 @test12(<16 x i64>%a, <16 x i64>%b, i64 %a1, i64 %b1) {
;CHECK: andl $1, %eax
;CHECK: kmovw %eax, %k0
;CHECK: movw $-4
-;CHECK: korw
+;CHECK: korw
define i16 @test13(i32 %a, i32 %b) {
%cmp_res = icmp ult i32 %a, %b
%maskv = insertelement <16 x i1> <i1 true, i1 false, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, i1 %cmp_res, i32 0
OpenPOWER on IntegriCloud