diff options
Diffstat (limited to 'test/CodeGen/X86/uint_to_fp-2.ll')
-rw-r--r-- | test/CodeGen/X86/uint_to_fp-2.ll | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/test/CodeGen/X86/uint_to_fp-2.ll b/test/CodeGen/X86/uint_to_fp-2.ll index c5a61c3..e47f154 100644 --- a/test/CodeGen/X86/uint_to_fp-2.ll +++ b/test/CodeGen/X86/uint_to_fp-2.ll @@ -1,15 +1,20 @@ -; RUN: llc < %s -march=x86 -mattr=+sse2 | FileCheck %s +; RUN: llc < %s -mtriple=i386-unknown-unknown -march=x86 -mattr=+sse2 | FileCheck %s ; rdar://6504833 define float @test1(i32 %x) nounwind readnone { -; CHECK: test1 -; CHECK: movd -; CHECK: orps -; CHECK: subsd -; CHECK: cvtsd2ss -; CHECK: movss -; CHECK: flds -; CHECK: ret +; CHECK-LABEL: test1: +; CHECK: # BB#0: # %entry +; CHECK-NEXT: pushl %eax +; CHECK-NEXT: movsd .LCPI0_0, %xmm0 +; CHECK-NEXT: movd {{[0-9]+}}(%esp), %xmm1 +; CHECK-NEXT: orps %xmm0, %xmm1 +; CHECK-NEXT: subsd %xmm0, %xmm1 +; CHECK-NEXT: xorps %xmm0, %xmm0 +; CHECK-NEXT: cvtsd2ss %xmm1, %xmm0 +; CHECK-NEXT: movss %xmm0, (%esp) +; CHECK-NEXT: flds (%esp) +; CHECK-NEXT: popl %eax +; CHECK-NEXT: retl entry: %0 = uitofp i32 %x to float ret float %0 @@ -17,15 +22,20 @@ entry: ; PR10802 define float @test2(<4 x i32> %x) nounwind readnone ssp { -; CHECK: test2 -; CHECK: xorps [[ZERO:%xmm[0-9]+]] -; CHECK: movss {{.*}}, [[ZERO]] -; CHECK: orps -; CHECK: subsd -; CHECK: cvtsd2ss -; CHECK: movss -; CHECK: flds -; CHECK: ret +; CHECK-LABEL: test2: +; CHECK: # BB#0: # %entry +; CHECK-NEXT: pushl %eax +; CHECK-NEXT: xorps %xmm1, %xmm1 +; CHECK-NEXT: movss %xmm0, %xmm1 +; CHECK-NEXT: movsd .LCPI1_0, %xmm0 +; CHECK-NEXT: orps %xmm0, %xmm1 +; CHECK-NEXT: subsd %xmm0, %xmm1 +; CHECK-NEXT: xorps %xmm0, %xmm0 +; CHECK-NEXT: cvtsd2ss %xmm1, %xmm0 +; CHECK-NEXT: movss %xmm0, (%esp) +; CHECK-NEXT: flds (%esp) +; CHECK-NEXT: popl %eax +; CHECK-NEXT: retl entry: %vecext = extractelement <4 x i32> %x, i32 0 %conv = uitofp i32 %vecext to float |