1
; ModuleID = '/tmp/tmpVIBz29/a.out.bc'
2
target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
3
target triple = "le32-unknown-nacl"
5
@.str = private unnamed_addr constant [13 x i8] c"99\0A70\0A26\0A97\0A\00", align 1
6
@.str1 = private unnamed_addr constant [12 x i8] c"%u %u %u %u\00", align 1
7
@.str2 = private unnamed_addr constant [10 x i8] c"res = %u\0A\00", align 1
9
define i32 @main() nounwind {
10
%jp0 = alloca i32, align 4
11
%i1 = alloca i32, align 4
12
%jq3 = alloca i32, align 4
13
%i = alloca i32, align 4
14
%cq = alloca [100 x i32], align 4
15
%ye = alloca [100 x i32], align 4
16
%g = alloca [100 x i32], align 4
17
%z = alloca [100 x i32], align 4
18
%za = alloca [100 x [100 x i32]], align 4
19
%a0 = alloca [100 x i32], align 4
20
store i32 99, i32* %jp0, align 4
21
store i32 70, i32* %i1, align 4
22
store i32 26, i32* %jq3, align 4
23
store i32 97, i32* %i, align 4
26
.lr.ph.i: ; preds = %.lr.ph.i, %0
27
%j.07.i = phi i32 [ %7, %.lr.ph.i ], [ 0, %0 ]
28
%1 = and i32 %j.07.i, 1
29
%2 = icmp eq i32 %1, 0
30
%3 = sub i32 0, %j.07.i
31
%.p.i = select i1 %2, i32 %j.07.i, i32 %3
34
%6 = getelementptr inbounds [100 x i32]* %cq, i32 0, i32 %j.07.i
35
store i32 %5, i32* %6, align 4
36
%7 = add i32 %j.07.i, 1
37
%8 = icmp ult i32 %7, 100
38
br i1 %8, label %.lr.ph.i, label %.lr.ph.i44.preheader
40
.lr.ph.i44.preheader: ; preds = %.lr.ph.i
41
%9 = getelementptr inbounds [100 x i32]* %a0, i32 0, i32 0
44
.lr.ph.i44: ; preds = %.lr.ph.i44, %.lr.ph.i44.preheader
45
%j.07.i42 = phi i32 [ %16, %.lr.ph.i44 ], [ 0, %.lr.ph.i44.preheader ]
46
%10 = and i32 %j.07.i42, 1
47
%11 = icmp eq i32 %10, 0
48
%12 = sub i32 0, %j.07.i42
49
%.p.i43 = select i1 %11, i32 %j.07.i42, i32 %12
50
%13 = add i32 %.p.i43, 90
51
%14 = urem i32 %13, 101
52
%15 = getelementptr inbounds [100 x i32]* %ye, i32 0, i32 %j.07.i42
53
store i32 %14, i32* %15, align 4
54
%16 = add i32 %j.07.i42, 1
55
%17 = icmp ult i32 %16, 100
56
br i1 %17, label %.lr.ph.i44, label %.lr.ph.i40
58
.lr.ph.i40: ; preds = %.lr.ph.i40, %.lr.ph.i44
59
%j.07.i38 = phi i32 [ %24, %.lr.ph.i40 ], [ 0, %.lr.ph.i44 ]
60
%18 = and i32 %j.07.i38, 1
61
%19 = icmp eq i32 %18, 0
62
%20 = sub i32 0, %j.07.i38
63
%.p.i39 = select i1 %19, i32 %j.07.i38, i32 %20
64
%21 = add i32 %.p.i39, 73
65
%22 = urem i32 %21, 101
66
%23 = getelementptr inbounds [100 x i32]* %g, i32 0, i32 %j.07.i38
67
store i32 %22, i32* %23, align 4
68
%24 = add i32 %j.07.i38, 1
69
%25 = icmp ult i32 %24, 100
70
br i1 %25, label %.lr.ph.i40, label %.lr.ph.i36
72
.lr.ph.i36: ; preds = %.lr.ph.i36, %.lr.ph.i40
73
%j.07.i34 = phi i32 [ %32, %.lr.ph.i36 ], [ 0, %.lr.ph.i40 ]
74
%26 = and i32 %j.07.i34, 1
75
%27 = icmp eq i32 %26, 0
76
%28 = sub i32 0, %j.07.i34
77
%.p.i35 = select i1 %27, i32 %j.07.i34, i32 %28
78
%29 = add i32 %.p.i35, 54
79
%30 = urem i32 %29, 101
80
%31 = getelementptr inbounds [100 x i32]* %z, i32 0, i32 %j.07.i34
81
store i32 %30, i32* %31, align 4
82
%32 = add i32 %j.07.i34, 1
83
%33 = icmp ult i32 %32, 100
84
br i1 %33, label %.lr.ph.i36, label %.lr.ph.i32
86
.lr.ph.i32: ; preds = %.lr.ph.i32, %.lr.ph.i36
87
%j.07.i30 = phi i32 [ %40, %.lr.ph.i32 ], [ 0, %.lr.ph.i36 ]
88
%34 = and i32 %j.07.i30, 1
89
%35 = icmp eq i32 %34, 0
90
%36 = sub i32 0, %j.07.i30
91
%.p.i31 = select i1 %35, i32 %j.07.i30, i32 %36
92
%37 = add i32 %.p.i31, 66
93
%38 = urem i32 %37, 101
94
%39 = getelementptr inbounds [100 x [100 x i32]]* %za, i32 0, i32 0, i32 %j.07.i30
95
store i32 %38, i32* %39, align 4
96
%40 = add i32 %j.07.i30, 1
97
%41 = icmp ult i32 %40, 10000
98
br i1 %41, label %.lr.ph.i32, label %.lr.ph.i28
100
.lr.ph.i28: ; preds = %.lr.ph.i28, %.lr.ph.i32
101
%j.07.i26 = phi i32 [ %48, %.lr.ph.i28 ], [ 0, %.lr.ph.i32 ]
102
%42 = and i32 %j.07.i26, 1
103
%43 = icmp eq i32 %42, 0
104
%44 = sub i32 0, %j.07.i26
105
%.p.i27 = select i1 %43, i32 %j.07.i26, i32 %44
106
%45 = add i32 %.p.i27, 71
107
%46 = urem i32 %45, 101
108
%47 = getelementptr inbounds [100 x i32]* %a0, i32 0, i32 %j.07.i26
109
store i32 %46, i32* %47, align 4
110
%48 = add i32 %j.07.i26, 1
111
%49 = icmp ult i32 %48, 100
112
br i1 %49, label %.lr.ph.i28, label %init.exit29
114
init.exit29: ; preds = %.lr.ph.i28
115
%50 = call i32 (i8*, i8*, ...)* @sscanf(i8* getelementptr inbounds ([13 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str1, i32 0, i32 0), i32* %jp0, i32* %i1, i32* %jq3, i32* %i) nounwind
116
%51 = getelementptr inbounds [100 x i32]* %cq, i32 0, i32 46
117
%52 = load i32* %51, align 4
118
%53 = getelementptr inbounds [100 x i32]* %cq, i32 0, i32 20
119
%54 = load i32* %53, align 4
120
%55 = icmp ult i32 %52, %54
121
br i1 %55, label %.preheader61, label %56
123
; <label>:56 ; preds = %init.exit29
124
%57 = load i32* %9, align 4
125
%58 = getelementptr inbounds [100 x i32]* %ye, i32 0, i32 24
126
%59 = load i32* %58, align 4
127
%60 = sub i32 %59, %57
128
store i32 %60, i32* %58, align 4
129
br label %.preheader61
131
.preheader61: ; preds = %56, %init.exit29
132
store i32 2, i32* %jp0, align 4
133
%.phi.trans.insert = getelementptr inbounds [100 x i32]* %cq, i32 0, i32 1
134
%.pre = load i32* %.phi.trans.insert, align 4
137
.preheader58: ; preds = %61
138
store i32 80, i32* %jp0, align 4
139
store i32 94, i32* %i1, align 4
142
; <label>:61 ; preds = %61, %.preheader61
143
%62 = phi i32 [ %.pre, %.preheader61 ], [ %66, %61 ]
144
%63 = phi i32 [ 2, %.preheader61 ], [ %71, %61 ]
145
%64 = getelementptr inbounds [100 x i32]* %cq, i32 0, i32 %63
146
%65 = load i32* %64, align 4
147
%66 = add i32 %65, -4
148
store i32 %66, i32* %64, align 4
149
%67 = add i32 %63, -1
150
%68 = getelementptr inbounds [100 x i32]* %ye, i32 0, i32 %67
151
%69 = load i32* %68, align 4
152
%70 = mul i32 %62, %69
154
%72 = getelementptr inbounds [100 x i32]* %g, i32 0, i32 %71
155
%73 = load i32* %72, align 4
156
%74 = sub i32 %73, %70
157
store i32 %74, i32* %72, align 4
158
%75 = icmp ult i32 %71, 80
159
br i1 %75, label %61, label %.preheader58
161
.preheader55: ; preds = %76
162
store i32 2, i32* %i1, align 4
163
store i32 44, i32* %jq3, align 4
166
; <label>:76 ; preds = %76, %.preheader58
167
%77 = phi i32 [ 94, %.preheader58 ], [ %80, %76 ]
168
%78 = getelementptr inbounds [100 x i32]* %ye, i32 0, i32 %77
169
%79 = load i32* %78, align 4
170
%80 = add i32 %77, -1
171
%81 = getelementptr inbounds [100 x i32]* %z, i32 0, i32 %80
172
store i32 %79, i32* %81, align 4
173
%82 = icmp ugt i32 %80, 2
174
br i1 %82, label %76, label %.preheader55
176
.preheader: ; preds = %95, %.preheader55
177
%83 = phi i32 [ 44, %.preheader55 ], [ %84, %95 ]
178
%84 = add i32 %83, -1
179
%85 = getelementptr inbounds [100 x [100 x i32]]* %za, i32 0, i32 %84, i32 %83
180
%.promoted = load i32* %85, align 4
181
%.pre75 = load i32* %9, align 4
182
%.phi.trans.insert76 = getelementptr inbounds [100 x i32]* %a0, i32 0, i32 1
183
%.pre77 = load i32* %.phi.trans.insert76, align 4
186
; <label>:86 ; preds = %86, %.preheader
187
%87 = phi i32 [ %.pre77, %.preheader ], [ %88, %86 ]
188
%88 = phi i32 [ %.pre75, %.preheader ], [ %87, %86 ]
189
%89 = phi i32 [ 1, %.preheader ], [ %92, %86 ]
190
%90 = phi i32 [ %.promoted, %.preheader ], [ %91, %86 ]
191
%91 = mul i32 %90, %87
193
%93 = getelementptr inbounds [100 x i32]* %a0, i32 0, i32 %92
194
store i32 %88, i32* %93, align 4
195
%94 = icmp ult i32 %92, 46
196
br i1 %94, label %86, label %95
198
; <label>:95 ; preds = %86
199
store i32 %91, i32* %85, align 4
200
%96 = icmp ugt i32 %84, 1
201
br i1 %96, label %.preheader, label %97
203
; <label>:97 ; preds = %95
204
store i32 1, i32* %jq3, align 4
205
store i32 46, i32* %i, align 4
208
.lr.ph.i24: ; preds = %.lr.ph.i24, %97
209
%sum.07.i22 = phi i32 [ %104, %.lr.ph.i24 ], [ 0, %97 ]
210
%j.06.i23 = phi i32 [ %105, %.lr.ph.i24 ], [ 0, %97 ]
211
%98 = and i32 %j.06.i23, 1
212
%99 = icmp eq i32 %98, 0
213
%100 = getelementptr inbounds [100 x i32]* %cq, i32 0, i32 %j.06.i23
214
%101 = load i32* %100, align 4
215
%102 = sub i32 0, %101
216
%103 = select i1 %99, i32 %101, i32 %102
217
%104 = add i32 %103, %sum.07.i22
218
%105 = add i32 %j.06.i23, 1
219
%106 = icmp ult i32 %105, 100
220
br i1 %106, label %.lr.ph.i24, label %.lr.ph.i20
222
.lr.ph.i20: ; preds = %.lr.ph.i20, %.lr.ph.i24
223
%sum.07.i18 = phi i32 [ %113, %.lr.ph.i20 ], [ 0, %.lr.ph.i24 ]
224
%j.06.i19 = phi i32 [ %114, %.lr.ph.i20 ], [ 0, %.lr.ph.i24 ]
225
%107 = and i32 %j.06.i19, 1
226
%108 = icmp eq i32 %107, 0
227
%109 = getelementptr inbounds [100 x i32]* %ye, i32 0, i32 %j.06.i19
228
%110 = load i32* %109, align 4
229
%111 = sub i32 0, %110
230
%112 = select i1 %108, i32 %110, i32 %111
231
%113 = add i32 %112, %sum.07.i18
232
%114 = add i32 %j.06.i19, 1
233
%115 = icmp ult i32 %114, 100
234
br i1 %115, label %.lr.ph.i20, label %.lr.ph.i16
236
.lr.ph.i16: ; preds = %.lr.ph.i16, %.lr.ph.i20
237
%sum.07.i14 = phi i32 [ %122, %.lr.ph.i16 ], [ 0, %.lr.ph.i20 ]
238
%j.06.i15 = phi i32 [ %123, %.lr.ph.i16 ], [ 0, %.lr.ph.i20 ]
239
%116 = and i32 %j.06.i15, 1
240
%117 = icmp eq i32 %116, 0
241
%118 = getelementptr inbounds [100 x i32]* %g, i32 0, i32 %j.06.i15
242
%119 = load i32* %118, align 4
243
%120 = sub i32 0, %119
244
%121 = select i1 %117, i32 %119, i32 %120
245
%122 = add i32 %121, %sum.07.i14
246
%123 = add i32 %j.06.i15, 1
247
%124 = icmp ult i32 %123, 100
248
br i1 %124, label %.lr.ph.i16, label %.lr.ph.i12
250
.lr.ph.i12: ; preds = %.lr.ph.i12, %.lr.ph.i16
251
%sum.07.i10 = phi i32 [ %131, %.lr.ph.i12 ], [ 0, %.lr.ph.i16 ]
252
%j.06.i11 = phi i32 [ %132, %.lr.ph.i12 ], [ 0, %.lr.ph.i16 ]
253
%125 = and i32 %j.06.i11, 1
254
%126 = icmp eq i32 %125, 0
255
%127 = getelementptr inbounds [100 x i32]* %z, i32 0, i32 %j.06.i11
256
%128 = load i32* %127, align 4
257
%129 = sub i32 0, %128
258
%130 = select i1 %126, i32 %128, i32 %129
259
%131 = add i32 %130, %sum.07.i10
260
%132 = add i32 %j.06.i11, 1
261
%133 = icmp ult i32 %132, 100
262
br i1 %133, label %.lr.ph.i12, label %.lr.ph.i8
264
.lr.ph.i8: ; preds = %.lr.ph.i8, %.lr.ph.i12
265
%sum.07.i6 = phi i32 [ %140, %.lr.ph.i8 ], [ 0, %.lr.ph.i12 ]
266
%j.06.i7 = phi i32 [ %141, %.lr.ph.i8 ], [ 0, %.lr.ph.i12 ]
267
%134 = and i32 %j.06.i7, 1
268
%135 = icmp eq i32 %134, 0
269
%136 = getelementptr inbounds [100 x [100 x i32]]* %za, i32 0, i32 0, i32 %j.06.i7
270
%137 = load i32* %136, align 4
271
%138 = sub i32 0, %137
272
%139 = select i1 %135, i32 %137, i32 %138
273
%140 = add i32 %139, %sum.07.i6
274
%141 = add i32 %j.06.i7, 1
275
%142 = icmp ult i32 %141, 10000
276
br i1 %142, label %.lr.ph.i8, label %.lr.ph.i5
278
.lr.ph.i5: ; preds = %.lr.ph.i5, %.lr.ph.i8
279
%sum.07.i = phi i32 [ %149, %.lr.ph.i5 ], [ 0, %.lr.ph.i8 ]
280
%j.06.i = phi i32 [ %150, %.lr.ph.i5 ], [ 0, %.lr.ph.i8 ]
281
%143 = and i32 %j.06.i, 1
282
%144 = icmp eq i32 %143, 0
283
%145 = getelementptr inbounds [100 x i32]* %a0, i32 0, i32 %j.06.i
284
%146 = load i32* %145, align 4
285
%147 = sub i32 0, %146
286
%148 = select i1 %144, i32 %146, i32 %147
287
%149 = add i32 %148, %sum.07.i
288
%150 = add i32 %j.06.i, 1
289
%151 = icmp ult i32 %150, 100
290
br i1 %151, label %.lr.ph.i5, label %checkSum.exit
292
checkSum.exit: ; preds = %.lr.ph.i5
293
%152 = add i32 %104, 82
294
%153 = add i32 %152, %113
295
%154 = sub i32 %153, %122
296
%155 = add i32 %154, %131
297
%156 = sub i32 %155, %140
298
%157 = add i32 %156, %149
299
%158 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([10 x i8]* @.str2, i32 0, i32 0), i32 %157) nounwind
303
declare i32 @sscanf(i8* nocapture, i8* nocapture, ...) nounwind
305
declare i32 @printf(i8* nocapture, ...) nounwind