summaryrefslogtreecommitdiff
path: root/test/Transforms/SCCP/2006-10-23-IPSCCP-Crash.ll
blob: 47f9cb45cc6742e0c268d91faa463e7591dbb689 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
; RUN: opt < %s -sccp -disable-output
; END.
target datalayout = "E-p:32:32"
target triple = "powerpc-apple-darwin8.7.0"
	%struct.pat_list = type { i32, %struct.pat_list* }
@JUMP = external global i32		; <i32*> [#uses=1]
@old_D_pat = external global [16 x i8]		; <[16 x i8]*> [#uses=0]

define void @asearch1(i32 %D) {
entry:
	%tmp80 = icmp ult i32 0, %D		; <i1> [#uses=1]
	br i1 %tmp80, label %bb647.preheader, label %cond_true81.preheader
cond_true81.preheader:		; preds = %entry
	ret void
bb647.preheader:		; preds = %entry
	%tmp3.i = call i32 @read( )		; <i32> [#uses=1]
	%tmp6.i = add i32 %tmp3.i, 0		; <i32> [#uses=1]
	%tmp653 = icmp sgt i32 %tmp6.i, 0		; <i1> [#uses=1]
	br i1 %tmp653, label %cond_true654, label %UnifiedReturnBlock
cond_true612:		; preds = %cond_true654
	ret void
cond_next624:		; preds = %cond_true654
	ret void
cond_true654:		; preds = %bb647.preheader
	br i1 undef, label %cond_true612, label %cond_next624
UnifiedReturnBlock:		; preds = %bb647.preheader
	ret void
}

define void @bitap(i32 %D) {
entry:
	%tmp29 = icmp eq i32 0, 0		; <i1> [#uses=1]
	br i1 %tmp29, label %cond_next50, label %cond_next37
cond_next37:		; preds = %entry
	ret void
cond_next50:		; preds = %entry
	%tmp52 = icmp sgt i32 %D, 0		; <i1> [#uses=1]
	br i1 %tmp52, label %cond_true53, label %cond_next71
cond_true53:		; preds = %cond_next50
	%tmp54 = load i32* @JUMP		; <i32> [#uses=1]
	%tmp55 = icmp eq i32 %tmp54, 1		; <i1> [#uses=1]
	br i1 %tmp55, label %cond_true56, label %cond_next63
cond_true56:		; preds = %cond_true53
	%tmp57 = bitcast i32 %D to i32		; <i32> [#uses=1]
	call void @asearch1( i32 %tmp57 )
	ret void
cond_next63:		; preds = %cond_true53
	ret void
cond_next71:		; preds = %cond_next50
	ret void
}

declare i32 @read()

define void @initial_value() {
entry:
	ret void
}

define void @main() {
entry:
	br label %cond_next252
cond_next208:		; preds = %cond_true260
	%tmp229 = call i32 @atoi( )		; <i32> [#uses=1]
	br label %cond_next252
bb217:		; preds = %cond_true260
	ret void
cond_next252:		; preds = %cond_next208, %entry
	%D.0.0 = phi i32 [ 0, %entry ], [ %tmp229, %cond_next208 ]		; <i32> [#uses=1]
	%tmp254 = getelementptr i8** null, i32 1		; <i8**> [#uses=1]
	%tmp256 = load i8** %tmp254		; <i8*> [#uses=1]
	%tmp258 = load i8* %tmp256		; <i8> [#uses=1]
	%tmp259 = icmp eq i8 %tmp258, 45		; <i1> [#uses=1]
	br i1 %tmp259, label %cond_true260, label %bb263
cond_true260:		; preds = %cond_next252
	%tmp205818 = icmp sgt i8 0, -1		; <i1> [#uses=1]
	br i1 %tmp205818, label %cond_next208, label %bb217
bb263:		; preds = %cond_next252
	%tmp265 = icmp eq i32 0, 0		; <i1> [#uses=1]
	br i1 %tmp265, label %cond_next276, label %cond_true266
cond_true266:		; preds = %bb263
	ret void
cond_next276:		; preds = %bb263
	%tmp278 = icmp eq i32 0, 0		; <i1> [#uses=1]
	br i1 %tmp278, label %cond_next298, label %cond_true279
cond_true279:		; preds = %cond_next276
	ret void
cond_next298:		; preds = %cond_next276
	call void @bitap( i32 %D.0.0 )
	ret void
}

declare i32 @atoi()

define void @subset_pset() {
entry:
	ret void
}

define void @strcmp() {
entry:
	ret void
}