diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/sqrt-fastmath.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/sqrt-fastmath.ll | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/llvm/test/CodeGen/X86/sqrt-fastmath.ll b/llvm/test/CodeGen/X86/sqrt-fastmath.ll index 5cd604c..a260b32 100644 --- a/llvm/test/CodeGen/X86/sqrt-fastmath.ll +++ b/llvm/test/CodeGen/X86/sqrt-fastmath.ll @@ -410,34 +410,34 @@ define <4 x float> @v4f32_estimate(<4 x float> %x) #1 { define <4 x float> @v4f32_estimate2(<4 x float> %x) #5 { ; SSE-LABEL: v4f32_estimate2: ; SSE: # %bb.0: -; SSE-NEXT: rsqrtps %xmm0, %xmm2 -; SSE-NEXT: mulps %xmm0, %xmm2 -; SSE-NEXT: andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0 -; SSE-NEXT: movaps {{.*#+}} xmm1 = [1.17549435E-38,1.17549435E-38,1.17549435E-38,1.17549435E-38] -; SSE-NEXT: cmpleps %xmm0, %xmm1 -; SSE-NEXT: andps %xmm2, %xmm1 -; SSE-NEXT: movaps %xmm1, %xmm0 +; SSE-NEXT: movaps {{.*#+}} xmm1 = [NaN,NaN,NaN,NaN] +; SSE-NEXT: andps %xmm0, %xmm1 +; SSE-NEXT: movaps {{.*#+}} xmm2 = [1.17549435E-38,1.17549435E-38,1.17549435E-38,1.17549435E-38] +; SSE-NEXT: cmpleps %xmm1, %xmm2 +; SSE-NEXT: rsqrtps %xmm0, %xmm1 +; SSE-NEXT: mulps %xmm1, %xmm0 +; SSE-NEXT: andps %xmm2, %xmm0 ; SSE-NEXT: retq ; ; AVX1-LABEL: v4f32_estimate2: ; AVX1: # %bb.0: -; AVX1-NEXT: vrsqrtps %xmm0, %xmm1 -; AVX1-NEXT: vmulps %xmm1, %xmm0, %xmm1 -; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0 +; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1 ; AVX1-NEXT: vbroadcastss {{.*#+}} xmm2 = [1.17549435E-38,1.17549435E-38,1.17549435E-38,1.17549435E-38] -; AVX1-NEXT: vcmpleps %xmm0, %xmm2, %xmm0 -; AVX1-NEXT: vandps %xmm1, %xmm0, %xmm0 +; AVX1-NEXT: vcmpleps %xmm1, %xmm2, %xmm1 +; AVX1-NEXT: vrsqrtps %xmm0, %xmm2 +; AVX1-NEXT: vmulps %xmm2, %xmm0, %xmm0 +; AVX1-NEXT: vandps %xmm0, %xmm1, %xmm0 ; AVX1-NEXT: retq ; ; AVX512-LABEL: v4f32_estimate2: ; AVX512: # %bb.0: -; AVX512-NEXT: vrsqrtps %xmm0, %xmm1 -; AVX512-NEXT: vmulps %xmm1, %xmm0, %xmm1 -; AVX512-NEXT: vbroadcastss {{.*#+}} xmm2 = [NaN,NaN,NaN,NaN] -; AVX512-NEXT: vandps %xmm2, %xmm0, %xmm0 +; AVX512-NEXT: vbroadcastss {{.*#+}} xmm1 = [NaN,NaN,NaN,NaN] +; AVX512-NEXT: vandps %xmm1, %xmm0, %xmm1 ; AVX512-NEXT: vbroadcastss {{.*#+}} xmm2 = [1.17549435E-38,1.17549435E-38,1.17549435E-38,1.17549435E-38] -; AVX512-NEXT: vcmpleps %xmm0, %xmm2, %xmm0 -; AVX512-NEXT: vandps %xmm1, %xmm0, %xmm0 +; AVX512-NEXT: vcmpleps %xmm1, %xmm2, %xmm1 +; AVX512-NEXT: vrsqrtps %xmm0, %xmm2 +; AVX512-NEXT: vmulps %xmm2, %xmm0, %xmm0 +; AVX512-NEXT: vandps %xmm0, %xmm1, %xmm0 ; AVX512-NEXT: retq %sqrt = tail call fast <4 x float> @llvm.sqrt.v4f32(<4 x float> %x) ret <4 x float> %sqrt |