Fix a crash in the pre-alloc splitter exposed by recent codegen changes.
[llvm/msp430.git] / test / CodeGen / X86 / 2009-02-20-PreAllocSplit-Crash.ll
blob54fcd430e98c066e86881dad391f77c54382e925
1 ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i386-apple-darwin8 -pre-alloc-split
3 define i32 @main() nounwind {
4 bb4.i.thread:
5         br label %bb5.i4
7 bb16:           ; preds = %bb111.i
8         %phitmp = add i32 %indvar.reg2mem.4, 1          ; <i32> [#uses=2]
9         switch i32 %indvar.reg2mem.4, label %bb100.i [
10                 i32 0, label %bb5.i4
11                 i32 1, label %bb5.i4
12                 i32 2, label %bb5.i4
13                 i32 5, label %bb.i14.i
14                 i32 6, label %bb.i14.i
15                 i32 7, label %bb.i14.i
16         ]
18 bb5.i4:         ; preds = %bb16, %bb16, %bb16, %bb4.i.thread
19         br i1 false, label %bb102.i, label %bb103.i
21 bb.i14.i:               ; preds = %bb16, %bb16, %bb16
22         %0 = malloc [600 x i32]         ; <[600 x i32]*> [#uses=0]
23         %1 = icmp eq i32 %phitmp, 7             ; <i1> [#uses=1]
24         %tl.0.i = select i1 %1, float 1.000000e+02, float 1.000000e+00          ; <float> [#uses=1]
25         %2 = icmp eq i32 %phitmp, 8             ; <i1> [#uses=1]
26         %tu.0.i = select i1 %2, float 1.000000e+02, float 1.000000e+00          ; <float> [#uses=1]
27         br label %bb30.i
29 bb30.i:         ; preds = %bb36.i, %bb.i14.i
30         %i.1173.i = phi i32 [ 0, %bb.i14.i ], [ %indvar.next240.i, %bb36.i ]            ; <i32> [#uses=3]
31         %3 = icmp eq i32 0, %i.1173.i           ; <i1> [#uses=1]
32         br i1 %3, label %bb33.i, label %bb34.i
34 bb33.i:         ; preds = %bb30.i
35         store float %tl.0.i, float* null, align 4
36         br label %bb36.i
38 bb34.i:         ; preds = %bb30.i
39         %4 = icmp eq i32 0, %i.1173.i           ; <i1> [#uses=1]
40         br i1 %4, label %bb35.i, label %bb36.i
42 bb35.i:         ; preds = %bb34.i
43         store float %tu.0.i, float* null, align 4
44         br label %bb36.i
46 bb36.i:         ; preds = %bb35.i, %bb34.i, %bb33.i
47         %indvar.next240.i = add i32 %i.1173.i, 1                ; <i32> [#uses=1]
48         br label %bb30.i
50 bb100.i:                ; preds = %bb16
51         ret i32 0
53 bb102.i:                ; preds = %bb5.i4
54         br label %bb103.i
56 bb103.i:                ; preds = %bb102.i, %bb5.i4
57         %indvar.reg2mem.4 = phi i32 [ 0, %bb5.i4 ], [ 0, %bb102.i ]             ; <i32> [#uses=2]
58         %n.0.reg2mem.1.i = phi i32 [ 0, %bb102.i ], [ 0, %bb5.i4 ]              ; <i32> [#uses=1]
59         %5 = icmp eq i32 0, 0           ; <i1> [#uses=1]
60         br i1 %5, label %bb111.i, label %bb108.i
62 bb108.i:                ; preds = %bb103.i
63         ret i32 0
65 bb111.i:                ; preds = %bb103.i
66         %6 = icmp sgt i32 %n.0.reg2mem.1.i, 7           ; <i1> [#uses=1]
67         br i1 %6, label %bb16, label %bb112.i
69 bb112.i:                ; preds = %bb111.i
70         unreachable