1; RUN: llc < %s -march=x86 -mattr=+sse2 | FileCheck %s
2
3; rdar://6504833
4define float @test1(i32 %x) nounwind readnone {
5; CHECK: test1
6; CHECK: movd
7; CHECK: orps
8; CHECK: subsd
9; CHECK: cvtsd2ss
10; CHECK: movss
11; CHECK: flds
12; CHECK: ret
13entry:
14	%0 = uitofp i32 %x to float
15	ret float %0
16}
17
18; PR10802
19define 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
29entry:
30  %vecext = extractelement <4 x i32> %x, i32 0
31  %conv = uitofp i32 %vecext to float
32  ret float %conv
33}
34