This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / X86 / 2007-12-18-LoadCSEBug.ll
blob265d968548516aa6c27f412af54ccee14d685d92
1 ; RUN: llc < %s -march=x86 | grep {(%esp)} | count 2
2 ; PR1872
4         %struct.c34007g__designated___XUB = type { i32, i32, i32, i32 }
5         %struct.c34007g__pkg__parent = type { i32*, %struct.c34007g__designated___XUB* }
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* %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
14 bb4668:         ; preds = %bb4648
15         %tmp5464 = load i64* %x82167, align 8           ; <i64> [#uses=1]
16         %tmp5467 = icmp ne i64 0, %tmp5464              ; <i1> [#uses=1]
17         %tmp5470 = load 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
23 bb848:          ; preds = %entry
24         ret void
26 bb5507:         ; preds = %bb4668
27         ret void