aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/gpr-to-mask.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/gpr-to-mask.ll')
-rw-r--r--test/CodeGen/X86/gpr-to-mask.ll72
1 files changed, 34 insertions, 38 deletions
diff --git a/test/CodeGen/X86/gpr-to-mask.ll b/test/CodeGen/X86/gpr-to-mask.ll
index ead07adb3877..ff237799783f 100644
--- a/test/CodeGen/X86/gpr-to-mask.ll
+++ b/test/CodeGen/X86/gpr-to-mask.ll
@@ -60,13 +60,11 @@ define void @test_fcmp_storei1(i1 %cond, float* %fptr, i1* %iptr, float %f1, flo
; X86-64-NEXT: je .LBB1_2
; X86-64-NEXT: # %bb.1: # %if
; X86-64-NEXT: vcmpeqss %xmm1, %xmm0, %k0
-; X86-64-NEXT: jmp .LBB1_3
+; X86-64-NEXT: kmovb %k0, (%rdx)
+; X86-64-NEXT: retq
; X86-64-NEXT: .LBB1_2: # %else
; X86-64-NEXT: vcmpeqss %xmm3, %xmm2, %k0
-; X86-64-NEXT: .LBB1_3: # %exit
-; X86-64-NEXT: kmovd %k0, %eax
-; X86-64-NEXT: andb $1, %al
-; X86-64-NEXT: movb %al, (%rdx)
+; X86-64-NEXT: kmovb %k0, (%rdx)
; X86-64-NEXT: retq
;
; X86-32-LABEL: test_fcmp_storei1:
@@ -77,14 +75,12 @@ define void @test_fcmp_storei1(i1 %cond, float* %fptr, i1* %iptr, float %f1, flo
; X86-32-NEXT: # %bb.1: # %if
; X86-32-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
; X86-32-NEXT: vcmpeqss {{[0-9]+}}(%esp), %xmm0, %k0
-; X86-32-NEXT: jmp .LBB1_3
+; X86-32-NEXT: kmovb %k0, (%eax)
+; X86-32-NEXT: retl
; X86-32-NEXT: .LBB1_2: # %else
; X86-32-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
; X86-32-NEXT: vcmpeqss {{[0-9]+}}(%esp), %xmm0, %k0
-; X86-32-NEXT: .LBB1_3: # %exit
-; X86-32-NEXT: kmovd %k0, %ecx
-; X86-32-NEXT: andb $1, %cl
-; X86-32-NEXT: movb %cl, (%eax)
+; X86-32-NEXT: kmovb %k0, (%eax)
; X86-32-NEXT: retl
entry:
br i1 %cond, label %if, label %else
@@ -109,13 +105,13 @@ define void @test_load_add(i1 %cond, float* %fptr, i1* %iptr1, i1* %iptr2, float
; X86-64-NEXT: testb $1, %dil
; X86-64-NEXT: je .LBB2_2
; X86-64-NEXT: # %bb.1: # %if
-; X86-64-NEXT: kmovb (%rdx), %k0
-; X86-64-NEXT: kmovb (%rcx), %k1
-; X86-64-NEXT: kaddb %k1, %k0, %k1
+; X86-64-NEXT: movb (%rdx), %al
+; X86-64-NEXT: addb (%rcx), %al
; X86-64-NEXT: jmp .LBB2_3
; X86-64-NEXT: .LBB2_2: # %else
-; X86-64-NEXT: kmovb (%rcx), %k1
+; X86-64-NEXT: movb (%rcx), %al
; X86-64-NEXT: .LBB2_3: # %exit
+; X86-64-NEXT: kmovd %eax, %k1
; X86-64-NEXT: vmovss %xmm0, %xmm0, %xmm1 {%k1}
; X86-64-NEXT: vmovss %xmm1, (%rsi)
; X86-64-NEXT: retq
@@ -130,13 +126,13 @@ define void @test_load_add(i1 %cond, float* %fptr, i1* %iptr1, i1* %iptr2, float
; X86-32-NEXT: je .LBB2_2
; X86-32-NEXT: # %bb.1: # %if
; X86-32-NEXT: movl {{[0-9]+}}(%esp), %edx
-; X86-32-NEXT: kmovb (%edx), %k0
-; X86-32-NEXT: kmovb (%ecx), %k1
-; X86-32-NEXT: kaddb %k1, %k0, %k1
+; X86-32-NEXT: movb (%edx), %dl
+; X86-32-NEXT: addb (%ecx), %dl
; X86-32-NEXT: jmp .LBB2_3
; X86-32-NEXT: .LBB2_2: # %else
-; X86-32-NEXT: kmovb (%ecx), %k1
+; X86-32-NEXT: movb (%ecx), %dl
; X86-32-NEXT: .LBB2_3: # %exit
+; X86-32-NEXT: kmovd %edx, %k1
; X86-32-NEXT: vmovss %xmm1, %xmm0, %xmm0 {%k1}
; X86-32-NEXT: vmovss %xmm0, (%eax)
; X86-32-NEXT: retl
@@ -260,8 +256,8 @@ exit:
define void @test_shl1(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x float> %fvec2, <8 x float>* %fptrvec) {
; X86-64-LABEL: test_shl1:
; X86-64: # %bb.0: # %entry
-; X86-64-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-64-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-64-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-64-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-64-NEXT: testb $1, %dil
; X86-64-NEXT: je .LBB5_2
; X86-64-NEXT: # %bb.1: # %if
@@ -278,8 +274,8 @@ define void @test_shl1(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x
;
; X86-32-LABEL: test_shl1:
; X86-32: # %bb.0: # %entry
-; X86-32-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-32-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-32-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-32-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-32-NEXT: testb $1, {{[0-9]+}}(%esp)
; X86-32-NEXT: je .LBB5_2
@@ -319,8 +315,8 @@ exit:
define void @test_shr1(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x float> %fvec2, <8 x float>* %fptrvec) {
; X86-64-LABEL: test_shr1:
; X86-64: # %bb.0: # %entry
-; X86-64-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-64-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-64-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-64-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-64-NEXT: testb $1, %dil
; X86-64-NEXT: je .LBB6_2
; X86-64-NEXT: # %bb.1: # %if
@@ -338,8 +334,8 @@ define void @test_shr1(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x
;
; X86-32-LABEL: test_shr1:
; X86-32: # %bb.0: # %entry
-; X86-32-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-32-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-32-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-32-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-32-NEXT: testb $1, {{[0-9]+}}(%esp)
; X86-32-NEXT: je .LBB6_2
@@ -380,8 +376,8 @@ exit:
define void @test_shr2(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x float> %fvec2, <8 x float>* %fptrvec) {
; X86-64-LABEL: test_shr2:
; X86-64: # %bb.0: # %entry
-; X86-64-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-64-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-64-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-64-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-64-NEXT: testb $1, %dil
; X86-64-NEXT: je .LBB7_2
; X86-64-NEXT: # %bb.1: # %if
@@ -398,8 +394,8 @@ define void @test_shr2(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x
;
; X86-32-LABEL: test_shr2:
; X86-32: # %bb.0: # %entry
-; X86-32-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-32-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-32-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-32-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-32-NEXT: testb $1, {{[0-9]+}}(%esp)
; X86-32-NEXT: je .LBB7_2
@@ -439,8 +435,8 @@ exit:
define void @test_shl(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x float> %fvec2, <8 x float>* %fptrvec) {
; X86-64-LABEL: test_shl:
; X86-64: # %bb.0: # %entry
-; X86-64-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-64-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-64-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-64-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-64-NEXT: testb $1, %dil
; X86-64-NEXT: je .LBB8_2
; X86-64-NEXT: # %bb.1: # %if
@@ -457,8 +453,8 @@ define void @test_shl(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x f
;
; X86-32-LABEL: test_shl:
; X86-32: # %bb.0: # %entry
-; X86-32-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-32-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-32-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-32-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-32-NEXT: testb $1, {{[0-9]+}}(%esp)
; X86-32-NEXT: je .LBB8_2
@@ -498,8 +494,8 @@ exit:
define void @test_add(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x float> %fvec2, <8 x float>* %fptrvec) {
; X86-64-LABEL: test_add:
; X86-64: # %bb.0: # %entry
-; X86-64-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-64-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-64-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-64-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-64-NEXT: kmovb (%rsi), %k0
; X86-64-NEXT: kmovb (%rdx), %k1
; X86-64-NEXT: testb $1, %dil
@@ -517,8 +513,8 @@ define void @test_add(i1 %cond, i8* %ptr1, i8* %ptr2, <8 x float> %fvec1, <8 x f
;
; X86-32-LABEL: test_add:
; X86-32: # %bb.0: # %entry
-; X86-32-NEXT: # kill: def %ymm1 killed %ymm1 def %zmm1
-; X86-32-NEXT: # kill: def %ymm0 killed %ymm0 def %zmm0
+; X86-32-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
+; X86-32-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
; X86-32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-32-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-32-NEXT: movl {{[0-9]+}}(%esp), %edx