xref: /llvm-project/llvm/test/Transforms/LoopStrengthReduce/lsr-comp-time.ll (revision 055fb7795aa219a3d274d280ec9129784f169f56)
1; RUN: opt -loop-reduce -S < %s | FileCheck %s
2; RUN: opt -loop-reduce -lsr-complexity-limit=2147483647 -S < %s | FileCheck %s
3
4; Test compile time should be <1sec (no hang).
5target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
6
7; Function Attrs: argmemonly nounwind
8declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #1
9
10; Function Attrs: argmemonly nounwind
11declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #1
12
13; Function Attrs: nounwind readnone uwtable
14define dso_local i32 @foo(i32 %arg, i32 %arg1, i32 %arg2, i32 %arg3, i32 %arg4, i32 %arg5, i32 %arg6) local_unnamed_addr #3 {
15; CHECK-LABEL: @foo(
16; CHECK:       bb33:
17; CHECK:       lsr.iv
18; CHECK:       bb58:
19; CHECK:       lsr.iv
20; CHECK:       bb81:
21; CHECK:       lsr.iv
22; CHECK:       bb104:
23; CHECK:       lsr.iv
24; CHECK:       bb127:
25; CHECK:       lsr.iv
26; CHECK:       bb150:
27; CHECK:       lsr.iv
28; CHECK:       bb173:
29; CHECK:       lsr.iv
30; CHECK:       bb196:
31; CHECK:       lsr.iv
32; CHECK:       bb219:
33; CHECK:       lsr.iv
34; CHECK:       bb242:
35; CHECK:       lsr.iv
36; CHECK:       bb265:
37; CHECK:       lsr.iv
38; CHECK:       bb288:
39; CHECK:       lsr.iv
40; CHECK:       bb311:
41; CHECK:       lsr.iv
42; CHECK:       bb340:
43; CHECK:       lsr.iv
44; CHECK:       bb403:
45; CHECK:       lsr.iv
46; CHECK:       bb433:
47; CHECK:       lsr.iv
48; CHECK:       bb567:
49; CHECK:       lsr.iv
50; CHECK:       bb611:
51; CHECK:       lsr.iv
52; CHECK:       bb655:
53; CHECK:       lsr.iv
54; CHECK:       bb699:
55; CHECK:       lsr.iv
56; CHECK:       bb743:
57; CHECK:       lsr.iv
58; CHECK:       bb787:
59; CHECK:       lsr.iv
60; CHECK:       bb831:
61; CHECK:       lsr.iv
62; CHECK:       bb875:
63; CHECK:       lsr.iv
64; CHECK:       bb919:
65; CHECK:       lsr.iv
66; CHECK:       bb963:
67; CHECK:       lsr.iv
68; CHECK:       bb1007:
69; CHECK:       lsr.iv
70; CHECK:    ret
71;
72bb:
73  %tmp = alloca [100 x i32], align 16
74  %tmp7 = alloca [100 x i32], align 16
75  %tmp8 = alloca [100 x i32], align 16
76  %tmp9 = alloca [100 x [100 x i32]], align 16
77  %tmp10 = alloca [100 x i32], align 16
78  %tmp11 = alloca [100 x [100 x i32]], align 16
79  %tmp12 = alloca [100 x i32], align 16
80  %tmp13 = alloca [100 x i32], align 16
81  %tmp14 = alloca [100 x [100 x i32]], align 16
82  %tmp15 = alloca [100 x i32], align 16
83  %tmp16 = alloca [100 x [100 x i32]], align 16
84  %tmp17 = alloca [100 x [100 x i32]], align 16
85  %tmp18 = alloca [100 x [100 x i32]], align 16
86  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %tmp) #4
87  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp, i8 0, i64 400, i1 false)
88  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %tmp7) #4
89  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp7, i8 0, i64 400, i1 false)
90  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %tmp8) #4
91  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp8, i8 0, i64 400, i1 false)
92  call void @llvm.lifetime.start.p0(i64 40000, ptr nonnull %tmp9) #4
93  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp9, i8 0, i64 40000, i1 false)
94  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %tmp10) #4
95  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp10, i8 0, i64 400, i1 false)
96  call void @llvm.lifetime.start.p0(i64 40000, ptr nonnull %tmp11) #4
97  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp11, i8 0, i64 40000, i1 false)
98  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %tmp12) #4
99  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp12, i8 0, i64 400, i1 false)
100  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %tmp13) #4
101  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp13, i8 0, i64 400, i1 false)
102  call void @llvm.lifetime.start.p0(i64 40000, ptr nonnull %tmp14) #4
103  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp14, i8 0, i64 40000, i1 false)
104  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %tmp15) #4
105  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp15, i8 0, i64 400, i1 false)
106  call void @llvm.lifetime.start.p0(i64 40000, ptr nonnull %tmp16) #4
107  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp16, i8 0, i64 40000, i1 false)
108  call void @llvm.lifetime.start.p0(i64 40000, ptr nonnull %tmp17) #4
109  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp17, i8 0, i64 40000, i1 false)
110  call void @llvm.lifetime.start.p0(i64 40000, ptr nonnull %tmp18) #4
111  call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp18, i8 0, i64 40000, i1 false)
112  %tmp32 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 3
113  br label %bb33
114
115bb33:                                             ; preds = %bb33, %bb
116  %tmp34 = phi i64 [ 0, %bb ], [ %tmp54, %bb33 ]
117  %tmp35 = trunc i64 %tmp34 to i32
118  %tmp36 = add i32 %tmp35, 48
119  %tmp37 = urem i32 %tmp36, 101
120  %tmp38 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp34
121  store i32 %tmp37, ptr %tmp38, align 16
122  %tmp39 = or i64 %tmp34, 1
123  %tmp40 = trunc i64 %tmp39 to i32
124  %tmp41 = sub i32 48, %tmp40
125  %tmp42 = urem i32 %tmp41, 101
126  %tmp43 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp39
127  store i32 %tmp42, ptr %tmp43, align 4
128  %tmp44 = or i64 %tmp34, 2
129  %tmp45 = trunc i64 %tmp44 to i32
130  %tmp46 = add i32 %tmp45, 48
131  %tmp47 = urem i32 %tmp46, 101
132  %tmp48 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp44
133  store i32 %tmp47, ptr %tmp48, align 8
134  %tmp49 = or i64 %tmp34, 3
135  %tmp50 = trunc i64 %tmp49 to i32
136  %tmp51 = sub i32 48, %tmp50
137  %tmp52 = urem i32 %tmp51, 101
138  %tmp53 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp49
139  store i32 %tmp52, ptr %tmp53, align 4
140  %tmp54 = add nuw nsw i64 %tmp34, 4
141  %tmp55 = icmp eq i64 %tmp54, 100
142  br i1 %tmp55, label %bb56, label %bb33
143
144bb56:                                             ; preds = %bb33
145  %tmp57 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 88, i64 91
146  br label %bb58
147
148bb58:                                             ; preds = %bb58, %bb56
149  %tmp59 = phi i64 [ 0, %bb56 ], [ %tmp79, %bb58 ]
150  %tmp60 = trunc i64 %tmp59 to i32
151  %tmp61 = add i32 %tmp60, 83
152  %tmp62 = urem i32 %tmp61, 101
153  %tmp63 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp59
154  store i32 %tmp62, ptr %tmp63, align 16
155  %tmp64 = or i64 %tmp59, 1
156  %tmp65 = trunc i64 %tmp64 to i32
157  %tmp66 = sub i32 83, %tmp65
158  %tmp67 = urem i32 %tmp66, 101
159  %tmp68 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp64
160  store i32 %tmp67, ptr %tmp68, align 4
161  %tmp69 = or i64 %tmp59, 2
162  %tmp70 = trunc i64 %tmp69 to i32
163  %tmp71 = add i32 %tmp70, 83
164  %tmp72 = urem i32 %tmp71, 101
165  %tmp73 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp69
166  store i32 %tmp72, ptr %tmp73, align 8
167  %tmp74 = or i64 %tmp59, 3
168  %tmp75 = trunc i64 %tmp74 to i32
169  %tmp76 = sub i32 83, %tmp75
170  %tmp77 = urem i32 %tmp76, 101
171  %tmp78 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp74
172  store i32 %tmp77, ptr %tmp78, align 4
173  %tmp79 = add nuw nsw i64 %tmp59, 4
174  %tmp80 = icmp eq i64 %tmp79, 100
175  br i1 %tmp80, label %bb81, label %bb58
176
177bb81:                                             ; preds = %bb81, %bb58
178  %tmp82 = phi i64 [ %tmp102, %bb81 ], [ 0, %bb58 ]
179  %tmp83 = trunc i64 %tmp82 to i32
180  %tmp84 = add i32 %tmp83, 15
181  %tmp85 = urem i32 %tmp84, 101
182  %tmp86 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp82
183  store i32 %tmp85, ptr %tmp86, align 16
184  %tmp87 = or i64 %tmp82, 1
185  %tmp88 = trunc i64 %tmp87 to i32
186  %tmp89 = sub i32 15, %tmp88
187  %tmp90 = urem i32 %tmp89, 101
188  %tmp91 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp87
189  store i32 %tmp90, ptr %tmp91, align 4
190  %tmp92 = or i64 %tmp82, 2
191  %tmp93 = trunc i64 %tmp92 to i32
192  %tmp94 = add i32 %tmp93, 15
193  %tmp95 = urem i32 %tmp94, 101
194  %tmp96 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp92
195  store i32 %tmp95, ptr %tmp96, align 8
196  %tmp97 = or i64 %tmp82, 3
197  %tmp98 = trunc i64 %tmp97 to i32
198  %tmp99 = sub i32 15, %tmp98
199  %tmp100 = urem i32 %tmp99, 101
200  %tmp101 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp97
201  store i32 %tmp100, ptr %tmp101, align 4
202  %tmp102 = add nuw nsw i64 %tmp82, 4
203  %tmp103 = icmp eq i64 %tmp102, 100
204  br i1 %tmp103, label %bb104, label %bb81
205
206bb104:                                            ; preds = %bb104, %bb81
207  %tmp105 = phi i64 [ %tmp125, %bb104 ], [ 0, %bb81 ]
208  %tmp106 = trunc i64 %tmp105 to i32
209  %tmp107 = add i32 %tmp106, 60
210  %tmp108 = urem i32 %tmp107, 101
211  %tmp109 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp105
212  store i32 %tmp108, ptr %tmp109, align 16
213  %tmp110 = or i64 %tmp105, 1
214  %tmp111 = trunc i64 %tmp110 to i32
215  %tmp112 = sub i32 60, %tmp111
216  %tmp113 = urem i32 %tmp112, 101
217  %tmp114 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp110
218  store i32 %tmp113, ptr %tmp114, align 4
219  %tmp115 = or i64 %tmp105, 2
220  %tmp116 = trunc i64 %tmp115 to i32
221  %tmp117 = add i32 %tmp116, 60
222  %tmp118 = urem i32 %tmp117, 101
223  %tmp119 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp115
224  store i32 %tmp118, ptr %tmp119, align 8
225  %tmp120 = or i64 %tmp105, 3
226  %tmp121 = trunc i64 %tmp120 to i32
227  %tmp122 = sub i32 60, %tmp121
228  %tmp123 = urem i32 %tmp122, 101
229  %tmp124 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp120
230  store i32 %tmp123, ptr %tmp124, align 4
231  %tmp125 = add nuw nsw i64 %tmp105, 4
232  %tmp126 = icmp eq i64 %tmp125, 10000
233  br i1 %tmp126, label %bb127, label %bb104
234
235bb127:                                            ; preds = %bb127, %bb104
236  %tmp128 = phi i64 [ %tmp148, %bb127 ], [ 0, %bb104 ]
237  %tmp129 = trunc i64 %tmp128 to i32
238  %tmp130 = add i32 %tmp129, 87
239  %tmp131 = urem i32 %tmp130, 101
240  %tmp132 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp128
241  store i32 %tmp131, ptr %tmp132, align 16
242  %tmp133 = or i64 %tmp128, 1
243  %tmp134 = trunc i64 %tmp133 to i32
244  %tmp135 = sub i32 87, %tmp134
245  %tmp136 = urem i32 %tmp135, 101
246  %tmp137 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp133
247  store i32 %tmp136, ptr %tmp137, align 4
248  %tmp138 = or i64 %tmp128, 2
249  %tmp139 = trunc i64 %tmp138 to i32
250  %tmp140 = add i32 %tmp139, 87
251  %tmp141 = urem i32 %tmp140, 101
252  %tmp142 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp138
253  store i32 %tmp141, ptr %tmp142, align 8
254  %tmp143 = or i64 %tmp128, 3
255  %tmp144 = trunc i64 %tmp143 to i32
256  %tmp145 = sub i32 87, %tmp144
257  %tmp146 = urem i32 %tmp145, 101
258  %tmp147 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp143
259  store i32 %tmp146, ptr %tmp147, align 4
260  %tmp148 = add nuw nsw i64 %tmp128, 4
261  %tmp149 = icmp eq i64 %tmp148, 100
262  br i1 %tmp149, label %bb150, label %bb127
263
264bb150:                                            ; preds = %bb150, %bb127
265  %tmp151 = phi i64 [ %tmp171, %bb150 ], [ 0, %bb127 ]
266  %tmp152 = trunc i64 %tmp151 to i32
267  %tmp153 = add i32 %tmp152, 36
268  %tmp154 = urem i32 %tmp153, 101
269  %tmp155 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp151
270  store i32 %tmp154, ptr %tmp155, align 16
271  %tmp156 = or i64 %tmp151, 1
272  %tmp157 = trunc i64 %tmp156 to i32
273  %tmp158 = sub i32 36, %tmp157
274  %tmp159 = urem i32 %tmp158, 101
275  %tmp160 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp156
276  store i32 %tmp159, ptr %tmp160, align 4
277  %tmp161 = or i64 %tmp151, 2
278  %tmp162 = trunc i64 %tmp161 to i32
279  %tmp163 = add i32 %tmp162, 36
280  %tmp164 = urem i32 %tmp163, 101
281  %tmp165 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp161
282  store i32 %tmp164, ptr %tmp165, align 8
283  %tmp166 = or i64 %tmp151, 3
284  %tmp167 = trunc i64 %tmp166 to i32
285  %tmp168 = sub i32 36, %tmp167
286  %tmp169 = urem i32 %tmp168, 101
287  %tmp170 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp166
288  store i32 %tmp169, ptr %tmp170, align 4
289  %tmp171 = add nuw nsw i64 %tmp151, 4
290  %tmp172 = icmp eq i64 %tmp171, 10000
291  br i1 %tmp172, label %bb173, label %bb150
292
293bb173:                                            ; preds = %bb173, %bb150
294  %tmp174 = phi i64 [ %tmp194, %bb173 ], [ 0, %bb150 ]
295  %tmp175 = trunc i64 %tmp174 to i32
296  %tmp176 = add i32 %tmp175, 27
297  %tmp177 = urem i32 %tmp176, 101
298  %tmp178 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp174
299  store i32 %tmp177, ptr %tmp178, align 16
300  %tmp179 = or i64 %tmp174, 1
301  %tmp180 = trunc i64 %tmp179 to i32
302  %tmp181 = sub i32 27, %tmp180
303  %tmp182 = urem i32 %tmp181, 101
304  %tmp183 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp179
305  store i32 %tmp182, ptr %tmp183, align 4
306  %tmp184 = or i64 %tmp174, 2
307  %tmp185 = trunc i64 %tmp184 to i32
308  %tmp186 = add i32 %tmp185, 27
309  %tmp187 = urem i32 %tmp186, 101
310  %tmp188 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp184
311  store i32 %tmp187, ptr %tmp188, align 8
312  %tmp189 = or i64 %tmp174, 3
313  %tmp190 = trunc i64 %tmp189 to i32
314  %tmp191 = sub i32 27, %tmp190
315  %tmp192 = urem i32 %tmp191, 101
316  %tmp193 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp189
317  store i32 %tmp192, ptr %tmp193, align 4
318  %tmp194 = add nuw nsw i64 %tmp174, 4
319  %tmp195 = icmp eq i64 %tmp194, 100
320  br i1 %tmp195, label %bb196, label %bb173
321
322bb196:                                            ; preds = %bb196, %bb173
323  %tmp197 = phi i64 [ %tmp217, %bb196 ], [ 0, %bb173 ]
324  %tmp198 = trunc i64 %tmp197 to i32
325  %tmp199 = add i32 %tmp198, 40
326  %tmp200 = urem i32 %tmp199, 101
327  %tmp201 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp197
328  store i32 %tmp200, ptr %tmp201, align 16
329  %tmp202 = or i64 %tmp197, 1
330  %tmp203 = trunc i64 %tmp202 to i32
331  %tmp204 = sub i32 40, %tmp203
332  %tmp205 = urem i32 %tmp204, 101
333  %tmp206 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp202
334  store i32 %tmp205, ptr %tmp206, align 4
335  %tmp207 = or i64 %tmp197, 2
336  %tmp208 = trunc i64 %tmp207 to i32
337  %tmp209 = add i32 %tmp208, 40
338  %tmp210 = urem i32 %tmp209, 101
339  %tmp211 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp207
340  store i32 %tmp210, ptr %tmp211, align 8
341  %tmp212 = or i64 %tmp197, 3
342  %tmp213 = trunc i64 %tmp212 to i32
343  %tmp214 = sub i32 40, %tmp213
344  %tmp215 = urem i32 %tmp214, 101
345  %tmp216 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp212
346  store i32 %tmp215, ptr %tmp216, align 4
347  %tmp217 = add nuw nsw i64 %tmp197, 4
348  %tmp218 = icmp eq i64 %tmp217, 100
349  br i1 %tmp218, label %bb219, label %bb196
350
351bb219:                                            ; preds = %bb219, %bb196
352  %tmp220 = phi i64 [ %tmp240, %bb219 ], [ 0, %bb196 ]
353  %tmp221 = trunc i64 %tmp220 to i32
354  %tmp222 = add i32 %tmp221, 84
355  %tmp223 = urem i32 %tmp222, 101
356  %tmp224 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp220
357  store i32 %tmp223, ptr %tmp224, align 16
358  %tmp225 = or i64 %tmp220, 1
359  %tmp226 = trunc i64 %tmp225 to i32
360  %tmp227 = sub i32 84, %tmp226
361  %tmp228 = urem i32 %tmp227, 101
362  %tmp229 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp225
363  store i32 %tmp228, ptr %tmp229, align 4
364  %tmp230 = or i64 %tmp220, 2
365  %tmp231 = trunc i64 %tmp230 to i32
366  %tmp232 = add i32 %tmp231, 84
367  %tmp233 = urem i32 %tmp232, 101
368  %tmp234 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp230
369  store i32 %tmp233, ptr %tmp234, align 8
370  %tmp235 = or i64 %tmp220, 3
371  %tmp236 = trunc i64 %tmp235 to i32
372  %tmp237 = sub i32 84, %tmp236
373  %tmp238 = urem i32 %tmp237, 101
374  %tmp239 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp235
375  store i32 %tmp238, ptr %tmp239, align 4
376  %tmp240 = add nuw nsw i64 %tmp220, 4
377  %tmp241 = icmp eq i64 %tmp240, 10000
378  br i1 %tmp241, label %bb242, label %bb219
379
380bb242:                                            ; preds = %bb242, %bb219
381  %tmp243 = phi i64 [ %tmp263, %bb242 ], [ 0, %bb219 ]
382  %tmp244 = trunc i64 %tmp243 to i32
383  %tmp245 = add i32 %tmp244, 94
384  %tmp246 = urem i32 %tmp245, 101
385  %tmp247 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp243
386  store i32 %tmp246, ptr %tmp247, align 16
387  %tmp248 = or i64 %tmp243, 1
388  %tmp249 = trunc i64 %tmp248 to i32
389  %tmp250 = sub i32 94, %tmp249
390  %tmp251 = urem i32 %tmp250, 101
391  %tmp252 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp248
392  store i32 %tmp251, ptr %tmp252, align 4
393  %tmp253 = or i64 %tmp243, 2
394  %tmp254 = trunc i64 %tmp253 to i32
395  %tmp255 = add i32 %tmp254, 94
396  %tmp256 = urem i32 %tmp255, 101
397  %tmp257 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp253
398  store i32 %tmp256, ptr %tmp257, align 8
399  %tmp258 = or i64 %tmp243, 3
400  %tmp259 = trunc i64 %tmp258 to i32
401  %tmp260 = sub i32 94, %tmp259
402  %tmp261 = urem i32 %tmp260, 101
403  %tmp262 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp258
404  store i32 %tmp261, ptr %tmp262, align 4
405  %tmp263 = add nuw nsw i64 %tmp243, 4
406  %tmp264 = icmp eq i64 %tmp263, 100
407  br i1 %tmp264, label %bb265, label %bb242
408
409bb265:                                            ; preds = %bb265, %bb242
410  %tmp266 = phi i64 [ %tmp286, %bb265 ], [ 0, %bb242 ]
411  %tmp267 = trunc i64 %tmp266 to i32
412  %tmp268 = add i32 %tmp267, 92
413  %tmp269 = urem i32 %tmp268, 101
414  %tmp270 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp266
415  store i32 %tmp269, ptr %tmp270, align 16
416  %tmp271 = or i64 %tmp266, 1
417  %tmp272 = trunc i64 %tmp271 to i32
418  %tmp273 = sub i32 92, %tmp272
419  %tmp274 = urem i32 %tmp273, 101
420  %tmp275 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp271
421  store i32 %tmp274, ptr %tmp275, align 4
422  %tmp276 = or i64 %tmp266, 2
423  %tmp277 = trunc i64 %tmp276 to i32
424  %tmp278 = add i32 %tmp277, 92
425  %tmp279 = urem i32 %tmp278, 101
426  %tmp280 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp276
427  store i32 %tmp279, ptr %tmp280, align 8
428  %tmp281 = or i64 %tmp266, 3
429  %tmp282 = trunc i64 %tmp281 to i32
430  %tmp283 = sub i32 92, %tmp282
431  %tmp284 = urem i32 %tmp283, 101
432  %tmp285 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp281
433  store i32 %tmp284, ptr %tmp285, align 4
434  %tmp286 = add nuw nsw i64 %tmp266, 4
435  %tmp287 = icmp eq i64 %tmp286, 10000
436  br i1 %tmp287, label %bb288, label %bb265
437
438bb288:                                            ; preds = %bb288, %bb265
439  %tmp289 = phi i64 [ %tmp309, %bb288 ], [ 0, %bb265 ]
440  %tmp290 = trunc i64 %tmp289 to i32
441  %tmp291 = add i32 %tmp290, 87
442  %tmp292 = urem i32 %tmp291, 101
443  %tmp293 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp289
444  store i32 %tmp292, ptr %tmp293, align 16
445  %tmp294 = or i64 %tmp289, 1
446  %tmp295 = trunc i64 %tmp294 to i32
447  %tmp296 = sub i32 87, %tmp295
448  %tmp297 = urem i32 %tmp296, 101
449  %tmp298 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp294
450  store i32 %tmp297, ptr %tmp298, align 4
451  %tmp299 = or i64 %tmp289, 2
452  %tmp300 = trunc i64 %tmp299 to i32
453  %tmp301 = add i32 %tmp300, 87
454  %tmp302 = urem i32 %tmp301, 101
455  %tmp303 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp299
456  store i32 %tmp302, ptr %tmp303, align 8
457  %tmp304 = or i64 %tmp289, 3
458  %tmp305 = trunc i64 %tmp304 to i32
459  %tmp306 = sub i32 87, %tmp305
460  %tmp307 = urem i32 %tmp306, 101
461  %tmp308 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp304
462  store i32 %tmp307, ptr %tmp308, align 4
463  %tmp309 = add nuw nsw i64 %tmp289, 4
464  %tmp310 = icmp eq i64 %tmp309, 10000
465  br i1 %tmp310, label %bb311, label %bb288
466
467bb311:                                            ; preds = %bb311, %bb288
468  %tmp312 = phi i64 [ %tmp332, %bb311 ], [ 0, %bb288 ]
469  %tmp313 = trunc i64 %tmp312 to i32
470  %tmp314 = add i32 %tmp313, 28
471  %tmp315 = urem i32 %tmp314, 101
472  %tmp316 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp312
473  store i32 %tmp315, ptr %tmp316, align 16
474  %tmp317 = or i64 %tmp312, 1
475  %tmp318 = trunc i64 %tmp317 to i32
476  %tmp319 = sub i32 28, %tmp318
477  %tmp320 = urem i32 %tmp319, 101
478  %tmp321 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp317
479  store i32 %tmp320, ptr %tmp321, align 4
480  %tmp322 = or i64 %tmp312, 2
481  %tmp323 = trunc i64 %tmp322 to i32
482  %tmp324 = add i32 %tmp323, 28
483  %tmp325 = urem i32 %tmp324, 101
484  %tmp326 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp322
485  store i32 %tmp325, ptr %tmp326, align 8
486  %tmp327 = or i64 %tmp312, 3
487  %tmp328 = trunc i64 %tmp327 to i32
488  %tmp329 = sub i32 28, %tmp328
489  %tmp330 = urem i32 %tmp329, 101
490  %tmp331 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp327
491  store i32 %tmp330, ptr %tmp331, align 4
492  %tmp332 = add nuw nsw i64 %tmp312, 4
493  %tmp333 = icmp eq i64 %tmp332, 10000
494  br i1 %tmp333, label %bb334, label %bb311
495
496bb334:                                            ; preds = %bb311
497  %tmp335 = sub i32 87, %arg
498  %tmp336 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 69
499  %tmp337 = load i32, ptr %tmp336, align 4
500  %tmp338 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 68
501  %tmp339 = load i32, ptr %tmp338, align 16
502  br label %bb340
503
504bb340:                                            ; preds = %bb340, %bb334
505  %tmp341 = phi i32 [ %tmp339, %bb334 ], [ %tmp373, %bb340 ]
506  %tmp342 = phi i32 [ %tmp337, %bb334 ], [ %tmp379, %bb340 ]
507  %tmp343 = phi i64 [ 68, %bb334 ], [ %tmp371, %bb340 ]
508  %tmp344 = phi i32 [ %tmp335, %bb334 ], [ %tmp382, %bb340 ]
509  %tmp345 = phi i32 [ %arg2, %bb334 ], [ %tmp380, %bb340 ]
510  %tmp346 = add nsw i64 %tmp343, -1
511  %tmp347 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp346
512  %tmp348 = load i32, ptr %tmp347, align 4
513  %tmp349 = add nuw nsw i64 %tmp343, 1
514  %tmp350 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp349
515  %tmp351 = sub i32 %tmp342, %tmp348
516  store i32 %tmp351, ptr %tmp350, align 4
517  %tmp352 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp343
518  %tmp353 = load i32, ptr %tmp352, align 4
519  %tmp354 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp343
520  %tmp355 = add i32 %tmp341, %tmp353
521  store i32 %tmp355, ptr %tmp354, align 4
522  %tmp356 = add i32 %tmp345, -1
523  %tmp357 = sub i32 %tmp344, %tmp345
524  %tmp358 = sub i32 %tmp357, %tmp351
525  %tmp359 = add nsw i64 %tmp343, -2
526  %tmp360 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp359
527  %tmp361 = load i32, ptr %tmp360, align 4
528  %tmp362 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp343
529  %tmp363 = sub i32 %tmp355, %tmp361
530  store i32 %tmp363, ptr %tmp362, align 4
531  %tmp364 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp346
532  %tmp365 = load i32, ptr %tmp364, align 4
533  %tmp366 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp346
534  %tmp367 = add i32 %tmp348, %tmp365
535  store i32 %tmp367, ptr %tmp366, align 4
536  %tmp368 = add i32 %tmp345, -2
537  %tmp369 = sub i32 %tmp358, %tmp356
538  %tmp370 = sub i32 %tmp369, %tmp363
539  %tmp371 = add nsw i64 %tmp343, -3
540  %tmp372 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp371
541  %tmp373 = load i32, ptr %tmp372, align 4
542  %tmp374 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp346
543  %tmp375 = sub i32 %tmp367, %tmp373
544  store i32 %tmp375, ptr %tmp374, align 4
545  %tmp376 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp359
546  %tmp377 = load i32, ptr %tmp376, align 4
547  %tmp378 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp359
548  %tmp379 = add i32 %tmp361, %tmp377
549  store i32 %tmp379, ptr %tmp378, align 4
550  %tmp380 = add i32 %tmp345, -3
551  %tmp381 = sub i32 %tmp370, %tmp368
552  %tmp382 = sub i32 %tmp381, %tmp375
553  %tmp383 = icmp ugt i64 %tmp371, 2
554  br i1 %tmp383, label %bb340, label %bb384
555
556bb384:                                            ; preds = %bb340
557  %tmp385 = add i32 %arg2, -66
558  %tmp386 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 52
559  %tmp387 = load i32, ptr %tmp386, align 16
560  store i32 %tmp387, ptr %tmp32, align 4
561  %tmp388 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 97
562  %tmp389 = load i32, ptr %tmp388, align 4
563  %tmp390 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 31
564  %tmp391 = load i32, ptr %tmp390, align 4
565  %tmp392 = icmp eq i32 %tmp389, %tmp391
566  br i1 %tmp392, label %bb478, label %bb393
567
568bb393:                                            ; preds = %bb384
569  %tmp394 = sub i32 -79, %tmp382
570  %tmp395 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 2
571  %tmp397 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 2
572  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %tmp395, ptr nonnull align 8 %tmp397, i64 304, i1 false)
573  br label %bb399
574
575bb399:                                            ; preds = %bb424, %bb393
576  %tmp400 = phi i64 [ 77, %bb393 ], [ %tmp425, %bb424 ]
577  br label %bb403
578
579bb401:                                            ; preds = %bb424
580  %tmp402 = add i32 %arg2, 3
581  br label %bb433
582
583bb403:                                            ; preds = %bb403, %bb399
584  %tmp404 = phi i64 [ 1, %bb399 ], [ %tmp414, %bb403 ]
585  %tmp405 = add nuw nsw i64 %tmp404, 1
586  %tmp406 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 %tmp404, i64 %tmp405
587  %tmp407 = load i32, ptr %tmp406, align 4
588  %tmp408 = add i32 %tmp394, %tmp407
589  store i32 %tmp408, ptr %tmp406, align 4
590  %tmp409 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 %tmp404, i64 %tmp405
591  %tmp410 = load i32, ptr %tmp409, align 4
592  %tmp411 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp405
593  %tmp412 = load i32, ptr %tmp411, align 4
594  %tmp413 = add i32 %tmp412, %tmp410
595  store i32 %tmp413, ptr %tmp411, align 4
596  %tmp414 = add nuw nsw i64 %tmp404, 2
597  %tmp415 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 %tmp405, i64 %tmp414
598  %tmp416 = load i32, ptr %tmp415, align 4
599  %tmp417 = add i32 %tmp394, %tmp416
600  store i32 %tmp417, ptr %tmp415, align 4
601  %tmp418 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 %tmp405, i64 %tmp414
602  %tmp419 = load i32, ptr %tmp418, align 4
603  %tmp420 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp414
604  %tmp421 = load i32, ptr %tmp420, align 4
605  %tmp422 = add i32 %tmp421, %tmp419
606  store i32 %tmp422, ptr %tmp420, align 4
607  %tmp423 = icmp eq i64 %tmp414, 47
608  br i1 %tmp423, label %bb424, label %bb403
609
610bb424:                                            ; preds = %bb403
611  %tmp425 = add nsw i64 %tmp400, -1
612  %tmp426 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp425
613  %tmp427 = load i32, ptr %tmp426, align 4
614  %tmp428 = add i32 %tmp427, 2
615  %tmp429 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp425
616  %tmp430 = load i32, ptr %tmp429, align 4
617  %tmp431 = mul i32 %tmp430, %tmp428
618  store i32 %tmp431, ptr %tmp429, align 4
619  %tmp432 = icmp ugt i64 %tmp425, 1
620  br i1 %tmp432, label %bb399, label %bb401
621
622bb433:                                            ; preds = %bb475, %bb401
623  %tmp434 = phi i64 [ 2, %bb401 ], [ %tmp437, %bb475 ]
624  %tmp435 = phi i32 [ 2, %bb401 ], [ %tmp476, %bb475 ]
625  %tmp436 = add nsw i64 %tmp434, -1
626  %tmp437 = add nuw nsw i64 %tmp434, 1
627  %tmp438 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 %tmp437, i64 %tmp434
628  %tmp439 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 %tmp436, i64 %tmp437
629  %tmp440 = mul i32 %tmp435, 47
630  br label %bb441
631
632bb441:                                            ; preds = %bb473, %bb433
633  %tmp442 = phi i64 [ 1, %bb433 ], [ %tmp450, %bb473 ]
634  %tmp443 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp442
635  %tmp444 = load i32, ptr %tmp443, align 4
636  %tmp445 = add nsw i64 %tmp442, -1
637  %tmp446 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp445
638  %tmp447 = load i32, ptr %tmp446, align 4
639  %tmp448 = xor i32 %tmp444, -1
640  %tmp449 = add i32 %tmp447, %tmp448
641  store i32 %tmp449, ptr %tmp446, align 4
642  %tmp450 = add nuw nsw i64 %tmp442, 1
643  %tmp451 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 %tmp436, i64 %tmp450
644  %tmp452 = load i32, ptr %tmp451, align 4
645  %tmp453 = mul i32 %tmp452, 91
646  %tmp454 = icmp eq i32 %tmp453, -30
647  br i1 %tmp454, label %bb455, label %bb473
648
649bb455:                                            ; preds = %bb441
650  %tmp456 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp442
651  %tmp457 = load i32, ptr %tmp456, align 4
652  %tmp458 = icmp ugt i32 %tmp457, %tmp402
653  br i1 %tmp458, label %bb459, label %bb473
654
655bb459:                                            ; preds = %bb455
656  %tmp460 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 %tmp445, i64 %tmp436
657  store i32 %tmp387, ptr %tmp460, align 4
658  %tmp461 = load i32, ptr %tmp57, align 4
659  %tmp462 = load i32, ptr %tmp438, align 4
660  %tmp463 = add i32 %tmp462, %tmp461
661  %tmp464 = load i32, ptr %tmp439, align 4
662  %tmp465 = add i32 %tmp464, 68
663  %tmp466 = icmp eq i32 %tmp463, %tmp465
664  br i1 %tmp466, label %bb471, label %bb467
665
666bb467:                                            ; preds = %bb459
667  %tmp468 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp450
668  %tmp469 = load i32, ptr %tmp468, align 4
669  %tmp470 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp445
670  store i32 %tmp469, ptr %tmp470, align 4
671  br label %bb473
672
673bb471:                                            ; preds = %bb459
674  %tmp472 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 %tmp437, i64 %tmp445
675  store i32 %tmp440, ptr %tmp472, align 4
676  br label %bb473
677
678bb473:                                            ; preds = %bb471, %bb467, %bb455, %bb441
679  %tmp474 = icmp eq i64 %tmp450, 13
680  br i1 %tmp474, label %bb475, label %bb441
681
682bb475:                                            ; preds = %bb473
683  %tmp476 = add nuw nsw i32 %tmp435, 1
684  %tmp477 = icmp eq i64 %tmp437, 69
685  br i1 %tmp477, label %bb478, label %bb433
686
687bb478:                                            ; preds = %bb475, %bb384
688  br label %bb479
689
690bb479:                                            ; preds = %bb479, %bb478
691  %tmp480 = phi i64 [ 0, %bb478 ], [ %tmp521, %bb479 ]
692  %tmp481 = phi i32 [ 0, %bb478 ], [ %tmp520, %bb479 ]
693  %tmp482 = and i64 %tmp480, 1
694  %tmp483 = icmp eq i64 %tmp482, 0
695  %tmp484 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp480
696  %tmp485 = load i32, ptr %tmp484, align 4
697  %tmp486 = sub i32 0, %tmp485
698  %tmp487 = select i1 %tmp483, i32 %tmp485, i32 %tmp486
699  %tmp488 = add i32 %tmp487, %tmp481
700  %tmp489 = add nuw nsw i64 %tmp480, 1
701  %tmp490 = and i64 %tmp489, 1
702  %tmp491 = icmp eq i64 %tmp490, 0
703  %tmp492 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp489
704  %tmp493 = load i32, ptr %tmp492, align 4
705  %tmp494 = sub i32 0, %tmp493
706  %tmp495 = select i1 %tmp491, i32 %tmp493, i32 %tmp494
707  %tmp496 = add i32 %tmp495, %tmp488
708  %tmp497 = add nuw nsw i64 %tmp480, 2
709  %tmp498 = and i64 %tmp497, 1
710  %tmp499 = icmp eq i64 %tmp498, 0
711  %tmp500 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp497
712  %tmp501 = load i32, ptr %tmp500, align 4
713  %tmp502 = sub i32 0, %tmp501
714  %tmp503 = select i1 %tmp499, i32 %tmp501, i32 %tmp502
715  %tmp504 = add i32 %tmp503, %tmp496
716  %tmp505 = add nuw nsw i64 %tmp480, 3
717  %tmp506 = and i64 %tmp505, 1
718  %tmp507 = icmp eq i64 %tmp506, 0
719  %tmp508 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp505
720  %tmp509 = load i32, ptr %tmp508, align 4
721  %tmp510 = sub i32 0, %tmp509
722  %tmp511 = select i1 %tmp507, i32 %tmp509, i32 %tmp510
723  %tmp512 = add i32 %tmp511, %tmp504
724  %tmp513 = add nuw nsw i64 %tmp480, 4
725  %tmp514 = and i64 %tmp513, 1
726  %tmp515 = icmp eq i64 %tmp514, 0
727  %tmp516 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp513
728  %tmp517 = load i32, ptr %tmp516, align 4
729  %tmp518 = sub i32 0, %tmp517
730  %tmp519 = select i1 %tmp515, i32 %tmp517, i32 %tmp518
731  %tmp520 = add i32 %tmp519, %tmp512
732  %tmp521 = add nuw nsw i64 %tmp480, 5
733  %tmp522 = icmp eq i64 %tmp521, 100
734  br i1 %tmp522, label %bb523, label %bb479
735
736bb523:                                            ; preds = %bb523, %bb479
737  %tmp524 = phi i64 [ %tmp565, %bb523 ], [ 0, %bb479 ]
738  %tmp525 = phi i32 [ %tmp564, %bb523 ], [ 0, %bb479 ]
739  %tmp526 = and i64 %tmp524, 1
740  %tmp527 = icmp eq i64 %tmp526, 0
741  %tmp528 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp524
742  %tmp529 = load i32, ptr %tmp528, align 4
743  %tmp530 = sub i32 0, %tmp529
744  %tmp531 = select i1 %tmp527, i32 %tmp529, i32 %tmp530
745  %tmp532 = add i32 %tmp531, %tmp525
746  %tmp533 = add nuw nsw i64 %tmp524, 1
747  %tmp534 = and i64 %tmp533, 1
748  %tmp535 = icmp eq i64 %tmp534, 0
749  %tmp536 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp533
750  %tmp537 = load i32, ptr %tmp536, align 4
751  %tmp538 = sub i32 0, %tmp537
752  %tmp539 = select i1 %tmp535, i32 %tmp537, i32 %tmp538
753  %tmp540 = add i32 %tmp539, %tmp532
754  %tmp541 = add nuw nsw i64 %tmp524, 2
755  %tmp542 = and i64 %tmp541, 1
756  %tmp543 = icmp eq i64 %tmp542, 0
757  %tmp544 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp541
758  %tmp545 = load i32, ptr %tmp544, align 4
759  %tmp546 = sub i32 0, %tmp545
760  %tmp547 = select i1 %tmp543, i32 %tmp545, i32 %tmp546
761  %tmp548 = add i32 %tmp547, %tmp540
762  %tmp549 = add nuw nsw i64 %tmp524, 3
763  %tmp550 = and i64 %tmp549, 1
764  %tmp551 = icmp eq i64 %tmp550, 0
765  %tmp552 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp549
766  %tmp553 = load i32, ptr %tmp552, align 4
767  %tmp554 = sub i32 0, %tmp553
768  %tmp555 = select i1 %tmp551, i32 %tmp553, i32 %tmp554
769  %tmp556 = add i32 %tmp555, %tmp548
770  %tmp557 = add nuw nsw i64 %tmp524, 4
771  %tmp558 = and i64 %tmp557, 1
772  %tmp559 = icmp eq i64 %tmp558, 0
773  %tmp560 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp557
774  %tmp561 = load i32, ptr %tmp560, align 4
775  %tmp562 = sub i32 0, %tmp561
776  %tmp563 = select i1 %tmp559, i32 %tmp561, i32 %tmp562
777  %tmp564 = add i32 %tmp563, %tmp556
778  %tmp565 = add nuw nsw i64 %tmp524, 5
779  %tmp566 = icmp eq i64 %tmp565, 100
780  br i1 %tmp566, label %bb567, label %bb523
781
782bb567:                                            ; preds = %bb567, %bb523
783  %tmp568 = phi i64 [ %tmp609, %bb567 ], [ 0, %bb523 ]
784  %tmp569 = phi i32 [ %tmp608, %bb567 ], [ 0, %bb523 ]
785  %tmp570 = and i64 %tmp568, 1
786  %tmp571 = icmp eq i64 %tmp570, 0
787  %tmp572 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp568
788  %tmp573 = load i32, ptr %tmp572, align 4
789  %tmp574 = sub i32 0, %tmp573
790  %tmp575 = select i1 %tmp571, i32 %tmp573, i32 %tmp574
791  %tmp576 = add i32 %tmp575, %tmp569
792  %tmp577 = add nuw nsw i64 %tmp568, 1
793  %tmp578 = and i64 %tmp577, 1
794  %tmp579 = icmp eq i64 %tmp578, 0
795  %tmp580 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp577
796  %tmp581 = load i32, ptr %tmp580, align 4
797  %tmp582 = sub i32 0, %tmp581
798  %tmp583 = select i1 %tmp579, i32 %tmp581, i32 %tmp582
799  %tmp584 = add i32 %tmp583, %tmp576
800  %tmp585 = add nuw nsw i64 %tmp568, 2
801  %tmp586 = and i64 %tmp585, 1
802  %tmp587 = icmp eq i64 %tmp586, 0
803  %tmp588 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp585
804  %tmp589 = load i32, ptr %tmp588, align 4
805  %tmp590 = sub i32 0, %tmp589
806  %tmp591 = select i1 %tmp587, i32 %tmp589, i32 %tmp590
807  %tmp592 = add i32 %tmp591, %tmp584
808  %tmp593 = add nuw nsw i64 %tmp568, 3
809  %tmp594 = and i64 %tmp593, 1
810  %tmp595 = icmp eq i64 %tmp594, 0
811  %tmp596 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp593
812  %tmp597 = load i32, ptr %tmp596, align 4
813  %tmp598 = sub i32 0, %tmp597
814  %tmp599 = select i1 %tmp595, i32 %tmp597, i32 %tmp598
815  %tmp600 = add i32 %tmp599, %tmp592
816  %tmp601 = add nuw nsw i64 %tmp568, 4
817  %tmp602 = and i64 %tmp601, 1
818  %tmp603 = icmp eq i64 %tmp602, 0
819  %tmp604 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp601
820  %tmp605 = load i32, ptr %tmp604, align 4
821  %tmp606 = sub i32 0, %tmp605
822  %tmp607 = select i1 %tmp603, i32 %tmp605, i32 %tmp606
823  %tmp608 = add i32 %tmp607, %tmp600
824  %tmp609 = add nuw nsw i64 %tmp568, 5
825  %tmp610 = icmp eq i64 %tmp609, 100
826  br i1 %tmp610, label %bb611, label %bb567
827
828bb611:                                            ; preds = %bb611, %bb567
829  %tmp612 = phi i64 [ %tmp653, %bb611 ], [ 0, %bb567 ]
830  %tmp613 = phi i32 [ %tmp652, %bb611 ], [ 0, %bb567 ]
831  %tmp614 = and i64 %tmp612, 1
832  %tmp615 = icmp eq i64 %tmp614, 0
833  %tmp616 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp612
834  %tmp617 = load i32, ptr %tmp616, align 4
835  %tmp618 = sub i32 0, %tmp617
836  %tmp619 = select i1 %tmp615, i32 %tmp617, i32 %tmp618
837  %tmp620 = add i32 %tmp619, %tmp613
838  %tmp621 = add nuw nsw i64 %tmp612, 1
839  %tmp622 = and i64 %tmp621, 1
840  %tmp623 = icmp eq i64 %tmp622, 0
841  %tmp624 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp621
842  %tmp625 = load i32, ptr %tmp624, align 4
843  %tmp626 = sub i32 0, %tmp625
844  %tmp627 = select i1 %tmp623, i32 %tmp625, i32 %tmp626
845  %tmp628 = add i32 %tmp627, %tmp620
846  %tmp629 = add nuw nsw i64 %tmp612, 2
847  %tmp630 = and i64 %tmp629, 1
848  %tmp631 = icmp eq i64 %tmp630, 0
849  %tmp632 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp629
850  %tmp633 = load i32, ptr %tmp632, align 4
851  %tmp634 = sub i32 0, %tmp633
852  %tmp635 = select i1 %tmp631, i32 %tmp633, i32 %tmp634
853  %tmp636 = add i32 %tmp635, %tmp628
854  %tmp637 = add nuw nsw i64 %tmp612, 3
855  %tmp638 = and i64 %tmp637, 1
856  %tmp639 = icmp eq i64 %tmp638, 0
857  %tmp640 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp637
858  %tmp641 = load i32, ptr %tmp640, align 4
859  %tmp642 = sub i32 0, %tmp641
860  %tmp643 = select i1 %tmp639, i32 %tmp641, i32 %tmp642
861  %tmp644 = add i32 %tmp643, %tmp636
862  %tmp645 = add nuw nsw i64 %tmp612, 4
863  %tmp646 = and i64 %tmp645, 1
864  %tmp647 = icmp eq i64 %tmp646, 0
865  %tmp648 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp645
866  %tmp649 = load i32, ptr %tmp648, align 4
867  %tmp650 = sub i32 0, %tmp649
868  %tmp651 = select i1 %tmp647, i32 %tmp649, i32 %tmp650
869  %tmp652 = add i32 %tmp651, %tmp644
870  %tmp653 = add nuw nsw i64 %tmp612, 5
871  %tmp654 = icmp eq i64 %tmp653, 10000
872  br i1 %tmp654, label %bb655, label %bb611
873
874bb655:                                            ; preds = %bb655, %bb611
875  %tmp656 = phi i64 [ %tmp697, %bb655 ], [ 0, %bb611 ]
876  %tmp657 = phi i32 [ %tmp696, %bb655 ], [ 0, %bb611 ]
877  %tmp658 = and i64 %tmp656, 1
878  %tmp659 = icmp eq i64 %tmp658, 0
879  %tmp660 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp656
880  %tmp661 = load i32, ptr %tmp660, align 4
881  %tmp662 = sub i32 0, %tmp661
882  %tmp663 = select i1 %tmp659, i32 %tmp661, i32 %tmp662
883  %tmp664 = add i32 %tmp663, %tmp657
884  %tmp665 = add nuw nsw i64 %tmp656, 1
885  %tmp666 = and i64 %tmp665, 1
886  %tmp667 = icmp eq i64 %tmp666, 0
887  %tmp668 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp665
888  %tmp669 = load i32, ptr %tmp668, align 4
889  %tmp670 = sub i32 0, %tmp669
890  %tmp671 = select i1 %tmp667, i32 %tmp669, i32 %tmp670
891  %tmp672 = add i32 %tmp671, %tmp664
892  %tmp673 = add nuw nsw i64 %tmp656, 2
893  %tmp674 = and i64 %tmp673, 1
894  %tmp675 = icmp eq i64 %tmp674, 0
895  %tmp676 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp673
896  %tmp677 = load i32, ptr %tmp676, align 4
897  %tmp678 = sub i32 0, %tmp677
898  %tmp679 = select i1 %tmp675, i32 %tmp677, i32 %tmp678
899  %tmp680 = add i32 %tmp679, %tmp672
900  %tmp681 = add nuw nsw i64 %tmp656, 3
901  %tmp682 = and i64 %tmp681, 1
902  %tmp683 = icmp eq i64 %tmp682, 0
903  %tmp684 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp681
904  %tmp685 = load i32, ptr %tmp684, align 4
905  %tmp686 = sub i32 0, %tmp685
906  %tmp687 = select i1 %tmp683, i32 %tmp685, i32 %tmp686
907  %tmp688 = add i32 %tmp687, %tmp680
908  %tmp689 = add nuw nsw i64 %tmp656, 4
909  %tmp690 = and i64 %tmp689, 1
910  %tmp691 = icmp eq i64 %tmp690, 0
911  %tmp692 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp689
912  %tmp693 = load i32, ptr %tmp692, align 4
913  %tmp694 = sub i32 0, %tmp693
914  %tmp695 = select i1 %tmp691, i32 %tmp693, i32 %tmp694
915  %tmp696 = add i32 %tmp695, %tmp688
916  %tmp697 = add nuw nsw i64 %tmp656, 5
917  %tmp698 = icmp eq i64 %tmp697, 100
918  br i1 %tmp698, label %bb699, label %bb655
919
920bb699:                                            ; preds = %bb699, %bb655
921  %tmp700 = phi i64 [ %tmp741, %bb699 ], [ 0, %bb655 ]
922  %tmp701 = phi i32 [ %tmp740, %bb699 ], [ 0, %bb655 ]
923  %tmp702 = and i64 %tmp700, 1
924  %tmp703 = icmp eq i64 %tmp702, 0
925  %tmp704 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp700
926  %tmp705 = load i32, ptr %tmp704, align 4
927  %tmp706 = sub i32 0, %tmp705
928  %tmp707 = select i1 %tmp703, i32 %tmp705, i32 %tmp706
929  %tmp708 = add i32 %tmp707, %tmp701
930  %tmp709 = add nuw nsw i64 %tmp700, 1
931  %tmp710 = and i64 %tmp709, 1
932  %tmp711 = icmp eq i64 %tmp710, 0
933  %tmp712 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp709
934  %tmp713 = load i32, ptr %tmp712, align 4
935  %tmp714 = sub i32 0, %tmp713
936  %tmp715 = select i1 %tmp711, i32 %tmp713, i32 %tmp714
937  %tmp716 = add i32 %tmp715, %tmp708
938  %tmp717 = add nuw nsw i64 %tmp700, 2
939  %tmp718 = and i64 %tmp717, 1
940  %tmp719 = icmp eq i64 %tmp718, 0
941  %tmp720 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp717
942  %tmp721 = load i32, ptr %tmp720, align 4
943  %tmp722 = sub i32 0, %tmp721
944  %tmp723 = select i1 %tmp719, i32 %tmp721, i32 %tmp722
945  %tmp724 = add i32 %tmp723, %tmp716
946  %tmp725 = add nuw nsw i64 %tmp700, 3
947  %tmp726 = and i64 %tmp725, 1
948  %tmp727 = icmp eq i64 %tmp726, 0
949  %tmp728 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp725
950  %tmp729 = load i32, ptr %tmp728, align 4
951  %tmp730 = sub i32 0, %tmp729
952  %tmp731 = select i1 %tmp727, i32 %tmp729, i32 %tmp730
953  %tmp732 = add i32 %tmp731, %tmp724
954  %tmp733 = add nuw nsw i64 %tmp700, 4
955  %tmp734 = and i64 %tmp733, 1
956  %tmp735 = icmp eq i64 %tmp734, 0
957  %tmp736 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp733
958  %tmp737 = load i32, ptr %tmp736, align 4
959  %tmp738 = sub i32 0, %tmp737
960  %tmp739 = select i1 %tmp735, i32 %tmp737, i32 %tmp738
961  %tmp740 = add i32 %tmp739, %tmp732
962  %tmp741 = add nuw nsw i64 %tmp700, 5
963  %tmp742 = icmp eq i64 %tmp741, 10000
964  br i1 %tmp742, label %bb743, label %bb699
965
966bb743:                                            ; preds = %bb743, %bb699
967  %tmp744 = phi i64 [ %tmp785, %bb743 ], [ 0, %bb699 ]
968  %tmp745 = phi i32 [ %tmp784, %bb743 ], [ 0, %bb699 ]
969  %tmp746 = and i64 %tmp744, 1
970  %tmp747 = icmp eq i64 %tmp746, 0
971  %tmp748 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp744
972  %tmp749 = load i32, ptr %tmp748, align 4
973  %tmp750 = sub i32 0, %tmp749
974  %tmp751 = select i1 %tmp747, i32 %tmp749, i32 %tmp750
975  %tmp752 = add i32 %tmp751, %tmp745
976  %tmp753 = add nuw nsw i64 %tmp744, 1
977  %tmp754 = and i64 %tmp753, 1
978  %tmp755 = icmp eq i64 %tmp754, 0
979  %tmp756 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp753
980  %tmp757 = load i32, ptr %tmp756, align 4
981  %tmp758 = sub i32 0, %tmp757
982  %tmp759 = select i1 %tmp755, i32 %tmp757, i32 %tmp758
983  %tmp760 = add i32 %tmp759, %tmp752
984  %tmp761 = add nuw nsw i64 %tmp744, 2
985  %tmp762 = and i64 %tmp761, 1
986  %tmp763 = icmp eq i64 %tmp762, 0
987  %tmp764 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp761
988  %tmp765 = load i32, ptr %tmp764, align 4
989  %tmp766 = sub i32 0, %tmp765
990  %tmp767 = select i1 %tmp763, i32 %tmp765, i32 %tmp766
991  %tmp768 = add i32 %tmp767, %tmp760
992  %tmp769 = add nuw nsw i64 %tmp744, 3
993  %tmp770 = and i64 %tmp769, 1
994  %tmp771 = icmp eq i64 %tmp770, 0
995  %tmp772 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp769
996  %tmp773 = load i32, ptr %tmp772, align 4
997  %tmp774 = sub i32 0, %tmp773
998  %tmp775 = select i1 %tmp771, i32 %tmp773, i32 %tmp774
999  %tmp776 = add i32 %tmp775, %tmp768
1000  %tmp777 = add nuw nsw i64 %tmp744, 4
1001  %tmp778 = and i64 %tmp777, 1
1002  %tmp779 = icmp eq i64 %tmp778, 0
1003  %tmp780 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp777
1004  %tmp781 = load i32, ptr %tmp780, align 4
1005  %tmp782 = sub i32 0, %tmp781
1006  %tmp783 = select i1 %tmp779, i32 %tmp781, i32 %tmp782
1007  %tmp784 = add i32 %tmp783, %tmp776
1008  %tmp785 = add nuw nsw i64 %tmp744, 5
1009  %tmp786 = icmp eq i64 %tmp785, 100
1010  br i1 %tmp786, label %bb787, label %bb743
1011
1012bb787:                                            ; preds = %bb787, %bb743
1013  %tmp788 = phi i64 [ %tmp829, %bb787 ], [ 0, %bb743 ]
1014  %tmp789 = phi i32 [ %tmp828, %bb787 ], [ 0, %bb743 ]
1015  %tmp790 = and i64 %tmp788, 1
1016  %tmp791 = icmp eq i64 %tmp790, 0
1017  %tmp792 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp788
1018  %tmp793 = load i32, ptr %tmp792, align 4
1019  %tmp794 = sub i32 0, %tmp793
1020  %tmp795 = select i1 %tmp791, i32 %tmp793, i32 %tmp794
1021  %tmp796 = add i32 %tmp795, %tmp789
1022  %tmp797 = add nuw nsw i64 %tmp788, 1
1023  %tmp798 = and i64 %tmp797, 1
1024  %tmp799 = icmp eq i64 %tmp798, 0
1025  %tmp800 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp797
1026  %tmp801 = load i32, ptr %tmp800, align 4
1027  %tmp802 = sub i32 0, %tmp801
1028  %tmp803 = select i1 %tmp799, i32 %tmp801, i32 %tmp802
1029  %tmp804 = add i32 %tmp803, %tmp796
1030  %tmp805 = add nuw nsw i64 %tmp788, 2
1031  %tmp806 = and i64 %tmp805, 1
1032  %tmp807 = icmp eq i64 %tmp806, 0
1033  %tmp808 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp805
1034  %tmp809 = load i32, ptr %tmp808, align 4
1035  %tmp810 = sub i32 0, %tmp809
1036  %tmp811 = select i1 %tmp807, i32 %tmp809, i32 %tmp810
1037  %tmp812 = add i32 %tmp811, %tmp804
1038  %tmp813 = add nuw nsw i64 %tmp788, 3
1039  %tmp814 = and i64 %tmp813, 1
1040  %tmp815 = icmp eq i64 %tmp814, 0
1041  %tmp816 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp813
1042  %tmp817 = load i32, ptr %tmp816, align 4
1043  %tmp818 = sub i32 0, %tmp817
1044  %tmp819 = select i1 %tmp815, i32 %tmp817, i32 %tmp818
1045  %tmp820 = add i32 %tmp819, %tmp812
1046  %tmp821 = add nuw nsw i64 %tmp788, 4
1047  %tmp822 = and i64 %tmp821, 1
1048  %tmp823 = icmp eq i64 %tmp822, 0
1049  %tmp824 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp821
1050  %tmp825 = load i32, ptr %tmp824, align 4
1051  %tmp826 = sub i32 0, %tmp825
1052  %tmp827 = select i1 %tmp823, i32 %tmp825, i32 %tmp826
1053  %tmp828 = add i32 %tmp827, %tmp820
1054  %tmp829 = add nuw nsw i64 %tmp788, 5
1055  %tmp830 = icmp eq i64 %tmp829, 100
1056  br i1 %tmp830, label %bb831, label %bb787
1057
1058bb831:                                            ; preds = %bb831, %bb787
1059  %tmp832 = phi i64 [ %tmp873, %bb831 ], [ 0, %bb787 ]
1060  %tmp833 = phi i32 [ %tmp872, %bb831 ], [ 0, %bb787 ]
1061  %tmp834 = and i64 %tmp832, 1
1062  %tmp835 = icmp eq i64 %tmp834, 0
1063  %tmp836 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp832
1064  %tmp837 = load i32, ptr %tmp836, align 4
1065  %tmp838 = sub i32 0, %tmp837
1066  %tmp839 = select i1 %tmp835, i32 %tmp837, i32 %tmp838
1067  %tmp840 = add i32 %tmp839, %tmp833
1068  %tmp841 = add nuw nsw i64 %tmp832, 1
1069  %tmp842 = and i64 %tmp841, 1
1070  %tmp843 = icmp eq i64 %tmp842, 0
1071  %tmp844 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp841
1072  %tmp845 = load i32, ptr %tmp844, align 4
1073  %tmp846 = sub i32 0, %tmp845
1074  %tmp847 = select i1 %tmp843, i32 %tmp845, i32 %tmp846
1075  %tmp848 = add i32 %tmp847, %tmp840
1076  %tmp849 = add nuw nsw i64 %tmp832, 2
1077  %tmp850 = and i64 %tmp849, 1
1078  %tmp851 = icmp eq i64 %tmp850, 0
1079  %tmp852 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp849
1080  %tmp853 = load i32, ptr %tmp852, align 4
1081  %tmp854 = sub i32 0, %tmp853
1082  %tmp855 = select i1 %tmp851, i32 %tmp853, i32 %tmp854
1083  %tmp856 = add i32 %tmp855, %tmp848
1084  %tmp857 = add nuw nsw i64 %tmp832, 3
1085  %tmp858 = and i64 %tmp857, 1
1086  %tmp859 = icmp eq i64 %tmp858, 0
1087  %tmp860 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp857
1088  %tmp861 = load i32, ptr %tmp860, align 4
1089  %tmp862 = sub i32 0, %tmp861
1090  %tmp863 = select i1 %tmp859, i32 %tmp861, i32 %tmp862
1091  %tmp864 = add i32 %tmp863, %tmp856
1092  %tmp865 = add nuw nsw i64 %tmp832, 4
1093  %tmp866 = and i64 %tmp865, 1
1094  %tmp867 = icmp eq i64 %tmp866, 0
1095  %tmp868 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp865
1096  %tmp869 = load i32, ptr %tmp868, align 4
1097  %tmp870 = sub i32 0, %tmp869
1098  %tmp871 = select i1 %tmp867, i32 %tmp869, i32 %tmp870
1099  %tmp872 = add i32 %tmp871, %tmp864
1100  %tmp873 = add nuw nsw i64 %tmp832, 5
1101  %tmp874 = icmp eq i64 %tmp873, 10000
1102  br i1 %tmp874, label %bb875, label %bb831
1103
1104bb875:                                            ; preds = %bb875, %bb831
1105  %tmp876 = phi i64 [ %tmp917, %bb875 ], [ 0, %bb831 ]
1106  %tmp877 = phi i32 [ %tmp916, %bb875 ], [ 0, %bb831 ]
1107  %tmp878 = and i64 %tmp876, 1
1108  %tmp879 = icmp eq i64 %tmp878, 0
1109  %tmp880 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp876
1110  %tmp881 = load i32, ptr %tmp880, align 4
1111  %tmp882 = sub i32 0, %tmp881
1112  %tmp883 = select i1 %tmp879, i32 %tmp881, i32 %tmp882
1113  %tmp884 = add i32 %tmp883, %tmp877
1114  %tmp885 = add nuw nsw i64 %tmp876, 1
1115  %tmp886 = and i64 %tmp885, 1
1116  %tmp887 = icmp eq i64 %tmp886, 0
1117  %tmp888 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp885
1118  %tmp889 = load i32, ptr %tmp888, align 4
1119  %tmp890 = sub i32 0, %tmp889
1120  %tmp891 = select i1 %tmp887, i32 %tmp889, i32 %tmp890
1121  %tmp892 = add i32 %tmp891, %tmp884
1122  %tmp893 = add nuw nsw i64 %tmp876, 2
1123  %tmp894 = and i64 %tmp893, 1
1124  %tmp895 = icmp eq i64 %tmp894, 0
1125  %tmp896 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp893
1126  %tmp897 = load i32, ptr %tmp896, align 4
1127  %tmp898 = sub i32 0, %tmp897
1128  %tmp899 = select i1 %tmp895, i32 %tmp897, i32 %tmp898
1129  %tmp900 = add i32 %tmp899, %tmp892
1130  %tmp901 = add nuw nsw i64 %tmp876, 3
1131  %tmp902 = and i64 %tmp901, 1
1132  %tmp903 = icmp eq i64 %tmp902, 0
1133  %tmp904 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp901
1134  %tmp905 = load i32, ptr %tmp904, align 4
1135  %tmp906 = sub i32 0, %tmp905
1136  %tmp907 = select i1 %tmp903, i32 %tmp905, i32 %tmp906
1137  %tmp908 = add i32 %tmp907, %tmp900
1138  %tmp909 = add nuw nsw i64 %tmp876, 4
1139  %tmp910 = and i64 %tmp909, 1
1140  %tmp911 = icmp eq i64 %tmp910, 0
1141  %tmp912 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp909
1142  %tmp913 = load i32, ptr %tmp912, align 4
1143  %tmp914 = sub i32 0, %tmp913
1144  %tmp915 = select i1 %tmp911, i32 %tmp913, i32 %tmp914
1145  %tmp916 = add i32 %tmp915, %tmp908
1146  %tmp917 = add nuw nsw i64 %tmp876, 5
1147  %tmp918 = icmp eq i64 %tmp917, 100
1148  br i1 %tmp918, label %bb919, label %bb875
1149
1150bb919:                                            ; preds = %bb919, %bb875
1151  %tmp920 = phi i64 [ %tmp961, %bb919 ], [ 0, %bb875 ]
1152  %tmp921 = phi i32 [ %tmp960, %bb919 ], [ 0, %bb875 ]
1153  %tmp922 = and i64 %tmp920, 1
1154  %tmp923 = icmp eq i64 %tmp922, 0
1155  %tmp924 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp920
1156  %tmp925 = load i32, ptr %tmp924, align 4
1157  %tmp926 = sub i32 0, %tmp925
1158  %tmp927 = select i1 %tmp923, i32 %tmp925, i32 %tmp926
1159  %tmp928 = add i32 %tmp927, %tmp921
1160  %tmp929 = add nuw nsw i64 %tmp920, 1
1161  %tmp930 = and i64 %tmp929, 1
1162  %tmp931 = icmp eq i64 %tmp930, 0
1163  %tmp932 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp929
1164  %tmp933 = load i32, ptr %tmp932, align 4
1165  %tmp934 = sub i32 0, %tmp933
1166  %tmp935 = select i1 %tmp931, i32 %tmp933, i32 %tmp934
1167  %tmp936 = add i32 %tmp935, %tmp928
1168  %tmp937 = add nuw nsw i64 %tmp920, 2
1169  %tmp938 = and i64 %tmp937, 1
1170  %tmp939 = icmp eq i64 %tmp938, 0
1171  %tmp940 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp937
1172  %tmp941 = load i32, ptr %tmp940, align 4
1173  %tmp942 = sub i32 0, %tmp941
1174  %tmp943 = select i1 %tmp939, i32 %tmp941, i32 %tmp942
1175  %tmp944 = add i32 %tmp943, %tmp936
1176  %tmp945 = add nuw nsw i64 %tmp920, 3
1177  %tmp946 = and i64 %tmp945, 1
1178  %tmp947 = icmp eq i64 %tmp946, 0
1179  %tmp948 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp945
1180  %tmp949 = load i32, ptr %tmp948, align 4
1181  %tmp950 = sub i32 0, %tmp949
1182  %tmp951 = select i1 %tmp947, i32 %tmp949, i32 %tmp950
1183  %tmp952 = add i32 %tmp951, %tmp944
1184  %tmp953 = add nuw nsw i64 %tmp920, 4
1185  %tmp954 = and i64 %tmp953, 1
1186  %tmp955 = icmp eq i64 %tmp954, 0
1187  %tmp956 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp953
1188  %tmp957 = load i32, ptr %tmp956, align 4
1189  %tmp958 = sub i32 0, %tmp957
1190  %tmp959 = select i1 %tmp955, i32 %tmp957, i32 %tmp958
1191  %tmp960 = add i32 %tmp959, %tmp952
1192  %tmp961 = add nuw nsw i64 %tmp920, 5
1193  %tmp962 = icmp eq i64 %tmp961, 10000
1194  br i1 %tmp962, label %bb963, label %bb919
1195
1196bb963:                                            ; preds = %bb963, %bb919
1197  %tmp964 = phi i64 [ %tmp1005, %bb963 ], [ 0, %bb919 ]
1198  %tmp965 = phi i32 [ %tmp1004, %bb963 ], [ 0, %bb919 ]
1199  %tmp966 = and i64 %tmp964, 1
1200  %tmp967 = icmp eq i64 %tmp966, 0
1201  %tmp968 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp964
1202  %tmp969 = load i32, ptr %tmp968, align 4
1203  %tmp970 = sub i32 0, %tmp969
1204  %tmp971 = select i1 %tmp967, i32 %tmp969, i32 %tmp970
1205  %tmp972 = add i32 %tmp971, %tmp965
1206  %tmp973 = add nuw nsw i64 %tmp964, 1
1207  %tmp974 = and i64 %tmp973, 1
1208  %tmp975 = icmp eq i64 %tmp974, 0
1209  %tmp976 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp973
1210  %tmp977 = load i32, ptr %tmp976, align 4
1211  %tmp978 = sub i32 0, %tmp977
1212  %tmp979 = select i1 %tmp975, i32 %tmp977, i32 %tmp978
1213  %tmp980 = add i32 %tmp979, %tmp972
1214  %tmp981 = add nuw nsw i64 %tmp964, 2
1215  %tmp982 = and i64 %tmp981, 1
1216  %tmp983 = icmp eq i64 %tmp982, 0
1217  %tmp984 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp981
1218  %tmp985 = load i32, ptr %tmp984, align 4
1219  %tmp986 = sub i32 0, %tmp985
1220  %tmp987 = select i1 %tmp983, i32 %tmp985, i32 %tmp986
1221  %tmp988 = add i32 %tmp987, %tmp980
1222  %tmp989 = add nuw nsw i64 %tmp964, 3
1223  %tmp990 = and i64 %tmp989, 1
1224  %tmp991 = icmp eq i64 %tmp990, 0
1225  %tmp992 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp989
1226  %tmp993 = load i32, ptr %tmp992, align 4
1227  %tmp994 = sub i32 0, %tmp993
1228  %tmp995 = select i1 %tmp991, i32 %tmp993, i32 %tmp994
1229  %tmp996 = add i32 %tmp995, %tmp988
1230  %tmp997 = add nuw nsw i64 %tmp964, 4
1231  %tmp998 = and i64 %tmp997, 1
1232  %tmp999 = icmp eq i64 %tmp998, 0
1233  %tmp1000 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp997
1234  %tmp1001 = load i32, ptr %tmp1000, align 4
1235  %tmp1002 = sub i32 0, %tmp1001
1236  %tmp1003 = select i1 %tmp999, i32 %tmp1001, i32 %tmp1002
1237  %tmp1004 = add i32 %tmp1003, %tmp996
1238  %tmp1005 = add nuw nsw i64 %tmp964, 5
1239  %tmp1006 = icmp eq i64 %tmp1005, 10000
1240  br i1 %tmp1006, label %bb1007, label %bb963
1241
1242bb1007:                                           ; preds = %bb1007, %bb963
1243  %tmp1008 = phi i64 [ %tmp1049, %bb1007 ], [ 0, %bb963 ]
1244  %tmp1009 = phi i32 [ %tmp1048, %bb1007 ], [ 0, %bb963 ]
1245  %tmp1010 = and i64 %tmp1008, 1
1246  %tmp1011 = icmp eq i64 %tmp1010, 0
1247  %tmp1012 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1008
1248  %tmp1013 = load i32, ptr %tmp1012, align 4
1249  %tmp1014 = sub i32 0, %tmp1013
1250  %tmp1015 = select i1 %tmp1011, i32 %tmp1013, i32 %tmp1014
1251  %tmp1016 = add i32 %tmp1015, %tmp1009
1252  %tmp1017 = add nuw nsw i64 %tmp1008, 1
1253  %tmp1018 = and i64 %tmp1017, 1
1254  %tmp1019 = icmp eq i64 %tmp1018, 0
1255  %tmp1020 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1017
1256  %tmp1021 = load i32, ptr %tmp1020, align 4
1257  %tmp1022 = sub i32 0, %tmp1021
1258  %tmp1023 = select i1 %tmp1019, i32 %tmp1021, i32 %tmp1022
1259  %tmp1024 = add i32 %tmp1023, %tmp1016
1260  %tmp1025 = add nuw nsw i64 %tmp1008, 2
1261  %tmp1026 = and i64 %tmp1025, 1
1262  %tmp1027 = icmp eq i64 %tmp1026, 0
1263  %tmp1028 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1025
1264  %tmp1029 = load i32, ptr %tmp1028, align 4
1265  %tmp1030 = sub i32 0, %tmp1029
1266  %tmp1031 = select i1 %tmp1027, i32 %tmp1029, i32 %tmp1030
1267  %tmp1032 = add i32 %tmp1031, %tmp1024
1268  %tmp1033 = add nuw nsw i64 %tmp1008, 3
1269  %tmp1034 = and i64 %tmp1033, 1
1270  %tmp1035 = icmp eq i64 %tmp1034, 0
1271  %tmp1036 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1033
1272  %tmp1037 = load i32, ptr %tmp1036, align 4
1273  %tmp1038 = sub i32 0, %tmp1037
1274  %tmp1039 = select i1 %tmp1035, i32 %tmp1037, i32 %tmp1038
1275  %tmp1040 = add i32 %tmp1039, %tmp1032
1276  %tmp1041 = add nuw nsw i64 %tmp1008, 4
1277  %tmp1042 = and i64 %tmp1041, 1
1278  %tmp1043 = icmp eq i64 %tmp1042, 0
1279  %tmp1044 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1041
1280  %tmp1045 = load i32, ptr %tmp1044, align 4
1281  %tmp1046 = sub i32 0, %tmp1045
1282  %tmp1047 = select i1 %tmp1043, i32 %tmp1045, i32 %tmp1046
1283  %tmp1048 = add i32 %tmp1047, %tmp1040
1284  %tmp1049 = add nuw nsw i64 %tmp1008, 5
1285  %tmp1050 = icmp eq i64 %tmp1049, 10000
1286  br i1 %tmp1050, label %bb1051, label %bb1007
1287
1288bb1051:                                           ; preds = %bb1007
1289  %tmp1052 = add i32 %tmp382, %tmp385
1290  %tmp1053 = add i32 %tmp1052, %tmp520
1291  %tmp1054 = add i32 %tmp1053, %tmp564
1292  %tmp1055 = sub i32 %tmp1054, %tmp608
1293  %tmp1056 = add i32 %tmp1055, %tmp652
1294  %tmp1057 = sub i32 %tmp1056, %tmp696
1295  %tmp1058 = add i32 %tmp1057, %tmp740
1296  %tmp1059 = sub i32 %tmp1058, %tmp784
1297  %tmp1060 = add i32 %tmp1059, %tmp828
1298  %tmp1061 = sub i32 %tmp1060, %tmp872
1299  %tmp1062 = add i32 %tmp1061, %tmp916
1300  %tmp1063 = sub i32 %tmp1062, %tmp960
1301  %tmp1064 = add i32 %tmp1063, %tmp1004
1302  %tmp1065 = sub i32 %tmp1064, %tmp1048
1303  call void @llvm.lifetime.end.p0(i64 40000, ptr nonnull %tmp18) #4
1304  call void @llvm.lifetime.end.p0(i64 40000, ptr nonnull %tmp17) #4
1305  call void @llvm.lifetime.end.p0(i64 40000, ptr nonnull %tmp16) #4
1306  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %tmp15) #4
1307  call void @llvm.lifetime.end.p0(i64 40000, ptr nonnull %tmp14) #4
1308  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %tmp13) #4
1309  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %tmp12) #4
1310  call void @llvm.lifetime.end.p0(i64 40000, ptr nonnull %tmp11) #4
1311  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %tmp10) #4
1312  call void @llvm.lifetime.end.p0(i64 40000, ptr nonnull %tmp9) #4
1313  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %tmp8) #4
1314  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %tmp7) #4
1315  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %tmp) #4
1316  ret i32 %tmp1065
1317}
1318
1319; Function Attrs: argmemonly nounwind
1320declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1) #1
1321
1322; Function Attrs: argmemonly nounwind
1323declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1) #1
1324