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