; LLVM IR from cpuimage/cpuimagelib :: cpuimage (CPUImageColorMatrixFilter)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @degree(i8 noundef zeroext, i8 noundef zeroext, float noundef) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

; Function Attrs: nounwind uwtable
define dso_local void @CPUImageColorMatrixFilter(ptr noundef %0, ptr noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, ptr noundef %5, float noundef %6) #0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca float, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca [65536 x i8], align 16
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca [4096 x i8], align 16
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i8, align 1
  %40 = alloca i8, align 1
  %41 = alloca i8, align 1
  %42 = alloca i8, align 1
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca i8, align 1
  %49 = alloca i8, align 1
  %50 = alloca i8, align 1
  %51 = alloca i8, align 1
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca i8, align 1
  %57 = alloca i8, align 1
  %58 = alloca i8, align 1
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i8, align 1
  %65 = alloca i8, align 1
  %66 = alloca i8, align 1
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store i32 %2, ptr %10, align 4, !tbaa !9
  store i32 %3, ptr %11, align 4, !tbaa !9
  store i32 %4, ptr %12, align 4, !tbaa !9
  store ptr %5, ptr %13, align 8, !tbaa !5
  store float %6, ptr %14, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #3
  %70 = load i32, ptr %12, align 4, !tbaa !9
  %71 = load i32, ptr %10, align 4, !tbaa !9
  %72 = sdiv i32 %70, %71
  store i32 %72, ptr %15, align 4, !tbaa !9
  %73 = load i32, ptr %15, align 4, !tbaa !9
  %74 = icmp eq i32 %73, 1
  br i1 %74, label %75, label %76

75:                                               ; preds = %7
  store i32 1, ptr %16, align 4
  br label %1437

