Fix PR4639, a ELF-TLS regression from some of my refactoring.
[oota-llvm.git] / test / CodeGen / X86 / subreg-to-reg-5.ll
1 ; RUN: llvm-as < %s | llc -march=x86-64 > %t
2 ; RUN: grep addl %t
3 ; RUN: not egrep {movl|movq} %t
4
5 define float @foo(float* %B) nounwind {
6 entry:
7         br label %bb2
8
9 bb2:            ; preds = %bb3, %entry
10         %B_addr.0.rec = phi i64 [ %indvar.next154, %bb3 ], [ 0, %entry ]                ; <i64> [#uses=2]
11         %z = icmp slt i64 %B_addr.0.rec, 20000
12         br i1 %z, label %bb3, label %bb4
13
14 bb3:            ; preds = %bb2
15         %indvar.next154 = add i64 %B_addr.0.rec, 1              ; <i64> [#uses=1]
16         br label %bb2
17
18 bb4:            ; preds = %bb2
19         %B_addr.0 = getelementptr float* %B, i64 %B_addr.0.rec          ; <float*> [#uses=1]
20         %t1 = ptrtoint float* %B_addr.0 to i64          ; <i64> [#uses=1]
21         %t2 = and i64 %t1, 4294967295           ; <i64> [#uses=1]
22         %t3 = icmp eq i64 %t2, 0                ; <i1> [#uses=1]
23         br i1 %t3, label %bb5, label %bb10.preheader
24
25 bb10.preheader:         ; preds = %bb4
26         br label %bb9
27
28 bb5:            ; preds = %bb4
29         ret float 7.0
30
31 bb9:            ; preds = %bb10.preheader
32         %t5 = getelementptr float* %B, i64 0            ; <float*> [#uses=1]
33         %t7 = load float* %t5           ; <float> [#uses=1]
34         ret float %t7
35 }