~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to tests/cases/philoop_ta2.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-06-11 15:45:24 UTC
  • mfrom: (1.2.1) (2.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130611154524-rppb3w6tixlegv4n
Tags: 1.4.7~20130611~a1eb425-1
* New snapshot release
* Upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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"
 
4
 
 
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
 
8
 
 
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
 
24
  br label %.lr.ph.i
 
25
 
 
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
 
32
  %4 = add i32 %.p.i, 2
 
33
  %5 = urem i32 %4, 101
 
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
 
39
 
 
40
.lr.ph.i44.preheader:                             ; preds = %.lr.ph.i
 
41
  %9 = getelementptr inbounds [100 x i32]* %a0, i32 0, i32 0
 
42
  br label %.lr.ph.i44
 
43
 
 
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
 
57
 
 
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
 
71
 
 
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
 
85
 
 
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
 
99
 
 
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
 
113
 
 
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
 
122
 
 
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
 
130
 
 
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
 
135
  br label %61
 
136
 
 
137
.preheader58:                                     ; preds = %61
 
138
  store i32 80, i32* %jp0, align 4
 
139
  store i32 94, i32* %i1, align 4
 
140
  br label %76
 
141
 
 
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
 
153
  %71 = add i32 %63, 1
 
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
 
160
 
 
161
.preheader55:                                     ; preds = %76
 
162
  store i32 2, i32* %i1, align 4
 
163
  store i32 44, i32* %jq3, align 4
 
164
  br label %.preheader
 
165
 
 
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
 
175
 
 
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
 
184
  br label %86
 
185
 
 
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
 
192
  %92 = add i32 %89, 1
 
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
 
197
 
 
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
 
202
 
 
203
; <label>:97                                      ; preds = %95
 
204
  store i32 1, i32* %jq3, align 4
 
205
  store i32 46, i32* %i, align 4
 
206
  br label %.lr.ph.i24
 
207
 
 
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
 
221
 
 
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
 
235
 
 
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
 
249
 
 
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
 
263
 
 
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
 
277
 
 
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
 
291
 
 
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
 
300
  ret i32 0
 
301
}
 
302
 
 
303
declare i32 @sscanf(i8* nocapture, i8* nocapture, ...) nounwind
 
304
 
 
305
declare i32 @printf(i8* nocapture, ...) nounwind