76:                                               ; preds = %7
  call void @llvm.lifetime.start.p0(i64 65536, ptr %17) #3
  call void @llvm.memset.p0.i64(ptr align 16 %17, i8 0, i64 65536, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #3
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %77

77:                                               ; preds = %106, %76
  %78 = load i32, ptr %18, align 4, !tbaa !9
  %79 = icmp slt i32 %78, 256
  br i1 %79, label %81, label %80

80:                                               ; preds = %77
  store i32 2, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #3
  br label %109

81:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #3
  %82 = getelementptr inbounds [65536 x i8], ptr %17, i64 0, i64 0
  %83 = load i32, ptr %18, align 4, !tbaa !9
  %84 = mul nsw i32 %83, 256
  %85 = sext i32 %84 to i64
  %86 = getelementptr inbounds i8, ptr %82, i64 %85
  store ptr %86, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #3
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %87

87:                                               ; preds = %102, %81
  %88 = load i32, ptr %20, align 4, !tbaa !9
  %89 = icmp slt i32 %88, 256
  br i1 %89, label %91, label %90

90:                                               ; preds = %87
  store i32 5, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #3
  br label %105

91:                                               ; preds = %87
  %92 = load i32, ptr %18, align 4, !tbaa !9
  %93 = trunc i32 %92 to i8
  %94 = load i32, ptr %20, align 4, !tbaa !9
  %95 = trunc i32 %94 to i8
  %96 = load float, ptr %14, align 4, !tbaa !11
  %97 = call zeroext i8 @degree(i8 noundef zeroext %93, i8 noundef zeroext %95, float noundef %96)
  %98 = load ptr, ptr %19, align 8, !tbaa !5
  %99 = getelementptr inbounds i8, ptr %98, i64 0
  store i8 %97, ptr %99, align 1, !tbaa !13
  %100 = load ptr, ptr %19, align 8, !tbaa !5
  %101 = getelementptr inbounds i8, ptr %100, i32 1
  store ptr %101, ptr %19, align 8, !tbaa !5
  br label %102

102:                                              ; preds = %91
  %103 = load i32, ptr %20, align 4, !tbaa !9
  %104 = add nsw i32 %103, 1
  store i32 %104, ptr %20, align 4, !tbaa !9
  br label %87, !llvm.loop !14

105:                                              ; preds = %90
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #3
  br label %106

106:                                              ; preds = %105
  %107 = load i32, ptr %18, align 4, !tbaa !9
  %108 = add nsw i32 %107, 1
  store i32 %108, ptr %18, align 4, !tbaa !9
  br label %77, !llvm.loop !16

109:                                              ; preds = %80
  call void @llvm.lifetime.start.p0(i64 4096, ptr %21) #3
  call void @llvm.memset.p0.i64(ptr align 16 %21, i8 0, i64 4096, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #3
  %110 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 0
  store ptr %110, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #3
  %111 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 256
  store ptr %111, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #3
  %112 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 512
  store ptr %112, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #3
  %113 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 768
  store ptr %113, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #3
  %114 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 1024
  store ptr %114, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #3
  %115 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 1280
  store ptr %115, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #3
  %116 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 1536
  store ptr %116, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #3
  %117 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 1792
  store ptr %117, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  %118 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 2048
  store ptr %118, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #3
  %119 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 2304
  store ptr %119, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #3
  %120 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 2560
  store ptr %120, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  %121 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 2816
  store ptr %121, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #3
  %122 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 3072
  store ptr %122, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #3
  %123 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 3328
  store ptr %123, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #3
  %124 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 3584
  store ptr %124, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #3
  %125 = getelementptr inbounds [4096 x i8], ptr %21, i64 0, i64 3840
  store ptr %125, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #3
  store i32 0, ptr %38, align 4, !tbaa !9
  br label %126

126:                                              ; preds = %659, %109
  %127 = load i32, ptr %38, align 4, !tbaa !9
  %128 = icmp slt i32 %127, 256
  br i1 %128, label %130, label %129

129:                                              ; preds = %126
  store i32 8, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #3
  br label %662

130:                                              ; preds = %126
  %131 = load i32, ptr %38, align 4, !tbaa !9
  %132 = sitofp i32 %131 to float
  %133 = load ptr, ptr %13, align 8, !tbaa !5
  %134 = getelementptr inbounds float, ptr %133, i64 0
  %135 = load float, ptr %134, align 4, !tbaa !11
  %136 = fmul float %132, %135
  %137 = fptosi float %136 to i32
  %138 = icmp ult i32 %137, 255
  br i1 %138, label %139, label %146

139:                                              ; preds = %130
  %140 = load i32, ptr %38, align 4, !tbaa !9
  %141 = sitofp i32 %140 to float
  %142 = load ptr, ptr %13, align 8, !tbaa !5
  %143 = getelementptr inbounds float, ptr %142, i64 0
  %144 = load float, ptr %143, align 4, !tbaa !11
  %145 = fmul float %141, %144
  br label %157

146:                                              ; preds = %130
  %147 = load i32, ptr %38, align 4, !tbaa !9
  %148 = sitofp i32 %147 to float
  %149 = load ptr, ptr %13, align 8, !tbaa !5
  %150 = getelementptr inbounds float, ptr %149, i64 0
  %151 = load float, ptr %150, align 4, !tbaa !11
  %152 = fmul float %148, %151
  %153 = fcmp olt float %152, 0.000000e+00
  %154 = zext i1 %153 to i64
  %155 = select i1 %153, i32 0, i32 255
  %156 = sitofp i32 %155 to float
  br label %157

157:                                              ; preds = %146, %139
  %158 = phi float [ %145, %139 ], [ %156, %146 ]
  %159 = fptoui float %158 to i8
  %160 = load ptr, ptr %22, align 8, !tbaa !5
  %161 = load i32, ptr %38, align 4, !tbaa !9
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds i8, ptr %160, i64 %162
  store i8 %159, ptr %163, align 1, !tbaa !13
  %164 = load i32, ptr %38, align 4, !tbaa !9
  %165 = sitofp i32 %164 to float
  %166 = load ptr, ptr %13, align 8, !tbaa !5
  %167 = getelementptr inbounds float, ptr %166, i64 1
  %168 = load float, ptr %167, align 4, !tbaa !11
  %169 = fmul float %165, %168
  %170 = fptosi float %169 to i32
  %171 = icmp ult i32 %170, 255
  br i1 %171, label %172, label %179

172:                                              ; preds = %157
  %173 = load i32, ptr %38, align 4, !tbaa !9
  %174 = sitofp i32 %173 to float
  %175 = load ptr, ptr %13, align 8, !tbaa !5
  %176 = getelementptr inbounds float, ptr %175, i64 1
  %177 = load float, ptr %176, align 4, !tbaa !11
  %178 = fmul float %174, %177
  br label %190

179:                                              ; preds = %157
  %180 = load i32, ptr %38, align 4, !tbaa !9
  %181 = sitofp i32 %180 to float
  %182 = load ptr, ptr %13, align 8, !tbaa !5
  %183 = getelementptr inbounds float, ptr %182, i64 1
  %184 = load float, ptr %183, align 4, !tbaa !11
  %185 = fmul float %181, %184
  %186 = fcmp olt float %185, 0.000000e+00
  %187 = zext i1 %186 to i64
  %188 = select i1 %186, i32 0, i32 255
  %189 = sitofp i32 %188 to float
  br label %190

190:                                              ; preds = %179, %172
  %191 = phi float [ %178, %172 ], [ %189, %179 ]
  %192 = fptoui float %191 to i8
  %193 = load ptr, ptr %23, align 8, !tbaa !5
  %194 = load i32, ptr %38, align 4, !tbaa !9
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds i8, ptr %193, i64 %195
  store i8 %192, ptr %196, align 1, !tbaa !13
  %197 = load i32, ptr %38, align 4, !tbaa !9
  %198 = sitofp i32 %197 to float
  %199 = load ptr, ptr %13, align 8, !tbaa !5
  %200 = getelementptr inbounds float, ptr %199, i64 2
  %201 = load float, ptr %200, align 4, !tbaa !11
  %202 = fmul float %198, %201
  %203 = fptosi float %202 to i32
  %204 = icmp ult i32 %203, 255
  br i1 %204, label %205, label %212

205:                                              ; preds = %190
  %206 = load i32, ptr %38, align 4, !tbaa !9
  %207 = sitofp i32 %206 to float
  %208 = load ptr, ptr %13, align 8, !tbaa !5
  %209 = getelementptr inbounds float, ptr %208, i64 2
  %210 = load float, ptr %209, align 4, !tbaa !11
  %211 = fmul float %207, %210
  br label %223

212:                                              ; preds = %190
  %213 = load i32, ptr %38, align 4, !tbaa !9
  %214 = sitofp i32 %213 to float
  %215 = load ptr, ptr %13, align 8, !tbaa !5
  %216 = getelementptr inbounds float, ptr %215, i64 2
  %217 = load float, ptr %216, align 4, !tbaa !11
  %218 = fmul float %214, %217
  %219 = fcmp olt float %218, 0.000000e+00
  %220 = zext i1 %219 to i64
  %221 = select i1 %219, i32 0, i32 255
  %222 = sitofp i32 %221 to float
  br label %223

223:                                              ; preds = %212, %205
  %224 = phi float [ %211, %205 ], [ %222, %212 ]
  %225 = fptoui float %224 to i8
  %226 = load ptr, ptr %24, align 8, !tbaa !5
  %227 = load i32, ptr %38, align 4, !tbaa !9
  %228 = sext i32 %227 to i64
  %229 = getelementptr inbounds i8, ptr %226, i64 %228
  store i8 %225, ptr %229, align 1, !tbaa !13
  %230 = load i32, ptr %38, align 4, !tbaa !9
  %231 = sitofp i32 %230 to float
  %232 = load ptr, ptr %13, align 8, !tbaa !5
  %233 = getelementptr inbounds float, ptr %232, i64 3
  %234 = load float, ptr %233, align 4, !tbaa !11
  %235 = fmul float %231, %234
  %236 = fptosi float %235 to i32
  %237 = icmp ult i32 %236, 255
  br i1 %237, label %238, label %245

238:                                              ; preds = %223
  %239 = load i32, ptr %38, align 4, !tbaa !9
  %240 = sitofp i32 %239 to float
  %241 = load ptr, ptr %13, align 8, !tbaa !5
  %242 = getelementptr inbounds float, ptr %241, i64 3
  %243 = load float, ptr %242, align 4, !tbaa !11
  %244 = fmul float %240, %243
  br label %256

245:                                              ; preds = %223
  %246 = load i32, ptr %38, align 4, !tbaa !9
  %247 = sitofp i32 %246 to float
  %248 = load ptr, ptr %13, align 8, !tbaa !5
  %249 = getelementptr inbounds float, ptr %248, i64 3
  %250 = load float, ptr %249, align 4, !tbaa !11
  %251 = fmul float %247, %250
  %252 = fcmp olt float %251, 0.000000e+00
  %253 = zext i1 %252 to i64
  %254 = select i1 %252, i32 0, i32 255
  %255 = sitofp i32 %254 to float
  br label %256

256:                                              ; preds = %245, %238
  %257 = phi float [ %244, %238 ], [ %255, %245 ]
  %258 = fptoui float %257 to i8
  %259 = load ptr, ptr %25, align 8, !tbaa !5
  %260 = load i32, ptr %38, align 4, !tbaa !9
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds i8, ptr %259, i64 %261
  store i8 %258, ptr %262, align 1, !tbaa !13
  %263 = load i32, ptr %38, align 4, !tbaa !9
  %264 = sitofp i32 %263 to float
  %265 = load ptr, ptr %13, align 8, !tbaa !5
  %266 = getelementptr inbounds float, ptr %265, i64 4
  %267 = load float, ptr %266, align 4, !tbaa !11
  %268 = fmul float %264, %267
  %269 = fptosi float %268 to i32
  %270 = icmp ult i32 %269, 255
  br i1 %270, label %271, label %278

271:                                              ; preds = %256
  %272 = load i32, ptr %38, align 4, !tbaa !9
  %273 = sitofp i32 %272 to float
  %274 = load ptr, ptr %13, align 8, !tbaa !5
  %275 = getelementptr inbounds float, ptr %274, i64 4
  %276 = load float, ptr %275, align 4, !tbaa !11
  %277 = fmul float %273, %276
  br label %289

278:                                              ; preds = %256
  %279 = load i32, ptr %38, align 4, !tbaa !9
  %280 = sitofp i32 %279 to float
  %281 = load ptr, ptr %13, align 8, !tbaa !5
  %282 = getelementptr inbounds float, ptr %281, i64 4
  %283 = load float, ptr %282, align 4, !tbaa !11
  %284 = fmul float %280, %283
  %285 = fcmp olt float %284, 0.000000e+00
  %286 = zext i1 %285 to i64
  %287 = select i1 %285, i32 0, i32 255
  %288 = sitofp i32 %287 to float
  br label %289

289:                                              ; preds = %278, %271
  %290 = phi float [ %277, %271 ], [ %288, %278 ]
  %291 = fptoui float %290 to i8
  %292 = load ptr, ptr %26, align 8, !tbaa !5
  %293 = load i32, ptr %38, align 4, !tbaa !9
  %294 = sext i32 %293 to i64
  %295 = getelementptr inbounds i8, ptr %292, i64 %294
  store i8 %291, ptr %295, align 1, !tbaa !13
  %296 = load i32, ptr %38, align 4, !tbaa !9
  %297 = sitofp i32 %296 to float
  %298 = load ptr, ptr %13, align 8, !tbaa !5
  %299 = getelementptr inbounds float, ptr %298, i64 5
  %300 = load float, ptr %299, align 4, !tbaa !11
  %301 = fmul float %297, %300
  %302 = fptosi float %301 to i32
  %303 = icmp ult i32 %302, 255
  br i1 %303, label %304, label %311

304:                                              ; preds = %289
  %305 = load i32, ptr %38, align 4, !tbaa !9
  %306 = sitofp i32 %305 to float
  %307 = load ptr, ptr %13, align 8, !tbaa !5
  %308 = getelementptr inbounds float, ptr %307, i64 5
  %309 = load float, ptr %308, align 4, !tbaa !11
  %310 = fmul float %306, %309
  br label %322

311:                                              ; preds = %289
  %312 = load i32, ptr %38, align 4, !tbaa !9
  %313 = sitofp i32 %312 to float
  %314 = load ptr, ptr %13, align 8, !tbaa !5
  %315 = getelementptr inbounds float, ptr %314, i64 5
  %316 = load float, ptr %315, align 4, !tbaa !11
  %317 = fmul float %313, %316
  %318 = fcmp olt float %317, 0.000000e+00
  %319 = zext i1 %318 to i64
  %320 = select i1 %318, i32 0, i32 255
  %321 = sitofp i32 %320 to float
  br label %322

322:                                              ; preds = %311, %304
  %323 = phi float [ %310, %304 ], [ %321, %311 ]
  %324 = fptoui float %323 to i8
  %325 = load ptr, ptr %27, align 8, !tbaa !5
  %326 = load i32, ptr %38, align 4, !tbaa !9
  %327 = sext i32 %326 to i64
  %328 = getelementptr inbounds i8, ptr %325, i64 %327
  store i8 %324, ptr %328, align 1, !tbaa !13
  %329 = load i32, ptr %38, align 4, !tbaa !9
  %330 = sitofp i32 %329 to float
  %331 = load ptr, ptr %13, align 8, !tbaa !5
  %332 = getelementptr inbounds float, ptr %331, i64 6
  %333 = load float, ptr %332, align 4, !tbaa !11
  %334 = fmul float %330, %333
  %335 = fptosi float %334 to i32
  %336 = icmp ult i32 %335, 255
  br i1 %336, label %337, label %344

337:                                              ; preds = %322
  %338 = load i32, ptr %38, align 4, !tbaa !9
  %339 = sitofp i32 %338 to float
  %340 = load ptr, ptr %13, align 8, !tbaa !5
  %341 = getelementptr inbounds float, ptr %340, i64 6
  %342 = load float, ptr %341, align 4, !tbaa !11
  %343 = fmul float %339, %342
  br label %355

344:                                              ; preds = %322
  %345 = load i32, ptr %38, align 4, !tbaa !9
  %346 = sitofp i32 %345 to float
  %347 = load ptr, ptr %13, align 8, !tbaa !5
  %348 = getelementptr inbounds float, ptr %347, i64 6
  %349 = load float, ptr %348, align 4, !tbaa !11
  %350 = fmul float %346, %349
  %351 = fcmp olt float %350, 0.000000e+00
  %352 = zext i1 %351 to i64
  %353 = select i1 %351, i32 0, i32 255
  %354 = sitofp i32 %353 to float
  br label %355

355:                                              ; preds = %344, %337
  %356 = phi float [ %343, %337 ], [ %354, %344 ]
  %357 = fptoui float %356 to i8
  %358 = load ptr, ptr %28, align 8, !tbaa !5
  %359 = load i32, ptr %38, align 4, !tbaa !9
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds i8, ptr %358, i64 %360
  store i8 %357, ptr %361, align 1, !tbaa !13
  %362 = load i32, ptr %38, align 4, !tbaa !9
  %363 = sitofp i32 %362 to float
  %364 = load ptr, ptr %13, align 8, !tbaa !5
  %365 = getelementptr inbounds float, ptr %364, i64 7
  %366 = load float, ptr %365, align 4, !tbaa !11
  %367 = fmul float %363, %366
  %368 = fptosi float %367 to i32
  %369 = icmp ult i32 %368, 255
  br i1 %369, label %370, label %377

370:                                              ; preds = %355
  %371 = load i32, ptr %38, align 4, !tbaa !9
  %372 = sitofp i32 %371 to float
  %373 = load ptr, ptr %13, align 8, !tbaa !5
  %374 = getelementptr inbounds float, ptr %373, i64 7
  %375 = load float, ptr %374, align 4, !tbaa !11
  %376 = fmul float %372, %375
  br label %388

377:                                              ; preds = %355
  %378 = load i32, ptr %38, align 4, !tbaa !9
  %379 = sitofp i32 %378 to float
  %380 = load ptr, ptr %13, align 8, !tbaa !5
  %381 = getelementptr inbounds float, ptr %380, i64 7
  %382 = load float, ptr %381, align 4, !tbaa !11
  %383 = fmul float %379, %382
  %384 = fcmp olt float %383, 0.000000e+00
  %385 = zext i1 %384 to i64
  %386 = select i1 %384, i32 0, i32 255
  %387 = sitofp i32 %386 to float
  br label %388

388:                                              ; preds = %377, %370
  %389 = phi float [ %376, %370 ], [ %387, %377 ]
  %390 = fptoui float %389 to i8
  %391 = load ptr, ptr %29, align 8, !tbaa !5
  %392 = load i32, ptr %38, align 4, !tbaa !9
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds i8, ptr %391, i64 %393
  store i8 %390, ptr %394, align 1, !tbaa !13
  %395 = load i32, ptr %38, align 4, !tbaa !9
  %396 = sitofp i32 %395 to float
  %397 = load ptr, ptr %13, align 8, !tbaa !5
  %398 = getelementptr inbounds float, ptr %397, i64 8
  %399 = load float, ptr %398, align 4, !tbaa !11
  %400 = fmul float %396, %399
  %401 = fptosi float %400 to i32
  %402 = icmp ult i32 %401, 255
  br i1 %402, label %403, label %410

403:                                              ; preds = %388
  %404 = load i32, ptr %38, align 4, !tbaa !9
  %405 = sitofp i32 %404 to float
  %406 = load ptr, ptr %13, align 8, !tbaa !5
  %407 = getelementptr inbounds float, ptr %406, i64 8
  %408 = load float, ptr %407, align 4, !tbaa !11
  %409 = fmul float %405, %408
  br label %421

410:                                              ; preds = %388
  %411 = load i32, ptr %38, align 4, !tbaa !9
  %412 = sitofp i32 %411 to float
  %413 = load ptr, ptr %13, align 8, !tbaa !5
  %414 = getelementptr inbounds float, ptr %413, i64 8
  %415 = load float, ptr %414, align 4, !tbaa !11
  %416 = fmul float %412, %415
  %417 = fcmp olt float %416, 0.000000e+00
  %418 = zext i1 %417 to i64
  %419 = select i1 %417, i32 0, i32 255
  %420 = sitofp i32 %419 to float
  br label %421

421:                                              ; preds = %410, %403
  %422 = phi float [ %409, %403 ], [ %420, %410 ]
  %423 = fptoui float %422 to i8
  %424 = load ptr, ptr %30, align 8, !tbaa !5
  %425 = load i32, ptr %38, align 4, !tbaa !9
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds i8, ptr %424, i64 %426
  store i8 %423, ptr %427, align 1, !tbaa !13
  %428 = load i32, ptr %38, align 4, !tbaa !9
  %429 = sitofp i32 %428 to float
  %430 = load ptr, ptr %13, align 8, !tbaa !5
  %431 = getelementptr inbounds float, ptr %430, i64 9
  %432 = load float, ptr %431, align 4, !tbaa !11
  %433 = fmul float %429, %432
  %434 = fptosi float %433 to i32
  %435 = icmp ult i32 %434, 255
  br i1 %435, label %436, label %443

436:                                              ; preds = %421
  %437 = load i32, ptr %38, align 4, !tbaa !9
  %438 = sitofp i32 %437 to float
  %439 = load ptr, ptr %13, align 8, !tbaa !5
  %440 = getelementptr inbounds float, ptr %439, i64 9
  %441 = load float, ptr %440, align 4, !tbaa !11
  %442 = fmul float %438, %441
  br label %454

443:                                              ; preds = %421
  %444 = load i32, ptr %38, align 4, !tbaa !9
  %445 = sitofp i32 %444 to float
  %446 = load ptr, ptr %13, align 8, !tbaa !5
  %447 = getelementptr inbounds float, ptr %446, i64 9
  %448 = load float, ptr %447, align 4, !tbaa !11
  %449 = fmul float %445, %448
  %450 = fcmp olt float %449, 0.000000e+00
  %451 = zext i1 %450 to i64
  %452 = select i1 %450, i32 0, i32 255
  %453 = sitofp i32 %452 to float
  br label %454

454:                                              ; preds = %443, %436
  %455 = phi float [ %442, %436 ], [ %453, %443 ]
  %456 = fptoui float %455 to i8
  %457 = load ptr, ptr %31, align 8, !tbaa !5
  %458 = load i32, ptr %38, align 4, !tbaa !9
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds i8, ptr %457, i64 %459
  store i8 %456, ptr %460, align 1, !tbaa !13
  %461 = load i32, ptr %38, align 4, !tbaa !9
  %462 = sitofp i32 %461 to float
  %463 = load ptr, ptr %13, align 8, !tbaa !5
  %464 = getelementptr inbounds float, ptr %463, i64 10
  %465 = load float, ptr %464, align 4, !tbaa !11
  %466 = fmul float %462, %465
  %467 = fptosi float %466 to i32
  %468 = icmp ult i32 %467, 255
  br i1 %468, label %469, label %476

469:                                              ; preds = %454
  %470 = load i32, ptr %38, align 4, !tbaa !9
  %471 = sitofp i32 %470 to float
  %472 = load ptr, ptr %13, align 8, !tbaa !5
  %473 = getelementptr inbounds float, ptr %472, i64 10
  %474 = load float, ptr %473, align 4, !tbaa !11
  %475 = fmul float %471, %474
  br label %487

476:                                              ; preds = %454
  %477 = load i32, ptr %38, align 4, !tbaa !9
  %478 = sitofp i32 %477 to float
  %479 = load ptr, ptr %13, align 8, !tbaa !5
  %480 = getelementptr inbounds float, ptr %479, i64 10
  %481 = load float, ptr %480, align 4, !tbaa !11
  %482 = fmul float %478, %481
  %483 = fcmp olt float %482, 0.000000e+00
  %484 = zext i1 %483 to i64
  %485 = select i1 %483, i32 0, i32 255
  %486 = sitofp i32 %485 to float
  br label %487

487:                                              ; preds = %476, %469
  %488 = phi float [ %475, %469 ], [ %486, %476 ]
  %489 = fptoui float %488 to i8
  %490 = load ptr, ptr %32, align 8, !tbaa !5
  %491 = load i32, ptr %38, align 4, !tbaa !9
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds i8, ptr %490, i64 %492
  store i8 %489, ptr %493, align 1, !tbaa !13
  %494 = load i32, ptr %38, align 4, !tbaa !9
  %495 = sitofp i32 %494 to float
  %496 = load ptr, ptr %13, align 8, !tbaa !5
  %497 = getelementptr inbounds float, ptr %496, i64 11
  %498 = load float, ptr %497, align 4, !tbaa !11
  %499 = fmul float %495, %498
  %500 = fptosi float %499 to i32
  %501 = icmp ult i32 %500, 255
  br i1 %501, label %502, label %509

502:                                              ; preds = %487
  %503 = load i32, ptr %38, align 4, !tbaa !9
  %504 = sitofp i32 %503 to float
  %505 = load ptr, ptr %13, align 8, !tbaa !5
  %506 = getelementptr inbounds float, ptr %505, i64 11
  %507 = load float, ptr %506, align 4, !tbaa !11
  %508 = fmul float %504, %507
  br label %520

509:                                              ; preds = %487
  %510 = load i32, ptr %38, align 4, !tbaa !9
  %511 = sitofp i32 %510 to float
  %512 = load ptr, ptr %13, align 8, !tbaa !5
  %513 = getelementptr inbounds float, ptr %512, i64 11
  %514 = load float, ptr %513, align 4, !tbaa !11
  %515 = fmul float %511, %514
  %516 = fcmp olt float %515, 0.000000e+00
  %517 = zext i1 %516 to i64
  %518 = select i1 %516, i32 0, i32 255
  %519 = sitofp i32 %518 to float
  br label %520

520:                                              ; preds = %509, %502
  %521 = phi float [ %508, %502 ], [ %519, %509 ]
  %522 = fptoui float %521 to i8
  %523 = load ptr, ptr %33, align 8, !tbaa !5
  %524 = load i32, ptr %38, align 4, !tbaa !9
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds i8, ptr %523, i64 %525
  store i8 %522, ptr %526, align 1, !tbaa !13
  %527 = load i32, ptr %38, align 4, !tbaa !9
  %528 = sitofp i32 %527 to float
  %529 = load ptr, ptr %13, align 8, !tbaa !5
  %530 = getelementptr inbounds float, ptr %529, i64 12
  %531 = load float, ptr %530, align 4, !tbaa !11
  %532 = fmul float %528, %531
  %533 = fptosi float %532 to i32
  %534 = icmp ult i32 %533, 255
  br i1 %534, label %535, label %542

535:                                              ; preds = %520
  %536 = load i32, ptr %38, align 4, !tbaa !9
  %537 = sitofp i32 %536 to float
  %538 = load ptr, ptr %13, align 8, !tbaa !5
  %539 = getelementptr inbounds float, ptr %538, i64 12
  %540 = load float, ptr %539, align 4, !tbaa !11
  %541 = fmul float %537, %540
  br label %553

542:                                              ; preds = %520
  %543 = load i32, ptr %38, align 4, !tbaa !9
  %544 = sitofp i32 %543 to float
  %545 = load ptr, ptr %13, align 8, !tbaa !5
  %546 = getelementptr inbounds float, ptr %545, i64 12
  %547 = load float, ptr %546, align 4, !tbaa !11
  %548 = fmul float %544, %547
  %549 = fcmp olt float %548, 0.000000e+00
  %550 = zext i1 %549 to i64
  %551 = select i1 %549, i32 0, i32 255
  %552 = sitofp i32 %551 to float
  br label %553

553:                                              ; preds = %542, %535
  %554 = phi float [ %541, %535 ], [ %552, %542 ]
  %555 = fptoui float %554 to i8
  %556 = load ptr, ptr %34, align 8, !tbaa !5
  %557 = load i32, ptr %38, align 4, !tbaa !9
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds i8, ptr %556, i64 %558
  store i8 %555, ptr %559, align 1, !tbaa !13
  %560 = load i32, ptr %38, align 4, !tbaa !9
  %561 = sitofp i32 %560 to float
  %562 = load ptr, ptr %13, align 8, !tbaa !5
  %563 = getelementptr inbounds float, ptr %562, i64 13
  %564 = load float, ptr %563, align 4, !tbaa !11
  %565 = fmul float %561, %564
  %566 = fptosi float %565 to i32
  %567 = icmp ult i32 %566, 255
  br i1 %567, label %568, label %575

568:                                              ; preds = %553
  %569 = load i32, ptr %38, align 4, !tbaa !9
  %570 = sitofp i32 %569 to float
  %571 = load ptr, ptr %13, align 8, !tbaa !5
  %572 = getelementptr inbounds float, ptr %571, i64 13
  %573 = load float, ptr %572, align 4, !tbaa !11
  %574 = fmul float %570, %573
  br label %586

575:                                              ; preds = %553
  %576 = load i32, ptr %38, align 4, !tbaa !9
  %577 = sitofp i32 %576 to float
  %578 = load ptr, ptr %13, align 8, !tbaa !5
  %579 = getelementptr inbounds float, ptr %578, i64 13
  %580 = load float, ptr %579, align 4, !tbaa !11
  %581 = fmul float %577, %580
  %582 = fcmp olt float %581, 0.000000e+00
  %583 = zext i1 %582 to i64
  %584 = select i1 %582, i32 0, i32 255
  %585 = sitofp i32 %584 to float
  br label %586

586:                                              ; preds = %575, %568
  %587 = phi float [ %574, %568 ], [ %585, %575 ]
  %588 = fptoui float %587 to i8
  %589 = load ptr, ptr %35, align 8, !tbaa !5
  %590 = load i32, ptr %38, align 4, !tbaa !9
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds i8, ptr %589, i64 %591
  store i8 %588, ptr %592, align 1, !tbaa !13
  %593 = load i32, ptr %38, align 4, !tbaa !9
  %594 = sitofp i32 %593 to float
  %595 = load ptr, ptr %13, align 8, !tbaa !5
  %596 = getelementptr inbounds float, ptr %595, i64 14
  %597 = load float, ptr %596, align 4, !tbaa !11
  %598 = fmul float %594, %597
  %599 = fptosi float %598 to i32
  %600 = icmp ult i32 %599, 255
  br i1 %600, label %601, label %608

601:                                              ; preds = %586
  %602 = load i32, ptr %38, align 4, !tbaa !9
  %603 = sitofp i32 %602 to float
  %604 = load ptr, ptr %13, align 8, !tbaa !5
  %605 = getelementptr inbounds float, ptr %604, i64 14
  %606 = load float, ptr %605, align 4, !tbaa !11
  %607 = fmul float %603, %606
  br label %619

608:                                              ; preds = %586
  %609 = load i32, ptr %38, align 4, !tbaa !9
  %610 = sitofp i32 %609 to float
  %611 = load ptr, ptr %13, align 8, !tbaa !5
  %612 = getelementptr inbounds float, ptr %611, i64 14
  %613 = load float, ptr %612, align 4, !tbaa !11
  %614 = fmul float %610, %613
  %615 = fcmp olt float %614, 0.000000e+00
  %616 = zext i1 %615 to i64
  %617 = select i1 %615, i32 0, i32 255
  %618 = sitofp i32 %617 to float
  br label %619

619:                                              ; preds = %608, %601
  %620 = phi float [ %607, %601 ], [ %618, %608 ]
  %621 = fptoui float %620 to i8
  %622 = load ptr, ptr %36, align 8, !tbaa !5
  %623 = load i32, ptr %38, align 4, !tbaa !9
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds i8, ptr %622, i64 %624
  store i8 %621, ptr %625, align 1, !tbaa !13
  %626 = load i32, ptr %38, align 4, !tbaa !9
  %627 = sitofp i32 %626 to float
  %628 = load ptr, ptr %13, align 8, !tbaa !5
  %629 = getelementptr inbounds float, ptr %628, i64 15
  %630 = load float, ptr %629, align 4, !tbaa !11
  %631 = fmul float %627, %630
  %632 = fptosi float %631 to i32
  %633 = icmp ult i32 %632, 255
  br i1 %633, label %634, label %641

634:                                              ; preds = %619
  %635 = load i32, ptr %38, align 4, !tbaa !9
  %636 = sitofp i32 %635 to float
  %637 = load ptr, ptr %13, align 8, !tbaa !5
  %638 = getelementptr inbounds float, ptr %637, i64 15
  %639 = load float, ptr %638, align 4, !tbaa !11
  %640 = fmul float %636, %639
  br label %652

641:                                              ; preds = %619
  %642 = load i32, ptr %38, align 4, !tbaa !9
  %643 = sitofp i32 %642 to float
  %644 = load ptr, ptr %13, align 8, !tbaa !5
  %645 = getelementptr inbounds float, ptr %644, i64 15
  %646 = load float, ptr %645, align 4, !tbaa !11
  %647 = fmul float %643, %646
  %648 = fcmp olt float %647, 0.000000e+00
  %649 = zext i1 %648 to i64
  %650 = select i1 %648, i32 0, i32 255
  %651 = sitofp i32 %650 to float
  br label %652

652:                                              ; preds = %641, %634
  %653 = phi float [ %640, %634 ], [ %651, %641 ]
  %654 = fptoui float %653 to i8
  %655 = load ptr, ptr %37, align 8, !tbaa !5
  %656 = load i32, ptr %38, align 4, !tbaa !9
  %657 = sext i32 %656 to i64
  %658 = getelementptr inbounds i8, ptr %655, i64 %657
  store i8 %654, ptr %658, align 1, !tbaa !13
  br label %659

659:                                              ; preds = %652
  %660 = load i32, ptr %38, align 4, !tbaa !9
  %661 = add nsw i32 %660, 1
  store i32 %661, ptr %38, align 4, !tbaa !9
  br label %126, !llvm.loop !17

662:                                              ; preds = %129
  %663 = load i32, ptr %15, align 4, !tbaa !9
  %664 = icmp eq i32 %663, 4
  br i1 %664, label %665, label %1133

665:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #3
  %666 = load i32, ptr %10, align 4, !tbaa !9
  %667 = load i32, ptr %15, align 4, !tbaa !9
  %668 = mul nsw i32 %666, %667
  store i32 %668, ptr %43, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #3
  store i32 0, ptr %44, align 4, !tbaa !9
  br label %669

669:                                              ; preds = %1129, %665
  %670 = load i32, ptr %44, align 4, !tbaa !9
  %671 = load i32, ptr %11, align 4, !tbaa !9
  %672 = icmp slt i32 %670, %671
  br i1 %672, label %674, label %673

673:                                              ; preds = %669
  store i32 11, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #3
  br label %1132

674:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #3
  %675 = load ptr, ptr %9, align 8, !tbaa !5
  %676 = load i32, ptr %44, align 4, !tbaa !9
  %677 = load i32, ptr %43, align 4, !tbaa !9
  %678 = mul nsw i32 %676, %677
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds i8, ptr %675, i64 %679
  store ptr %680, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #3
  %681 = load ptr, ptr %8, align 8, !tbaa !5
  %682 = load i32, ptr %44, align 4, !tbaa !9
  %683 = load i32, ptr %43, align 4, !tbaa !9
  %684 = mul nsw i32 %682, %683
  %685 = sext i32 %684 to i64
  %686 = getelementptr inbounds i8, ptr %681, i64 %685
  store ptr %686, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #3
  store i32 0, ptr %47, align 4, !tbaa !9
  br label %687

687:                                              ; preds = %1125, %674
  %688 = load i32, ptr %47, align 4, !tbaa !9
  %689 = load i32, ptr %10, align 4, !tbaa !9
  %690 = icmp slt i32 %688, %689
  br i1 %690, label %692, label %691

691:                                              ; preds = %687
  store i32 14, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #3
  br label %1128

692:                                              ; preds = %687
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #3
  %693 = load ptr, ptr %46, align 8, !tbaa !5
  %694 = getelementptr inbounds i8, ptr %693, i64 0
  %695 = load i8, ptr %694, align 1, !tbaa !13
  store i8 %695, ptr %48, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #3
  %696 = load ptr, ptr %46, align 8, !tbaa !5
  %697 = getelementptr inbounds i8, ptr %696, i64 1
  %698 = load i8, ptr %697, align 1, !tbaa !13
  store i8 %698, ptr %49, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #3
  %699 = load ptr, ptr %46, align 8, !tbaa !5
  %700 = getelementptr inbounds i8, ptr %699, i64 2
  %701 = load i8, ptr %700, align 1, !tbaa !13
  store i8 %701, ptr %50, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #3
  %702 = load ptr, ptr %46, align 8, !tbaa !5
  %703 = getelementptr inbounds i8, ptr %702, i64 3
  %704 = load i8, ptr %703, align 1, !tbaa !13
  store i8 %704, ptr %51, align 1, !tbaa !13
  %705 = load ptr, ptr %22, align 8, !tbaa !5
  %706 = load i8, ptr %48, align 1, !tbaa !13
  %707 = zext i8 %706 to i64
  %708 = getelementptr inbounds i8, ptr %705, i64 %707
  %709 = load i8, ptr %708, align 1, !tbaa !13
  %710 = zext i8 %709 to i32
  %711 = load ptr, ptr %23, align 8, !tbaa !5
  %712 = load i8, ptr %49, align 1, !tbaa !13
  %713 = zext i8 %712 to i64
  %714 = getelementptr inbounds i8, ptr %711, i64 %713
  %715 = load i8, ptr %714, align 1, !tbaa !13
  %716 = zext i8 %715 to i32
  %717 = add nsw i32 %710, %716
  %718 = load ptr, ptr %24, align 8, !tbaa !5
  %719 = load i8, ptr %50, align 1, !tbaa !13
  %720 = zext i8 %719 to i64
  %721 = getelementptr inbounds i8, ptr %718, i64 %720
  %722 = load i8, ptr %721, align 1, !tbaa !13
  %723 = zext i8 %722 to i32
  %724 = add nsw i32 %717, %723
  %725 = load ptr, ptr %25, align 8, !tbaa !5
  %726 = load i8, ptr %51, align 1, !tbaa !13
  %727 = zext i8 %726 to i64
  %728 = getelementptr inbounds i8, ptr %725, i64 %727
  %729 = load i8, ptr %728, align 1, !tbaa !13
  %730 = zext i8 %729 to i32
  %731 = add nsw i32 %724, %730
  %732 = icmp ult i32 %731, 255
  br i1 %732, label %733, label %761

733:                                              ; preds = %692
  %734 = load ptr, ptr %22, align 8, !tbaa !5
  %735 = load i8, ptr %48, align 1, !tbaa !13
  %736 = zext i8 %735 to i64
  %737 = getelementptr inbounds i8, ptr %734, i64 %736
  %738 = load i8, ptr %737, align 1, !tbaa !13
  %739 = zext i8 %738 to i32
  %740 = load ptr, ptr %23, align 8, !tbaa !5
  %741 = load i8, ptr %49, align 1, !tbaa !13
  %742 = zext i8 %741 to i64
  %743 = getelementptr inbounds i8, ptr %740, i64 %742
  %744 = load i8, ptr %743, align 1, !tbaa !13
  %745 = zext i8 %744 to i32
  %746 = add nsw i32 %739, %745
  %747 = load ptr, ptr %24, align 8, !tbaa !5
  %748 = load i8, ptr %50, align 1, !tbaa !13
  %749 = zext i8 %748 to i64
  %750 = getelementptr inbounds i8, ptr %747, i64 %749
  %751 = load i8, ptr %750, align 1, !tbaa !13
  %752 = zext i8 %751 to i32
  %753 = add nsw i32 %746, %752
  %754 = load ptr, ptr %25, align 8, !tbaa !5
  %755 = load i8, ptr %51, align 1, !tbaa !13
  %756 = zext i8 %755 to i64
  %757 = getelementptr inbounds i8, ptr %754, i64 %756
  %758 = load i8, ptr %757, align 1, !tbaa !13
  %759 = zext i8 %758 to i32
  %760 = add nsw i32 %753, %759
  br label %792

761:                                              ; preds = %692
  %762 = load ptr, ptr %22, align 8, !tbaa !5
  %763 = load i8, ptr %48, align 1, !tbaa !13
  %764 = zext i8 %763 to i64
  %765 = getelementptr inbounds i8, ptr %762, i64 %764
  %766 = load i8, ptr %765, align 1, !tbaa !13
  %767 = zext i8 %766 to i32
  %768 = load ptr, ptr %23, align 8, !tbaa !5
  %769 = load i8, ptr %49, align 1, !tbaa !13
  %770 = zext i8 %769 to i64
  %771 = getelementptr inbounds i8, ptr %768, i64 %770
  %772 = load i8, ptr %771, align 1, !tbaa !13
  %773 = zext i8 %772 to i32
  %774 = add nsw i32 %767, %773
  %775 = load ptr, ptr %24, align 8, !tbaa !5
  %776 = load i8, ptr %50, align 1, !tbaa !13
  %777 = zext i8 %776 to i64
  %778 = getelementptr inbounds i8, ptr %775, i64 %777
  %779 = load i8, ptr %778, align 1, !tbaa !13
  %780 = zext i8 %779 to i32
  %781 = add nsw i32 %774, %780
  %782 = load ptr, ptr %25, align 8, !tbaa !5
  %783 = load i8, ptr %51, align 1, !tbaa !13
  %784 = zext i8 %783 to i64
  %785 = getelementptr inbounds i8, ptr %782, i64 %784
  %786 = load i8, ptr %785, align 1, !tbaa !13
  %787 = zext i8 %786 to i32
  %788 = add nsw i32 %781, %787
  %789 = icmp slt i32 %788, 0
  %790 = zext i1 %789 to i64
  %791 = select i1 %789, i32 0, i32 255
  br label %792

792:                                              ; preds = %761, %733
  %793 = phi i32 [ %760, %733 ], [ %791, %761 ]
  %794 = trunc i32 %793 to i8
  store i8 %794, ptr %39, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #3
  %795 = getelementptr inbounds [65536 x i8], ptr %17, i64 0, i64 0
  %796 = load i8, ptr %48, align 1, !tbaa !13
  %797 = zext i8 %796 to i32
  %798 = shl i32 %797, 8
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds i8, ptr %795, i64 %799
  store ptr %800, ptr %52, align 8, !tbaa !5
  %801 = load ptr, ptr %52, align 8, !tbaa !5
  %802 = load i8, ptr %39, align 1, !tbaa !13
  %803 = zext i8 %802 to i64
  %804 = getelementptr inbounds i8, ptr %801, i64 %803
  %805 = load i8, ptr %804, align 1, !tbaa !13
  %806 = load ptr, ptr %45, align 8, !tbaa !5
  %807 = getelementptr inbounds i8, ptr %806, i64 0
  store i8 %805, ptr %807, align 1, !tbaa !13
  %808 = load ptr, ptr %26, align 8, !tbaa !5
  %809 = load i8, ptr %48, align 1, !tbaa !13
  %810 = zext i8 %809 to i64
  %811 = getelementptr inbounds i8, ptr %808, i64 %810
  %812 = load i8, ptr %811, align 1, !tbaa !13
  %813 = zext i8 %812 to i32
  %814 = load ptr, ptr %27, align 8, !tbaa !5
  %815 = load i8, ptr %49, align 1, !tbaa !13
  %816 = zext i8 %815 to i64
  %817 = getelementptr inbounds i8, ptr %814, i64 %816
  %818 = load i8, ptr %817, align 1, !tbaa !13
  %819 = zext i8 %818 to i32
  %820 = add nsw i32 %813, %819
  %821 = load ptr, ptr %28, align 8, !tbaa !5
  %822 = load i8, ptr %50, align 1, !tbaa !13
  %823 = zext i8 %822 to i64
  %824 = getelementptr inbounds i8, ptr %821, i64 %823
  %825 = load i8, ptr %824, align 1, !tbaa !13
  %826 = zext i8 %825 to i32
  %827 = add nsw i32 %820, %826
  %828 = load ptr, ptr %29, align 8, !tbaa !5
  %829 = load i8, ptr %51, align 1, !tbaa !13
  %830 = zext i8 %829 to i64
  %831 = getelementptr inbounds i8, ptr %828, i64 %830
  %832 = load i8, ptr %831, align 1, !tbaa !13
  %833 = zext i8 %832 to i32
  %834 = add nsw i32 %827, %833
  %835 = icmp ult i32 %834, 255
  br i1 %835, label %836, label %864

836:                                              ; preds = %792
  %837 = load ptr, ptr %26, align 8, !tbaa !5
  %838 = load i8, ptr %48, align 1, !tbaa !13
  %839 = zext i8 %838 to i64
  %840 = getelementptr inbounds i8, ptr %837, i64 %839
  %841 = load i8, ptr %840, align 1, !tbaa !13
  %842 = zext i8 %841 to i32
  %843 = load ptr, ptr %27, align 8, !tbaa !5
  %844 = load i8, ptr %49, align 1, !tbaa !13
  %845 = zext i8 %844 to i64
  %846 = getelementptr inbounds i8, ptr %843, i64 %845
  %847 = load i8, ptr %846, align 1, !tbaa !13
  %848 = zext i8 %847 to i32
  %849 = add nsw i32 %842, %848
  %850 = load ptr, ptr %28, align 8, !tbaa !5
  %851 = load i8, ptr %50, align 1, !tbaa !13
  %852 = zext i8 %851 to i64
  %853 = getelementptr inbounds i8, ptr %850, i64 %852
  %854 = load i8, ptr %853, align 1, !tbaa !13
  %855 = zext i8 %854 to i32
  %856 = add nsw i32 %849, %855
  %857 = load ptr, ptr %29, align 8, !tbaa !5
  %858 = load i8, ptr %51, align 1, !tbaa !13
  %859 = zext i8 %858 to i64
  %860 = getelementptr inbounds i8, ptr %857, i64 %859
  %861 = load i8, ptr %860, align 1, !tbaa !13
  %862 = zext i8 %861 to i32
  %863 = add nsw i32 %856, %862
  br label %895

864:                                              ; preds = %792
  %865 = load ptr, ptr %26, align 8, !tbaa !5
  %866 = load i8, ptr %48, align 1, !tbaa !13
  %867 = zext i8 %866 to i64
  %868 = getelementptr inbounds i8, ptr %865, i64 %867
  %869 = load i8, ptr %868, align 1, !tbaa !13
  %870 = zext i8 %869 to i32
  %871 = load ptr, ptr %27, align 8, !tbaa !5
  %872 = load i8, ptr %49, align 1, !tbaa !13
  %873 = zext i8 %872 to i64
  %874 = getelementptr inbounds i8, ptr %871, i64 %873
  %875 = load i8, ptr %874, align 1, !tbaa !13
  %876 = zext i8 %875 to i32
  %877 = add nsw i32 %870, %876
  %878 = load ptr, ptr %28, align 8, !tbaa !5
  %879 = load i8, ptr %50, align 1, !tbaa !13
  %880 = zext i8 %879 to i64
  %881 = getelementptr inbounds i8, ptr %878, i64 %880
  %882 = load i8, ptr %881, align 1, !tbaa !13
  %883 = zext i8 %882 to i32
  %884 = add nsw i32 %877, %883
  %885 = load ptr, ptr %29, align 8, !tbaa !5
  %886 = load i8, ptr %51, align 1, !tbaa !13
  %887 = zext i8 %886 to i64
  %888 = getelementptr inbounds i8, ptr %885, i64 %887
  %889 = load i8, ptr %888, align 1, !tbaa !13
  %890 = zext i8 %889 to i32
  %891 = add nsw i32 %884, %890
  %892 = icmp slt i32 %891, 0
  %893 = zext i1 %892 to i64
  %894 = select i1 %892, i32 0, i32 255
  br label %895

895:                                              ; preds = %864, %836
  %896 = phi i32 [ %863, %836 ], [ %894, %864 ]
  %897 = trunc i32 %896 to i8
  store i8 %897, ptr %40, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #3
  %898 = getelementptr inbounds [65536 x i8], ptr %17, i64 0, i64 0
  %899 = load i8, ptr %49, align 1, !tbaa !13
  %900 = zext i8 %899 to i32
  %901 = shl i32 %900, 8
  %902 = sext i32 %901 to i64
  %903 = getelementptr inbounds i8, ptr %898, i64 %902
  store ptr %903, ptr %53, align 8, !tbaa !5
  %904 = load ptr, ptr %53, align 8, !tbaa !5
  %905 = load i8, ptr %40, align 1, !tbaa !13
  %906 = zext i8 %905 to i64
  %907 = getelementptr inbounds i8, ptr %904, i64 %906
  %908 = load i8, ptr %907, align 1, !tbaa !13
  %909 = load ptr, ptr %45, align 8, !tbaa !5
  %910 = getelementptr inbounds i8, ptr %909, i64 1
  store i8 %908, ptr %910, align 1, !tbaa !13
  %911 = load ptr, ptr %30, align 8, !tbaa !5
  %912 = load i8, ptr %48, align 1, !tbaa !13
  %913 = zext i8 %912 to i64
  %914 = getelementptr inbounds i8, ptr %911, i64 %913
  %915 = load i8, ptr %914, align 1, !tbaa !13
  %916 = zext i8 %915 to i32
  %917 = load ptr, ptr %31, align 8, !tbaa !5
  %918 = load i8, ptr %49, align 1, !tbaa !13
  %919 = zext i8 %918 to i64
  %920 = getelementptr inbounds i8, ptr %917, i64 %919
  %921 = load i8, ptr %920, align 1, !tbaa !13
  %922 = zext i8 %921 to i32
  %923 = add nsw i32 %916, %922
  %924 = load ptr, ptr %32, align 8, !tbaa !5
  %925 = load i8, ptr %50, align 1, !tbaa !13
  %926 = zext i8 %925 to i64
  %927 = getelementptr inbounds i8, ptr %924, i64 %926
  %928 = load i8, ptr %927, align 1, !tbaa !13
  %929 = zext i8 %928 to i32
  %930 = add nsw i32 %923, %929
  %931 = load ptr, ptr %33, align 8, !tbaa !5
  %932 = load i8, ptr %51, align 1, !tbaa !13
  %933 = zext i8 %932 to i64
  %934 = getelementptr inbounds i8, ptr %931, i64 %933
  %935 = load i8, ptr %934, align 1, !tbaa !13
  %936 = zext i8 %935 to i32
  %937 = add nsw i32 %930, %936
  %938 = icmp ult i32 %937, 255
  br i1 %938, label %939, label %967

939:                                              ; preds = %895
  %940 = load ptr, ptr %30, align 8, !tbaa !5
  %941 = load i8, ptr %48, align 1, !tbaa !13
  %942 = zext i8 %941 to i64
  %943 = getelementptr inbounds i8, ptr %940, i64 %942
  %944 = load i8, ptr %943, align 1, !tbaa !13
  %945 = zext i8 %944 to i32
  %946 = load ptr, ptr %31, align 8, !tbaa !5
  %947 = load i8, ptr %49, align 1, !tbaa !13
  %948 = zext i8 %947 to i64
  %949 = getelementptr inbounds i8, ptr %946, i64 %948
  %950 = load i8, ptr %949, align 1, !tbaa !13
  %951 = zext i8 %950 to i32
  %952 = add nsw i32 %945, %951
  %953 = load ptr, ptr %32, align 8, !tbaa !5
  %954 = load i8, ptr %50, align 1, !tbaa !13
  %955 = zext i8 %954 to i64
  %956 = getelementptr inbounds i8, ptr %953, i64 %955
  %957 = load i8, ptr %956, align 1, !tbaa !13
  %958 = zext i8 %957 to i32
  %959 = add nsw i32 %952, %958
  %960 = load ptr, ptr %33, align 8, !tbaa !5
  %961 = load i8, ptr %51, align 1, !tbaa !13
  %962 = zext i8 %961 to i64
  %963 = getelementptr inbounds i8, ptr %960, i64 %962
  %964 = load i8, ptr %963, align 1, !tbaa !13
  %965 = zext i8 %964 to i32
  %966 = add nsw i32 %959, %965
  br label %998

967:                                              ; preds = %895
  %968 = load ptr, ptr %30, align 8, !tbaa !5
  %969 = load i8, ptr %48, align 1, !tbaa !13
  %970 = zext i8 %969 to i64
  %971 = getelementptr inbounds i8, ptr %968, i64 %970
  %972 = load i8, ptr %971, align 1, !tbaa !13
  %973 = zext i8 %972 to i32
  %974 = load ptr, ptr %31, align 8, !tbaa !5
  %975 = load i8, ptr %49, align 1, !tbaa !13
  %976 = zext i8 %975 to i64
  %977 = getelementptr inbounds i8, ptr %974, i64 %976
  %978 = load i8, ptr %977, align 1, !tbaa !13
  %979 = zext i8 %978 to i32
  %980 = add nsw i32 %973, %979
  %981 = load ptr, ptr %32, align 8, !tbaa !5
  %982 = load i8, ptr %50, align 1, !tbaa !13
  %983 = zext i8 %982 to i64
  %984 = getelementptr inbounds i8, ptr %981, i64 %983
  %985 = load i8, ptr %984, align 1, !tbaa !13
  %986 = zext i8 %985 to i32
  %987 = add nsw i32 %980, %986
  %988 = load ptr, ptr %33, align 8, !tbaa !5
  %989 = load i8, ptr %51, align 1, !tbaa !13
  %990 = zext i8 %989 to i64
  %991 = getelementptr inbounds i8, ptr %988, i64 %990
  %992 = load i8, ptr %991, align 1, !tbaa !13
  %993 = zext i8 %992 to i32
  %994 = add nsw i32 %987, %993
  %995 = icmp slt i32 %994, 0
  %996 = zext i1 %995 to i64
  %997 = select i1 %995, i32 0, i32 255
  br label %998

998:                                              ; preds = %967, %939
  %999 = phi i32 [ %966, %939 ], [ %997, %967 ]
  %1000 = trunc i32 %999 to i8
  store i8 %1000, ptr %41, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #3
  %1001 = getelementptr inbounds [65536 x i8], ptr %17, i64 0, i64 0
  %1002 = load i8, ptr %50, align 1, !tbaa !13
  %1003 = zext i8 %1002 to i32
  %1004 = shl i32 %1003, 8
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds i8, ptr %1001, i64 %1005
  store ptr %1006, ptr %54, align 8, !tbaa !5
  %1007 = load ptr, ptr %54, align 8, !tbaa !5
  %1008 = load i8, ptr %41, align 1, !tbaa !13
  %1009 = zext i8 %1008 to i64
  %1010 = getelementptr inbounds i8, ptr %1007, i64 %1009
  %1011 = load i8, ptr %1010, align 1, !tbaa !13
  %1012 = load ptr, ptr %45, align 8, !tbaa !5
  %1013 = getelementptr inbounds i8, ptr %1012, i64 2
  store i8 %1011, ptr %1013, align 1, !tbaa !13
  %1014 = load ptr, ptr %34, align 8, !tbaa !5
  %1015 = load i8, ptr %48, align 1, !tbaa !13
  %1016 = zext i8 %1015 to i64
  %1017 = getelementptr inbounds i8, ptr %1014, i64 %1016
  %1018 = load i8, ptr %1017, align 1, !tbaa !13
  %1019 = zext i8 %1018 to i32
  %1020 = load ptr, ptr %35, align 8, !tbaa !5
  %1021 = load i8, ptr %49, align 1, !tbaa !13
  %1022 = zext i8 %1021 to i64
  %1023 = getelementptr inbounds i8, ptr %1020, i64 %1022
  %1024 = load i8, ptr %1023, align 1, !tbaa !13
  %1025 = zext i8 %1024 to i32
  %1026 = add nsw i32 %1019, %1025
  %1027 = load ptr, ptr %36, align 8, !tbaa !5
  %1028 = load i8, ptr %50, align 1, !tbaa !13
  %1029 = zext i8 %1028 to i64
  %1030 = getelementptr inbounds i8, ptr %1027, i64 %1029
  %1031 = load i8, ptr %1030, align 1, !tbaa !13
  %1032 = zext i8 %1031 to i32
  %1033 = add nsw i32 %1026, %1032
  %1034 = load ptr, ptr %37, align 8, !tbaa !5
  %1035 = load i8, ptr %51, align 1, !tbaa !13
  %1036 = zext i8 %1035 to i64
  %1037 = getelementptr inbounds i8, ptr %1034, i64 %1036
  %1038 = load i8, ptr %1037, align 1, !tbaa !13
  %1039 = zext i8 %1038 to i32
  %1040 = add nsw i32 %1033, %1039
  %1041 = icmp ult i32 %1040, 255
  br i1 %1041, label %1042, label %1070

1042:                                             ; preds = %998
  %1043 = load ptr, ptr %34, align 8, !tbaa !5
  %1044 = load i8, ptr %48, align 1, !tbaa !13
  %1045 = zext i8 %1044 to i64
  %1046 = getelementptr inbounds i8, ptr %1043, i64 %1045
  %1047 = load i8, ptr %1046, align 1, !tbaa !13
  %1048 = zext i8 %1047 to i32
  %1049 = load ptr, ptr %35, align 8, !tbaa !5
  %1050 = load i8, ptr %49, align 1, !tbaa !13
  %1051 = zext i8 %1050 to i64
  %1052 = getelementptr inbounds i8, ptr %1049, i64 %1051
  %1053 = load i8, ptr %1052, align 1, !tbaa !13
  %1054 = zext i8 %1053 to i32
  %1055 = add nsw i32 %1048, %1054
  %1056 = load ptr, ptr %36, align 8, !tbaa !5
  %1057 = load i8, ptr %50, align 1, !tbaa !13
  %1058 = zext i8 %1057 to i64
  %1059 = getelementptr inbounds i8, ptr %1056, i64 %1058
  %1060 = load i8, ptr %1059, align 1, !tbaa !13
  %1061 = zext i8 %1060 to i32
  %1062 = add nsw i32 %1055, %1061
  %1063 = load ptr, ptr %37, align 8, !tbaa !5
  %1064 = load i8, ptr %51, align 1, !tbaa !13
  %1065 = zext i8 %1064 to i64
  %1066 = getelementptr inbounds i8, ptr %1063, i64 %1065
  %1067 = load i8, ptr %1066, align 1, !tbaa !13
  %1068 = zext i8 %1067 to i32
  %1069 = add nsw i32 %1062, %1068
  br label %1101

1070:                                             ; preds = %998
  %1071 = load ptr, ptr %34, align 8, !tbaa !5
  %1072 = load i8, ptr %48, align 1, !tbaa !13
  %1073 = zext i8 %1072 to i64
  %1074 = getelementptr inbounds i8, ptr %1071, i64 %1073
  %1075 = load i8, ptr %1074, align 1, !tbaa !13
  %1076 = zext i8 %1075 to i32
  %1077 = load ptr, ptr %35, align 8, !tbaa !5
  %1078 = load i8, ptr %49, align 1, !tbaa !13
  %1079 = zext i8 %1078 to i64
  %1080 = getelementptr inbounds i8, ptr %1077, i64 %1079
  %1081 = load i8, ptr %1080, align 1, !tbaa !13
  %1082 = zext i8 %1081 to i32
  %1083 = add nsw i32 %1076, %1082
  %1084 = load ptr, ptr %36, align 8, !tbaa !5
  %1085 = load i8, ptr %50, align 1, !tbaa !13
  %1086 = zext i8 %1085 to i64
  %1087 = getelementptr inbounds i8, ptr %1084, i64 %1086
  %1088 = load i8, ptr %1087, align 1, !tbaa !13
  %1089 = zext i8 %1088 to i32
  %1090 = add nsw i32 %1083, %1089
  %1091 = load ptr, ptr %37, align 8, !tbaa !5
  %1092 = load i8, ptr %51, align 1, !tbaa !13
  %1093 = zext i8 %1092 to i64
  %1094 = getelementptr inbounds i8, ptr %1091, i64 %1093
  %1095 = load i8, ptr %1094, align 1, !tbaa !13
  %1096 = zext i8 %1095 to i32
  %1097 = add nsw i32 %1090, %1096
  %1098 = icmp slt i32 %1097, 0
  %1099 = zext i1 %1098 to i64
  %1100 = select i1 %1098, i32 0, i32 255
  br label %1101

1101:                                             ; preds = %1070, %1042
  %1102 = phi i32 [ %1069, %1042 ], [ %1100, %1070 ]
  %1103 = trunc i32 %1102 to i8
  store i8 %1103, ptr %42, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #3
  %1104 = getelementptr inbounds [65536 x i8], ptr %17, i64 0, i64 0
  %1105 = load i8, ptr %51, align 1, !tbaa !13
  %1106 = zext i8 %1105 to i32
  %1107 = shl i32 %1106, 8
  %1108 = sext i32 %1107 to i64
  %1109 = getelementptr inbounds i8, ptr %1104, i64 %1108
  store ptr %1109, ptr %55, align 8, !tbaa !5
  %1110 = load ptr, ptr %55, align 8, !tbaa !5
  %1111 = load i8, ptr %42, align 1, !tbaa !13
  %1112 = zext i8 %1111 to i64
  %1113 = getelementptr inbounds i8, ptr %1110, i64 %1112
  %1114 = load i8, ptr %1113, align 1, !tbaa !13
  %1115 = load ptr, ptr %45, align 8, !tbaa !5
  %1116 = getelementptr inbounds i8, ptr %1115, i64 3
  store i8 %1114, ptr %1116, align 1, !tbaa !13
  %1117 = load i32, ptr %15, align 4, !tbaa !9
  %1118 = load ptr, ptr %46, align 8, !tbaa !5
  %1119 = sext i32 %1117 to i64
  %1120 = getelementptr inbounds i8, ptr %1118, i64 %1119
  store ptr %1120, ptr %46, align 8, !tbaa !5
  %1121 = load i32, ptr %15, align 4, !tbaa !9
  %1122 = load ptr, ptr %45, align 8, !tbaa !5
  %1123 = sext i32 %1121 to i64
  %1124 = getelementptr inbounds i8, ptr %1122, i64 %1123
  store ptr %1124, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #3
  br label %1125

1125:                                             ; preds = %1101
  %1126 = load i32, ptr %47, align 4, !tbaa !9
  %1127 = add nsw i32 %1126, 1
  store i32 %1127, ptr %47, align 4, !tbaa !9
  br label %687, !llvm.loop !18

1128:                                             ; preds = %691
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #3
  br label %1129

1129:                                             ; preds = %1128
  %1130 = load i32, ptr %44, align 4, !tbaa !9
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr %44, align 4, !tbaa !9
  br label %669, !llvm.loop !19

1132:                                             ; preds = %673
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #3
  br label %1436

1133:                                             ; preds = %662
  %1134 = load i32, ptr %15, align 4, !tbaa !9
  %1135 = icmp eq i32 %1134, 3
  br i1 %1135, label %1136, label %1435

1136:                                             ; preds = %1133
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #3
  %1137 = load i32, ptr %10, align 4, !tbaa !9
  %1138 = load i32, ptr %15, align 4, !tbaa !9
  %1139 = mul nsw i32 %1137, %1138
  store i32 %1139, ptr %59, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #3
  store i32 0, ptr %60, align 4, !tbaa !9
  br label %1140

1140:                                             ; preds = %1431, %1136
  %1141 = load i32, ptr %60, align 4, !tbaa !9
  %1142 = load i32, ptr %11, align 4, !tbaa !9
  %1143 = icmp slt i32 %1141, %1142
  br i1 %1143, label %1145, label %1144

1144:                                             ; preds = %1140
  store i32 17, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  br label %1434

1145:                                             ; preds = %1140
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #3
  %1146 = load ptr, ptr %9, align 8, !tbaa !5
  %1147 = load i32, ptr %60, align 4, !tbaa !9
  %1148 = load i32, ptr %59, align 4, !tbaa !9
  %1149 = mul nsw i32 %1147, %1148
  %1150 = sext i32 %1149 to i64
  %1151 = getelementptr inbounds i8, ptr %1146, i64 %1150
  store ptr %1151, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #3
  %1152 = load ptr, ptr %8, align 8, !tbaa !5
  %1153 = load i32, ptr %60, align 4, !tbaa !9
  %1154 = load i32, ptr %59, align 4, !tbaa !9
  %1155 = mul nsw i32 %1153, %1154
  %1156 = sext i32 %1155 to i64
  %1157 = getelementptr inbounds i8, ptr %1152, i64 %1156
  store ptr %1157, ptr %62, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #3
  store i32 0, ptr %63, align 4, !tbaa !9
  br label %1158

1158:                                             ; preds = %1427, %1145
  %1159 = load i32, ptr %63, align 4, !tbaa !9
  %1160 = load i32, ptr %10, align 4, !tbaa !9
  %1161 = icmp slt i32 %1159, %1160
  br i1 %1161, label %1163, label %1162

1162:                                             ; preds = %1158
  store i32 20, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  br label %1430

1163:                                             ; preds = %1158
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #3
  %1164 = load ptr, ptr %62, align 8, !tbaa !5
  %1165 = getelementptr inbounds i8, ptr %1164, i64 0
  %1166 = load i8, ptr %1165, align 1, !tbaa !13
  store i8 %1166, ptr %64, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #3
  %1167 = load ptr, ptr %62, align 8, !tbaa !5
  %1168 = getelementptr inbounds i8, ptr %1167, i64 1
  %1169 = load i8, ptr %1168, align 1, !tbaa !13
  store i8 %1169, ptr %65, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #3
  %1170 = load ptr, ptr %62, align 8, !tbaa !5
  %1171 = getelementptr inbounds i8, ptr %1170, i64 2
  %1172 = load i8, ptr %1171, align 1, !tbaa !13
  store i8 %1172, ptr %66, align 1, !tbaa !13
  %1173 = load ptr, ptr %22, align 8, !tbaa !5
  %1174 = load i8, ptr %64, align 1, !tbaa !13
  %1175 = zext i8 %1174 to i64
  %1176 = getelementptr inbounds i8, ptr %1173, i64 %1175
  %1177 = load i8, ptr %1176, align 1, !tbaa !13
  %1178 = zext i8 %1177 to i32
  %1179 = load ptr, ptr %23, align 8, !tbaa !5
  %1180 = load i8, ptr %65, align 1, !tbaa !13
  %1181 = zext i8 %1180 to i64
  %1182 = getelementptr inbounds i8, ptr %1179, i64 %1181
  %1183 = load i8, ptr %1182, align 1, !tbaa !13
  %1184 = zext i8 %1183 to i32
  %1185 = add nsw i32 %1178, %1184
  %1186 = load ptr, ptr %24, align 8, !tbaa !5
  %1187 = load i8, ptr %66, align 1, !tbaa !13
  %1188 = zext i8 %1187 to i64
  %1189 = getelementptr inbounds i8, ptr %1186, i64 %1188
  %1190 = load i8, ptr %1189, align 1, !tbaa !13
  %1191 = zext i8 %1190 to i32
  %1192 = add nsw i32 %1185, %1191
  %1193 = icmp ult i32 %1192, 255
  br i1 %1193, label %1194, label %1215

1194:                                             ; preds = %1163
  %1195 = load ptr, ptr %22, align 8, !tbaa !5
  %1196 = load i8, ptr %64, align 1, !tbaa !13
  %1197 = zext i8 %1196 to i64
  %1198 = getelementptr inbounds i8, ptr %1195, i64 %1197
  %1199 = load i8, ptr %1198, align 1, !tbaa !13
  %1200 = zext i8 %1199 to i32
  %1201 = load ptr, ptr %23, align 8, !tbaa !5
  %1202 = load i8, ptr %65, align 1, !tbaa !13
  %1203 = zext i8 %1202 to i64
  %1204 = getelementptr inbounds i8, ptr %1201, i64 %1203
  %1205 = load i8, ptr %1204, align 1, !tbaa !13
  %1206 = zext i8 %1205 to i32
  %1207 = add nsw i32 %1200, %1206
  %1208 = load ptr, ptr %24, align 8, !tbaa !5
  %1209 = load i8, ptr %66, align 1, !tbaa !13
  %1210 = zext i8 %1209 to i64
  %1211 = getelementptr inbounds i8, ptr %1208, i64 %1210
  %1212 = load i8, ptr %1211, align 1, !tbaa !13
  %1213 = zext i8 %1212 to i32
  %1214 = add nsw i32 %1207, %1213
  br label %1239

1215:                                             ; preds = %1163
  %1216 = load ptr, ptr %22, align 8, !tbaa !5
  %1217 = load i8, ptr %64, align 1, !tbaa !13
  %1218 = zext i8 %1217 to i64
  %1219 = getelementptr inbounds i8, ptr %1216, i64 %1218
  %1220 = load i8, ptr %1219, align 1, !tbaa !13
  %1221 = zext i8 %1220 to i32
  %1222 = load ptr, ptr %23, align 8, !tbaa !5
  %1223 = load i8, ptr %65, align 1, !tbaa !13
  %1224 = zext i8 %1223 to i64
  %1225 = getelementptr inbounds i8, ptr %1222, i64 %1224
  %1226 = load i8, ptr %1225, align 1, !tbaa !13
  %1227 = zext i8 %1226 to i32
  %1228 = add nsw i32 %1221, %1227
  %1229 = load ptr, ptr %24, align 8, !tbaa !5
  %1230 = load i8, ptr %66, align 1, !tbaa !13
  %1231 = zext i8 %1230 to i64
  %1232 = getelementptr inbounds i8, ptr %1229, i64 %1231
  %1233 = load i8, ptr %1232, align 1, !tbaa !13
  %1234 = zext i8 %1233 to i32
  %1235 = add nsw i32 %1228, %1234
  %1236 = icmp slt i32 %1235, 0
  %1237 = zext i1 %1236 to i64
  %1238 = select i1 %1236, i32 0, i32 255
  br label %1239

1239:                                             ; preds = %1215, %1194
  %1240 = phi i32 [ %1214, %1194 ], [ %1238, %1215 ]
  %1241 = trunc i32 %1240 to i8
  store i8 %1241, ptr %56, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  %1242 = getelementptr inbounds [65536 x i8], ptr %17, i64 0, i64 0
  %1243 = load i8, ptr %64, align 1, !tbaa !13
  %1244 = zext i8 %1243 to i32
  %1245 = shl i32 %1244, 8
  %1246 = sext i32 %1245 to i64
  %1247 = getelementptr inbounds i8, ptr %1242, i64 %1246
  store ptr %1247, ptr %67, align 8, !tbaa !5
  %1248 = load ptr, ptr %67, align 8, !tbaa !5
  %1249 = load i8, ptr %56, align 1, !tbaa !13
  %1250 = zext i8 %1249 to i64
  %1251 = getelementptr inbounds i8, ptr %1248, i64 %1250
  %1252 = load i8, ptr %1251, align 1, !tbaa !13
  %1253 = load ptr, ptr %61, align 8, !tbaa !5
  %1254 = getelementptr inbounds i8, ptr %1253, i64 0
  store i8 %1252, ptr %1254, align 1, !tbaa !13
  %1255 = load ptr, ptr %26, align 8, !tbaa !5
  %1256 = load i8, ptr %64, align 1, !tbaa !13
  %1257 = zext i8 %1256 to i64
  %1258 = getelementptr inbounds i8, ptr %1255, i64 %1257
  %1259 = load i8, ptr %1258, align 1, !tbaa !13
  %1260 = zext i8 %1259 to i32
  %1261 = load ptr, ptr %27, align 8, !tbaa !5
  %1262 = load i8, ptr %65, align 1, !tbaa !13
  %1263 = zext i8 %1262 to i64
  %1264 = getelementptr inbounds i8, ptr %1261, i64 %1263
  %1265 = load i8, ptr %1264, align 1, !tbaa !13
  %1266 = zext i8 %1265 to i32
  %1267 = add nsw i32 %1260, %1266
  %1268 = load ptr, ptr %28, align 8, !tbaa !5
  %1269 = load i8, ptr %66, align 1, !tbaa !13
  %1270 = zext i8 %1269 to i64
  %1271 = getelementptr inbounds i8, ptr %1268, i64 %1270
  %1272 = load i8, ptr %1271, align 1, !tbaa !13
  %1273 = zext i8 %1272 to i32
  %1274 = add nsw i32 %1267, %1273
  %1275 = icmp ult i32 %1274, 255
  br i1 %1275, label %1276, label %1297

1276:                                             ; preds = %1239
  %1277 = load ptr, ptr %26, align 8, !tbaa !5
  %1278 = load i8, ptr %64, align 1, !tbaa !13
  %1279 = zext i8 %1278 to i64
  %1280 = getelementptr inbounds i8, ptr %1277, i64 %1279
  %1281 = load i8, ptr %1280, align 1, !tbaa !13
  %1282 = zext i8 %1281 to i32
  %1283 = load ptr, ptr %27, align 8, !tbaa !5
  %1284 = load i8, ptr %65, align 1, !tbaa !13
  %1285 = zext i8 %1284 to i64
  %1286 = getelementptr inbounds i8, ptr %1283, i64 %1285
  %1287 = load i8, ptr %1286, align 1, !tbaa !13
  %1288 = zext i8 %1287 to i32
  %1289 = add nsw i32 %1282, %1288
  %1290 = load ptr, ptr %28, align 8, !tbaa !5
  %1291 = load i8, ptr %66, align 1, !tbaa !13
  %1292 = zext i8 %1291 to i64
  %1293 = getelementptr inbounds i8, ptr %1290, i64 %1292
  %1294 = load i8, ptr %1293, align 1, !tbaa !13
  %1295 = zext i8 %1294 to i32
  %1296 = add nsw i32 %1289, %1295
  br label %1321

1297:                                             ; preds = %1239
  %1298 = load ptr, ptr %26, align 8, !tbaa !5
  %1299 = load i8, ptr %64, align 1, !tbaa !13
  %1300 = zext i8 %1299 to i64
  %1301 = getelementptr inbounds i8, ptr %1298, i64 %1300
  %1302 = load i8, ptr %1301, align 1, !tbaa !13
  %1303 = zext i8 %1302 to i32
  %1304 = load ptr, ptr %27, align 8, !tbaa !5
  %1305 = load i8, ptr %65, align 1, !tbaa !13
  %1306 = zext i8 %1305 to i64
  %1307 = getelementptr inbounds i8, ptr %1304, i64 %1306
  %1308 = load i8, ptr %1307, align 1, !tbaa !13
  %1309 = zext i8 %1308 to i32
  %1310 = add nsw i32 %1303, %1309
  %1311 = load ptr, ptr %28, align 8, !tbaa !5
  %1312 = load i8, ptr %66, align 1, !tbaa !13
  %1313 = zext i8 %1312 to i64
  %1314 = getelementptr inbounds i8, ptr %1311, i64 %1313
  %1315 = load i8, ptr %1314, align 1, !tbaa !13
  %1316 = zext i8 %1315 to i32
  %1317 = add nsw i32 %1310, %1316
  %1318 = icmp slt i32 %1317, 0
  %1319 = zext i1 %1318 to i64
  %1320 = select i1 %1318, i32 0, i32 255
  br label %1321

1321:                                             ; preds = %1297, %1276
  %1322 = phi i32 [ %1296, %1276 ], [ %1320, %1297 ]
  %1323 = trunc i32 %1322 to i8
  store i8 %1323, ptr %57, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #3
  %1324 = getelementptr inbounds [65536 x i8], ptr %17, i64 0, i64 0
  %1325 = load i8, ptr %65, align 1, !tbaa !13
  %1326 = zext i8 %1325 to i32
  %1327 = shl i32 %1326, 8
  %1328 = sext i32 %1327 to i64
  %1329 = getelementptr inbounds i8, ptr %1324, i64 %1328
  store ptr %1329, ptr %68, align 8, !tbaa !5
  %1330 = load ptr, ptr %68, align 8, !tbaa !5
  %1331 = load i8, ptr %57, align 1, !tbaa !13
  %1332 = zext i8 %1331 to i64
  %1333 = getelementptr inbounds i8, ptr %1330, i64 %1332
  %1334 = load i8, ptr %1333, align 1, !tbaa !13
  %1335 = load ptr, ptr %61, align 8, !tbaa !5
  %1336 = getelementptr inbounds i8, ptr %1335, i64 1
  store i8 %1334, ptr %1336, align 1, !tbaa !13
  %1337 = load ptr, ptr %30, align 8, !tbaa !5
  %1338 = load i8, ptr %64, align 1, !tbaa !13
  %1339 = zext i8 %1338 to i64
  %1340 = getelementptr inbounds i8, ptr %1337, i64 %1339
  %1341 = load i8, ptr %1340, align 1, !tbaa !13
  %1342 = zext i8 %1341 to i32
  %1343 = load ptr, ptr %31, align 8, !tbaa !5
  %1344 = load i8, ptr %65, align 1, !tbaa !13
  %1345 = zext i8 %1344 to i64
  %1346 = getelementptr inbounds i8, ptr %1343, i64 %1345
  %1347 = load i8, ptr %1346, align 1, !tbaa !13
  %1348 = zext i8 %1347 to i32
  %1349 = add nsw i32 %1342, %1348
  %1350 = load ptr, ptr %32, align 8, !tbaa !5
  %1351 = load i8, ptr %66, align 1, !tbaa !13
  %1352 = zext i8 %1351 to i64
  %1353 = getelementptr inbounds i8, ptr %1350, i64 %1352
  %1354 = load i8, ptr %1353, align 1, !tbaa !13
  %1355 = zext i8 %1354 to i32
  %1356 = add nsw i32 %1349, %1355
  %1357 = icmp ult i32 %1356, 255
  br i1 %1357, label %1358, label %1379

1358:                                             ; preds = %1321
  %1359 = load ptr, ptr %30, align 8, !tbaa !5
  %1360 = load i8, ptr %64, align 1, !tbaa !13
  %1361 = zext i8 %1360 to i64
  %1362 = getelementptr inbounds i8, ptr %1359, i64 %1361
  %1363 = load i8, ptr %1362, align 1, !tbaa !13
  %1364 = zext i8 %1363 to i32
  %1365 = load ptr, ptr %31, align 8, !tbaa !5
  %1366 = load i8, ptr %65, align 1, !tbaa !13
  %1367 = zext i8 %1366 to i64
  %1368 = getelementptr inbounds i8, ptr %1365, i64 %1367
  %1369 = load i8, ptr %1368, align 1, !tbaa !13
  %1370 = zext i8 %1369 to i32
  %1371 = add nsw i32 %1364, %1370
  %1372 = load ptr, ptr %32, align 8, !tbaa !5
  %1373 = load i8, ptr %66, align 1, !tbaa !13
  %1374 = zext i8 %1373 to i64
  %1375 = getelementptr inbounds i8, ptr %1372, i64 %1374
  %1376 = load i8, ptr %1375, align 1, !tbaa !13
  %1377 = zext i8 %1376 to i32
  %1378 = add nsw i32 %1371, %1377
  br label %1403

1379:                                             ; preds = %1321
  %1380 = load ptr, ptr %30, align 8, !tbaa !5
  %1381 = load i8, ptr %64, align 1, !tbaa !13
  %1382 = zext i8 %1381 to i64
  %1383 = getelementptr inbounds i8, ptr %1380, i64 %1382
  %1384 = load i8, ptr %1383, align 1, !tbaa !13
  %1385 = zext i8 %1384 to i32
  %1386 = load ptr, ptr %31, align 8, !tbaa !5
  %1387 = load i8, ptr %65, align 1, !tbaa !13
  %1388 = zext i8 %1387 to i64
  %1389 = getelementptr inbounds i8, ptr %1386, i64 %1388
  %1390 = load i8, ptr %1389, align 1, !tbaa !13
  %1391 = zext i8 %1390 to i32
  %1392 = add nsw i32 %1385, %1391
  %1393 = load ptr, ptr %32, align 8, !tbaa !5
  %1394 = load i8, ptr %66, align 1, !tbaa !13
  %1395 = zext i8 %1394 to i64
  %1396 = getelementptr inbounds i8, ptr %1393, i64 %1395
  %1397 = load i8, ptr %1396, align 1, !tbaa !13
  %1398 = zext i8 %1397 to i32
  %1399 = add nsw i32 %1392, %1398
  %1400 = icmp slt i32 %1399, 0
  %1401 = zext i1 %1400 to i64
  %1402 = select i1 %1400, i32 0, i32 255
  br label %1403

1403:                                             ; preds = %1379, %1358
  %1404 = phi i32 [ %1378, %1358 ], [ %1402, %1379 ]
  %1405 = trunc i32 %1404 to i8
  store i8 %1405, ptr %58, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #3
  %1406 = getelementptr inbounds [65536 x i8], ptr %17, i64 0, i64 0
  %1407 = load i8, ptr %66, align 1, !tbaa !13
  %1408 = zext i8 %1407 to i32
  %1409 = shl i32 %1408, 8
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr inbounds i8, ptr %1406, i64 %1410
  store ptr %1411, ptr %69, align 8, !tbaa !5
  %1412 = load ptr, ptr %69, align 8, !tbaa !5
  %1413 = load i8, ptr %58, align 1, !tbaa !13
  %1414 = zext i8 %1413 to i64
  %1415 = getelementptr inbounds i8, ptr %1412, i64 %1414
  %1416 = load i8, ptr %1415, align 1, !tbaa !13
  %1417 = load ptr, ptr %61, align 8, !tbaa !5
  %1418 = getelementptr inbounds i8, ptr %1417, i64 2
  store i8 %1416, ptr %1418, align 1, !tbaa !13
  %1419 = load i32, ptr %15, align 4, !tbaa !9
  %1420 = load ptr, ptr %62, align 8, !tbaa !5
  %1421 = sext i32 %1419 to i64
  %1422 = getelementptr inbounds i8, ptr %1420, i64 %1421
  store ptr %1422, ptr %62, align 8, !tbaa !5
  %1423 = load i32, ptr %15, align 4, !tbaa !9
  %1424 = load ptr, ptr %61, align 8, !tbaa !5
  %1425 = sext i32 %1423 to i64
  %1426 = getelementptr inbounds i8, ptr %1424, i64 %1425
  store ptr %1426, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #3
  br label %1427

1427:                                             ; preds = %1403
  %1428 = load i32, ptr %63, align 4, !tbaa !9
  %1429 = add nsw i32 %1428, 1
  store i32 %1429, ptr %63, align 4, !tbaa !9
  br label %1158, !llvm.loop !20

1430:                                             ; preds = %1162
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  br label %1431

1431:                                             ; preds = %1430
  %1432 = load i32, ptr %60, align 4, !tbaa !9
  %1433 = add nsw i32 %1432, 1
  store i32 %1433, ptr %60, align 4, !tbaa !9
  br label %1140, !llvm.loop !21

1434:                                             ; preds = %1144
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #3
  br label %1435

1435:                                             ; preds = %1434, %1133
  br label %1436

1436:                                             ; preds = %1435, %1132
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 4096, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 65536, ptr %17) #3
  store i32 0, ptr %16, align 4
  br label %1437

1437:                                             ; preds = %1436, %75
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  %1438 = load i32, ptr %16, align 4
  switch i32 %1438, label %1440 [
    i32 0, label %1439
    i32 1, label %1439
  ]

1439:                                             ; preds = %1437, %1437
  ret void

1440:                                             ; preds = %1437
  unreachable
}

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @degree(i8 noundef zeroext, i8 noundef zeroext, float noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

; Function Attrs: nounwind uwtable
define dso_local void @CPUImageColorMatrixFilter(ptr nocapture noundef readonly %0, ptr nocapture noundef writeonly %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, ptr nocapture noundef readonly %5, float noundef %6) local_unnamed_addr #0 {
  %8 = alloca [65536 x i8], align 16
  %9 = alloca [4096 x i8], align 16
  %10 = sdiv i32 %4, %2
  %11 = icmp eq i32 %10, 1
  br i1 %11, label %380, label %12

12:                                               ; preds = %7
  call void @llvm.lifetime.start.p0(i64 65536, ptr nonnull %8) #4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(65536) %8, i8 0, i64 65536, i1 false)
  br label %189

vector.ph:                                        ; preds = %193
  call void @llvm.lifetime.start.p0(i64 4096, ptr nonnull %9) #4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(4096) %9, i8 0, i64 4096, i1 false)
  %13 = getelementptr inbounds i8, ptr %9, i64 256
  %14 = getelementptr inbounds i8, ptr %9, i64 512
  %15 = getelementptr inbounds i8, ptr %9, i64 768
  %16 = getelementptr inbounds i8, ptr %9, i64 1024
  %17 = getelementptr inbounds i8, ptr %9, i64 1280
  %18 = getelementptr inbounds i8, ptr %9, i64 1536
  %19 = getelementptr inbounds i8, ptr %9, i64 1792
  %20 = getelementptr inbounds i8, ptr %9, i64 2048
  %21 = getelementptr inbounds i8, ptr %9, i64 2304
  %22 = getelementptr inbounds i8, ptr %9, i64 2560
  %23 = getelementptr inbounds i8, ptr %9, i64 2816
  %24 = getelementptr inbounds i8, ptr %9, i64 3072
  %25 = getelementptr inbounds i8, ptr %9, i64 3328
  %26 = getelementptr inbounds i8, ptr %9, i64 3584
  %27 = getelementptr inbounds i8, ptr %9, i64 3840
  %28 = getelementptr inbounds i8, ptr %5, i64 60
  %29 = load float, ptr %28, align 4, !tbaa !5
  %30 = getelementptr inbounds i8, ptr %5, i64 56
  %31 = load float, ptr %30, align 4, !tbaa !5
  %32 = getelementptr inbounds i8, ptr %5, i64 52
  %33 = load float, ptr %32, align 4, !tbaa !5
  %34 = getelementptr inbounds i8, ptr %5, i64 48
  %35 = load float, ptr %34, align 4, !tbaa !5
  %36 = getelementptr inbounds i8, ptr %5, i64 44
  %37 = load float, ptr %36, align 4, !tbaa !5
  %38 = getelementptr inbounds i8, ptr %5, i64 40
  %39 = load float, ptr %38, align 4, !tbaa !5
  %40 = getelementptr inbounds i8, ptr %5, i64 36
  %41 = load float, ptr %40, align 4, !tbaa !5
  %42 = getelementptr inbounds i8, ptr %5, i64 32
  %43 = load float, ptr %42, align 4, !tbaa !5
  %44 = getelementptr inbounds i8, ptr %5, i64 28
  %45 = load float, ptr %44, align 4, !tbaa !5
  %46 = getelementptr inbounds i8, ptr %5, i64 24
  %47 = load float, ptr %46, align 4, !tbaa !5
  %48 = getelementptr inbounds i8, ptr %5, i64 20
  %49 = load float, ptr %48, align 4, !tbaa !5
  %50 = getelementptr inbounds i8, ptr %5, i64 16
  %51 = load float, ptr %50, align 4, !tbaa !5
  %52 = getelementptr inbounds i8, ptr %5, i64 12
  %53 = load float, ptr %52, align 4, !tbaa !5
  %54 = getelementptr inbounds i8, ptr %5, i64 8
  %55 = load float, ptr %54, align 4, !tbaa !5
  %56 = getelementptr inbounds i8, ptr %5, i64 4
  %57 = load float, ptr %56, align 4, !tbaa !5
  %58 = load float, ptr %5, align 4, !tbaa !5
  %broadcast.splatinsert = insertelement <16 x float> poison, float %58, i64 0
  %broadcast.splat = shufflevector <16 x float> %broadcast.splatinsert, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert427 = insertelement <16 x float> poison, float %57, i64 0
  %broadcast.splat428 = shufflevector <16 x float> %broadcast.splatinsert427, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert429 = insertelement <16 x float> poison, float %55, i64 0
  %broadcast.splat430 = shufflevector <16 x float> %broadcast.splatinsert429, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert431 = insertelement <16 x float> poison, float %53, i64 0
  %broadcast.splat432 = shufflevector <16 x float> %broadcast.splatinsert431, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert433 = insertelement <16 x float> poison, float %51, i64 0
  %broadcast.splat434 = shufflevector <16 x float> %broadcast.splatinsert433, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert435 = insertelement <16 x float> poison, float %49, i64 0
  %broadcast.splat436 = shufflevector <16 x float> %broadcast.splatinsert435, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert437 = insertelement <16 x float> poison, float %47, i64 0
  %broadcast.splat438 = shufflevector <16 x float> %broadcast.splatinsert437, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert439 = insertelement <16 x float> poison, float %45, i64 0
  %broadcast.splat440 = shufflevector <16 x float> %broadcast.splatinsert439, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert441 = insertelement <16 x float> poison, float %43, i64 0
  %broadcast.splat442 = shufflevector <16 x float> %broadcast.splatinsert441, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert443 = insertelement <16 x float> poison, float %41, i64 0
  %broadcast.splat444 = shufflevector <16 x float> %broadcast.splatinsert443, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert445 = insertelement <16 x float> poison, float %39, i64 0
  %broadcast.splat446 = shufflevector <16 x float> %broadcast.splatinsert445, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert447 = insertelement <16 x float> poison, float %37, i64 0
  %broadcast.splat448 = shufflevector <16 x float> %broadcast.splatinsert447, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert449 = insertelement <16 x float> poison, float %35, i64 0
  %broadcast.splat450 = shufflevector <16 x float> %broadcast.splatinsert449, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert451 = insertelement <16 x float> poison, float %33, i64 0
  %broadcast.splat452 = shufflevector <16 x float> %broadcast.splatinsert451, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert453 = insertelement <16 x float> poison, float %31, i64 0
  %broadcast.splat454 = shufflevector <16 x float> %broadcast.splatinsert453, <16 x float> poison, <16 x i32> zeroinitializer
  %broadcast.splatinsert455 = insertelement <16 x float> poison, float %29, i64 0
  %broadcast.splat456 = shufflevector <16 x float> %broadcast.splatinsert455, <16 x float> poison, <16 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.ind = phi <16 x i32> [ <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>, %vector.ph ], [ %vec.ind.next, %vector.body ]
  %59 = uitofp <16 x i32> %vec.ind to <16 x float>
  %60 = fmul <16 x float> %broadcast.splat, %59
  %61 = fptosi <16 x float> %60 to <16 x i32>
  %62 = icmp ult <16 x i32> %61, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %63 = fcmp olt <16 x float> %60, zeroinitializer
  %64 = select <16 x i1> %63, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %65 = select <16 x i1> %62, <16 x float> %60, <16 x float> %64
  %66 = fptoui <16 x float> %65 to <16 x i8>
  %67 = getelementptr inbounds i8, ptr %9, i64 %index
  store <16 x i8> %66, ptr %67, align 16, !tbaa !9
  %68 = fmul <16 x float> %broadcast.splat428, %59
  %69 = fptosi <16 x float> %68 to <16 x i32>
  %70 = icmp ult <16 x i32> %69, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %71 = fcmp olt <16 x float> %68, zeroinitializer
  %72 = select <16 x i1> %71, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %73 = select <16 x i1> %70, <16 x float> %68, <16 x float> %72
  %74 = fptoui <16 x float> %73 to <16 x i8>
  %75 = getelementptr inbounds i8, ptr %13, i64 %index
  store <16 x i8> %74, ptr %75, align 16, !tbaa !9
  %76 = fmul <16 x float> %broadcast.splat430, %59
  %77 = fptosi <16 x float> %76 to <16 x i32>
  %78 = icmp ult <16 x i32> %77, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %79 = fcmp olt <16 x float> %76, zeroinitializer
  %80 = select <16 x i1> %79, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %81 = select <16 x i1> %78, <16 x float> %76, <16 x float> %80
  %82 = fptoui <16 x float> %81 to <16 x i8>
  %83 = getelementptr inbounds i8, ptr %14, i64 %index
  store <16 x i8> %82, ptr %83, align 16, !tbaa !9
  %84 = fmul <16 x float> %broadcast.splat432, %59
  %85 = fptosi <16 x float> %84 to <16 x i32>
  %86 = icmp ult <16 x i32> %85, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %87 = fcmp olt <16 x float> %84, zeroinitializer
  %88 = select <16 x i1> %87, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %89 = select <16 x i1> %86, <16 x float> %84, <16 x float> %88
  %90 = fptoui <16 x float> %89 to <16 x i8>
  %91 = getelementptr inbounds i8, ptr %15, i64 %index
  store <16 x i8> %90, ptr %91, align 16, !tbaa !9
  %92 = fmul <16 x float> %broadcast.splat434, %59
  %93 = fptosi <16 x float> %92 to <16 x i32>
  %94 = icmp ult <16 x i32> %93, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %95 = fcmp olt <16 x float> %92, zeroinitializer
  %96 = select <16 x i1> %95, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %97 = select <16 x i1> %94, <16 x float> %92, <16 x float> %96
  %98 = fptoui <16 x float> %97 to <16 x i8>
  %99 = getelementptr inbounds i8, ptr %16, i64 %index
  store <16 x i8> %98, ptr %99, align 16, !tbaa !9
  %100 = fmul <16 x float> %broadcast.splat436, %59
  %101 = fptosi <16 x float> %100 to <16 x i32>
  %102 = icmp ult <16 x i32> %101, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %103 = fcmp olt <16 x float> %100, zeroinitializer
  %104 = select <16 x i1> %103, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %105 = select <16 x i1> %102, <16 x float> %100, <16 x float> %104
  %106 = fptoui <16 x float> %105 to <16 x i8>
  %107 = getelementptr inbounds i8, ptr %17, i64 %index
  store <16 x i8> %106, ptr %107, align 16, !tbaa !9
  %108 = fmul <16 x float> %broadcast.splat438, %59
  %109 = fptosi <16 x float> %108 to <16 x i32>
  %110 = icmp ult <16 x i32> %109, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %111 = fcmp olt <16 x float> %108, zeroinitializer
  %112 = select <16 x i1> %111, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %113 = select <16 x i1> %110, <16 x float> %108, <16 x float> %112
  %114 = fptoui <16 x float> %113 to <16 x i8>
  %115 = getelementptr inbounds i8, ptr %18, i64 %index
  store <16 x i8> %114, ptr %115, align 16, !tbaa !9
  %116 = fmul <16 x float> %broadcast.splat440, %59
  %117 = fptosi <16 x float> %116 to <16 x i32>
  %118 = icmp ult <16 x i32> %117, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %119 = fcmp olt <16 x float> %116, zeroinitializer
  %120 = select <16 x i1> %119, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %121 = select <16 x i1> %118, <16 x float> %116, <16 x float> %120
  %122 = fptoui <16 x float> %121 to <16 x i8>
  %123 = getelementptr inbounds i8, ptr %19, i64 %index
  store <16 x i8> %122, ptr %123, align 16, !tbaa !9
  %124 = fmul <16 x float> %broadcast.splat442, %59
  %125 = fptosi <16 x float> %124 to <16 x i32>
  %126 = icmp ult <16 x i32> %125, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %127 = fcmp olt <16 x float> %124, zeroinitializer
  %128 = select <16 x i1> %127, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %129 = select <16 x i1> %126, <16 x float> %124, <16 x float> %128
  %130 = fptoui <16 x float> %129 to <16 x i8>
  %131 = getelementptr inbounds i8, ptr %20, i64 %index
  store <16 x i8> %130, ptr %131, align 16, !tbaa !9
  %132 = fmul <16 x float> %broadcast.splat444, %59
  %133 = fptosi <16 x float> %132 to <16 x i32>
  %134 = icmp ult <16 x i32> %133, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %135 = fcmp olt <16 x float> %132, zeroinitializer
  %136 = select <16 x i1> %135, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %137 = select <16 x i1> %134, <16 x float> %132, <16 x float> %136
  %138 = fptoui <16 x float> %137 to <16 x i8>
  %139 = getelementptr inbounds i8, ptr %21, i64 %index
  store <16 x i8> %138, ptr %139, align 16, !tbaa !9
  %140 = fmul <16 x float> %broadcast.splat446, %59
  %141 = fptosi <16 x float> %140 to <16 x i32>
  %142 = icmp ult <16 x i32> %141, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %143 = fcmp olt <16 x float> %140, zeroinitializer
  %144 = select <16 x i1> %143, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %145 = select <16 x i1> %142, <16 x float> %140, <16 x float> %144
  %146 = fptoui <16 x float> %145 to <16 x i8>
  %147 = getelementptr inbounds i8, ptr %22, i64 %index
  store <16 x i8> %146, ptr %147, align 16, !tbaa !9
  %148 = fmul <16 x float> %broadcast.splat448, %59
  %149 = fptosi <16 x float> %148 to <16 x i32>
  %150 = icmp ult <16 x i32> %149, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %151 = fcmp olt <16 x float> %148, zeroinitializer
  %152 = select <16 x i1> %151, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %153 = select <16 x i1> %150, <16 x float> %148, <16 x float> %152
  %154 = fptoui <16 x float> %153 to <16 x i8>
  %155 = getelementptr inbounds i8, ptr %23, i64 %index
  store <16 x i8> %154, ptr %155, align 16, !tbaa !9
  %156 = fmul <16 x float> %broadcast.splat450, %59
  %157 = fptosi <16 x float> %156 to <16 x i32>
  %158 = icmp ult <16 x i32> %157, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %159 = fcmp olt <16 x float> %156, zeroinitializer
  %160 = select <16 x i1> %159, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %161 = select <16 x i1> %158, <16 x float> %156, <16 x float> %160
  %162 = fptoui <16 x float> %161 to <16 x i8>
  %163 = getelementptr inbounds i8, ptr %24, i64 %index
  store <16 x i8> %162, ptr %163, align 16, !tbaa !9
  %164 = fmul <16 x float> %broadcast.splat452, %59
  %165 = fptosi <16 x float> %164 to <16 x i32>
  %166 = icmp ult <16 x i32> %165, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %167 = fcmp olt <16 x float> %164, zeroinitializer
  %168 = select <16 x i1> %167, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %169 = select <16 x i1> %166, <16 x float> %164, <16 x float> %168
  %170 = fptoui <16 x float> %169 to <16 x i8>
  %171 = getelementptr inbounds i8, ptr %25, i64 %index
  store <16 x i8> %170, ptr %171, align 16, !tbaa !9
  %172 = fmul <16 x float> %broadcast.splat454, %59
  %173 = fptosi <16 x float> %172 to <16 x i32>
  %174 = icmp ult <16 x i32> %173, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %175 = fcmp olt <16 x float> %172, zeroinitializer
  %176 = select <16 x i1> %175, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %177 = select <16 x i1> %174, <16 x float> %172, <16 x float> %176
  %178 = fptoui <16 x float> %177 to <16 x i8>
  %179 = getelementptr inbounds i8, ptr %26, i64 %index
  store <16 x i8> %178, ptr %179, align 16, !tbaa !9
  %180 = fmul <16 x float> %broadcast.splat456, %59
  %181 = fptosi <16 x float> %180 to <16 x i32>
  %182 = icmp ult <16 x i32> %181, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
  %183 = fcmp olt <16 x float> %180, zeroinitializer
  %184 = select <16 x i1> %183, <16 x float> zeroinitializer, <16 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  %185 = select <16 x i1> %182, <16 x float> %180, <16 x float> %184
  %186 = fptoui <16 x float> %185 to <16 x i8>
  %187 = getelementptr inbounds i8, ptr %27, i64 %index
  store <16 x i8> %186, ptr %187, align 16, !tbaa !9
  %index.next = add nuw i64 %index, 16
  %vec.ind.next = add <16 x i32> %vec.ind, <i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
  %188 = icmp eq i64 %index.next, 256
  br i1 %188, label %middle.block, label %vector.body, !llvm.loop !10

189:                                              ; preds = %12, %193
  %indvars.iv = phi i64 [ 0, %12 ], [ %indvars.iv.next, %193 ]
  %190 = shl nuw nsw i64 %indvars.iv, 8
  %191 = getelementptr inbounds i8, ptr %8, i64 %190
  %192 = trunc i64 %indvars.iv to i8
  br label %194

193:                                              ; preds = %194
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond408.not = icmp eq i64 %indvars.iv.next, 256
  br i1 %exitcond408.not, label %vector.ph, label %189, !llvm.loop !14

194:                                              ; preds = %189, %194
  %.0365387 = phi ptr [ %191, %189 ], [ %197, %194 ]
  %.0366386 = phi i32 [ 0, %189 ], [ %198, %194 ]
  %195 = trunc nuw i32 %.0366386 to i8
  %196 = tail call zeroext i8 @degree(i8 noundef zeroext %192, i8 noundef zeroext %195, float noundef %6)
  store i8 %196, ptr %.0365387, align 1, !tbaa !9
  %197 = getelementptr inbounds i8, ptr %.0365387, i64 1
  %198 = add nuw nsw i32 %.0366386, 1
  %exitcond.not = icmp eq i32 %198, 256
  br i1 %exitcond.not, label %193, label %194, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  switch i32 %10, label %.loopexit [
    i32 4, label %199
    i32 3, label %308
  ]

199:                                              ; preds = %middle.block
  %200 = icmp sgt i32 %3, 0
  %201 = icmp sgt i32 %2, 0
  %or.cond = and i1 %200, %201
  br i1 %or.cond, label %.lr.ph.us402.preheader, label %.loopexit

.lr.ph.us402.preheader:                           ; preds = %199
  %202 = shl nsw i32 %2, 2
  %203 = zext nneg i32 %202 to i64
  %wide.trip.count422 = zext nneg i32 %3 to i64
  br label %.lr.ph.us402

.lr.ph.us402:                                     ; preds = %.lr.ph.us402.preheader, %._crit_edge.us403
  %indvars.iv419 = phi i64 [ 0, %.lr.ph.us402.preheader ], [ %indvars.iv.next420, %._crit_edge.us403 ]
  %204 = mul nuw nsw i64 %indvars.iv419, %203
  %205 = getelementptr inbounds i8, ptr %1, i64 %204
  %206 = getelementptr inbounds i8, ptr %0, i64 %204
  br label %207

207:                                              ; preds = %.lr.ph.us402, %207
  %.0373398.us = phi ptr [ %205, %.lr.ph.us402 ], [ %306, %207 ]
  %.0374397.us = phi ptr [ %206, %.lr.ph.us402 ], [ %305, %207 ]
  %.0375396.us = phi i32 [ 0, %.lr.ph.us402 ], [ %307, %207 ]
  %208 = load i8, ptr %.0374397.us, align 1, !tbaa !9
  %209 = getelementptr inbounds i8, ptr %.0374397.us, i64 1
  %210 = load i8, ptr %209, align 1, !tbaa !9
  %211 = getelementptr inbounds i8, ptr %.0374397.us, i64 2
  %212 = load i8, ptr %211, align 1, !tbaa !9
  %213 = getelementptr inbounds i8, ptr %.0374397.us, i64 3
  %214 = load i8, ptr %213, align 1, !tbaa !9
  %215 = zext i8 %208 to i64
  %216 = getelementptr inbounds i8, ptr %9, i64 %215
  %217 = load i8, ptr %216, align 1, !tbaa !9
  %218 = zext i8 %217 to i32
  %219 = zext i8 %210 to i64
  %220 = getelementptr inbounds i8, ptr %13, i64 %219
  %221 = load i8, ptr %220, align 1, !tbaa !9
  %222 = zext i8 %221 to i32
  %223 = add nuw nsw i32 %222, %218
  %224 = zext i8 %212 to i64
  %225 = getelementptr inbounds i8, ptr %14, i64 %224
  %226 = load i8, ptr %225, align 1, !tbaa !9
  %227 = zext i8 %226 to i32
  %228 = add nuw nsw i32 %223, %227
  %229 = zext i8 %214 to i64
  %230 = getelementptr inbounds i8, ptr %15, i64 %229
  %231 = load i8, ptr %230, align 1, !tbaa !9
  %232 = zext i8 %231 to i32
  %233 = add nuw nsw i32 %228, %232
  %..us = tail call i32 @llvm.umin.i32(i32 %233, i32 255)
  %234 = zext nneg i32 %..us to i64
  %235 = shl nuw nsw i64 %215, 8
  %236 = getelementptr inbounds i8, ptr %8, i64 %235
  %237 = getelementptr inbounds i8, ptr %236, i64 %234
  %238 = load i8, ptr %237, align 1, !tbaa !9
  store i8 %238, ptr %.0373398.us, align 1, !tbaa !9
  %239 = getelementptr inbounds i8, ptr %16, i64 %215
  %240 = load i8, ptr %239, align 1, !tbaa !9
  %241 = zext i8 %240 to i32
  %242 = getelementptr inbounds i8, ptr %17, i64 %219
  %243 = load i8, ptr %242, align 1, !tbaa !9
  %244 = zext i8 %243 to i32
  %245 = add nuw nsw i32 %244, %241
  %246 = getelementptr inbounds i8, ptr %18, i64 %224
  %247 = load i8, ptr %246, align 1, !tbaa !9
  %248 = zext i8 %247 to i32
  %249 = add nuw nsw i32 %245, %248
  %250 = getelementptr inbounds i8, ptr %19, i64 %229
  %251 = load i8, ptr %250, align 1, !tbaa !9
  %252 = zext i8 %251 to i32
  %253 = add nuw nsw i32 %249, %252
  %254 = tail call i32 @llvm.umin.i32(i32 %253, i32 255)
  %255 = zext nneg i32 %254 to i64
  %256 = shl nuw nsw i64 %219, 8
  %257 = getelementptr inbounds i8, ptr %8, i64 %256
  %258 = getelementptr inbounds i8, ptr %257, i64 %255
  %259 = load i8, ptr %258, align 1, !tbaa !9
  %260 = getelementptr inbounds i8, ptr %.0373398.us, i64 1
  store i8 %259, ptr %260, align 1, !tbaa !9
  %261 = getelementptr inbounds i8, ptr %20, i64 %215
  %262 = load i8, ptr %261, align 1, !tbaa !9
  %263 = zext i8 %262 to i32
  %264 = getelementptr inbounds i8, ptr %21, i64 %219
  %265 = load i8, ptr %264, align 1, !tbaa !9
  %266 = zext i8 %265 to i32
  %267 = add nuw nsw i32 %266, %263
  %268 = getelementptr inbounds i8, ptr %22, i64 %224
  %269 = load i8, ptr %268, align 1, !tbaa !9
  %270 = zext i8 %269 to i32
  %271 = add nuw nsw i32 %267, %270
  %272 = getelementptr inbounds i8, ptr %23, i64 %229
  %273 = load i8, ptr %272, align 1, !tbaa !9
  %274 = zext i8 %273 to i32
  %275 = add nuw nsw i32 %271, %274
  %276 = tail call i32 @llvm.umin.i32(i32 %275, i32 255)
  %277 = zext nneg i32 %276 to i64
  %278 = shl nuw nsw i64 %224, 8
  %279 = getelementptr inbounds i8, ptr %8, i64 %278
  %280 = getelementptr inbounds i8, ptr %279, i64 %277
  %281 = load i8, ptr %280, align 1, !tbaa !9
  %282 = getelementptr inbounds i8, ptr %.0373398.us, i64 2
  store i8 %281, ptr %282, align 1, !tbaa !9
  %283 = getelementptr inbounds i8, ptr %24, i64 %215
  %284 = load i8, ptr %283, align 1, !tbaa !9
  %285 = zext i8 %284 to i32
  %286 = getelementptr inbounds i8, ptr %25, i64 %219
  %287 = load i8, ptr %286, align 1, !tbaa !9
  %288 = zext i8 %287 to i32
  %289 = add nuw nsw i32 %288, %285
  %290 = getelementptr inbounds i8, ptr %26, i64 %224
  %291 = load i8, ptr %290, align 1, !tbaa !9
  %292 = zext i8 %291 to i32
  %293 = add nuw nsw i32 %289, %292
  %294 = getelementptr inbounds i8, ptr %27, i64 %229
  %295 = load i8, ptr %294, align 1, !tbaa !9
  %296 = zext i8 %295 to i32
  %297 = add nuw nsw i32 %293, %296
  %298 = tail call i32 @llvm.umin.i32(i32 %297, i32 255)
  %299 = zext nneg i32 %298 to i64
  %300 = shl nuw nsw i64 %229, 8
  %301 = getelementptr inbounds i8, ptr %8, i64 %300
  %302 = getelementptr inbounds i8, ptr %301, i64 %299
  %303 = load i8, ptr %302, align 1, !tbaa !9
  %304 = getelementptr inbounds i8, ptr %.0373398.us, i64 3
  store i8 %303, ptr %304, align 1, !tbaa !9
  %305 = getelementptr inbounds i8, ptr %.0374397.us, i64 4
  %306 = getelementptr inbounds i8, ptr %.0373398.us, i64 4
  %307 = add nuw nsw i32 %.0375396.us, 1
  %exitcond418.not = icmp eq i32 %307, %2
  br i1 %exitcond418.not, label %._crit_edge.us403, label %207, !llvm.loop !16

._crit_edge.us403:                                ; preds = %207
  %indvars.iv.next420 = add nuw nsw i64 %indvars.iv419, 1
  %exitcond423.not = icmp eq i64 %indvars.iv.next420, %wide.trip.count422
  br i1 %exitcond423.not, label %.loopexit, label %.lr.ph.us402, !llvm.loop !17

308:                                              ; preds = %middle.block
  %309 = icmp sgt i32 %3, 0
  %310 = icmp sgt i32 %2, 0
  %or.cond425 = and i1 %309, %310
  br i1 %or.cond425, label %.lr.ph.us.preheader, label %.loopexit

.lr.ph.us.preheader:                              ; preds = %308
  %311 = mul nuw nsw i32 %2, 3
  %312 = zext nneg i32 %311 to i64
  %wide.trip.count = zext nneg i32 %3 to i64
  br label %.lr.ph.us

.lr.ph.us:                                        ; preds = %.lr.ph.us.preheader, %._crit_edge.us
  %indvars.iv414 = phi i64 [ 0, %.lr.ph.us.preheader ], [ %indvars.iv.next415, %._crit_edge.us ]
  %313 = mul nuw nsw i64 %indvars.iv414, %312
  %314 = getelementptr inbounds i8, ptr %1, i64 %313
  %315 = getelementptr inbounds i8, ptr %0, i64 %313
  br label %316

316:                                              ; preds = %.lr.ph.us, %316
  %.0369392.us = phi i32 [ 0, %.lr.ph.us ], [ %379, %316 ]
  %.0370391.us = phi ptr [ %315, %.lr.ph.us ], [ %377, %316 ]
  %.0371390.us = phi ptr [ %314, %.lr.ph.us ], [ %378, %316 ]
  %317 = load i8, ptr %.0370391.us, align 1, !tbaa !9
  %318 = getelementptr inbounds i8, ptr %.0370391.us, i64 1
  %319 = load i8, ptr %318, align 1, !tbaa !9
  %320 = getelementptr inbounds i8, ptr %.0370391.us, i64 2
  %321 = load i8, ptr %320, align 1, !tbaa !9
  %322 = zext i8 %317 to i64
  %323 = getelementptr inbounds i8, ptr %9, i64 %322
  %324 = load i8, ptr %323, align 1, !tbaa !9
  %325 = zext i8 %324 to i32
  %326 = zext i8 %319 to i64
  %327 = getelementptr inbounds i8, ptr %13, i64 %326
  %328 = load i8, ptr %327, align 1, !tbaa !9
  %329 = zext i8 %328 to i32
  %330 = add nuw nsw i32 %329, %325
  %331 = zext i8 %321 to i64
  %332 = getelementptr inbounds i8, ptr %14, i64 %331
  %333 = load i8, ptr %332, align 1, !tbaa !9
  %334 = zext i8 %333 to i32
  %335 = add nuw nsw i32 %330, %334
  %.384.us = tail call i32 @llvm.umin.i32(i32 %335, i32 255)
  %336 = zext nneg i32 %.384.us to i64
  %337 = shl nuw nsw i64 %322, 8
  %338 = getelementptr inbounds i8, ptr %8, i64 %337
  %339 = getelementptr inbounds i8, ptr %338, i64 %336
  %340 = load i8, ptr %339, align 1, !tbaa !9
  store i8 %340, ptr %.0371390.us, align 1, !tbaa !9
  %341 = getelementptr inbounds i8, ptr %16, i64 %322
  %342 = load i8, ptr %341, align 1, !tbaa !9
  %343 = zext i8 %342 to i32
  %344 = getelementptr inbounds i8, ptr %17, i64 %326
  %345 = load i8, ptr %344, align 1, !tbaa !9
  %346 = zext i8 %345 to i32
  %347 = add nuw nsw i32 %346, %343
  %348 = getelementptr inbounds i8, ptr %18, i64 %331
  %349 = load i8, ptr %348, align 1, !tbaa !9
  %350 = zext i8 %349 to i32
  %351 = add nuw nsw i32 %347, %350
  %352 = tail call i32 @llvm.umin.i32(i32 %351, i32 255)
  %353 = zext nneg i32 %352 to i64
  %354 = shl nuw nsw i64 %326, 8
  %355 = getelementptr inbounds i8, ptr %8, i64 %354
  %356 = getelementptr inbounds i8, ptr %355, i64 %353
  %357 = load i8, ptr %356, align 1, !tbaa !9
  %358 = getelementptr inbounds i8, ptr %.0371390.us, i64 1
  store i8 %357, ptr %358, align 1, !tbaa !9
  %359 = getelementptr inbounds i8, ptr %20, i64 %322
  %360 = load i8, ptr %359, align 1, !tbaa !9
  %361 = zext i8 %360 to i32
  %362 = getelementptr inbounds i8, ptr %21, i64 %326
  %363 = load i8, ptr %362, align 1, !tbaa !9
  %364 = zext i8 %363 to i32
  %365 = add nuw nsw i32 %364, %361
  %366 = getelementptr inbounds i8, ptr %22, i64 %331
  %367 = load i8, ptr %366, align 1, !tbaa !9
  %368 = zext i8 %367 to i32
  %369 = add nuw nsw i32 %365, %368
  %370 = tail call i32 @llvm.umin.i32(i32 %369, i32 255)
  %371 = zext nneg i32 %370 to i64
  %372 = shl nuw nsw i64 %331, 8
  %373 = getelementptr inbounds i8, ptr %8, i64 %372
  %374 = getelementptr inbounds i8, ptr %373, i64 %371
  %375 = load i8, ptr %374, align 1, !tbaa !9
  %376 = getelementptr inbounds i8, ptr %.0371390.us, i64 2
  store i8 %375, ptr %376, align 1, !tbaa !9
  %377 = getelementptr inbounds i8, ptr %.0370391.us, i64 3
  %378 = getelementptr inbounds i8, ptr %.0371390.us, i64 3
  %379 = add nuw nsw i32 %.0369392.us, 1
  %exitcond413.not = icmp eq i32 %379, %2
  br i1 %exitcond413.not, label %._crit_edge.us, label %316, !llvm.loop !18

._crit_edge.us:                                   ; preds = %316
  %indvars.iv.next415 = add nuw nsw i64 %indvars.iv414, 1
  %exitcond417.not = icmp eq i64 %indvars.iv.next415, %wide.trip.count
  br i1 %exitcond417.not, label %.loopexit, label %.lr.ph.us, !llvm.loop !19

.loopexit:                                        ; preds = %._crit_edge.us, %._crit_edge.us403, %308, %199, %middle.block
  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 65536, ptr nonnull %8) #4
  br label %380

380:                                              ; preds = %7, %.loopexit
  ret void
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #3

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"float", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = distinct !{!10, !11, !12, !13}
!11 = !{!"llvm.loop.mustprogress"}
!12 = !{!"llvm.loop.isvectorized", i32 1}
!13 = !{!"llvm.loop.unroll.runtime.disable"}
!14 = distinct !{!14, !11}
!15 = distinct !{!15, !11}
!16 = distinct !{!16, !11}
!17 = distinct !{!17, !11}
!18 = distinct !{!18, !11}
!19 = distinct !{!19, !11}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass