Now that #149310 has restricted lifetime intrinsics to only work on allocas, we can also drop the explicit size argument. Instead, the size is implied by the alloca. This removes the ability to only mark a prefix of an alloca alive/dead. We never used that capability, so we should remove the need to handle that possibility everywhere (though many key places, including stack coloring, did not actually respect this).
1324 lines
57 KiB
LLVM
1324 lines
57 KiB
LLVM
; RUN: opt -loop-reduce -S < %s | FileCheck %s
|
|
; RUN: opt -loop-reduce -lsr-complexity-limit=2147483647 -S < %s | FileCheck %s
|
|
|
|
; Test compile time should be <1sec (no hang).
|
|
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
|
|
|
; Function Attrs: argmemonly nounwind
|
|
declare void @llvm.lifetime.start.p0(ptr nocapture) #1
|
|
|
|
; Function Attrs: argmemonly nounwind
|
|
declare void @llvm.lifetime.end.p0(ptr nocapture) #1
|
|
|
|
; Function Attrs: nounwind readnone uwtable
|
|
define dso_local i32 @foo(i32 %arg, i32 %arg1, i32 %arg2, i32 %arg3, i32 %arg4, i32 %arg5, i32 %arg6) local_unnamed_addr #3 {
|
|
; CHECK-LABEL: @foo(
|
|
; CHECK: bb33:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb58:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb81:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb104:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb127:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb150:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb173:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb196:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb219:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb242:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb265:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb288:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb311:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb340:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb403:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb433:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb567:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb611:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb655:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb699:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb743:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb787:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb831:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb875:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb919:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb963:
|
|
; CHECK: lsr.iv
|
|
; CHECK: bb1007:
|
|
; CHECK: lsr.iv
|
|
; CHECK: ret
|
|
;
|
|
bb:
|
|
%tmp = alloca [100 x i32], align 16
|
|
%tmp7 = alloca [100 x i32], align 16
|
|
%tmp8 = alloca [100 x i32], align 16
|
|
%tmp9 = alloca [100 x [100 x i32]], align 16
|
|
%tmp10 = alloca [100 x i32], align 16
|
|
%tmp11 = alloca [100 x [100 x i32]], align 16
|
|
%tmp12 = alloca [100 x i32], align 16
|
|
%tmp13 = alloca [100 x i32], align 16
|
|
%tmp14 = alloca [100 x [100 x i32]], align 16
|
|
%tmp15 = alloca [100 x i32], align 16
|
|
%tmp16 = alloca [100 x [100 x i32]], align 16
|
|
%tmp17 = alloca [100 x [100 x i32]], align 16
|
|
%tmp18 = alloca [100 x [100 x i32]], align 16
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp, i8 0, i64 400, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp7) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp7, i8 0, i64 400, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp8) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp8, i8 0, i64 400, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp9) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp9, i8 0, i64 40000, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp10) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp10, i8 0, i64 400, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp11) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp11, i8 0, i64 40000, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp12) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp12, i8 0, i64 400, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp13) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp13, i8 0, i64 400, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp14) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp14, i8 0, i64 40000, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp15) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp15, i8 0, i64 400, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp16) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp16, i8 0, i64 40000, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp17) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp17, i8 0, i64 40000, i1 false)
|
|
call void @llvm.lifetime.start.p0(ptr nonnull %tmp18) #4
|
|
call void @llvm.memset.p0.i64(ptr nonnull align 16 %tmp18, i8 0, i64 40000, i1 false)
|
|
%tmp32 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 3
|
|
br label %bb33
|
|
|
|
bb33: ; preds = %bb33, %bb
|
|
%tmp34 = phi i64 [ 0, %bb ], [ %tmp54, %bb33 ]
|
|
%tmp35 = trunc i64 %tmp34 to i32
|
|
%tmp36 = add i32 %tmp35, 48
|
|
%tmp37 = urem i32 %tmp36, 101
|
|
%tmp38 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp34
|
|
store i32 %tmp37, ptr %tmp38, align 16
|
|
%tmp39 = or i64 %tmp34, 1
|
|
%tmp40 = trunc i64 %tmp39 to i32
|
|
%tmp41 = sub i32 48, %tmp40
|
|
%tmp42 = urem i32 %tmp41, 101
|
|
%tmp43 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp39
|
|
store i32 %tmp42, ptr %tmp43, align 4
|
|
%tmp44 = or i64 %tmp34, 2
|
|
%tmp45 = trunc i64 %tmp44 to i32
|
|
%tmp46 = add i32 %tmp45, 48
|
|
%tmp47 = urem i32 %tmp46, 101
|
|
%tmp48 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp44
|
|
store i32 %tmp47, ptr %tmp48, align 8
|
|
%tmp49 = or i64 %tmp34, 3
|
|
%tmp50 = trunc i64 %tmp49 to i32
|
|
%tmp51 = sub i32 48, %tmp50
|
|
%tmp52 = urem i32 %tmp51, 101
|
|
%tmp53 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp49
|
|
store i32 %tmp52, ptr %tmp53, align 4
|
|
%tmp54 = add nuw nsw i64 %tmp34, 4
|
|
%tmp55 = icmp eq i64 %tmp54, 100
|
|
br i1 %tmp55, label %bb56, label %bb33
|
|
|
|
bb56: ; preds = %bb33
|
|
%tmp57 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 88, i64 91
|
|
br label %bb58
|
|
|
|
bb58: ; preds = %bb58, %bb56
|
|
%tmp59 = phi i64 [ 0, %bb56 ], [ %tmp79, %bb58 ]
|
|
%tmp60 = trunc i64 %tmp59 to i32
|
|
%tmp61 = add i32 %tmp60, 83
|
|
%tmp62 = urem i32 %tmp61, 101
|
|
%tmp63 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp59
|
|
store i32 %tmp62, ptr %tmp63, align 16
|
|
%tmp64 = or i64 %tmp59, 1
|
|
%tmp65 = trunc i64 %tmp64 to i32
|
|
%tmp66 = sub i32 83, %tmp65
|
|
%tmp67 = urem i32 %tmp66, 101
|
|
%tmp68 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp64
|
|
store i32 %tmp67, ptr %tmp68, align 4
|
|
%tmp69 = or i64 %tmp59, 2
|
|
%tmp70 = trunc i64 %tmp69 to i32
|
|
%tmp71 = add i32 %tmp70, 83
|
|
%tmp72 = urem i32 %tmp71, 101
|
|
%tmp73 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp69
|
|
store i32 %tmp72, ptr %tmp73, align 8
|
|
%tmp74 = or i64 %tmp59, 3
|
|
%tmp75 = trunc i64 %tmp74 to i32
|
|
%tmp76 = sub i32 83, %tmp75
|
|
%tmp77 = urem i32 %tmp76, 101
|
|
%tmp78 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp74
|
|
store i32 %tmp77, ptr %tmp78, align 4
|
|
%tmp79 = add nuw nsw i64 %tmp59, 4
|
|
%tmp80 = icmp eq i64 %tmp79, 100
|
|
br i1 %tmp80, label %bb81, label %bb58
|
|
|
|
bb81: ; preds = %bb81, %bb58
|
|
%tmp82 = phi i64 [ %tmp102, %bb81 ], [ 0, %bb58 ]
|
|
%tmp83 = trunc i64 %tmp82 to i32
|
|
%tmp84 = add i32 %tmp83, 15
|
|
%tmp85 = urem i32 %tmp84, 101
|
|
%tmp86 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp82
|
|
store i32 %tmp85, ptr %tmp86, align 16
|
|
%tmp87 = or i64 %tmp82, 1
|
|
%tmp88 = trunc i64 %tmp87 to i32
|
|
%tmp89 = sub i32 15, %tmp88
|
|
%tmp90 = urem i32 %tmp89, 101
|
|
%tmp91 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp87
|
|
store i32 %tmp90, ptr %tmp91, align 4
|
|
%tmp92 = or i64 %tmp82, 2
|
|
%tmp93 = trunc i64 %tmp92 to i32
|
|
%tmp94 = add i32 %tmp93, 15
|
|
%tmp95 = urem i32 %tmp94, 101
|
|
%tmp96 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp92
|
|
store i32 %tmp95, ptr %tmp96, align 8
|
|
%tmp97 = or i64 %tmp82, 3
|
|
%tmp98 = trunc i64 %tmp97 to i32
|
|
%tmp99 = sub i32 15, %tmp98
|
|
%tmp100 = urem i32 %tmp99, 101
|
|
%tmp101 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp97
|
|
store i32 %tmp100, ptr %tmp101, align 4
|
|
%tmp102 = add nuw nsw i64 %tmp82, 4
|
|
%tmp103 = icmp eq i64 %tmp102, 100
|
|
br i1 %tmp103, label %bb104, label %bb81
|
|
|
|
bb104: ; preds = %bb104, %bb81
|
|
%tmp105 = phi i64 [ %tmp125, %bb104 ], [ 0, %bb81 ]
|
|
%tmp106 = trunc i64 %tmp105 to i32
|
|
%tmp107 = add i32 %tmp106, 60
|
|
%tmp108 = urem i32 %tmp107, 101
|
|
%tmp109 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp105
|
|
store i32 %tmp108, ptr %tmp109, align 16
|
|
%tmp110 = or i64 %tmp105, 1
|
|
%tmp111 = trunc i64 %tmp110 to i32
|
|
%tmp112 = sub i32 60, %tmp111
|
|
%tmp113 = urem i32 %tmp112, 101
|
|
%tmp114 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp110
|
|
store i32 %tmp113, ptr %tmp114, align 4
|
|
%tmp115 = or i64 %tmp105, 2
|
|
%tmp116 = trunc i64 %tmp115 to i32
|
|
%tmp117 = add i32 %tmp116, 60
|
|
%tmp118 = urem i32 %tmp117, 101
|
|
%tmp119 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp115
|
|
store i32 %tmp118, ptr %tmp119, align 8
|
|
%tmp120 = or i64 %tmp105, 3
|
|
%tmp121 = trunc i64 %tmp120 to i32
|
|
%tmp122 = sub i32 60, %tmp121
|
|
%tmp123 = urem i32 %tmp122, 101
|
|
%tmp124 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp120
|
|
store i32 %tmp123, ptr %tmp124, align 4
|
|
%tmp125 = add nuw nsw i64 %tmp105, 4
|
|
%tmp126 = icmp eq i64 %tmp125, 10000
|
|
br i1 %tmp126, label %bb127, label %bb104
|
|
|
|
bb127: ; preds = %bb127, %bb104
|
|
%tmp128 = phi i64 [ %tmp148, %bb127 ], [ 0, %bb104 ]
|
|
%tmp129 = trunc i64 %tmp128 to i32
|
|
%tmp130 = add i32 %tmp129, 87
|
|
%tmp131 = urem i32 %tmp130, 101
|
|
%tmp132 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp128
|
|
store i32 %tmp131, ptr %tmp132, align 16
|
|
%tmp133 = or i64 %tmp128, 1
|
|
%tmp134 = trunc i64 %tmp133 to i32
|
|
%tmp135 = sub i32 87, %tmp134
|
|
%tmp136 = urem i32 %tmp135, 101
|
|
%tmp137 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp133
|
|
store i32 %tmp136, ptr %tmp137, align 4
|
|
%tmp138 = or i64 %tmp128, 2
|
|
%tmp139 = trunc i64 %tmp138 to i32
|
|
%tmp140 = add i32 %tmp139, 87
|
|
%tmp141 = urem i32 %tmp140, 101
|
|
%tmp142 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp138
|
|
store i32 %tmp141, ptr %tmp142, align 8
|
|
%tmp143 = or i64 %tmp128, 3
|
|
%tmp144 = trunc i64 %tmp143 to i32
|
|
%tmp145 = sub i32 87, %tmp144
|
|
%tmp146 = urem i32 %tmp145, 101
|
|
%tmp147 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp143
|
|
store i32 %tmp146, ptr %tmp147, align 4
|
|
%tmp148 = add nuw nsw i64 %tmp128, 4
|
|
%tmp149 = icmp eq i64 %tmp148, 100
|
|
br i1 %tmp149, label %bb150, label %bb127
|
|
|
|
bb150: ; preds = %bb150, %bb127
|
|
%tmp151 = phi i64 [ %tmp171, %bb150 ], [ 0, %bb127 ]
|
|
%tmp152 = trunc i64 %tmp151 to i32
|
|
%tmp153 = add i32 %tmp152, 36
|
|
%tmp154 = urem i32 %tmp153, 101
|
|
%tmp155 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp151
|
|
store i32 %tmp154, ptr %tmp155, align 16
|
|
%tmp156 = or i64 %tmp151, 1
|
|
%tmp157 = trunc i64 %tmp156 to i32
|
|
%tmp158 = sub i32 36, %tmp157
|
|
%tmp159 = urem i32 %tmp158, 101
|
|
%tmp160 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp156
|
|
store i32 %tmp159, ptr %tmp160, align 4
|
|
%tmp161 = or i64 %tmp151, 2
|
|
%tmp162 = trunc i64 %tmp161 to i32
|
|
%tmp163 = add i32 %tmp162, 36
|
|
%tmp164 = urem i32 %tmp163, 101
|
|
%tmp165 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp161
|
|
store i32 %tmp164, ptr %tmp165, align 8
|
|
%tmp166 = or i64 %tmp151, 3
|
|
%tmp167 = trunc i64 %tmp166 to i32
|
|
%tmp168 = sub i32 36, %tmp167
|
|
%tmp169 = urem i32 %tmp168, 101
|
|
%tmp170 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp166
|
|
store i32 %tmp169, ptr %tmp170, align 4
|
|
%tmp171 = add nuw nsw i64 %tmp151, 4
|
|
%tmp172 = icmp eq i64 %tmp171, 10000
|
|
br i1 %tmp172, label %bb173, label %bb150
|
|
|
|
bb173: ; preds = %bb173, %bb150
|
|
%tmp174 = phi i64 [ %tmp194, %bb173 ], [ 0, %bb150 ]
|
|
%tmp175 = trunc i64 %tmp174 to i32
|
|
%tmp176 = add i32 %tmp175, 27
|
|
%tmp177 = urem i32 %tmp176, 101
|
|
%tmp178 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp174
|
|
store i32 %tmp177, ptr %tmp178, align 16
|
|
%tmp179 = or i64 %tmp174, 1
|
|
%tmp180 = trunc i64 %tmp179 to i32
|
|
%tmp181 = sub i32 27, %tmp180
|
|
%tmp182 = urem i32 %tmp181, 101
|
|
%tmp183 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp179
|
|
store i32 %tmp182, ptr %tmp183, align 4
|
|
%tmp184 = or i64 %tmp174, 2
|
|
%tmp185 = trunc i64 %tmp184 to i32
|
|
%tmp186 = add i32 %tmp185, 27
|
|
%tmp187 = urem i32 %tmp186, 101
|
|
%tmp188 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp184
|
|
store i32 %tmp187, ptr %tmp188, align 8
|
|
%tmp189 = or i64 %tmp174, 3
|
|
%tmp190 = trunc i64 %tmp189 to i32
|
|
%tmp191 = sub i32 27, %tmp190
|
|
%tmp192 = urem i32 %tmp191, 101
|
|
%tmp193 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp189
|
|
store i32 %tmp192, ptr %tmp193, align 4
|
|
%tmp194 = add nuw nsw i64 %tmp174, 4
|
|
%tmp195 = icmp eq i64 %tmp194, 100
|
|
br i1 %tmp195, label %bb196, label %bb173
|
|
|
|
bb196: ; preds = %bb196, %bb173
|
|
%tmp197 = phi i64 [ %tmp217, %bb196 ], [ 0, %bb173 ]
|
|
%tmp198 = trunc i64 %tmp197 to i32
|
|
%tmp199 = add i32 %tmp198, 40
|
|
%tmp200 = urem i32 %tmp199, 101
|
|
%tmp201 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp197
|
|
store i32 %tmp200, ptr %tmp201, align 16
|
|
%tmp202 = or i64 %tmp197, 1
|
|
%tmp203 = trunc i64 %tmp202 to i32
|
|
%tmp204 = sub i32 40, %tmp203
|
|
%tmp205 = urem i32 %tmp204, 101
|
|
%tmp206 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp202
|
|
store i32 %tmp205, ptr %tmp206, align 4
|
|
%tmp207 = or i64 %tmp197, 2
|
|
%tmp208 = trunc i64 %tmp207 to i32
|
|
%tmp209 = add i32 %tmp208, 40
|
|
%tmp210 = urem i32 %tmp209, 101
|
|
%tmp211 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp207
|
|
store i32 %tmp210, ptr %tmp211, align 8
|
|
%tmp212 = or i64 %tmp197, 3
|
|
%tmp213 = trunc i64 %tmp212 to i32
|
|
%tmp214 = sub i32 40, %tmp213
|
|
%tmp215 = urem i32 %tmp214, 101
|
|
%tmp216 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp212
|
|
store i32 %tmp215, ptr %tmp216, align 4
|
|
%tmp217 = add nuw nsw i64 %tmp197, 4
|
|
%tmp218 = icmp eq i64 %tmp217, 100
|
|
br i1 %tmp218, label %bb219, label %bb196
|
|
|
|
bb219: ; preds = %bb219, %bb196
|
|
%tmp220 = phi i64 [ %tmp240, %bb219 ], [ 0, %bb196 ]
|
|
%tmp221 = trunc i64 %tmp220 to i32
|
|
%tmp222 = add i32 %tmp221, 84
|
|
%tmp223 = urem i32 %tmp222, 101
|
|
%tmp224 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp220
|
|
store i32 %tmp223, ptr %tmp224, align 16
|
|
%tmp225 = or i64 %tmp220, 1
|
|
%tmp226 = trunc i64 %tmp225 to i32
|
|
%tmp227 = sub i32 84, %tmp226
|
|
%tmp228 = urem i32 %tmp227, 101
|
|
%tmp229 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp225
|
|
store i32 %tmp228, ptr %tmp229, align 4
|
|
%tmp230 = or i64 %tmp220, 2
|
|
%tmp231 = trunc i64 %tmp230 to i32
|
|
%tmp232 = add i32 %tmp231, 84
|
|
%tmp233 = urem i32 %tmp232, 101
|
|
%tmp234 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp230
|
|
store i32 %tmp233, ptr %tmp234, align 8
|
|
%tmp235 = or i64 %tmp220, 3
|
|
%tmp236 = trunc i64 %tmp235 to i32
|
|
%tmp237 = sub i32 84, %tmp236
|
|
%tmp238 = urem i32 %tmp237, 101
|
|
%tmp239 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp235
|
|
store i32 %tmp238, ptr %tmp239, align 4
|
|
%tmp240 = add nuw nsw i64 %tmp220, 4
|
|
%tmp241 = icmp eq i64 %tmp240, 10000
|
|
br i1 %tmp241, label %bb242, label %bb219
|
|
|
|
bb242: ; preds = %bb242, %bb219
|
|
%tmp243 = phi i64 [ %tmp263, %bb242 ], [ 0, %bb219 ]
|
|
%tmp244 = trunc i64 %tmp243 to i32
|
|
%tmp245 = add i32 %tmp244, 94
|
|
%tmp246 = urem i32 %tmp245, 101
|
|
%tmp247 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp243
|
|
store i32 %tmp246, ptr %tmp247, align 16
|
|
%tmp248 = or i64 %tmp243, 1
|
|
%tmp249 = trunc i64 %tmp248 to i32
|
|
%tmp250 = sub i32 94, %tmp249
|
|
%tmp251 = urem i32 %tmp250, 101
|
|
%tmp252 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp248
|
|
store i32 %tmp251, ptr %tmp252, align 4
|
|
%tmp253 = or i64 %tmp243, 2
|
|
%tmp254 = trunc i64 %tmp253 to i32
|
|
%tmp255 = add i32 %tmp254, 94
|
|
%tmp256 = urem i32 %tmp255, 101
|
|
%tmp257 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp253
|
|
store i32 %tmp256, ptr %tmp257, align 8
|
|
%tmp258 = or i64 %tmp243, 3
|
|
%tmp259 = trunc i64 %tmp258 to i32
|
|
%tmp260 = sub i32 94, %tmp259
|
|
%tmp261 = urem i32 %tmp260, 101
|
|
%tmp262 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp258
|
|
store i32 %tmp261, ptr %tmp262, align 4
|
|
%tmp263 = add nuw nsw i64 %tmp243, 4
|
|
%tmp264 = icmp eq i64 %tmp263, 100
|
|
br i1 %tmp264, label %bb265, label %bb242
|
|
|
|
bb265: ; preds = %bb265, %bb242
|
|
%tmp266 = phi i64 [ %tmp286, %bb265 ], [ 0, %bb242 ]
|
|
%tmp267 = trunc i64 %tmp266 to i32
|
|
%tmp268 = add i32 %tmp267, 92
|
|
%tmp269 = urem i32 %tmp268, 101
|
|
%tmp270 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp266
|
|
store i32 %tmp269, ptr %tmp270, align 16
|
|
%tmp271 = or i64 %tmp266, 1
|
|
%tmp272 = trunc i64 %tmp271 to i32
|
|
%tmp273 = sub i32 92, %tmp272
|
|
%tmp274 = urem i32 %tmp273, 101
|
|
%tmp275 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp271
|
|
store i32 %tmp274, ptr %tmp275, align 4
|
|
%tmp276 = or i64 %tmp266, 2
|
|
%tmp277 = trunc i64 %tmp276 to i32
|
|
%tmp278 = add i32 %tmp277, 92
|
|
%tmp279 = urem i32 %tmp278, 101
|
|
%tmp280 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp276
|
|
store i32 %tmp279, ptr %tmp280, align 8
|
|
%tmp281 = or i64 %tmp266, 3
|
|
%tmp282 = trunc i64 %tmp281 to i32
|
|
%tmp283 = sub i32 92, %tmp282
|
|
%tmp284 = urem i32 %tmp283, 101
|
|
%tmp285 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp281
|
|
store i32 %tmp284, ptr %tmp285, align 4
|
|
%tmp286 = add nuw nsw i64 %tmp266, 4
|
|
%tmp287 = icmp eq i64 %tmp286, 10000
|
|
br i1 %tmp287, label %bb288, label %bb265
|
|
|
|
bb288: ; preds = %bb288, %bb265
|
|
%tmp289 = phi i64 [ %tmp309, %bb288 ], [ 0, %bb265 ]
|
|
%tmp290 = trunc i64 %tmp289 to i32
|
|
%tmp291 = add i32 %tmp290, 87
|
|
%tmp292 = urem i32 %tmp291, 101
|
|
%tmp293 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp289
|
|
store i32 %tmp292, ptr %tmp293, align 16
|
|
%tmp294 = or i64 %tmp289, 1
|
|
%tmp295 = trunc i64 %tmp294 to i32
|
|
%tmp296 = sub i32 87, %tmp295
|
|
%tmp297 = urem i32 %tmp296, 101
|
|
%tmp298 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp294
|
|
store i32 %tmp297, ptr %tmp298, align 4
|
|
%tmp299 = or i64 %tmp289, 2
|
|
%tmp300 = trunc i64 %tmp299 to i32
|
|
%tmp301 = add i32 %tmp300, 87
|
|
%tmp302 = urem i32 %tmp301, 101
|
|
%tmp303 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp299
|
|
store i32 %tmp302, ptr %tmp303, align 8
|
|
%tmp304 = or i64 %tmp289, 3
|
|
%tmp305 = trunc i64 %tmp304 to i32
|
|
%tmp306 = sub i32 87, %tmp305
|
|
%tmp307 = urem i32 %tmp306, 101
|
|
%tmp308 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp304
|
|
store i32 %tmp307, ptr %tmp308, align 4
|
|
%tmp309 = add nuw nsw i64 %tmp289, 4
|
|
%tmp310 = icmp eq i64 %tmp309, 10000
|
|
br i1 %tmp310, label %bb311, label %bb288
|
|
|
|
bb311: ; preds = %bb311, %bb288
|
|
%tmp312 = phi i64 [ %tmp332, %bb311 ], [ 0, %bb288 ]
|
|
%tmp313 = trunc i64 %tmp312 to i32
|
|
%tmp314 = add i32 %tmp313, 28
|
|
%tmp315 = urem i32 %tmp314, 101
|
|
%tmp316 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp312
|
|
store i32 %tmp315, ptr %tmp316, align 16
|
|
%tmp317 = or i64 %tmp312, 1
|
|
%tmp318 = trunc i64 %tmp317 to i32
|
|
%tmp319 = sub i32 28, %tmp318
|
|
%tmp320 = urem i32 %tmp319, 101
|
|
%tmp321 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp317
|
|
store i32 %tmp320, ptr %tmp321, align 4
|
|
%tmp322 = or i64 %tmp312, 2
|
|
%tmp323 = trunc i64 %tmp322 to i32
|
|
%tmp324 = add i32 %tmp323, 28
|
|
%tmp325 = urem i32 %tmp324, 101
|
|
%tmp326 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp322
|
|
store i32 %tmp325, ptr %tmp326, align 8
|
|
%tmp327 = or i64 %tmp312, 3
|
|
%tmp328 = trunc i64 %tmp327 to i32
|
|
%tmp329 = sub i32 28, %tmp328
|
|
%tmp330 = urem i32 %tmp329, 101
|
|
%tmp331 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp327
|
|
store i32 %tmp330, ptr %tmp331, align 4
|
|
%tmp332 = add nuw nsw i64 %tmp312, 4
|
|
%tmp333 = icmp eq i64 %tmp332, 10000
|
|
br i1 %tmp333, label %bb334, label %bb311
|
|
|
|
bb334: ; preds = %bb311
|
|
%tmp335 = sub i32 87, %arg
|
|
%tmp336 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 69
|
|
%tmp337 = load i32, ptr %tmp336, align 4
|
|
%tmp338 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 68
|
|
%tmp339 = load i32, ptr %tmp338, align 16
|
|
br label %bb340
|
|
|
|
bb340: ; preds = %bb340, %bb334
|
|
%tmp341 = phi i32 [ %tmp339, %bb334 ], [ %tmp373, %bb340 ]
|
|
%tmp342 = phi i32 [ %tmp337, %bb334 ], [ %tmp379, %bb340 ]
|
|
%tmp343 = phi i64 [ 68, %bb334 ], [ %tmp371, %bb340 ]
|
|
%tmp344 = phi i32 [ %tmp335, %bb334 ], [ %tmp382, %bb340 ]
|
|
%tmp345 = phi i32 [ %arg2, %bb334 ], [ %tmp380, %bb340 ]
|
|
%tmp346 = add nsw i64 %tmp343, -1
|
|
%tmp347 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp346
|
|
%tmp348 = load i32, ptr %tmp347, align 4
|
|
%tmp349 = add nuw nsw i64 %tmp343, 1
|
|
%tmp350 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp349
|
|
%tmp351 = sub i32 %tmp342, %tmp348
|
|
store i32 %tmp351, ptr %tmp350, align 4
|
|
%tmp352 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp343
|
|
%tmp353 = load i32, ptr %tmp352, align 4
|
|
%tmp354 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp343
|
|
%tmp355 = add i32 %tmp341, %tmp353
|
|
store i32 %tmp355, ptr %tmp354, align 4
|
|
%tmp356 = add i32 %tmp345, -1
|
|
%tmp357 = sub i32 %tmp344, %tmp345
|
|
%tmp358 = sub i32 %tmp357, %tmp351
|
|
%tmp359 = add nsw i64 %tmp343, -2
|
|
%tmp360 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp359
|
|
%tmp361 = load i32, ptr %tmp360, align 4
|
|
%tmp362 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp343
|
|
%tmp363 = sub i32 %tmp355, %tmp361
|
|
store i32 %tmp363, ptr %tmp362, align 4
|
|
%tmp364 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp346
|
|
%tmp365 = load i32, ptr %tmp364, align 4
|
|
%tmp366 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp346
|
|
%tmp367 = add i32 %tmp348, %tmp365
|
|
store i32 %tmp367, ptr %tmp366, align 4
|
|
%tmp368 = add i32 %tmp345, -2
|
|
%tmp369 = sub i32 %tmp358, %tmp356
|
|
%tmp370 = sub i32 %tmp369, %tmp363
|
|
%tmp371 = add nsw i64 %tmp343, -3
|
|
%tmp372 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp371
|
|
%tmp373 = load i32, ptr %tmp372, align 4
|
|
%tmp374 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp346
|
|
%tmp375 = sub i32 %tmp367, %tmp373
|
|
store i32 %tmp375, ptr %tmp374, align 4
|
|
%tmp376 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp359
|
|
%tmp377 = load i32, ptr %tmp376, align 4
|
|
%tmp378 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp359
|
|
%tmp379 = add i32 %tmp361, %tmp377
|
|
store i32 %tmp379, ptr %tmp378, align 4
|
|
%tmp380 = add i32 %tmp345, -3
|
|
%tmp381 = sub i32 %tmp370, %tmp368
|
|
%tmp382 = sub i32 %tmp381, %tmp375
|
|
%tmp383 = icmp ugt i64 %tmp371, 2
|
|
br i1 %tmp383, label %bb340, label %bb384
|
|
|
|
bb384: ; preds = %bb340
|
|
%tmp385 = add i32 %arg2, -66
|
|
%tmp386 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 52
|
|
%tmp387 = load i32, ptr %tmp386, align 16
|
|
store i32 %tmp387, ptr %tmp32, align 4
|
|
%tmp388 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 97
|
|
%tmp389 = load i32, ptr %tmp388, align 4
|
|
%tmp390 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 31
|
|
%tmp391 = load i32, ptr %tmp390, align 4
|
|
%tmp392 = icmp eq i32 %tmp389, %tmp391
|
|
br i1 %tmp392, label %bb478, label %bb393
|
|
|
|
bb393: ; preds = %bb384
|
|
%tmp394 = sub i32 -79, %tmp382
|
|
%tmp395 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 2
|
|
%tmp397 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 2
|
|
call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %tmp395, ptr nonnull align 8 %tmp397, i64 304, i1 false)
|
|
br label %bb399
|
|
|
|
bb399: ; preds = %bb424, %bb393
|
|
%tmp400 = phi i64 [ 77, %bb393 ], [ %tmp425, %bb424 ]
|
|
br label %bb403
|
|
|
|
bb401: ; preds = %bb424
|
|
%tmp402 = add i32 %arg2, 3
|
|
br label %bb433
|
|
|
|
bb403: ; preds = %bb403, %bb399
|
|
%tmp404 = phi i64 [ 1, %bb399 ], [ %tmp414, %bb403 ]
|
|
%tmp405 = add nuw nsw i64 %tmp404, 1
|
|
%tmp406 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 %tmp404, i64 %tmp405
|
|
%tmp407 = load i32, ptr %tmp406, align 4
|
|
%tmp408 = add i32 %tmp394, %tmp407
|
|
store i32 %tmp408, ptr %tmp406, align 4
|
|
%tmp409 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 %tmp404, i64 %tmp405
|
|
%tmp410 = load i32, ptr %tmp409, align 4
|
|
%tmp411 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp405
|
|
%tmp412 = load i32, ptr %tmp411, align 4
|
|
%tmp413 = add i32 %tmp412, %tmp410
|
|
store i32 %tmp413, ptr %tmp411, align 4
|
|
%tmp414 = add nuw nsw i64 %tmp404, 2
|
|
%tmp415 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 %tmp405, i64 %tmp414
|
|
%tmp416 = load i32, ptr %tmp415, align 4
|
|
%tmp417 = add i32 %tmp394, %tmp416
|
|
store i32 %tmp417, ptr %tmp415, align 4
|
|
%tmp418 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 %tmp405, i64 %tmp414
|
|
%tmp419 = load i32, ptr %tmp418, align 4
|
|
%tmp420 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp414
|
|
%tmp421 = load i32, ptr %tmp420, align 4
|
|
%tmp422 = add i32 %tmp421, %tmp419
|
|
store i32 %tmp422, ptr %tmp420, align 4
|
|
%tmp423 = icmp eq i64 %tmp414, 47
|
|
br i1 %tmp423, label %bb424, label %bb403
|
|
|
|
bb424: ; preds = %bb403
|
|
%tmp425 = add nsw i64 %tmp400, -1
|
|
%tmp426 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp425
|
|
%tmp427 = load i32, ptr %tmp426, align 4
|
|
%tmp428 = add i32 %tmp427, 2
|
|
%tmp429 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp425
|
|
%tmp430 = load i32, ptr %tmp429, align 4
|
|
%tmp431 = mul i32 %tmp430, %tmp428
|
|
store i32 %tmp431, ptr %tmp429, align 4
|
|
%tmp432 = icmp ugt i64 %tmp425, 1
|
|
br i1 %tmp432, label %bb399, label %bb401
|
|
|
|
bb433: ; preds = %bb475, %bb401
|
|
%tmp434 = phi i64 [ 2, %bb401 ], [ %tmp437, %bb475 ]
|
|
%tmp435 = phi i32 [ 2, %bb401 ], [ %tmp476, %bb475 ]
|
|
%tmp436 = add nsw i64 %tmp434, -1
|
|
%tmp437 = add nuw nsw i64 %tmp434, 1
|
|
%tmp438 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 %tmp437, i64 %tmp434
|
|
%tmp439 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 %tmp436, i64 %tmp437
|
|
%tmp440 = mul i32 %tmp435, 47
|
|
br label %bb441
|
|
|
|
bb441: ; preds = %bb473, %bb433
|
|
%tmp442 = phi i64 [ 1, %bb433 ], [ %tmp450, %bb473 ]
|
|
%tmp443 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp442
|
|
%tmp444 = load i32, ptr %tmp443, align 4
|
|
%tmp445 = add nsw i64 %tmp442, -1
|
|
%tmp446 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp445
|
|
%tmp447 = load i32, ptr %tmp446, align 4
|
|
%tmp448 = xor i32 %tmp444, -1
|
|
%tmp449 = add i32 %tmp447, %tmp448
|
|
store i32 %tmp449, ptr %tmp446, align 4
|
|
%tmp450 = add nuw nsw i64 %tmp442, 1
|
|
%tmp451 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 %tmp436, i64 %tmp450
|
|
%tmp452 = load i32, ptr %tmp451, align 4
|
|
%tmp453 = mul i32 %tmp452, 91
|
|
%tmp454 = icmp eq i32 %tmp453, -30
|
|
br i1 %tmp454, label %bb455, label %bb473
|
|
|
|
bb455: ; preds = %bb441
|
|
%tmp456 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp442
|
|
%tmp457 = load i32, ptr %tmp456, align 4
|
|
%tmp458 = icmp ugt i32 %tmp457, %tmp402
|
|
br i1 %tmp458, label %bb459, label %bb473
|
|
|
|
bb459: ; preds = %bb455
|
|
%tmp460 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 %tmp445, i64 %tmp436
|
|
store i32 %tmp387, ptr %tmp460, align 4
|
|
%tmp461 = load i32, ptr %tmp57, align 4
|
|
%tmp462 = load i32, ptr %tmp438, align 4
|
|
%tmp463 = add i32 %tmp462, %tmp461
|
|
%tmp464 = load i32, ptr %tmp439, align 4
|
|
%tmp465 = add i32 %tmp464, 68
|
|
%tmp466 = icmp eq i32 %tmp463, %tmp465
|
|
br i1 %tmp466, label %bb471, label %bb467
|
|
|
|
bb467: ; preds = %bb459
|
|
%tmp468 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp450
|
|
%tmp469 = load i32, ptr %tmp468, align 4
|
|
%tmp470 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp445
|
|
store i32 %tmp469, ptr %tmp470, align 4
|
|
br label %bb473
|
|
|
|
bb471: ; preds = %bb459
|
|
%tmp472 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 %tmp437, i64 %tmp445
|
|
store i32 %tmp440, ptr %tmp472, align 4
|
|
br label %bb473
|
|
|
|
bb473: ; preds = %bb471, %bb467, %bb455, %bb441
|
|
%tmp474 = icmp eq i64 %tmp450, 13
|
|
br i1 %tmp474, label %bb475, label %bb441
|
|
|
|
bb475: ; preds = %bb473
|
|
%tmp476 = add nuw nsw i32 %tmp435, 1
|
|
%tmp477 = icmp eq i64 %tmp437, 69
|
|
br i1 %tmp477, label %bb478, label %bb433
|
|
|
|
bb478: ; preds = %bb475, %bb384
|
|
br label %bb479
|
|
|
|
bb479: ; preds = %bb479, %bb478
|
|
%tmp480 = phi i64 [ 0, %bb478 ], [ %tmp521, %bb479 ]
|
|
%tmp481 = phi i32 [ 0, %bb478 ], [ %tmp520, %bb479 ]
|
|
%tmp482 = and i64 %tmp480, 1
|
|
%tmp483 = icmp eq i64 %tmp482, 0
|
|
%tmp484 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp480
|
|
%tmp485 = load i32, ptr %tmp484, align 4
|
|
%tmp486 = sub i32 0, %tmp485
|
|
%tmp487 = select i1 %tmp483, i32 %tmp485, i32 %tmp486
|
|
%tmp488 = add i32 %tmp487, %tmp481
|
|
%tmp489 = add nuw nsw i64 %tmp480, 1
|
|
%tmp490 = and i64 %tmp489, 1
|
|
%tmp491 = icmp eq i64 %tmp490, 0
|
|
%tmp492 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp489
|
|
%tmp493 = load i32, ptr %tmp492, align 4
|
|
%tmp494 = sub i32 0, %tmp493
|
|
%tmp495 = select i1 %tmp491, i32 %tmp493, i32 %tmp494
|
|
%tmp496 = add i32 %tmp495, %tmp488
|
|
%tmp497 = add nuw nsw i64 %tmp480, 2
|
|
%tmp498 = and i64 %tmp497, 1
|
|
%tmp499 = icmp eq i64 %tmp498, 0
|
|
%tmp500 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp497
|
|
%tmp501 = load i32, ptr %tmp500, align 4
|
|
%tmp502 = sub i32 0, %tmp501
|
|
%tmp503 = select i1 %tmp499, i32 %tmp501, i32 %tmp502
|
|
%tmp504 = add i32 %tmp503, %tmp496
|
|
%tmp505 = add nuw nsw i64 %tmp480, 3
|
|
%tmp506 = and i64 %tmp505, 1
|
|
%tmp507 = icmp eq i64 %tmp506, 0
|
|
%tmp508 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp505
|
|
%tmp509 = load i32, ptr %tmp508, align 4
|
|
%tmp510 = sub i32 0, %tmp509
|
|
%tmp511 = select i1 %tmp507, i32 %tmp509, i32 %tmp510
|
|
%tmp512 = add i32 %tmp511, %tmp504
|
|
%tmp513 = add nuw nsw i64 %tmp480, 4
|
|
%tmp514 = and i64 %tmp513, 1
|
|
%tmp515 = icmp eq i64 %tmp514, 0
|
|
%tmp516 = getelementptr inbounds [100 x i32], ptr %tmp, i64 0, i64 %tmp513
|
|
%tmp517 = load i32, ptr %tmp516, align 4
|
|
%tmp518 = sub i32 0, %tmp517
|
|
%tmp519 = select i1 %tmp515, i32 %tmp517, i32 %tmp518
|
|
%tmp520 = add i32 %tmp519, %tmp512
|
|
%tmp521 = add nuw nsw i64 %tmp480, 5
|
|
%tmp522 = icmp eq i64 %tmp521, 100
|
|
br i1 %tmp522, label %bb523, label %bb479
|
|
|
|
bb523: ; preds = %bb523, %bb479
|
|
%tmp524 = phi i64 [ %tmp565, %bb523 ], [ 0, %bb479 ]
|
|
%tmp525 = phi i32 [ %tmp564, %bb523 ], [ 0, %bb479 ]
|
|
%tmp526 = and i64 %tmp524, 1
|
|
%tmp527 = icmp eq i64 %tmp526, 0
|
|
%tmp528 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp524
|
|
%tmp529 = load i32, ptr %tmp528, align 4
|
|
%tmp530 = sub i32 0, %tmp529
|
|
%tmp531 = select i1 %tmp527, i32 %tmp529, i32 %tmp530
|
|
%tmp532 = add i32 %tmp531, %tmp525
|
|
%tmp533 = add nuw nsw i64 %tmp524, 1
|
|
%tmp534 = and i64 %tmp533, 1
|
|
%tmp535 = icmp eq i64 %tmp534, 0
|
|
%tmp536 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp533
|
|
%tmp537 = load i32, ptr %tmp536, align 4
|
|
%tmp538 = sub i32 0, %tmp537
|
|
%tmp539 = select i1 %tmp535, i32 %tmp537, i32 %tmp538
|
|
%tmp540 = add i32 %tmp539, %tmp532
|
|
%tmp541 = add nuw nsw i64 %tmp524, 2
|
|
%tmp542 = and i64 %tmp541, 1
|
|
%tmp543 = icmp eq i64 %tmp542, 0
|
|
%tmp544 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp541
|
|
%tmp545 = load i32, ptr %tmp544, align 4
|
|
%tmp546 = sub i32 0, %tmp545
|
|
%tmp547 = select i1 %tmp543, i32 %tmp545, i32 %tmp546
|
|
%tmp548 = add i32 %tmp547, %tmp540
|
|
%tmp549 = add nuw nsw i64 %tmp524, 3
|
|
%tmp550 = and i64 %tmp549, 1
|
|
%tmp551 = icmp eq i64 %tmp550, 0
|
|
%tmp552 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp549
|
|
%tmp553 = load i32, ptr %tmp552, align 4
|
|
%tmp554 = sub i32 0, %tmp553
|
|
%tmp555 = select i1 %tmp551, i32 %tmp553, i32 %tmp554
|
|
%tmp556 = add i32 %tmp555, %tmp548
|
|
%tmp557 = add nuw nsw i64 %tmp524, 4
|
|
%tmp558 = and i64 %tmp557, 1
|
|
%tmp559 = icmp eq i64 %tmp558, 0
|
|
%tmp560 = getelementptr inbounds [100 x i32], ptr %tmp7, i64 0, i64 %tmp557
|
|
%tmp561 = load i32, ptr %tmp560, align 4
|
|
%tmp562 = sub i32 0, %tmp561
|
|
%tmp563 = select i1 %tmp559, i32 %tmp561, i32 %tmp562
|
|
%tmp564 = add i32 %tmp563, %tmp556
|
|
%tmp565 = add nuw nsw i64 %tmp524, 5
|
|
%tmp566 = icmp eq i64 %tmp565, 100
|
|
br i1 %tmp566, label %bb567, label %bb523
|
|
|
|
bb567: ; preds = %bb567, %bb523
|
|
%tmp568 = phi i64 [ %tmp609, %bb567 ], [ 0, %bb523 ]
|
|
%tmp569 = phi i32 [ %tmp608, %bb567 ], [ 0, %bb523 ]
|
|
%tmp570 = and i64 %tmp568, 1
|
|
%tmp571 = icmp eq i64 %tmp570, 0
|
|
%tmp572 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp568
|
|
%tmp573 = load i32, ptr %tmp572, align 4
|
|
%tmp574 = sub i32 0, %tmp573
|
|
%tmp575 = select i1 %tmp571, i32 %tmp573, i32 %tmp574
|
|
%tmp576 = add i32 %tmp575, %tmp569
|
|
%tmp577 = add nuw nsw i64 %tmp568, 1
|
|
%tmp578 = and i64 %tmp577, 1
|
|
%tmp579 = icmp eq i64 %tmp578, 0
|
|
%tmp580 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp577
|
|
%tmp581 = load i32, ptr %tmp580, align 4
|
|
%tmp582 = sub i32 0, %tmp581
|
|
%tmp583 = select i1 %tmp579, i32 %tmp581, i32 %tmp582
|
|
%tmp584 = add i32 %tmp583, %tmp576
|
|
%tmp585 = add nuw nsw i64 %tmp568, 2
|
|
%tmp586 = and i64 %tmp585, 1
|
|
%tmp587 = icmp eq i64 %tmp586, 0
|
|
%tmp588 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp585
|
|
%tmp589 = load i32, ptr %tmp588, align 4
|
|
%tmp590 = sub i32 0, %tmp589
|
|
%tmp591 = select i1 %tmp587, i32 %tmp589, i32 %tmp590
|
|
%tmp592 = add i32 %tmp591, %tmp584
|
|
%tmp593 = add nuw nsw i64 %tmp568, 3
|
|
%tmp594 = and i64 %tmp593, 1
|
|
%tmp595 = icmp eq i64 %tmp594, 0
|
|
%tmp596 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp593
|
|
%tmp597 = load i32, ptr %tmp596, align 4
|
|
%tmp598 = sub i32 0, %tmp597
|
|
%tmp599 = select i1 %tmp595, i32 %tmp597, i32 %tmp598
|
|
%tmp600 = add i32 %tmp599, %tmp592
|
|
%tmp601 = add nuw nsw i64 %tmp568, 4
|
|
%tmp602 = and i64 %tmp601, 1
|
|
%tmp603 = icmp eq i64 %tmp602, 0
|
|
%tmp604 = getelementptr inbounds [100 x i32], ptr %tmp8, i64 0, i64 %tmp601
|
|
%tmp605 = load i32, ptr %tmp604, align 4
|
|
%tmp606 = sub i32 0, %tmp605
|
|
%tmp607 = select i1 %tmp603, i32 %tmp605, i32 %tmp606
|
|
%tmp608 = add i32 %tmp607, %tmp600
|
|
%tmp609 = add nuw nsw i64 %tmp568, 5
|
|
%tmp610 = icmp eq i64 %tmp609, 100
|
|
br i1 %tmp610, label %bb611, label %bb567
|
|
|
|
bb611: ; preds = %bb611, %bb567
|
|
%tmp612 = phi i64 [ %tmp653, %bb611 ], [ 0, %bb567 ]
|
|
%tmp613 = phi i32 [ %tmp652, %bb611 ], [ 0, %bb567 ]
|
|
%tmp614 = and i64 %tmp612, 1
|
|
%tmp615 = icmp eq i64 %tmp614, 0
|
|
%tmp616 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp612
|
|
%tmp617 = load i32, ptr %tmp616, align 4
|
|
%tmp618 = sub i32 0, %tmp617
|
|
%tmp619 = select i1 %tmp615, i32 %tmp617, i32 %tmp618
|
|
%tmp620 = add i32 %tmp619, %tmp613
|
|
%tmp621 = add nuw nsw i64 %tmp612, 1
|
|
%tmp622 = and i64 %tmp621, 1
|
|
%tmp623 = icmp eq i64 %tmp622, 0
|
|
%tmp624 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp621
|
|
%tmp625 = load i32, ptr %tmp624, align 4
|
|
%tmp626 = sub i32 0, %tmp625
|
|
%tmp627 = select i1 %tmp623, i32 %tmp625, i32 %tmp626
|
|
%tmp628 = add i32 %tmp627, %tmp620
|
|
%tmp629 = add nuw nsw i64 %tmp612, 2
|
|
%tmp630 = and i64 %tmp629, 1
|
|
%tmp631 = icmp eq i64 %tmp630, 0
|
|
%tmp632 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp629
|
|
%tmp633 = load i32, ptr %tmp632, align 4
|
|
%tmp634 = sub i32 0, %tmp633
|
|
%tmp635 = select i1 %tmp631, i32 %tmp633, i32 %tmp634
|
|
%tmp636 = add i32 %tmp635, %tmp628
|
|
%tmp637 = add nuw nsw i64 %tmp612, 3
|
|
%tmp638 = and i64 %tmp637, 1
|
|
%tmp639 = icmp eq i64 %tmp638, 0
|
|
%tmp640 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp637
|
|
%tmp641 = load i32, ptr %tmp640, align 4
|
|
%tmp642 = sub i32 0, %tmp641
|
|
%tmp643 = select i1 %tmp639, i32 %tmp641, i32 %tmp642
|
|
%tmp644 = add i32 %tmp643, %tmp636
|
|
%tmp645 = add nuw nsw i64 %tmp612, 4
|
|
%tmp646 = and i64 %tmp645, 1
|
|
%tmp647 = icmp eq i64 %tmp646, 0
|
|
%tmp648 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp9, i64 0, i64 0, i64 %tmp645
|
|
%tmp649 = load i32, ptr %tmp648, align 4
|
|
%tmp650 = sub i32 0, %tmp649
|
|
%tmp651 = select i1 %tmp647, i32 %tmp649, i32 %tmp650
|
|
%tmp652 = add i32 %tmp651, %tmp644
|
|
%tmp653 = add nuw nsw i64 %tmp612, 5
|
|
%tmp654 = icmp eq i64 %tmp653, 10000
|
|
br i1 %tmp654, label %bb655, label %bb611
|
|
|
|
bb655: ; preds = %bb655, %bb611
|
|
%tmp656 = phi i64 [ %tmp697, %bb655 ], [ 0, %bb611 ]
|
|
%tmp657 = phi i32 [ %tmp696, %bb655 ], [ 0, %bb611 ]
|
|
%tmp658 = and i64 %tmp656, 1
|
|
%tmp659 = icmp eq i64 %tmp658, 0
|
|
%tmp660 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp656
|
|
%tmp661 = load i32, ptr %tmp660, align 4
|
|
%tmp662 = sub i32 0, %tmp661
|
|
%tmp663 = select i1 %tmp659, i32 %tmp661, i32 %tmp662
|
|
%tmp664 = add i32 %tmp663, %tmp657
|
|
%tmp665 = add nuw nsw i64 %tmp656, 1
|
|
%tmp666 = and i64 %tmp665, 1
|
|
%tmp667 = icmp eq i64 %tmp666, 0
|
|
%tmp668 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp665
|
|
%tmp669 = load i32, ptr %tmp668, align 4
|
|
%tmp670 = sub i32 0, %tmp669
|
|
%tmp671 = select i1 %tmp667, i32 %tmp669, i32 %tmp670
|
|
%tmp672 = add i32 %tmp671, %tmp664
|
|
%tmp673 = add nuw nsw i64 %tmp656, 2
|
|
%tmp674 = and i64 %tmp673, 1
|
|
%tmp675 = icmp eq i64 %tmp674, 0
|
|
%tmp676 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp673
|
|
%tmp677 = load i32, ptr %tmp676, align 4
|
|
%tmp678 = sub i32 0, %tmp677
|
|
%tmp679 = select i1 %tmp675, i32 %tmp677, i32 %tmp678
|
|
%tmp680 = add i32 %tmp679, %tmp672
|
|
%tmp681 = add nuw nsw i64 %tmp656, 3
|
|
%tmp682 = and i64 %tmp681, 1
|
|
%tmp683 = icmp eq i64 %tmp682, 0
|
|
%tmp684 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp681
|
|
%tmp685 = load i32, ptr %tmp684, align 4
|
|
%tmp686 = sub i32 0, %tmp685
|
|
%tmp687 = select i1 %tmp683, i32 %tmp685, i32 %tmp686
|
|
%tmp688 = add i32 %tmp687, %tmp680
|
|
%tmp689 = add nuw nsw i64 %tmp656, 4
|
|
%tmp690 = and i64 %tmp689, 1
|
|
%tmp691 = icmp eq i64 %tmp690, 0
|
|
%tmp692 = getelementptr inbounds [100 x i32], ptr %tmp10, i64 0, i64 %tmp689
|
|
%tmp693 = load i32, ptr %tmp692, align 4
|
|
%tmp694 = sub i32 0, %tmp693
|
|
%tmp695 = select i1 %tmp691, i32 %tmp693, i32 %tmp694
|
|
%tmp696 = add i32 %tmp695, %tmp688
|
|
%tmp697 = add nuw nsw i64 %tmp656, 5
|
|
%tmp698 = icmp eq i64 %tmp697, 100
|
|
br i1 %tmp698, label %bb699, label %bb655
|
|
|
|
bb699: ; preds = %bb699, %bb655
|
|
%tmp700 = phi i64 [ %tmp741, %bb699 ], [ 0, %bb655 ]
|
|
%tmp701 = phi i32 [ %tmp740, %bb699 ], [ 0, %bb655 ]
|
|
%tmp702 = and i64 %tmp700, 1
|
|
%tmp703 = icmp eq i64 %tmp702, 0
|
|
%tmp704 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp700
|
|
%tmp705 = load i32, ptr %tmp704, align 4
|
|
%tmp706 = sub i32 0, %tmp705
|
|
%tmp707 = select i1 %tmp703, i32 %tmp705, i32 %tmp706
|
|
%tmp708 = add i32 %tmp707, %tmp701
|
|
%tmp709 = add nuw nsw i64 %tmp700, 1
|
|
%tmp710 = and i64 %tmp709, 1
|
|
%tmp711 = icmp eq i64 %tmp710, 0
|
|
%tmp712 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp709
|
|
%tmp713 = load i32, ptr %tmp712, align 4
|
|
%tmp714 = sub i32 0, %tmp713
|
|
%tmp715 = select i1 %tmp711, i32 %tmp713, i32 %tmp714
|
|
%tmp716 = add i32 %tmp715, %tmp708
|
|
%tmp717 = add nuw nsw i64 %tmp700, 2
|
|
%tmp718 = and i64 %tmp717, 1
|
|
%tmp719 = icmp eq i64 %tmp718, 0
|
|
%tmp720 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp717
|
|
%tmp721 = load i32, ptr %tmp720, align 4
|
|
%tmp722 = sub i32 0, %tmp721
|
|
%tmp723 = select i1 %tmp719, i32 %tmp721, i32 %tmp722
|
|
%tmp724 = add i32 %tmp723, %tmp716
|
|
%tmp725 = add nuw nsw i64 %tmp700, 3
|
|
%tmp726 = and i64 %tmp725, 1
|
|
%tmp727 = icmp eq i64 %tmp726, 0
|
|
%tmp728 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp725
|
|
%tmp729 = load i32, ptr %tmp728, align 4
|
|
%tmp730 = sub i32 0, %tmp729
|
|
%tmp731 = select i1 %tmp727, i32 %tmp729, i32 %tmp730
|
|
%tmp732 = add i32 %tmp731, %tmp724
|
|
%tmp733 = add nuw nsw i64 %tmp700, 4
|
|
%tmp734 = and i64 %tmp733, 1
|
|
%tmp735 = icmp eq i64 %tmp734, 0
|
|
%tmp736 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp11, i64 0, i64 0, i64 %tmp733
|
|
%tmp737 = load i32, ptr %tmp736, align 4
|
|
%tmp738 = sub i32 0, %tmp737
|
|
%tmp739 = select i1 %tmp735, i32 %tmp737, i32 %tmp738
|
|
%tmp740 = add i32 %tmp739, %tmp732
|
|
%tmp741 = add nuw nsw i64 %tmp700, 5
|
|
%tmp742 = icmp eq i64 %tmp741, 10000
|
|
br i1 %tmp742, label %bb743, label %bb699
|
|
|
|
bb743: ; preds = %bb743, %bb699
|
|
%tmp744 = phi i64 [ %tmp785, %bb743 ], [ 0, %bb699 ]
|
|
%tmp745 = phi i32 [ %tmp784, %bb743 ], [ 0, %bb699 ]
|
|
%tmp746 = and i64 %tmp744, 1
|
|
%tmp747 = icmp eq i64 %tmp746, 0
|
|
%tmp748 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp744
|
|
%tmp749 = load i32, ptr %tmp748, align 4
|
|
%tmp750 = sub i32 0, %tmp749
|
|
%tmp751 = select i1 %tmp747, i32 %tmp749, i32 %tmp750
|
|
%tmp752 = add i32 %tmp751, %tmp745
|
|
%tmp753 = add nuw nsw i64 %tmp744, 1
|
|
%tmp754 = and i64 %tmp753, 1
|
|
%tmp755 = icmp eq i64 %tmp754, 0
|
|
%tmp756 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp753
|
|
%tmp757 = load i32, ptr %tmp756, align 4
|
|
%tmp758 = sub i32 0, %tmp757
|
|
%tmp759 = select i1 %tmp755, i32 %tmp757, i32 %tmp758
|
|
%tmp760 = add i32 %tmp759, %tmp752
|
|
%tmp761 = add nuw nsw i64 %tmp744, 2
|
|
%tmp762 = and i64 %tmp761, 1
|
|
%tmp763 = icmp eq i64 %tmp762, 0
|
|
%tmp764 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp761
|
|
%tmp765 = load i32, ptr %tmp764, align 4
|
|
%tmp766 = sub i32 0, %tmp765
|
|
%tmp767 = select i1 %tmp763, i32 %tmp765, i32 %tmp766
|
|
%tmp768 = add i32 %tmp767, %tmp760
|
|
%tmp769 = add nuw nsw i64 %tmp744, 3
|
|
%tmp770 = and i64 %tmp769, 1
|
|
%tmp771 = icmp eq i64 %tmp770, 0
|
|
%tmp772 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp769
|
|
%tmp773 = load i32, ptr %tmp772, align 4
|
|
%tmp774 = sub i32 0, %tmp773
|
|
%tmp775 = select i1 %tmp771, i32 %tmp773, i32 %tmp774
|
|
%tmp776 = add i32 %tmp775, %tmp768
|
|
%tmp777 = add nuw nsw i64 %tmp744, 4
|
|
%tmp778 = and i64 %tmp777, 1
|
|
%tmp779 = icmp eq i64 %tmp778, 0
|
|
%tmp780 = getelementptr inbounds [100 x i32], ptr %tmp12, i64 0, i64 %tmp777
|
|
%tmp781 = load i32, ptr %tmp780, align 4
|
|
%tmp782 = sub i32 0, %tmp781
|
|
%tmp783 = select i1 %tmp779, i32 %tmp781, i32 %tmp782
|
|
%tmp784 = add i32 %tmp783, %tmp776
|
|
%tmp785 = add nuw nsw i64 %tmp744, 5
|
|
%tmp786 = icmp eq i64 %tmp785, 100
|
|
br i1 %tmp786, label %bb787, label %bb743
|
|
|
|
bb787: ; preds = %bb787, %bb743
|
|
%tmp788 = phi i64 [ %tmp829, %bb787 ], [ 0, %bb743 ]
|
|
%tmp789 = phi i32 [ %tmp828, %bb787 ], [ 0, %bb743 ]
|
|
%tmp790 = and i64 %tmp788, 1
|
|
%tmp791 = icmp eq i64 %tmp790, 0
|
|
%tmp792 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp788
|
|
%tmp793 = load i32, ptr %tmp792, align 4
|
|
%tmp794 = sub i32 0, %tmp793
|
|
%tmp795 = select i1 %tmp791, i32 %tmp793, i32 %tmp794
|
|
%tmp796 = add i32 %tmp795, %tmp789
|
|
%tmp797 = add nuw nsw i64 %tmp788, 1
|
|
%tmp798 = and i64 %tmp797, 1
|
|
%tmp799 = icmp eq i64 %tmp798, 0
|
|
%tmp800 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp797
|
|
%tmp801 = load i32, ptr %tmp800, align 4
|
|
%tmp802 = sub i32 0, %tmp801
|
|
%tmp803 = select i1 %tmp799, i32 %tmp801, i32 %tmp802
|
|
%tmp804 = add i32 %tmp803, %tmp796
|
|
%tmp805 = add nuw nsw i64 %tmp788, 2
|
|
%tmp806 = and i64 %tmp805, 1
|
|
%tmp807 = icmp eq i64 %tmp806, 0
|
|
%tmp808 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp805
|
|
%tmp809 = load i32, ptr %tmp808, align 4
|
|
%tmp810 = sub i32 0, %tmp809
|
|
%tmp811 = select i1 %tmp807, i32 %tmp809, i32 %tmp810
|
|
%tmp812 = add i32 %tmp811, %tmp804
|
|
%tmp813 = add nuw nsw i64 %tmp788, 3
|
|
%tmp814 = and i64 %tmp813, 1
|
|
%tmp815 = icmp eq i64 %tmp814, 0
|
|
%tmp816 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp813
|
|
%tmp817 = load i32, ptr %tmp816, align 4
|
|
%tmp818 = sub i32 0, %tmp817
|
|
%tmp819 = select i1 %tmp815, i32 %tmp817, i32 %tmp818
|
|
%tmp820 = add i32 %tmp819, %tmp812
|
|
%tmp821 = add nuw nsw i64 %tmp788, 4
|
|
%tmp822 = and i64 %tmp821, 1
|
|
%tmp823 = icmp eq i64 %tmp822, 0
|
|
%tmp824 = getelementptr inbounds [100 x i32], ptr %tmp13, i64 0, i64 %tmp821
|
|
%tmp825 = load i32, ptr %tmp824, align 4
|
|
%tmp826 = sub i32 0, %tmp825
|
|
%tmp827 = select i1 %tmp823, i32 %tmp825, i32 %tmp826
|
|
%tmp828 = add i32 %tmp827, %tmp820
|
|
%tmp829 = add nuw nsw i64 %tmp788, 5
|
|
%tmp830 = icmp eq i64 %tmp829, 100
|
|
br i1 %tmp830, label %bb831, label %bb787
|
|
|
|
bb831: ; preds = %bb831, %bb787
|
|
%tmp832 = phi i64 [ %tmp873, %bb831 ], [ 0, %bb787 ]
|
|
%tmp833 = phi i32 [ %tmp872, %bb831 ], [ 0, %bb787 ]
|
|
%tmp834 = and i64 %tmp832, 1
|
|
%tmp835 = icmp eq i64 %tmp834, 0
|
|
%tmp836 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp832
|
|
%tmp837 = load i32, ptr %tmp836, align 4
|
|
%tmp838 = sub i32 0, %tmp837
|
|
%tmp839 = select i1 %tmp835, i32 %tmp837, i32 %tmp838
|
|
%tmp840 = add i32 %tmp839, %tmp833
|
|
%tmp841 = add nuw nsw i64 %tmp832, 1
|
|
%tmp842 = and i64 %tmp841, 1
|
|
%tmp843 = icmp eq i64 %tmp842, 0
|
|
%tmp844 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp841
|
|
%tmp845 = load i32, ptr %tmp844, align 4
|
|
%tmp846 = sub i32 0, %tmp845
|
|
%tmp847 = select i1 %tmp843, i32 %tmp845, i32 %tmp846
|
|
%tmp848 = add i32 %tmp847, %tmp840
|
|
%tmp849 = add nuw nsw i64 %tmp832, 2
|
|
%tmp850 = and i64 %tmp849, 1
|
|
%tmp851 = icmp eq i64 %tmp850, 0
|
|
%tmp852 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp849
|
|
%tmp853 = load i32, ptr %tmp852, align 4
|
|
%tmp854 = sub i32 0, %tmp853
|
|
%tmp855 = select i1 %tmp851, i32 %tmp853, i32 %tmp854
|
|
%tmp856 = add i32 %tmp855, %tmp848
|
|
%tmp857 = add nuw nsw i64 %tmp832, 3
|
|
%tmp858 = and i64 %tmp857, 1
|
|
%tmp859 = icmp eq i64 %tmp858, 0
|
|
%tmp860 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp857
|
|
%tmp861 = load i32, ptr %tmp860, align 4
|
|
%tmp862 = sub i32 0, %tmp861
|
|
%tmp863 = select i1 %tmp859, i32 %tmp861, i32 %tmp862
|
|
%tmp864 = add i32 %tmp863, %tmp856
|
|
%tmp865 = add nuw nsw i64 %tmp832, 4
|
|
%tmp866 = and i64 %tmp865, 1
|
|
%tmp867 = icmp eq i64 %tmp866, 0
|
|
%tmp868 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp14, i64 0, i64 0, i64 %tmp865
|
|
%tmp869 = load i32, ptr %tmp868, align 4
|
|
%tmp870 = sub i32 0, %tmp869
|
|
%tmp871 = select i1 %tmp867, i32 %tmp869, i32 %tmp870
|
|
%tmp872 = add i32 %tmp871, %tmp864
|
|
%tmp873 = add nuw nsw i64 %tmp832, 5
|
|
%tmp874 = icmp eq i64 %tmp873, 10000
|
|
br i1 %tmp874, label %bb875, label %bb831
|
|
|
|
bb875: ; preds = %bb875, %bb831
|
|
%tmp876 = phi i64 [ %tmp917, %bb875 ], [ 0, %bb831 ]
|
|
%tmp877 = phi i32 [ %tmp916, %bb875 ], [ 0, %bb831 ]
|
|
%tmp878 = and i64 %tmp876, 1
|
|
%tmp879 = icmp eq i64 %tmp878, 0
|
|
%tmp880 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp876
|
|
%tmp881 = load i32, ptr %tmp880, align 4
|
|
%tmp882 = sub i32 0, %tmp881
|
|
%tmp883 = select i1 %tmp879, i32 %tmp881, i32 %tmp882
|
|
%tmp884 = add i32 %tmp883, %tmp877
|
|
%tmp885 = add nuw nsw i64 %tmp876, 1
|
|
%tmp886 = and i64 %tmp885, 1
|
|
%tmp887 = icmp eq i64 %tmp886, 0
|
|
%tmp888 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp885
|
|
%tmp889 = load i32, ptr %tmp888, align 4
|
|
%tmp890 = sub i32 0, %tmp889
|
|
%tmp891 = select i1 %tmp887, i32 %tmp889, i32 %tmp890
|
|
%tmp892 = add i32 %tmp891, %tmp884
|
|
%tmp893 = add nuw nsw i64 %tmp876, 2
|
|
%tmp894 = and i64 %tmp893, 1
|
|
%tmp895 = icmp eq i64 %tmp894, 0
|
|
%tmp896 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp893
|
|
%tmp897 = load i32, ptr %tmp896, align 4
|
|
%tmp898 = sub i32 0, %tmp897
|
|
%tmp899 = select i1 %tmp895, i32 %tmp897, i32 %tmp898
|
|
%tmp900 = add i32 %tmp899, %tmp892
|
|
%tmp901 = add nuw nsw i64 %tmp876, 3
|
|
%tmp902 = and i64 %tmp901, 1
|
|
%tmp903 = icmp eq i64 %tmp902, 0
|
|
%tmp904 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp901
|
|
%tmp905 = load i32, ptr %tmp904, align 4
|
|
%tmp906 = sub i32 0, %tmp905
|
|
%tmp907 = select i1 %tmp903, i32 %tmp905, i32 %tmp906
|
|
%tmp908 = add i32 %tmp907, %tmp900
|
|
%tmp909 = add nuw nsw i64 %tmp876, 4
|
|
%tmp910 = and i64 %tmp909, 1
|
|
%tmp911 = icmp eq i64 %tmp910, 0
|
|
%tmp912 = getelementptr inbounds [100 x i32], ptr %tmp15, i64 0, i64 %tmp909
|
|
%tmp913 = load i32, ptr %tmp912, align 4
|
|
%tmp914 = sub i32 0, %tmp913
|
|
%tmp915 = select i1 %tmp911, i32 %tmp913, i32 %tmp914
|
|
%tmp916 = add i32 %tmp915, %tmp908
|
|
%tmp917 = add nuw nsw i64 %tmp876, 5
|
|
%tmp918 = icmp eq i64 %tmp917, 100
|
|
br i1 %tmp918, label %bb919, label %bb875
|
|
|
|
bb919: ; preds = %bb919, %bb875
|
|
%tmp920 = phi i64 [ %tmp961, %bb919 ], [ 0, %bb875 ]
|
|
%tmp921 = phi i32 [ %tmp960, %bb919 ], [ 0, %bb875 ]
|
|
%tmp922 = and i64 %tmp920, 1
|
|
%tmp923 = icmp eq i64 %tmp922, 0
|
|
%tmp924 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp920
|
|
%tmp925 = load i32, ptr %tmp924, align 4
|
|
%tmp926 = sub i32 0, %tmp925
|
|
%tmp927 = select i1 %tmp923, i32 %tmp925, i32 %tmp926
|
|
%tmp928 = add i32 %tmp927, %tmp921
|
|
%tmp929 = add nuw nsw i64 %tmp920, 1
|
|
%tmp930 = and i64 %tmp929, 1
|
|
%tmp931 = icmp eq i64 %tmp930, 0
|
|
%tmp932 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp929
|
|
%tmp933 = load i32, ptr %tmp932, align 4
|
|
%tmp934 = sub i32 0, %tmp933
|
|
%tmp935 = select i1 %tmp931, i32 %tmp933, i32 %tmp934
|
|
%tmp936 = add i32 %tmp935, %tmp928
|
|
%tmp937 = add nuw nsw i64 %tmp920, 2
|
|
%tmp938 = and i64 %tmp937, 1
|
|
%tmp939 = icmp eq i64 %tmp938, 0
|
|
%tmp940 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp937
|
|
%tmp941 = load i32, ptr %tmp940, align 4
|
|
%tmp942 = sub i32 0, %tmp941
|
|
%tmp943 = select i1 %tmp939, i32 %tmp941, i32 %tmp942
|
|
%tmp944 = add i32 %tmp943, %tmp936
|
|
%tmp945 = add nuw nsw i64 %tmp920, 3
|
|
%tmp946 = and i64 %tmp945, 1
|
|
%tmp947 = icmp eq i64 %tmp946, 0
|
|
%tmp948 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp945
|
|
%tmp949 = load i32, ptr %tmp948, align 4
|
|
%tmp950 = sub i32 0, %tmp949
|
|
%tmp951 = select i1 %tmp947, i32 %tmp949, i32 %tmp950
|
|
%tmp952 = add i32 %tmp951, %tmp944
|
|
%tmp953 = add nuw nsw i64 %tmp920, 4
|
|
%tmp954 = and i64 %tmp953, 1
|
|
%tmp955 = icmp eq i64 %tmp954, 0
|
|
%tmp956 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp16, i64 0, i64 0, i64 %tmp953
|
|
%tmp957 = load i32, ptr %tmp956, align 4
|
|
%tmp958 = sub i32 0, %tmp957
|
|
%tmp959 = select i1 %tmp955, i32 %tmp957, i32 %tmp958
|
|
%tmp960 = add i32 %tmp959, %tmp952
|
|
%tmp961 = add nuw nsw i64 %tmp920, 5
|
|
%tmp962 = icmp eq i64 %tmp961, 10000
|
|
br i1 %tmp962, label %bb963, label %bb919
|
|
|
|
bb963: ; preds = %bb963, %bb919
|
|
%tmp964 = phi i64 [ %tmp1005, %bb963 ], [ 0, %bb919 ]
|
|
%tmp965 = phi i32 [ %tmp1004, %bb963 ], [ 0, %bb919 ]
|
|
%tmp966 = and i64 %tmp964, 1
|
|
%tmp967 = icmp eq i64 %tmp966, 0
|
|
%tmp968 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp964
|
|
%tmp969 = load i32, ptr %tmp968, align 4
|
|
%tmp970 = sub i32 0, %tmp969
|
|
%tmp971 = select i1 %tmp967, i32 %tmp969, i32 %tmp970
|
|
%tmp972 = add i32 %tmp971, %tmp965
|
|
%tmp973 = add nuw nsw i64 %tmp964, 1
|
|
%tmp974 = and i64 %tmp973, 1
|
|
%tmp975 = icmp eq i64 %tmp974, 0
|
|
%tmp976 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp973
|
|
%tmp977 = load i32, ptr %tmp976, align 4
|
|
%tmp978 = sub i32 0, %tmp977
|
|
%tmp979 = select i1 %tmp975, i32 %tmp977, i32 %tmp978
|
|
%tmp980 = add i32 %tmp979, %tmp972
|
|
%tmp981 = add nuw nsw i64 %tmp964, 2
|
|
%tmp982 = and i64 %tmp981, 1
|
|
%tmp983 = icmp eq i64 %tmp982, 0
|
|
%tmp984 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp981
|
|
%tmp985 = load i32, ptr %tmp984, align 4
|
|
%tmp986 = sub i32 0, %tmp985
|
|
%tmp987 = select i1 %tmp983, i32 %tmp985, i32 %tmp986
|
|
%tmp988 = add i32 %tmp987, %tmp980
|
|
%tmp989 = add nuw nsw i64 %tmp964, 3
|
|
%tmp990 = and i64 %tmp989, 1
|
|
%tmp991 = icmp eq i64 %tmp990, 0
|
|
%tmp992 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp989
|
|
%tmp993 = load i32, ptr %tmp992, align 4
|
|
%tmp994 = sub i32 0, %tmp993
|
|
%tmp995 = select i1 %tmp991, i32 %tmp993, i32 %tmp994
|
|
%tmp996 = add i32 %tmp995, %tmp988
|
|
%tmp997 = add nuw nsw i64 %tmp964, 4
|
|
%tmp998 = and i64 %tmp997, 1
|
|
%tmp999 = icmp eq i64 %tmp998, 0
|
|
%tmp1000 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp17, i64 0, i64 0, i64 %tmp997
|
|
%tmp1001 = load i32, ptr %tmp1000, align 4
|
|
%tmp1002 = sub i32 0, %tmp1001
|
|
%tmp1003 = select i1 %tmp999, i32 %tmp1001, i32 %tmp1002
|
|
%tmp1004 = add i32 %tmp1003, %tmp996
|
|
%tmp1005 = add nuw nsw i64 %tmp964, 5
|
|
%tmp1006 = icmp eq i64 %tmp1005, 10000
|
|
br i1 %tmp1006, label %bb1007, label %bb963
|
|
|
|
bb1007: ; preds = %bb1007, %bb963
|
|
%tmp1008 = phi i64 [ %tmp1049, %bb1007 ], [ 0, %bb963 ]
|
|
%tmp1009 = phi i32 [ %tmp1048, %bb1007 ], [ 0, %bb963 ]
|
|
%tmp1010 = and i64 %tmp1008, 1
|
|
%tmp1011 = icmp eq i64 %tmp1010, 0
|
|
%tmp1012 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1008
|
|
%tmp1013 = load i32, ptr %tmp1012, align 4
|
|
%tmp1014 = sub i32 0, %tmp1013
|
|
%tmp1015 = select i1 %tmp1011, i32 %tmp1013, i32 %tmp1014
|
|
%tmp1016 = add i32 %tmp1015, %tmp1009
|
|
%tmp1017 = add nuw nsw i64 %tmp1008, 1
|
|
%tmp1018 = and i64 %tmp1017, 1
|
|
%tmp1019 = icmp eq i64 %tmp1018, 0
|
|
%tmp1020 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1017
|
|
%tmp1021 = load i32, ptr %tmp1020, align 4
|
|
%tmp1022 = sub i32 0, %tmp1021
|
|
%tmp1023 = select i1 %tmp1019, i32 %tmp1021, i32 %tmp1022
|
|
%tmp1024 = add i32 %tmp1023, %tmp1016
|
|
%tmp1025 = add nuw nsw i64 %tmp1008, 2
|
|
%tmp1026 = and i64 %tmp1025, 1
|
|
%tmp1027 = icmp eq i64 %tmp1026, 0
|
|
%tmp1028 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1025
|
|
%tmp1029 = load i32, ptr %tmp1028, align 4
|
|
%tmp1030 = sub i32 0, %tmp1029
|
|
%tmp1031 = select i1 %tmp1027, i32 %tmp1029, i32 %tmp1030
|
|
%tmp1032 = add i32 %tmp1031, %tmp1024
|
|
%tmp1033 = add nuw nsw i64 %tmp1008, 3
|
|
%tmp1034 = and i64 %tmp1033, 1
|
|
%tmp1035 = icmp eq i64 %tmp1034, 0
|
|
%tmp1036 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1033
|
|
%tmp1037 = load i32, ptr %tmp1036, align 4
|
|
%tmp1038 = sub i32 0, %tmp1037
|
|
%tmp1039 = select i1 %tmp1035, i32 %tmp1037, i32 %tmp1038
|
|
%tmp1040 = add i32 %tmp1039, %tmp1032
|
|
%tmp1041 = add nuw nsw i64 %tmp1008, 4
|
|
%tmp1042 = and i64 %tmp1041, 1
|
|
%tmp1043 = icmp eq i64 %tmp1042, 0
|
|
%tmp1044 = getelementptr inbounds [100 x [100 x i32]], ptr %tmp18, i64 0, i64 0, i64 %tmp1041
|
|
%tmp1045 = load i32, ptr %tmp1044, align 4
|
|
%tmp1046 = sub i32 0, %tmp1045
|
|
%tmp1047 = select i1 %tmp1043, i32 %tmp1045, i32 %tmp1046
|
|
%tmp1048 = add i32 %tmp1047, %tmp1040
|
|
%tmp1049 = add nuw nsw i64 %tmp1008, 5
|
|
%tmp1050 = icmp eq i64 %tmp1049, 10000
|
|
br i1 %tmp1050, label %bb1051, label %bb1007
|
|
|
|
bb1051: ; preds = %bb1007
|
|
%tmp1052 = add i32 %tmp382, %tmp385
|
|
%tmp1053 = add i32 %tmp1052, %tmp520
|
|
%tmp1054 = add i32 %tmp1053, %tmp564
|
|
%tmp1055 = sub i32 %tmp1054, %tmp608
|
|
%tmp1056 = add i32 %tmp1055, %tmp652
|
|
%tmp1057 = sub i32 %tmp1056, %tmp696
|
|
%tmp1058 = add i32 %tmp1057, %tmp740
|
|
%tmp1059 = sub i32 %tmp1058, %tmp784
|
|
%tmp1060 = add i32 %tmp1059, %tmp828
|
|
%tmp1061 = sub i32 %tmp1060, %tmp872
|
|
%tmp1062 = add i32 %tmp1061, %tmp916
|
|
%tmp1063 = sub i32 %tmp1062, %tmp960
|
|
%tmp1064 = add i32 %tmp1063, %tmp1004
|
|
%tmp1065 = sub i32 %tmp1064, %tmp1048
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp18) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp17) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp16) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp15) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp14) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp13) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp12) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp11) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp10) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp9) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp8) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp7) #4
|
|
call void @llvm.lifetime.end.p0(ptr nonnull %tmp) #4
|
|
ret i32 %tmp1065
|
|
}
|
|
|
|
; Function Attrs: argmemonly nounwind
|
|
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1) #1
|
|
|
|
; Function Attrs: argmemonly nounwind
|
|
declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1) #1
|