Merge branch 'master' into msp430
[llvm/msp430.git] / test / Transforms / LoopIndexSplit / 2008-10-06-Crash.ll
blobb477b73cc37a3f790f200c14631820b3c65fd589
1 ; RUN: llvm-as < %s | opt -loop-index-split -disable-output
2         %struct.RExC_state_t = type { i32, i8*, %struct.regexp*, i8*, i8*, i8*, i32, %struct.regnode*, %struct.regnode*, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
3         %struct.SV = type { i8*, i32, i32 }
4         %struct.reg_data = type { i32, i8*, [1 x i8*] }
5         %struct.reg_substr_data = type { [3 x %struct.reg_substr_datum] }
6         %struct.reg_substr_datum = type { i32, i32, %struct.SV*, %struct.SV* }
7         %struct.regexp = type { i32*, i32*, %struct.regnode*, %struct.reg_substr_data*, i8*, %struct.reg_data*, i8*, i32*, i32, i32, i32, i32, i32, i32, i32, i32, [1 x %struct.regnode] }
8         %struct.regnode = type { i8, i8, i16 }
10 define fastcc %struct.regnode* @S_regclass(%struct.RExC_state_t* %pRExC_state) nounwind {
11 entry:
12         br label %bb439
14 bb439:          ; preds = %bb444, %entry
15         %value23.16.reg2mem.0 = phi i32 [ %3, %bb444 ], [ 0, %entry ]           ; <i32> [#uses=3]
16         %0 = icmp ugt i32 %value23.16.reg2mem.0, 31             ; <i1> [#uses=1]
17         %1 = icmp ne i32 %value23.16.reg2mem.0, 127             ; <i1> [#uses=1]
18         %2 = and i1 %0, %1              ; <i1> [#uses=1]
19         br i1 %2, label %bb443, label %bb444
21 bb443:          ; preds = %bb439
22         br label %bb444
24 bb444:          ; preds = %bb443, %bb439
25         %3 = add i32 %value23.16.reg2mem.0, 1           ; <i32> [#uses=2]
26         %4 = icmp ugt i32 %3, 255               ; <i1> [#uses=1]
27         br i1 %4, label %bb675, label %bb439
29 bb675:          ; preds = %bb444
30         unreachable