|
@@ -29,7 +29,7 @@ define <2 x double> @test_mm_mask_movddup_pd(<2 x double> %a0, i8 %a1, <2 x doub
|
|
|
; X32-NEXT: movb %al, {{[0-9]+}}(%esp)
|
|
|
; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovddup {{.*#+}} xmm0 = xmm1[0,0]
|
|
|
+; X32-NEXT: vmovddup {{.*#+}} xmm0 {%k1} = xmm1[0,0]
|
|
|
; X32-NEXT: popl %eax
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
@@ -39,7 +39,7 @@ define <2 x double> @test_mm_mask_movddup_pd(<2 x double> %a0, i8 %a1, <2 x doub
|
|
|
; X64-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
|
|
|
; X64-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
|
|
|
; X64-NEXT: kmovw %eax, %k1
|
|
|
-; X64-NEXT: vmovddup {{.*#+}} xmm0 = xmm1[0,0]
|
|
|
+; X64-NEXT: vmovddup {{.*#+}} xmm0 {%k1} = xmm1[0,0]
|
|
|
; X64-NEXT: retq
|
|
|
%trn1 = trunc i8 %a1 to i2
|
|
|
%arg1 = bitcast i2 %trn1 to <2 x i1>
|
|
@@ -59,7 +59,7 @@ define <2 x double> @test_mm_maskz_movddup_pd(i8 %a0, <2 x double> %a1) {
|
|
|
; X32-NEXT: movb %al, {{[0-9]+}}(%esp)
|
|
|
; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0]
|
|
|
+; X32-NEXT: vmovddup {{.*#+}} xmm0 {%k1} {z} = xmm0[0,0]
|
|
|
; X32-NEXT: popl %eax
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
@@ -69,7 +69,7 @@ define <2 x double> @test_mm_maskz_movddup_pd(i8 %a0, <2 x double> %a1) {
|
|
|
; X64-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
|
|
|
; X64-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
|
|
|
; X64-NEXT: kmovw %eax, %k1
|
|
|
-; X64-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0]
|
|
|
+; X64-NEXT: vmovddup {{.*#+}} xmm0 {%k1} {z} = xmm0[0,0]
|
|
|
; X64-NEXT: retq
|
|
|
%trn1 = trunc i8 %a0 to i2
|
|
|
%arg0 = bitcast i2 %trn1 to <2 x i1>
|
|
@@ -103,7 +103,7 @@ define <4 x double> @test_mm256_mask_movddup_pd(<4 x double> %a0, i8 %a1, <4 x d
|
|
|
; X32-NEXT: movb %al, (%esp)
|
|
|
; X32-NEXT: movzbl (%esp), %eax
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovddup {{.*#+}} ymm0 = ymm1[0,0,2,2]
|
|
|
+; X32-NEXT: vmovddup {{.*#+}} ymm0 {%k1} = ymm1[0,0,2,2]
|
|
|
; X32-NEXT: popl %eax
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
@@ -113,7 +113,7 @@ define <4 x double> @test_mm256_mask_movddup_pd(<4 x double> %a0, i8 %a1, <4 x d
|
|
|
; X64-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
|
|
|
; X64-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
|
|
|
; X64-NEXT: kmovw %eax, %k1
|
|
|
-; X64-NEXT: vmovddup {{.*#+}} ymm0 = ymm1[0,0,2,2]
|
|
|
+; X64-NEXT: vmovddup {{.*#+}} ymm0 {%k1} = ymm1[0,0,2,2]
|
|
|
; X64-NEXT: retq
|
|
|
%trn1 = trunc i8 %a1 to i4
|
|
|
%arg1 = bitcast i4 %trn1 to <4 x i1>
|
|
@@ -133,7 +133,7 @@ define <4 x double> @test_mm256_maskz_movddup_pd(i8 %a0, <4 x double> %a1) {
|
|
|
; X32-NEXT: movb %al, (%esp)
|
|
|
; X32-NEXT: movzbl (%esp), %eax
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovddup {{.*#+}} ymm0 = ymm0[0,0,2,2]
|
|
|
+; X32-NEXT: vmovddup {{.*#+}} ymm0 {%k1} {z} = ymm0[0,0,2,2]
|
|
|
; X32-NEXT: popl %eax
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
@@ -143,7 +143,7 @@ define <4 x double> @test_mm256_maskz_movddup_pd(i8 %a0, <4 x double> %a1) {
|
|
|
; X64-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
|
|
|
; X64-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
|
|
|
; X64-NEXT: kmovw %eax, %k1
|
|
|
-; X64-NEXT: vmovddup {{.*#+}} ymm0 = ymm0[0,0,2,2]
|
|
|
+; X64-NEXT: vmovddup {{.*#+}} ymm0 {%k1} {z} = ymm0[0,0,2,2]
|
|
|
; X64-NEXT: retq
|
|
|
%trn1 = trunc i8 %a0 to i4
|
|
|
%arg0 = bitcast i4 %trn1 to <4 x i1>
|
|
@@ -177,7 +177,7 @@ define <4 x float> @test_mm_mask_movehdup_ps(<4 x float> %a0, i8 %a1, <4 x float
|
|
|
; X32-NEXT: movb %al, (%esp)
|
|
|
; X32-NEXT: movzbl (%esp), %eax
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
|
|
|
+; X32-NEXT: vmovshdup {{.*#+}} xmm0 {%k1} = xmm1[1,1,3,3]
|
|
|
; X32-NEXT: popl %eax
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
@@ -187,7 +187,7 @@ define <4 x float> @test_mm_mask_movehdup_ps(<4 x float> %a0, i8 %a1, <4 x float
|
|
|
; X64-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
|
|
|
; X64-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
|
|
|
; X64-NEXT: kmovw %eax, %k1
|
|
|
-; X64-NEXT: vmovshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
|
|
|
+; X64-NEXT: vmovshdup {{.*#+}} xmm0 {%k1} = xmm1[1,1,3,3]
|
|
|
; X64-NEXT: retq
|
|
|
%trn1 = trunc i8 %a1 to i4
|
|
|
%arg1 = bitcast i4 %trn1 to <4 x i1>
|
|
@@ -207,7 +207,7 @@ define <4 x float> @test_mm_maskz_movehdup_ps(i8 %a0, <4 x float> %a1) {
|
|
|
; X32-NEXT: movb %al, (%esp)
|
|
|
; X32-NEXT: movzbl (%esp), %eax
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
|
|
|
+; X32-NEXT: vmovshdup {{.*#+}} xmm0 {%k1} {z} = xmm0[1,1,3,3]
|
|
|
; X32-NEXT: popl %eax
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
@@ -217,7 +217,7 @@ define <4 x float> @test_mm_maskz_movehdup_ps(i8 %a0, <4 x float> %a1) {
|
|
|
; X64-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
|
|
|
; X64-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
|
|
|
; X64-NEXT: kmovw %eax, %k1
|
|
|
-; X64-NEXT: vmovshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
|
|
|
+; X64-NEXT: vmovshdup {{.*#+}} xmm0 {%k1} {z} = xmm0[1,1,3,3]
|
|
|
; X64-NEXT: retq
|
|
|
%trn0 = trunc i8 %a0 to i4
|
|
|
%arg0 = bitcast i4 %trn0 to <4 x i1>
|
|
@@ -245,13 +245,13 @@ define <8 x float> @test_mm256_mask_movehdup_ps(<8 x float> %a0, i8 %a1, <8 x fl
|
|
|
; X32: # BB#0:
|
|
|
; X32-NEXT: movb {{[0-9]+}}(%esp), %al
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovshdup {{.*#+}} ymm0 = ymm1[1,1,3,3,5,5,7,7]
|
|
|
+; X32-NEXT: vmovshdup {{.*#+}} ymm0 {%k1} = ymm1[1,1,3,3,5,5,7,7]
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
|
; X64-LABEL: test_mm256_mask_movehdup_ps:
|
|
|
; X64: # BB#0:
|
|
|
; X64-NEXT: kmovw %edi, %k1
|
|
|
-; X64-NEXT: vmovshdup {{.*#+}} ymm0 = ymm1[1,1,3,3,5,5,7,7]
|
|
|
+; X64-NEXT: vmovshdup {{.*#+}} ymm0 {%k1} = ymm1[1,1,3,3,5,5,7,7]
|
|
|
; X64-NEXT: retq
|
|
|
%arg1 = bitcast i8 %a1 to <8 x i1>
|
|
|
%res0 = shufflevector <8 x float> %a2, <8 x float> undef, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7>
|
|
@@ -264,13 +264,13 @@ define <8 x float> @test_mm256_maskz_movehdup_ps(i8 %a0, <8 x float> %a1) {
|
|
|
; X32: # BB#0:
|
|
|
; X32-NEXT: movb {{[0-9]+}}(%esp), %al
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovshdup {{.*#+}} ymm0 = ymm0[1,1,3,3,5,5,7,7]
|
|
|
+; X32-NEXT: vmovshdup {{.*#+}} ymm0 {%k1} {z} = ymm0[1,1,3,3,5,5,7,7]
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
|
; X64-LABEL: test_mm256_maskz_movehdup_ps:
|
|
|
; X64: # BB#0:
|
|
|
; X64-NEXT: kmovw %edi, %k1
|
|
|
-; X64-NEXT: vmovshdup {{.*#+}} ymm0 = ymm0[1,1,3,3,5,5,7,7]
|
|
|
+; X64-NEXT: vmovshdup {{.*#+}} ymm0 {%k1} {z} = ymm0[1,1,3,3,5,5,7,7]
|
|
|
; X64-NEXT: retq
|
|
|
%arg0 = bitcast i8 %a0 to <8 x i1>
|
|
|
%res0 = shufflevector <8 x float> %a1, <8 x float> undef, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7>
|
|
@@ -303,7 +303,7 @@ define <4 x float> @test_mm_mask_moveldup_ps(<4 x float> %a0, i8 %a1, <4 x float
|
|
|
; X32-NEXT: movb %al, (%esp)
|
|
|
; X32-NEXT: movzbl (%esp), %eax
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovsldup {{.*#+}} xmm0 = xmm1[0,0,2,2]
|
|
|
+; X32-NEXT: vmovsldup {{.*#+}} xmm0 {%k1} = xmm1[0,0,2,2]
|
|
|
; X32-NEXT: popl %eax
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
@@ -313,7 +313,7 @@ define <4 x float> @test_mm_mask_moveldup_ps(<4 x float> %a0, i8 %a1, <4 x float
|
|
|
; X64-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
|
|
|
; X64-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
|
|
|
; X64-NEXT: kmovw %eax, %k1
|
|
|
-; X64-NEXT: vmovsldup {{.*#+}} xmm0 = xmm1[0,0,2,2]
|
|
|
+; X64-NEXT: vmovsldup {{.*#+}} xmm0 {%k1} = xmm1[0,0,2,2]
|
|
|
; X64-NEXT: retq
|
|
|
%trn1 = trunc i8 %a1 to i4
|
|
|
%arg1 = bitcast i4 %trn1 to <4 x i1>
|
|
@@ -333,7 +333,7 @@ define <4 x float> @test_mm_maskz_moveldup_ps(i8 %a0, <4 x float> %a1) {
|
|
|
; X32-NEXT: movb %al, (%esp)
|
|
|
; X32-NEXT: movzbl (%esp), %eax
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovsldup {{.*#+}} xmm0 = xmm0[0,0,2,2]
|
|
|
+; X32-NEXT: vmovsldup {{.*#+}} xmm0 {%k1} {z} = xmm0[0,0,2,2]
|
|
|
; X32-NEXT: popl %eax
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
@@ -343,7 +343,7 @@ define <4 x float> @test_mm_maskz_moveldup_ps(i8 %a0, <4 x float> %a1) {
|
|
|
; X64-NEXT: movb %dil, -{{[0-9]+}}(%rsp)
|
|
|
; X64-NEXT: movzbl -{{[0-9]+}}(%rsp), %eax
|
|
|
; X64-NEXT: kmovw %eax, %k1
|
|
|
-; X64-NEXT: vmovsldup {{.*#+}} xmm0 = xmm0[0,0,2,2]
|
|
|
+; X64-NEXT: vmovsldup {{.*#+}} xmm0 {%k1} {z} = xmm0[0,0,2,2]
|
|
|
; X64-NEXT: retq
|
|
|
%trn0 = trunc i8 %a0 to i4
|
|
|
%arg0 = bitcast i4 %trn0 to <4 x i1>
|
|
@@ -371,13 +371,13 @@ define <8 x float> @test_mm256_mask_moveldup_ps(<8 x float> %a0, i8 %a1, <8 x fl
|
|
|
; X32: # BB#0:
|
|
|
; X32-NEXT: movb {{[0-9]+}}(%esp), %al
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovsldup {{.*#+}} ymm0 = ymm1[0,0,2,2,4,4,6,6]
|
|
|
+; X32-NEXT: vmovsldup {{.*#+}} ymm0 {%k1} = ymm1[0,0,2,2,4,4,6,6]
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
|
; X64-LABEL: test_mm256_mask_moveldup_ps:
|
|
|
; X64: # BB#0:
|
|
|
; X64-NEXT: kmovw %edi, %k1
|
|
|
-; X64-NEXT: vmovsldup {{.*#+}} ymm0 = ymm1[0,0,2,2,4,4,6,6]
|
|
|
+; X64-NEXT: vmovsldup {{.*#+}} ymm0 {%k1} = ymm1[0,0,2,2,4,4,6,6]
|
|
|
; X64-NEXT: retq
|
|
|
%arg1 = bitcast i8 %a1 to <8 x i1>
|
|
|
%res0 = shufflevector <8 x float> %a2, <8 x float> undef, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
|
|
@@ -390,13 +390,13 @@ define <8 x float> @test_mm256_maskz_moveldup_ps(i8 %a0, <8 x float> %a1) {
|
|
|
; X32: # BB#0:
|
|
|
; X32-NEXT: movb {{[0-9]+}}(%esp), %al
|
|
|
; X32-NEXT: kmovw %eax, %k1
|
|
|
-; X32-NEXT: vmovsldup {{.*#+}} ymm0 = ymm0[0,0,2,2,4,4,6,6]
|
|
|
+; X32-NEXT: vmovsldup {{.*#+}} ymm0 {%k1} {z} = ymm0[0,0,2,2,4,4,6,6]
|
|
|
; X32-NEXT: retl
|
|
|
;
|
|
|
; X64-LABEL: test_mm256_maskz_moveldup_ps:
|
|
|
; X64: # BB#0:
|
|
|
; X64-NEXT: kmovw %edi, %k1
|
|
|
-; X64-NEXT: vmovsldup {{.*#+}} ymm0 = ymm0[0,0,2,2,4,4,6,6]
|
|
|
+; X64-NEXT: vmovsldup {{.*#+}} ymm0 {%k1} {z} = ymm0[0,0,2,2,4,4,6,6]
|
|
|
; X64-NEXT: retq
|
|
|
%arg0 = bitcast i8 %a0 to <8 x i1>
|
|
|
%res0 = shufflevector <8 x float> %a1, <8 x float> undef, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
|