Extend the statepoint intrinsic to allow statepoints to be marked as transitions...
[oota-llvm.git] / test / CodeGen / X86 / btq.ll
1 ; RUN: llc < %s -march=x86-64 | FileCheck %s
2
3 declare void @bar()
4
5 define void @test1(i64 %foo) nounwind {
6   %and = and i64 %foo, 4294967296
7   %tobool = icmp eq i64 %and, 0
8   br i1 %tobool, label %if.end, label %if.then
9
10 ; CHECK-LABEL: test1:
11 ; CHECK: btq $32
12
13 if.then:
14   tail call void @bar() nounwind
15   br label %if.end
16
17 if.end:
18   ret void
19 }
20
21 define void @test2(i64 %foo) nounwind {
22   %and = and i64 %foo, 2147483648
23   %tobool = icmp eq i64 %and, 0
24   br i1 %tobool, label %if.end, label %if.then
25
26 ; CHECK-LABEL: test2:
27 ; CHECK: testl $-2147483648
28
29 if.then:
30   tail call void @bar() nounwind
31   br label %if.end
32
33 if.end:
34   ret void
35 }