Add testcase for r63142.
[oota-llvm.git] / test / CodeGen / X86 / bt.ll
1 ; RUN: llvm-as < %s | llc | grep btl
2 ; RUN: llvm-as < %s | llc -mcpu=pentium4 | grep btl | not grep esp
3 ; RUN: llvm-as < %s | llc -mcpu=penryn   | grep btl | not grep esp
4 ; PR3253
5
6 ; The register+memory form of the BT instruction should be usable on
7 ; pentium4, however it is currently disabled due to the register+memory
8 ; form having different semantics than the register+register form.
9
10 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
11 target triple = "i386-apple-darwin8"
12
13 define void @test2(i32 %x, i32 %n) nounwind {
14 entry:
15         %tmp29 = lshr i32 %x, %n                ; <i32> [#uses=1]
16         %tmp3 = and i32 %tmp29, 1               ; <i32> [#uses=1]
17         %tmp4 = icmp eq i32 %tmp3, 0            ; <i1> [#uses=1]
18         br i1 %tmp4, label %bb, label %UnifiedReturnBlock
19
20 bb:             ; preds = %entry
21         call void @foo()
22         ret void
23
24 UnifiedReturnBlock:             ; preds = %entry
25         ret void
26 }
27
28 declare void @foo()