1 ; RUN: llc < %s -march=x86 -mattr=+sse2 | FileCheck %s 2 3 ; rdar://6504833 4 define float @test1(i32 %x) nounwind readnone { 5 ; CHECK: test1 6 ; CHECK: movd 7 ; CHECK: orpd 8 ; CHECK: subsd 9 ; CHECK: cvtsd2ss 10 ; CHECK: movss 11 ; CHECK: flds 12 ; CHECK: ret 13 entry: 14 %0 = uitofp i32 %x to float 15 ret float %0 16 } 17 18 ; PR10802 19 define float @test2(<4 x i32> %x) nounwind readnone ssp { 20 ; CHECK: test2 21 ; CHECK: xorps [[ZERO:%xmm[0-9]+]] 22 ; CHECK: movss {{.*}}, [[ZERO]] 23 ; CHECK: orps 24 ; CHECK: subsd 25 ; CHECK: cvtsd2ss 26 ; CHECK: movss 27 ; CHECK: flds 28 ; CHECK: ret 29 entry: 30 %vecext = extractelement <4 x i32> %x, i32 0 31 %conv = uitofp i32 %vecext to float 32 ret float %conv 33 } 34