xref: /aosp_15_r20/external/llvm/test/Transforms/SCCP/2006-10-23-IPSCCP-Crash.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -sccp -disable-output
2*9880d681SAndroid Build Coastguard Worker; END.
3*9880d681SAndroid Build Coastguard Workertarget datalayout = "E-p:32:32"
4*9880d681SAndroid Build Coastguard Workertarget triple = "powerpc-apple-darwin8.7.0"
5*9880d681SAndroid Build Coastguard Worker	%struct.pat_list = type { i32, %struct.pat_list* }
6*9880d681SAndroid Build Coastguard Worker@JUMP = external global i32		; <i32*> [#uses=1]
7*9880d681SAndroid Build Coastguard Worker@old_D_pat = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerdefine void @asearch1(i32 %D) {
10*9880d681SAndroid Build Coastguard Workerentry:
11*9880d681SAndroid Build Coastguard Worker	%tmp80 = icmp ult i32 0, %D		; <i1> [#uses=1]
12*9880d681SAndroid Build Coastguard Worker	br i1 %tmp80, label %bb647.preheader, label %cond_true81.preheader
13*9880d681SAndroid Build Coastguard Workercond_true81.preheader:		; preds = %entry
14*9880d681SAndroid Build Coastguard Worker	ret void
15*9880d681SAndroid Build Coastguard Workerbb647.preheader:		; preds = %entry
16*9880d681SAndroid Build Coastguard Worker	%tmp3.i = call i32 @read( )		; <i32> [#uses=1]
17*9880d681SAndroid Build Coastguard Worker	%tmp6.i = add i32 %tmp3.i, 0		; <i32> [#uses=1]
18*9880d681SAndroid Build Coastguard Worker	%tmp653 = icmp sgt i32 %tmp6.i, 0		; <i1> [#uses=1]
19*9880d681SAndroid Build Coastguard Worker	br i1 %tmp653, label %cond_true654, label %UnifiedReturnBlock
20*9880d681SAndroid Build Coastguard Workercond_true612:		; preds = %cond_true654
21*9880d681SAndroid Build Coastguard Worker	ret void
22*9880d681SAndroid Build Coastguard Workercond_next624:		; preds = %cond_true654
23*9880d681SAndroid Build Coastguard Worker	ret void
24*9880d681SAndroid Build Coastguard Workercond_true654:		; preds = %bb647.preheader
25*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %cond_true612, label %cond_next624
26*9880d681SAndroid Build Coastguard WorkerUnifiedReturnBlock:		; preds = %bb647.preheader
27*9880d681SAndroid Build Coastguard Worker	ret void
28*9880d681SAndroid Build Coastguard Worker}
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerdefine void @bitap(i32 %D) {
31*9880d681SAndroid Build Coastguard Workerentry:
32*9880d681SAndroid Build Coastguard Worker	%tmp29 = icmp eq i32 0, 0		; <i1> [#uses=1]
33*9880d681SAndroid Build Coastguard Worker	br i1 %tmp29, label %cond_next50, label %cond_next37
34*9880d681SAndroid Build Coastguard Workercond_next37:		; preds = %entry
35*9880d681SAndroid Build Coastguard Worker	ret void
36*9880d681SAndroid Build Coastguard Workercond_next50:		; preds = %entry
37*9880d681SAndroid Build Coastguard Worker	%tmp52 = icmp sgt i32 %D, 0		; <i1> [#uses=1]
38*9880d681SAndroid Build Coastguard Worker	br i1 %tmp52, label %cond_true53, label %cond_next71
39*9880d681SAndroid Build Coastguard Workercond_true53:		; preds = %cond_next50
40*9880d681SAndroid Build Coastguard Worker	%tmp54 = load i32, i32* @JUMP		; <i32> [#uses=1]
41*9880d681SAndroid Build Coastguard Worker	%tmp55 = icmp eq i32 %tmp54, 1		; <i1> [#uses=1]
42*9880d681SAndroid Build Coastguard Worker	br i1 %tmp55, label %cond_true56, label %cond_next63
43*9880d681SAndroid Build Coastguard Workercond_true56:		; preds = %cond_true53
44*9880d681SAndroid Build Coastguard Worker	%tmp57 = bitcast i32 %D to i32		; <i32> [#uses=1]
45*9880d681SAndroid Build Coastguard Worker	call void @asearch1( i32 %tmp57 )
46*9880d681SAndroid Build Coastguard Worker	ret void
47*9880d681SAndroid Build Coastguard Workercond_next63:		; preds = %cond_true53
48*9880d681SAndroid Build Coastguard Worker	ret void
49*9880d681SAndroid Build Coastguard Workercond_next71:		; preds = %cond_next50
50*9880d681SAndroid Build Coastguard Worker	ret void
51*9880d681SAndroid Build Coastguard Worker}
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workerdeclare i32 @read()
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Workerdefine void @initial_value() {
56*9880d681SAndroid Build Coastguard Workerentry:
57*9880d681SAndroid Build Coastguard Worker	ret void
58*9880d681SAndroid Build Coastguard Worker}
59*9880d681SAndroid Build Coastguard Worker
60*9880d681SAndroid Build Coastguard Workerdefine void @main() {
61*9880d681SAndroid Build Coastguard Workerentry:
62*9880d681SAndroid Build Coastguard Worker	br label %cond_next252
63*9880d681SAndroid Build Coastguard Workercond_next208:		; preds = %cond_true260
64*9880d681SAndroid Build Coastguard Worker	%tmp229 = call i32 @atoi( )		; <i32> [#uses=1]
65*9880d681SAndroid Build Coastguard Worker	br label %cond_next252
66*9880d681SAndroid Build Coastguard Workerbb217:		; preds = %cond_true260
67*9880d681SAndroid Build Coastguard Worker	ret void
68*9880d681SAndroid Build Coastguard Workercond_next252:		; preds = %cond_next208, %entry
69*9880d681SAndroid Build Coastguard Worker	%D.0.0 = phi i32 [ 0, %entry ], [ %tmp229, %cond_next208 ]		; <i32> [#uses=1]
70*9880d681SAndroid Build Coastguard Worker	%tmp254 = getelementptr i8*, i8** null, i32 1		; <i8**> [#uses=1]
71*9880d681SAndroid Build Coastguard Worker	%tmp256 = load i8*, i8** %tmp254		; <i8*> [#uses=1]
72*9880d681SAndroid Build Coastguard Worker	%tmp258 = load i8, i8* %tmp256		; <i8> [#uses=1]
73*9880d681SAndroid Build Coastguard Worker	%tmp259 = icmp eq i8 %tmp258, 45		; <i1> [#uses=1]
74*9880d681SAndroid Build Coastguard Worker	br i1 %tmp259, label %cond_true260, label %bb263
75*9880d681SAndroid Build Coastguard Workercond_true260:		; preds = %cond_next252
76*9880d681SAndroid Build Coastguard Worker	%tmp205818 = icmp sgt i8 0, -1		; <i1> [#uses=1]
77*9880d681SAndroid Build Coastguard Worker	br i1 %tmp205818, label %cond_next208, label %bb217
78*9880d681SAndroid Build Coastguard Workerbb263:		; preds = %cond_next252
79*9880d681SAndroid Build Coastguard Worker	%tmp265 = icmp eq i32 0, 0		; <i1> [#uses=1]
80*9880d681SAndroid Build Coastguard Worker	br i1 %tmp265, label %cond_next276, label %cond_true266
81*9880d681SAndroid Build Coastguard Workercond_true266:		; preds = %bb263
82*9880d681SAndroid Build Coastguard Worker	ret void
83*9880d681SAndroid Build Coastguard Workercond_next276:		; preds = %bb263
84*9880d681SAndroid Build Coastguard Worker	%tmp278 = icmp eq i32 0, 0		; <i1> [#uses=1]
85*9880d681SAndroid Build Coastguard Worker	br i1 %tmp278, label %cond_next298, label %cond_true279
86*9880d681SAndroid Build Coastguard Workercond_true279:		; preds = %cond_next276
87*9880d681SAndroid Build Coastguard Worker	ret void
88*9880d681SAndroid Build Coastguard Workercond_next298:		; preds = %cond_next276
89*9880d681SAndroid Build Coastguard Worker	call void @bitap( i32 %D.0.0 )
90*9880d681SAndroid Build Coastguard Worker	ret void
91*9880d681SAndroid Build Coastguard Worker}
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Workerdeclare i32 @atoi()
94*9880d681SAndroid Build Coastguard Worker
95*9880d681SAndroid Build Coastguard Workerdefine void @subset_pset() {
96*9880d681SAndroid Build Coastguard Workerentry:
97*9880d681SAndroid Build Coastguard Worker	ret void
98*9880d681SAndroid Build Coastguard Worker}
99*9880d681SAndroid Build Coastguard Worker
100*9880d681SAndroid Build Coastguard Workerdefine void @strcmp() {
101*9880d681SAndroid Build Coastguard Workerentry:
102*9880d681SAndroid Build Coastguard Worker	ret void
103*9880d681SAndroid Build Coastguard Worker}
104