xref: /aosp_15_r20/external/llvm/test/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -regalloc=fast -optimize-regalloc=0
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker%struct.CHESS_POSITION = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i8, i8, [64 x i8], i8, i8, i8, i8, i8 }
4*9880d681SAndroid Build Coastguard Worker@search = external global %struct.CHESS_POSITION		; <%struct.CHESS_POSITION*> [#uses=2]
5*9880d681SAndroid Build Coastguard Worker@bishop_shift_rl45 = external global [64 x i32]		; <[64 x i32]*> [#uses=1]
6*9880d681SAndroid Build Coastguard Worker@bishop_shift_rr45 = external global [64 x i32]		; <[64 x i32]*> [#uses=1]
7*9880d681SAndroid Build Coastguard Worker@black_outpost = external global [64 x i8]		; <[64 x i8]*> [#uses=1]
8*9880d681SAndroid Build Coastguard Worker@bishop_mobility_rl45 = external global [64 x [256 x i32]]		; <[64 x [256 x i32]]*> [#uses=1]
9*9880d681SAndroid Build Coastguard Worker@bishop_mobility_rr45 = external global [64 x [256 x i32]]		; <[64 x [256 x i32]]*> [#uses=1]
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdeclare fastcc i32 @FirstOne()
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdefine fastcc void @Evaluate() {
14*9880d681SAndroid Build Coastguard Workerentry:
15*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_false186, label %cond_true
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Workercond_true:		; preds = %entry
18*9880d681SAndroid Build Coastguard Worker	ret void
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workercond_false186:		; preds = %entry
21*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_true293, label %bb203
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workerbb203:		; preds = %cond_false186
24*9880d681SAndroid Build Coastguard Worker	ret void
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workercond_true293:		; preds = %cond_false186
27*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_true298, label %cond_next317
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workercond_true298:		; preds = %cond_true293
30*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_next518, label %cond_true397.preheader
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workercond_next317:		; preds = %cond_true293
33*9880d681SAndroid Build Coastguard Worker	ret void
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Workercond_true397.preheader:		; preds = %cond_true298
36*9880d681SAndroid Build Coastguard Worker	ret void
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Workercond_next518:		; preds = %cond_true298
39*9880d681SAndroid Build Coastguard Worker	br i1 false, label %bb1069, label %cond_true522
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Workercond_true522:		; preds = %cond_next518
42*9880d681SAndroid Build Coastguard Worker	ret void
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Workerbb1069:		; preds = %cond_next518
45*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_next1131, label %bb1096
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Workerbb1096:		; preds = %bb1069
48*9880d681SAndroid Build Coastguard Worker	ret void
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workercond_next1131:		; preds = %bb1069
51*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_next1207, label %cond_true1150
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workercond_true1150:		; preds = %cond_next1131
54*9880d681SAndroid Build Coastguard Worker	ret void
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Workercond_next1207:		; preds = %cond_next1131
57*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_next1219, label %cond_true1211
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Workercond_true1211:		; preds = %cond_next1207
60*9880d681SAndroid Build Coastguard Worker	ret void
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Workercond_next1219:		; preds = %cond_next1207
63*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_true1223, label %cond_next1283
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Workercond_true1223:		; preds = %cond_next1219
66*9880d681SAndroid Build Coastguard Worker	br i1 false, label %cond_true1254, label %cond_true1264
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workercond_true1254:		; preds = %cond_true1223
69*9880d681SAndroid Build Coastguard Worker	br i1 false, label %bb1567, label %cond_true1369.preheader
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Workercond_true1264:		; preds = %cond_true1223
72*9880d681SAndroid Build Coastguard Worker	ret void
73*9880d681SAndroid Build Coastguard Worker
74*9880d681SAndroid Build Coastguard Workercond_next1283:		; preds = %cond_next1219
75*9880d681SAndroid Build Coastguard Worker	ret void
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Workercond_true1369.preheader:		; preds = %cond_true1254
78*9880d681SAndroid Build Coastguard Worker	ret void
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Workerbb1567:		; preds = %cond_true1254
81*9880d681SAndroid Build Coastguard Worker	%tmp1580 = load i64, i64* getelementptr (%struct.CHESS_POSITION, %struct.CHESS_POSITION* @search, i32 0, i32 3)		; <i64> [#uses=1]
82*9880d681SAndroid Build Coastguard Worker	%tmp1591 = load i64, i64* getelementptr (%struct.CHESS_POSITION, %struct.CHESS_POSITION* @search, i32 0, i32 4)		; <i64> [#uses=1]
83*9880d681SAndroid Build Coastguard Worker	%tmp1572 = tail call fastcc i32 @FirstOne( )		; <i32> [#uses=5]
84*9880d681SAndroid Build Coastguard Worker	%tmp1582 = getelementptr [64 x i32], [64 x i32]* @bishop_shift_rl45, i32 0, i32 %tmp1572		; <i32*> [#uses=1]
85*9880d681SAndroid Build Coastguard Worker	%tmp1583 = load i32, i32* %tmp1582		; <i32> [#uses=1]
86*9880d681SAndroid Build Coastguard Worker	%tmp1583.upgrd.1 = trunc i32 %tmp1583 to i8		; <i8> [#uses=1]
87*9880d681SAndroid Build Coastguard Worker	%shift.upgrd.2 = zext i8 %tmp1583.upgrd.1 to i64		; <i64> [#uses=1]
88*9880d681SAndroid Build Coastguard Worker	%tmp1584 = lshr i64 %tmp1580, %shift.upgrd.2		; <i64> [#uses=1]
89*9880d681SAndroid Build Coastguard Worker	%tmp1584.upgrd.3 = trunc i64 %tmp1584 to i32		; <i32> [#uses=1]
90*9880d681SAndroid Build Coastguard Worker	%tmp1585 = and i32 %tmp1584.upgrd.3, 255		; <i32> [#uses=1]
91*9880d681SAndroid Build Coastguard Worker	%gep.upgrd.4 = zext i32 %tmp1585 to i64		; <i64> [#uses=1]
92*9880d681SAndroid Build Coastguard Worker	%tmp1587 = getelementptr [64 x [256 x i32]], [64 x [256 x i32]]* @bishop_mobility_rl45, i32 0, i32 %tmp1572, i64 %gep.upgrd.4		; <i32*> [#uses=1]
93*9880d681SAndroid Build Coastguard Worker	%tmp1588 = load i32, i32* %tmp1587		; <i32> [#uses=1]
94*9880d681SAndroid Build Coastguard Worker	%tmp1593 = getelementptr [64 x i32], [64 x i32]* @bishop_shift_rr45, i32 0, i32 %tmp1572		; <i32*> [#uses=1]
95*9880d681SAndroid Build Coastguard Worker	%tmp1594 = load i32, i32* %tmp1593		; <i32> [#uses=1]
96*9880d681SAndroid Build Coastguard Worker	%tmp1594.upgrd.5 = trunc i32 %tmp1594 to i8		; <i8> [#uses=1]
97*9880d681SAndroid Build Coastguard Worker	%shift.upgrd.6 = zext i8 %tmp1594.upgrd.5 to i64		; <i64> [#uses=1]
98*9880d681SAndroid Build Coastguard Worker	%tmp1595 = lshr i64 %tmp1591, %shift.upgrd.6		; <i64> [#uses=1]
99*9880d681SAndroid Build Coastguard Worker	%tmp1595.upgrd.7 = trunc i64 %tmp1595 to i32		; <i32> [#uses=1]
100*9880d681SAndroid Build Coastguard Worker	%tmp1596 = and i32 %tmp1595.upgrd.7, 255		; <i32> [#uses=1]
101*9880d681SAndroid Build Coastguard Worker	%gep.upgrd.8 = zext i32 %tmp1596 to i64		; <i64> [#uses=1]
102*9880d681SAndroid Build Coastguard Worker	%tmp1598 = getelementptr [64 x [256 x i32]], [64 x [256 x i32]]* @bishop_mobility_rr45, i32 0, i32 %tmp1572, i64 %gep.upgrd.8		; <i32*> [#uses=1]
103*9880d681SAndroid Build Coastguard Worker	%tmp1599 = load i32, i32* %tmp1598		; <i32> [#uses=1]
104*9880d681SAndroid Build Coastguard Worker	%tmp1600.neg = sub i32 0, %tmp1588		; <i32> [#uses=1]
105*9880d681SAndroid Build Coastguard Worker	%tmp1602 = sub i32 %tmp1600.neg, %tmp1599		; <i32> [#uses=1]
106*9880d681SAndroid Build Coastguard Worker	%tmp1604 = getelementptr [64 x i8], [64 x i8]* @black_outpost, i32 0, i32 %tmp1572		; <i8*> [#uses=1]
107*9880d681SAndroid Build Coastguard Worker	%tmp1605 = load i8, i8* %tmp1604		; <i8> [#uses=1]
108*9880d681SAndroid Build Coastguard Worker	%tmp1606 = icmp eq i8 %tmp1605, 0		; <i1> [#uses=1]
109*9880d681SAndroid Build Coastguard Worker	br i1 %tmp1606, label %cond_next1637, label %cond_true1607
110*9880d681SAndroid Build Coastguard Worker
111*9880d681SAndroid Build Coastguard Workercond_true1607:		; preds = %bb1567
112*9880d681SAndroid Build Coastguard Worker	ret void
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Workercond_next1637:		; preds = %bb1567
115*9880d681SAndroid Build Coastguard Worker	%tmp1662 = sub i32 %tmp1602, 0		; <i32> [#uses=0]
116*9880d681SAndroid Build Coastguard Worker	ret void
117*9880d681SAndroid Build Coastguard Worker}
118