1; RUN: llc < %s -march=x86 -mattr=+sse2 | FileCheck %s
2
3define i32 @isint_return(double %d) nounwind {
4; CHECK-NOT: xor
5; CHECK: cvt
6  %i = fptosi double %d to i32
7; CHECK-NEXT: cvt
8  %e = sitofp i32 %i to double
9; CHECK: cmpeqsd
10  %c = fcmp oeq double %d, %e
11; CHECK-NEXT: movd
12; CHECK-NEXT: andl
13  %z = zext i1 %c to i32
14  ret i32 %z
15}
16
17declare void @foo()
18
19define void @isint_branch(double %d) nounwind {
20; CHECK: cvt
21  %i = fptosi double %d to i32
22; CHECK-NEXT: cvt
23  %e = sitofp i32 %i to double
24; CHECK: ucomisd
25  %c = fcmp oeq double %d, %e
26; CHECK-NEXT: jne
27; CHECK-NEXT: jp
28  br i1 %c, label %true, label %false
29true:
30  call void @foo()
31  ret void
32false:
33  ret void
34}
35