[TwoAddressInstructionPass] When looking for a 3 addr conversion after commuting...
[oota-llvm.git] / test / CodeGen / X86 / 2007-12-18-LoadCSEBug.ll
1 ; RUN: llc < %s -march=x86 -mcpu=generic | grep "(%esp)" | count 2
2 ; PR1872
3
4         %struct.c34007g__designated___XUB = type { i32, i32, i32, i32 }
5         %struct.c34007g__pkg__parent = type { i32*, %struct.c34007g__designated___XUB* }
6
7 define void @_ada_c34007g() {
8 entry:
9         %x8 = alloca %struct.c34007g__pkg__parent, align 8              ; <%struct.c34007g__pkg__parent*> [#uses=2]
10         %tmp1272 = getelementptr %struct.c34007g__pkg__parent, %struct.c34007g__pkg__parent* %x8, i32 0, i32 0          ; <i32**> [#uses=1]
11         %x82167 = bitcast %struct.c34007g__pkg__parent* %x8 to i64*             ; <i64*> [#uses=1]
12         br i1 true, label %bb4668, label %bb848
13
14 bb4668:         ; preds = %bb4648
15         %tmp5464 = load i64, i64* %x82167, align 8              ; <i64> [#uses=1]
16         %tmp5467 = icmp ne i64 0, %tmp5464              ; <i1> [#uses=1]
17         %tmp5470 = load i32*, i32** %tmp1272, align 8           ; <i32*> [#uses=1]
18         %tmp5471 = icmp eq i32* %tmp5470, null          ; <i1> [#uses=1]
19         %tmp5475 = or i1 %tmp5471, %tmp5467             ; <i1> [#uses=1]
20         %tmp5497 = or i1 %tmp5475, false                ; <i1> [#uses=1]
21         br i1 %tmp5497, label %bb848, label %bb5507
22
23 bb848:          ; preds = %entry
24         ret void
25
26 bb5507:         ; preds = %bb4668
27         ret void
28 }