|
|
|
|
@@ -280,11 +280,12 @@ define <4 x i128> @test_unsigned_v4i128_v4f32(<4 x float> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movq %rax, %r12
|
|
|
|
|
; CHECK-NEXT: movq %rdx, %r13
|
|
|
|
|
; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm0, %xmm0
|
|
|
|
|
; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm0, %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovbq %r14, %r13
|
|
|
|
|
; CHECK-NEXT: cmovbq %r14, %r12
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovaq %rbp, %r12
|
|
|
|
|
; CHECK-NEXT: cmovaq %rbp, %r13
|
|
|
|
|
; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
|
|
|
|
|
@@ -293,19 +294,21 @@ define <4 x i128> @test_unsigned_v4i128_v4f32(<4 x float> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movq %rax, %rbp
|
|
|
|
|
; CHECK-NEXT: movq %rdx, %r14
|
|
|
|
|
; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm0, %xmm0
|
|
|
|
|
; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm0, %xmm1
|
|
|
|
|
; CHECK-NEXT: movl $0, %eax
|
|
|
|
|
; CHECK-NEXT: cmovbq %rax, %r14
|
|
|
|
|
; CHECK-NEXT: cmovbq %rax, %rbp
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
|
|
|
|
|
; CHECK-NEXT: movq $-1, %rax
|
|
|
|
|
; CHECK-NEXT: cmovaq %rax, %rbp
|
|
|
|
|
; CHECK-NEXT: cmovaq %rax, %r14
|
|
|
|
|
; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: movl $0, %ecx
|
|
|
|
|
; CHECK-NEXT: cmovbq %rcx, %rdx
|
|
|
|
|
; CHECK-NEXT: cmovbq %rcx, %rax
|
|
|
|
|
@@ -506,7 +509,8 @@ define <2 x i128> @test_unsigned_v2i128_v2f64(<2 x double> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: callq __fixunsdfti@PLT
|
|
|
|
|
; CHECK-NEXT: movapd (%rsp), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: ucomisd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorpd %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomisd %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rdx
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rax
|
|
|
|
|
; CHECK-NEXT: ucomisd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
@@ -562,7 +566,8 @@ define <8 x i1> @test_unsigned_v8i1_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -574,7 +579,8 @@ define <8 x i1> @test_unsigned_v8i1_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -584,7 +590,8 @@ define <8 x i1> @test_unsigned_v8i1_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -598,7 +605,8 @@ define <8 x i1> @test_unsigned_v8i1_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrlq $48, %xmm0
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -608,7 +616,8 @@ define <8 x i1> @test_unsigned_v8i1_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -619,7 +628,8 @@ define <8 x i1> @test_unsigned_v8i1_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -629,7 +639,8 @@ define <8 x i1> @test_unsigned_v8i1_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrld $16, %xmm0
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -673,7 +684,8 @@ define <8 x i8> @test_unsigned_v8i8_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -682,7 +694,8 @@ define <8 x i8> @test_unsigned_v8i8_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -691,7 +704,8 @@ define <8 x i8> @test_unsigned_v8i8_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrld $16, %xmm0
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -702,7 +716,8 @@ define <8 x i8> @test_unsigned_v8i8_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -713,7 +728,8 @@ define <8 x i8> @test_unsigned_v8i8_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrlq $48, %xmm0
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -726,7 +742,8 @@ define <8 x i8> @test_unsigned_v8i8_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrldq {{.*#+}} xmm0 = xmm0[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %r14d
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %r14d
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %r14d
|
|
|
|
|
@@ -735,7 +752,8 @@ define <8 x i8> @test_unsigned_v8i8_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -777,7 +795,8 @@ define <8 x i16> @test_unsigned_v8i16_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -789,7 +808,8 @@ define <8 x i16> @test_unsigned_v8i16_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -799,7 +819,8 @@ define <8 x i16> @test_unsigned_v8i16_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -813,7 +834,8 @@ define <8 x i16> @test_unsigned_v8i16_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrlq $48, %xmm0
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -823,7 +845,8 @@ define <8 x i16> @test_unsigned_v8i16_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -834,7 +857,8 @@ define <8 x i16> @test_unsigned_v8i16_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -844,7 +868,8 @@ define <8 x i16> @test_unsigned_v8i16_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrld $16, %xmm0
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -886,7 +911,8 @@ define <8 x i32> @test_unsigned_v8i32_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -897,7 +923,8 @@ define <8 x i32> @test_unsigned_v8i32_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -907,7 +934,8 @@ define <8 x i32> @test_unsigned_v8i32_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrld $16, %xmm0
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -921,7 +949,8 @@ define <8 x i32> @test_unsigned_v8i32_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrldq {{.*#+}} xmm0 = xmm0[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: pxor %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -931,7 +960,8 @@ define <8 x i32> @test_unsigned_v8i32_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -943,7 +973,8 @@ define <8 x i32> @test_unsigned_v8i32_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: psrldq {{.*#+}} xmm0 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -953,7 +984,8 @@ define <8 x i32> @test_unsigned_v8i32_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: cvttss2si %xmm0, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbl %ebx, %eax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmoval %ebp, %eax
|
|
|
|
|
@@ -1007,7 +1039,8 @@ define <8 x i64> @test_unsigned_v8i64_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: sarq $63, %rdx
|
|
|
|
|
; CHECK-NEXT: andq %rax, %rdx
|
|
|
|
|
; CHECK-NEXT: orq %rcx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbq %rbx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovaq %r14, %rdx
|
|
|
|
|
@@ -1026,7 +1059,8 @@ define <8 x i64> @test_unsigned_v8i64_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: sarq $63, %rdx
|
|
|
|
|
; CHECK-NEXT: andq %rax, %rdx
|
|
|
|
|
; CHECK-NEXT: orq %rcx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbq %rbx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovaq %r14, %rdx
|
|
|
|
|
@@ -1043,7 +1077,8 @@ define <8 x i64> @test_unsigned_v8i64_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: sarq $63, %rdx
|
|
|
|
|
; CHECK-NEXT: andq %rax, %rdx
|
|
|
|
|
; CHECK-NEXT: orq %rcx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbq %rbx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovaq %r14, %rdx
|
|
|
|
|
@@ -1062,7 +1097,8 @@ define <8 x i64> @test_unsigned_v8i64_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: sarq $63, %rdx
|
|
|
|
|
; CHECK-NEXT: andq %rax, %rdx
|
|
|
|
|
; CHECK-NEXT: orq %rcx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbq %rbx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovaq %r14, %rdx
|
|
|
|
|
@@ -1079,7 +1115,8 @@ define <8 x i64> @test_unsigned_v8i64_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: sarq $63, %rdx
|
|
|
|
|
; CHECK-NEXT: andq %rax, %rdx
|
|
|
|
|
; CHECK-NEXT: orq %rcx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbq %rbx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovaq %r14, %rdx
|
|
|
|
|
@@ -1098,7 +1135,8 @@ define <8 x i64> @test_unsigned_v8i64_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: sarq $63, %rdx
|
|
|
|
|
; CHECK-NEXT: andq %rax, %rdx
|
|
|
|
|
; CHECK-NEXT: orq %rcx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbq %rbx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovaq %r14, %rdx
|
|
|
|
|
@@ -1115,7 +1153,8 @@ define <8 x i64> @test_unsigned_v8i64_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: sarq $63, %rdx
|
|
|
|
|
; CHECK-NEXT: andq %rax, %rdx
|
|
|
|
|
; CHECK-NEXT: orq %rcx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm1, %xmm1
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm1, %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovbq %rbx, %rdx
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: cmovaq %r14, %rdx
|
|
|
|
|
@@ -1167,12 +1206,13 @@ define <8 x i128> @test_unsigned_v8i128_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: movss %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm0 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm0, %xmm0
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm1 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm0, %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rdx
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %rax
|
|
|
|
|
; CHECK-NEXT: movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %rdx
|
|
|
|
|
@@ -1182,12 +1222,13 @@ define <8 x i128> @test_unsigned_v8i128_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: movd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Folded Spill
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm0 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: pxor %xmm0, %xmm0
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm1 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm0, %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rdx
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %rax
|
|
|
|
|
; CHECK-NEXT: movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %rdx
|
|
|
|
|
@@ -1197,12 +1238,13 @@ define <8 x i128> @test_unsigned_v8i128_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: movss %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm0 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm0, %xmm0
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm1 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm0, %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rdx
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %rax
|
|
|
|
|
; CHECK-NEXT: movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %rdx
|
|
|
|
|
@@ -1213,12 +1255,13 @@ define <8 x i128> @test_unsigned_v8i128_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: movd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Folded Spill
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movq %rdx, %rbp
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm0 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: pxor %xmm0, %xmm0
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm1 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm0, %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rbp
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %rax
|
|
|
|
|
; CHECK-NEXT: movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %rbp
|
|
|
|
|
@@ -1229,12 +1272,13 @@ define <8 x i128> @test_unsigned_v8i128_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movq %rax, %r14
|
|
|
|
|
; CHECK-NEXT: movq %rdx, %r15
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm0 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm0, %xmm0
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm1 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm0, %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %r15
|
|
|
|
|
; CHECK-NEXT: cmovbq %r12, %r14
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %r14
|
|
|
|
|
; CHECK-NEXT: cmovaq %r13, %r15
|
|
|
|
|
; CHECK-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
|
|
|
|
|
@@ -1244,13 +1288,14 @@ define <8 x i128> @test_unsigned_v8i128_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movq %rax, %r12
|
|
|
|
|
; CHECK-NEXT: movq %rdx, %r13
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm0 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: pxor %xmm0, %xmm0
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm1 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm0, %xmm1
|
|
|
|
|
; CHECK-NEXT: movl $0, %eax
|
|
|
|
|
; CHECK-NEXT: cmovbq %rax, %r13
|
|
|
|
|
; CHECK-NEXT: cmovbq %rax, %r12
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
|
|
|
|
|
; CHECK-NEXT: movq $-1, %rax
|
|
|
|
|
; CHECK-NEXT: cmovaq %rax, %r12
|
|
|
|
|
; CHECK-NEXT: cmovaq %rax, %r13
|
|
|
|
|
@@ -1258,13 +1303,14 @@ define <8 x i128> @test_unsigned_v8i128_v8f16(<8 x half> %f) nounwind {
|
|
|
|
|
; CHECK-NEXT: callq __extendhfsf2@PLT
|
|
|
|
|
; CHECK-NEXT: movss %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill
|
|
|
|
|
; CHECK-NEXT: callq __fixunssfti@PLT
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm0 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: xorps %xmm0, %xmm0
|
|
|
|
|
; CHECK-NEXT: movss {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 4-byte Reload
|
|
|
|
|
; CHECK-NEXT: # xmm1 = mem[0],zero,zero,zero
|
|
|
|
|
; CHECK-NEXT: ucomiss %xmm0, %xmm1
|
|
|
|
|
; CHECK-NEXT: movl $0, %ecx
|
|
|
|
|
; CHECK-NEXT: cmovbq %rcx, %rdx
|
|
|
|
|
; CHECK-NEXT: cmovbq %rcx, %rax
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
|
|
|
|
|
; CHECK-NEXT: ucomiss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
|
|
|
|
|
; CHECK-NEXT: movq $-1, %rcx
|
|
|
|
|
; CHECK-NEXT: cmovaq %rcx, %rax
|
|
|
|
|
; CHECK-NEXT: cmovaq %rcx, %rdx
|
|
|
|
|
|