; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (slarrd)

; 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"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c__0 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @slarrd_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24) #0 {
  %26 = alloca i32, align 4
  %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 ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca float, align 4
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca float, align 4
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca float, align 4
  %70 = alloca i64, align 8
  %71 = alloca float, align 4
  %72 = alloca float, align 4
  %73 = alloca i64, align 8
  %74 = alloca float, align 4
  %75 = alloca float, align 4
  %76 = alloca i64, align 8
  %77 = alloca i64, align 8
  %78 = alloca i64, align 8
  %79 = alloca i64, align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca float, align 4
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca float, align 4
  %88 = alloca float, align 4
  %89 = alloca float, align 4
  %90 = alloca float, align 4
  %91 = alloca i64, align 8
  %92 = alloca i64, align 8
  %93 = alloca i64, align 8
  %94 = alloca [1 x i64], align 8
  %95 = alloca i64, align 8
  %96 = alloca i64, align 8
  %97 = alloca i64, align 8
  %98 = alloca i32, align 4
  store ptr %0, ptr %27, align 8, !tbaa !5
  store ptr %1, ptr %28, align 8, !tbaa !5
  store ptr %2, ptr %29, align 8, !tbaa !5
  store ptr %3, ptr %30, align 8, !tbaa !5
  store ptr %4, ptr %31, align 8, !tbaa !5
  store ptr %5, ptr %32, align 8, !tbaa !5
  store ptr %6, ptr %33, align 8, !tbaa !5
  store ptr %7, ptr %34, align 8, !tbaa !5
  store ptr %8, ptr %35, align 8, !tbaa !5
  store ptr %9, ptr %36, align 8, !tbaa !5
  store ptr %10, ptr %37, align 8, !tbaa !5
  store ptr %11, ptr %38, align 8, !tbaa !5
  store ptr %12, ptr %39, align 8, !tbaa !5
  store ptr %13, ptr %40, align 8, !tbaa !5
  store ptr %14, ptr %41, align 8, !tbaa !5
  store ptr %15, ptr %42, align 8, !tbaa !5
  store ptr %16, ptr %43, align 8, !tbaa !5
  store ptr %17, ptr %44, align 8, !tbaa !5
  store ptr %18, ptr %45, align 8, !tbaa !5
  store ptr %19, ptr %46, align 8, !tbaa !5
  store ptr %20, ptr %47, align 8, !tbaa !5
  store ptr %21, ptr %48, align 8, !tbaa !5
  store ptr %22, ptr %49, align 8, !tbaa !5
  store ptr %23, ptr %50, align 8, !tbaa !5
  store ptr %24, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #5
  %99 = load ptr, ptr %50, align 8, !tbaa !5
  %100 = getelementptr inbounds i64, ptr %99, i32 -1
  store ptr %100, ptr %50, align 8, !tbaa !5
  %101 = load ptr, ptr %49, align 8, !tbaa !5
  %102 = getelementptr inbounds float, ptr %101, i32 -1
  store ptr %102, ptr %49, align 8, !tbaa !5
  %103 = load ptr, ptr %48, align 8, !tbaa !5
  %104 = getelementptr inbounds i64, ptr %103, i32 -1
  store ptr %104, ptr %48, align 8, !tbaa !5
  %105 = load ptr, ptr %47, align 8, !tbaa !5
  %106 = getelementptr inbounds i64, ptr %105, i32 -1
  store ptr %106, ptr %47, align 8, !tbaa !5
  %107 = load ptr, ptr %44, align 8, !tbaa !5
  %108 = getelementptr inbounds float, ptr %107, i32 -1
  store ptr %108, ptr %44, align 8, !tbaa !5
  %109 = load ptr, ptr %43, align 8, !tbaa !5
  %110 = getelementptr inbounds float, ptr %109, i32 -1
  store ptr %110, ptr %43, align 8, !tbaa !5
  %111 = load ptr, ptr %41, align 8, !tbaa !5
  %112 = getelementptr inbounds i64, ptr %111, i32 -1
  store ptr %112, ptr %41, align 8, !tbaa !5
  %113 = load ptr, ptr %38, align 8, !tbaa !5
  %114 = getelementptr inbounds float, ptr %113, i32 -1
  store ptr %114, ptr %38, align 8, !tbaa !5
  %115 = load ptr, ptr %37, align 8, !tbaa !5
  %116 = getelementptr inbounds float, ptr %115, i32 -1
  store ptr %116, ptr %37, align 8, !tbaa !5
  %117 = load ptr, ptr %36, align 8, !tbaa !5
  %118 = getelementptr inbounds float, ptr %117, i32 -1
  store ptr %118, ptr %36, align 8, !tbaa !5
  %119 = load ptr, ptr %34, align 8, !tbaa !5
  %120 = getelementptr inbounds float, ptr %119, i32 -1
  store ptr %120, ptr %34, align 8, !tbaa !5
  %121 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 0, ptr %121, align 8, !tbaa !9
  %122 = load ptr, ptr %27, align 8, !tbaa !5
  %123 = call i64 @lsame_(ptr noundef %122, ptr noundef @.str)
  %124 = icmp ne i64 %123, 0
  br i1 %124, label %125, label %126

125:                                              ; preds = %25
  store i64 1, ptr %92, align 8, !tbaa !9
  br label %139

126:                                              ; preds = %25
  %127 = load ptr, ptr %27, align 8, !tbaa !5
  %128 = call i64 @lsame_(ptr noundef %127, ptr noundef @.str.1)
  %129 = icmp ne i64 %128, 0
  br i1 %129, label %130, label %131

130:                                              ; preds = %126
  store i64 2, ptr %92, align 8, !tbaa !9
  br label %138

131:                                              ; preds = %126
  %132 = load ptr, ptr %27, align 8, !tbaa !5
  %133 = call i64 @lsame_(ptr noundef %132, ptr noundef @.str.2)
  %134 = icmp ne i64 %133, 0
  br i1 %134, label %135, label %136

135:                                              ; preds = %131
  store i64 3, ptr %92, align 8, !tbaa !9
  br label %137

136:                                              ; preds = %131
  store i64 0, ptr %92, align 8, !tbaa !9
  br label %137

137:                                              ; preds = %136, %135
  br label %138

138:                                              ; preds = %137, %130
  br label %139

139:                                              ; preds = %138, %125
  %140 = load i64, ptr %92, align 8, !tbaa !9
  %141 = icmp sle i64 %140, 0
  br i1 %141, label %142, label %144

142:                                              ; preds = %139
  %143 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -1, ptr %143, align 8, !tbaa !9
  br label %227

144:                                              ; preds = %139
  %145 = load ptr, ptr %28, align 8, !tbaa !5
  %146 = call i64 @lsame_(ptr noundef %145, ptr noundef @.str.3)
  %147 = icmp ne i64 %146, 0
  br i1 %147, label %154, label %148

148:                                              ; preds = %144
  %149 = load ptr, ptr %28, align 8, !tbaa !5
  %150 = call i64 @lsame_(ptr noundef %149, ptr noundef @.str.4)
  %151 = icmp ne i64 %150, 0
  br i1 %151, label %154, label %152

152:                                              ; preds = %148
  %153 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -2, ptr %153, align 8, !tbaa !9
  br label %226

154:                                              ; preds = %148, %144
  %155 = load ptr, ptr %29, align 8, !tbaa !5
  %156 = load i64, ptr %155, align 8, !tbaa !9
  %157 = icmp slt i64 %156, 0
  br i1 %157, label %158, label %160

158:                                              ; preds = %154
  %159 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -3, ptr %159, align 8, !tbaa !9
  br label %225

160:                                              ; preds = %154
  %161 = load i64, ptr %92, align 8, !tbaa !9
  %162 = icmp eq i64 %161, 2
  br i1 %162, label %163, label %172

163:                                              ; preds = %160
  %164 = load ptr, ptr %30, align 8, !tbaa !5
  %165 = load float, ptr %164, align 4, !tbaa !11
  %166 = load ptr, ptr %31, align 8, !tbaa !5
  %167 = load float, ptr %166, align 4, !tbaa !11
  %168 = fcmp oge float %165, %167
  br i1 %168, label %169, label %171

169:                                              ; preds = %163
  %170 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -5, ptr %170, align 8, !tbaa !9
  br label %171

171:                                              ; preds = %169, %163
  br label %224

172:                                              ; preds = %160
  %173 = load i64, ptr %92, align 8, !tbaa !9
  %174 = icmp eq i64 %173, 3
  br i1 %174, label %175, label %194

175:                                              ; preds = %172
  %176 = load ptr, ptr %32, align 8, !tbaa !5
  %177 = load i64, ptr %176, align 8, !tbaa !9
  %178 = icmp slt i64 %177, 1
  br i1 %178, label %192, label %179

179:                                              ; preds = %175
  %180 = load ptr, ptr %32, align 8, !tbaa !5
  %181 = load i64, ptr %180, align 8, !tbaa !9
  %182 = load ptr, ptr %29, align 8, !tbaa !5
  %183 = load i64, ptr %182, align 8, !tbaa !9
  %184 = icmp sge i64 1, %183
  br i1 %184, label %185, label %186

185:                                              ; preds = %179
  br label %189

186:                                              ; preds = %179
  %187 = load ptr, ptr %29, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  br label %189

189:                                              ; preds = %186, %185
  %190 = phi i64 [ 1, %185 ], [ %188, %186 ]
  %191 = icmp sgt i64 %181, %190
  br i1 %191, label %192, label %194

192:                                              ; preds = %189, %175
  %193 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -6, ptr %193, align 8, !tbaa !9
  br label %223

194:                                              ; preds = %189, %172
  %195 = load i64, ptr %92, align 8, !tbaa !9
  %196 = icmp eq i64 %195, 3
  br i1 %196, label %197, label %222

197:                                              ; preds = %194
  %198 = load ptr, ptr %33, align 8, !tbaa !5
  %199 = load i64, ptr %198, align 8, !tbaa !9
  %200 = load ptr, ptr %29, align 8, !tbaa !5
  %201 = load i64, ptr %200, align 8, !tbaa !9
  %202 = load ptr, ptr %32, align 8, !tbaa !5
  %203 = load i64, ptr %202, align 8, !tbaa !9
  %204 = icmp sle i64 %201, %203
  br i1 %204, label %205, label %208

205:                                              ; preds = %197
  %206 = load ptr, ptr %29, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  br label %211

208:                                              ; preds = %197
  %209 = load ptr, ptr %32, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  br label %211

211:                                              ; preds = %208, %205
  %212 = phi i64 [ %207, %205 ], [ %210, %208 ]
  %213 = icmp slt i64 %199, %212
  br i1 %213, label %220, label %214

214:                                              ; preds = %211
  %215 = load ptr, ptr %33, align 8, !tbaa !5
  %216 = load i64, ptr %215, align 8, !tbaa !9
  %217 = load ptr, ptr %29, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = icmp sgt i64 %216, %218
  br i1 %219, label %220, label %222

220:                                              ; preds = %214, %211
  %221 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -7, ptr %221, align 8, !tbaa !9
  br label %222

222:                                              ; preds = %220, %214, %194
  br label %223

223:                                              ; preds = %222, %192
  br label %224

224:                                              ; preds = %223, %171
  br label %225

225:                                              ; preds = %224, %158
  br label %226

226:                                              ; preds = %225, %152
  br label %227

227:                                              ; preds = %226, %142
  %228 = load ptr, ptr %51, align 8, !tbaa !5
  %229 = load i64, ptr %228, align 8, !tbaa !9
  %230 = icmp ne i64 %229, 0
  br i1 %230, label %231, label %232

231:                                              ; preds = %227
  store i32 0, ptr %26, align 4
  store i32 1, ptr %98, align 4
  br label %1634

232:                                              ; preds = %227
  %233 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 0, ptr %233, align 8, !tbaa !9
  store i64 0, ptr %96, align 8, !tbaa !9
  store i64 0, ptr %97, align 8, !tbaa !9
  %234 = load ptr, ptr %42, align 8, !tbaa !5
  store i64 0, ptr %234, align 8, !tbaa !9
  %235 = load ptr, ptr %29, align 8, !tbaa !5
  %236 = load i64, ptr %235, align 8, !tbaa !9
  %237 = icmp eq i64 %236, 0
  br i1 %237, label %238, label %239

238:                                              ; preds = %232
  store i32 0, ptr %26, align 4
  store i32 1, ptr %98, align 4
  br label %1634

239:                                              ; preds = %232
  %240 = load i64, ptr %92, align 8, !tbaa !9
  %241 = icmp eq i64 %240, 3
  br i1 %241, label %242, label %253

242:                                              ; preds = %239
  %243 = load ptr, ptr %32, align 8, !tbaa !5
  %244 = load i64, ptr %243, align 8, !tbaa !9
  %245 = icmp eq i64 %244, 1
  br i1 %245, label %246, label %253

246:                                              ; preds = %242
  %247 = load ptr, ptr %33, align 8, !tbaa !5
  %248 = load i64, ptr %247, align 8, !tbaa !9
  %249 = load ptr, ptr %29, align 8, !tbaa !5
  %250 = load i64, ptr %249, align 8, !tbaa !9
  %251 = icmp eq i64 %248, %250
  br i1 %251, label %252, label %253

252:                                              ; preds = %246
  store i64 1, ptr %92, align 8, !tbaa !9
  br label %253

253:                                              ; preds = %252, %246, %242, %239
  %254 = call double @slamch_(ptr noundef @.str.5)
  %255 = fptrunc double %254 to float
  store float %255, ptr %69, align 4, !tbaa !11
  %256 = call double @slamch_(ptr noundef @.str.6)
  %257 = fptrunc double %256 to float
  store float %257, ptr %89, align 4, !tbaa !11
  %258 = load ptr, ptr %29, align 8, !tbaa !5
  %259 = load i64, ptr %258, align 8, !tbaa !9
  %260 = icmp eq i64 %259, 1
  br i1 %260, label %261, label %306

261:                                              ; preds = %253
  %262 = load i64, ptr %92, align 8, !tbaa !9
  %263 = icmp eq i64 %262, 1
  br i1 %263, label %292, label %264

264:                                              ; preds = %261
  %265 = load i64, ptr %92, align 8, !tbaa !9
  %266 = icmp eq i64 %265, 2
  br i1 %266, label %267, label %281

267:                                              ; preds = %264
  %268 = load ptr, ptr %36, align 8, !tbaa !5
  %269 = getelementptr inbounds float, ptr %268, i64 1
  %270 = load float, ptr %269, align 4, !tbaa !11
  %271 = load ptr, ptr %30, align 8, !tbaa !5
  %272 = load float, ptr %271, align 4, !tbaa !11
  %273 = fcmp ogt float %270, %272
  br i1 %273, label %274, label %281

274:                                              ; preds = %267
  %275 = load ptr, ptr %36, align 8, !tbaa !5
  %276 = getelementptr inbounds float, ptr %275, i64 1
  %277 = load float, ptr %276, align 4, !tbaa !11
  %278 = load ptr, ptr %31, align 8, !tbaa !5
  %279 = load float, ptr %278, align 4, !tbaa !11
  %280 = fcmp ole float %277, %279
  br i1 %280, label %292, label %281

281:                                              ; preds = %274, %267, %264
  %282 = load i64, ptr %92, align 8, !tbaa !9
  %283 = icmp eq i64 %282, 3
  br i1 %283, label %284, label %305

284:                                              ; preds = %281
  %285 = load ptr, ptr %32, align 8, !tbaa !5
  %286 = load i64, ptr %285, align 8, !tbaa !9
  %287 = icmp eq i64 %286, 1
  br i1 %287, label %288, label %305

288:                                              ; preds = %284
  %289 = load ptr, ptr %33, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  %291 = icmp eq i64 %290, 1
  br i1 %291, label %292, label %305

292:                                              ; preds = %288, %274, %261
  %293 = load ptr, ptr %42, align 8, !tbaa !5
  store i64 1, ptr %293, align 8, !tbaa !9
  %294 = load ptr, ptr %36, align 8, !tbaa !5
  %295 = getelementptr inbounds float, ptr %294, i64 1
  %296 = load float, ptr %295, align 4, !tbaa !11
  %297 = load ptr, ptr %43, align 8, !tbaa !5
  %298 = getelementptr inbounds float, ptr %297, i64 1
  store float %296, ptr %298, align 4, !tbaa !11
  %299 = load ptr, ptr %44, align 8, !tbaa !5
  %300 = getelementptr inbounds float, ptr %299, i64 1
  store float 0.000000e+00, ptr %300, align 4, !tbaa !11
  %301 = load ptr, ptr %47, align 8, !tbaa !5
  %302 = getelementptr inbounds i64, ptr %301, i64 1
  store i64 1, ptr %302, align 8, !tbaa !9
  %303 = load ptr, ptr %48, align 8, !tbaa !5
  %304 = getelementptr inbounds i64, ptr %303, i64 1
  store i64 1, ptr %304, align 8, !tbaa !9
  br label %305

305:                                              ; preds = %292, %288, %284, %281
  store i32 0, ptr %26, align 4
  store i32 1, ptr %98, align 4
  br label %1634

306:                                              ; preds = %253
  %307 = load ptr, ptr %29, align 8, !tbaa !5
  %308 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef @.str.8, ptr noundef %307, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %308, ptr %62, align 8, !tbaa !9
  %309 = load i64, ptr %62, align 8, !tbaa !9
  %310 = icmp sle i64 %309, 1
  br i1 %310, label %311, label %312

311:                                              ; preds = %306
  store i64 0, ptr %62, align 8, !tbaa !9
  br label %312

312:                                              ; preds = %311, %306
  %313 = load ptr, ptr %36, align 8, !tbaa !5
  %314 = getelementptr inbounds float, ptr %313, i64 1
  %315 = load float, ptr %314, align 4, !tbaa !11
  store float %315, ptr %63, align 4, !tbaa !11
  %316 = load ptr, ptr %36, align 8, !tbaa !5
  %317 = getelementptr inbounds float, ptr %316, i64 1
  %318 = load float, ptr %317, align 4, !tbaa !11
  store float %318, ptr %66, align 4, !tbaa !11
  %319 = load ptr, ptr %29, align 8, !tbaa !5
  %320 = load i64, ptr %319, align 8, !tbaa !9
  store i64 %320, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %321

321:                                              ; preds = %361, %312
  %322 = load i64, ptr %57, align 8, !tbaa !9
  %323 = load i64, ptr %52, align 8, !tbaa !9
  %324 = icmp sle i64 %322, %323
  br i1 %324, label %325, label %364

325:                                              ; preds = %321
  %326 = load float, ptr %63, align 4, !tbaa !11
  store float %326, ptr %55, align 4, !tbaa !11
  %327 = load ptr, ptr %34, align 8, !tbaa !5
  %328 = load i64, ptr %57, align 8, !tbaa !9
  %329 = shl i64 %328, 1
  %330 = sub nsw i64 %329, 1
  %331 = getelementptr inbounds float, ptr %327, i64 %330
  %332 = load float, ptr %331, align 4, !tbaa !11
  store float %332, ptr %56, align 4, !tbaa !11
  %333 = load float, ptr %55, align 4, !tbaa !11
  %334 = load float, ptr %56, align 4, !tbaa !11
  %335 = fcmp ole float %333, %334
  br i1 %335, label %336, label %338

336:                                              ; preds = %325
  %337 = load float, ptr %55, align 4, !tbaa !11
  br label %340

338:                                              ; preds = %325
  %339 = load float, ptr %56, align 4, !tbaa !11
  br label %340

340:                                              ; preds = %338, %336
  %341 = phi float [ %337, %336 ], [ %339, %338 ]
  %342 = fpext float %341 to double
  %343 = fptrunc double %342 to float
  store float %343, ptr %63, align 4, !tbaa !11
  %344 = load float, ptr %66, align 4, !tbaa !11
  store float %344, ptr %55, align 4, !tbaa !11
  %345 = load ptr, ptr %34, align 8, !tbaa !5
  %346 = load i64, ptr %57, align 8, !tbaa !9
  %347 = mul nsw i64 %346, 2
  %348 = getelementptr inbounds float, ptr %345, i64 %347
  %349 = load float, ptr %348, align 4, !tbaa !11
  store float %349, ptr %56, align 4, !tbaa !11
  %350 = load float, ptr %55, align 4, !tbaa !11
  %351 = load float, ptr %56, align 4, !tbaa !11
  %352 = fcmp oge float %350, %351
  br i1 %352, label %353, label %355

353:                                              ; preds = %340
  %354 = load float, ptr %55, align 4, !tbaa !11
  br label %357

355:                                              ; preds = %340
  %356 = load float, ptr %56, align 4, !tbaa !11
  br label %357

357:                                              ; preds = %355, %353
  %358 = phi float [ %354, %353 ], [ %356, %355 ]
  %359 = fpext float %358 to double
  %360 = fptrunc double %359 to float
  store float %360, ptr %66, align 4, !tbaa !11
  br label %361

361:                                              ; preds = %357
  %362 = load i64, ptr %57, align 8, !tbaa !9
  %363 = add nsw i64 %362, 1
  store i64 %363, ptr %57, align 8, !tbaa !9
  br label %321, !llvm.loop !13

364:                                              ; preds = %321
  %365 = load float, ptr %63, align 4, !tbaa !11
  %366 = fcmp oge float %365, 0.000000e+00
  br i1 %366, label %367, label %369

367:                                              ; preds = %364
  %368 = load float, ptr %63, align 4, !tbaa !11
  br label %372

369:                                              ; preds = %364
  %370 = load float, ptr %63, align 4, !tbaa !11
  %371 = fneg float %370
  br label %372

372:                                              ; preds = %369, %367
  %373 = phi float [ %368, %367 ], [ %371, %369 ]
  %374 = fpext float %373 to double
  %375 = fptrunc double %374 to float
  store float %375, ptr %55, align 4, !tbaa !11
  %376 = load float, ptr %66, align 4, !tbaa !11
  %377 = fcmp oge float %376, 0.000000e+00
  br i1 %377, label %378, label %380

378:                                              ; preds = %372
  %379 = load float, ptr %66, align 4, !tbaa !11
  br label %383

380:                                              ; preds = %372
  %381 = load float, ptr %66, align 4, !tbaa !11
  %382 = fneg float %381
  br label %383

383:                                              ; preds = %380, %378
  %384 = phi float [ %379, %378 ], [ %382, %380 ]
  %385 = fpext float %384 to double
  %386 = fptrunc double %385 to float
  store float %386, ptr %56, align 4, !tbaa !11
  %387 = load float, ptr %55, align 4, !tbaa !11
  %388 = load float, ptr %56, align 4, !tbaa !11
  %389 = fcmp oge float %387, %388
  br i1 %389, label %390, label %392

390:                                              ; preds = %383
  %391 = load float, ptr %55, align 4, !tbaa !11
  br label %394

392:                                              ; preds = %383
  %393 = load float, ptr %56, align 4, !tbaa !11
  br label %394

394:                                              ; preds = %392, %390
  %395 = phi float [ %391, %390 ], [ %393, %392 ]
  %396 = fpext float %395 to double
  %397 = fptrunc double %396 to float
  store float %397, ptr %90, align 4, !tbaa !11
  %398 = load float, ptr %63, align 4, !tbaa !11
  %399 = load float, ptr %90, align 4, !tbaa !11
  %400 = fmul float %399, 2.000000e+00
  %401 = load float, ptr %69, align 4, !tbaa !11
  %402 = fmul float %400, %401
  %403 = load ptr, ptr %29, align 8, !tbaa !5
  %404 = load i64, ptr %403, align 8, !tbaa !9
  %405 = sitofp i64 %404 to float
  %406 = fneg float %402
  %407 = call float @llvm.fmuladd.f32(float %406, float %405, float %398)
  %408 = load ptr, ptr %39, align 8, !tbaa !5
  %409 = load float, ptr %408, align 4, !tbaa !11
  %410 = fneg float %409
  %411 = call float @llvm.fmuladd.f32(float %410, float 4.000000e+00, float %407)
  store float %411, ptr %63, align 4, !tbaa !11
  %412 = load float, ptr %66, align 4, !tbaa !11
  %413 = load float, ptr %90, align 4, !tbaa !11
  %414 = fmul float %413, 2.000000e+00
  %415 = load float, ptr %69, align 4, !tbaa !11
  %416 = fmul float %414, %415
  %417 = load ptr, ptr %29, align 8, !tbaa !5
  %418 = load i64, ptr %417, align 8, !tbaa !9
  %419 = sitofp i64 %418 to float
  %420 = call float @llvm.fmuladd.f32(float %416, float %419, float %412)
  %421 = load ptr, ptr %39, align 8, !tbaa !5
  %422 = load float, ptr %421, align 4, !tbaa !11
  %423 = call float @llvm.fmuladd.f32(float %422, float 4.000000e+00, float %420)
  store float %423, ptr %66, align 4, !tbaa !11
  %424 = load ptr, ptr %35, align 8, !tbaa !5
  %425 = load float, ptr %424, align 4, !tbaa !11
  store float %425, ptr %88, align 4, !tbaa !11
  %426 = load float, ptr %89, align 4, !tbaa !11
  %427 = load ptr, ptr %39, align 8, !tbaa !5
  %428 = load float, ptr %427, align 4, !tbaa !11
  %429 = fmul float %428, 4.000000e+00
  %430 = call float @llvm.fmuladd.f32(float %426, float 4.000000e+00, float %429)
  store float %430, ptr %84, align 4, !tbaa !11
  %431 = load i64, ptr %92, align 8, !tbaa !9
  %432 = icmp eq i64 %431, 3
  br i1 %432, label %433, label %632

433:                                              ; preds = %394
  %434 = load float, ptr %90, align 4, !tbaa !11
  %435 = load ptr, ptr %39, align 8, !tbaa !5
  %436 = load float, ptr %435, align 4, !tbaa !11
  %437 = fadd float %434, %436
  %438 = fpext float %437 to double
  %439 = call double @log(double noundef %438) #5
  %440 = load ptr, ptr %39, align 8, !tbaa !5
  %441 = load float, ptr %440, align 4, !tbaa !11
  %442 = fpext float %441 to double
  %443 = call double @log(double noundef %442) #5
  %444 = fsub double %439, %443
  %445 = call double @log(double noundef 2.000000e+00) #5
  %446 = fdiv double %444, %445
  %447 = fptosi double %446 to i64
  %448 = add nsw i64 %447, 2
  store i64 %448, ptr %86, align 8, !tbaa !9
  %449 = load float, ptr %63, align 4, !tbaa !11
  %450 = load ptr, ptr %49, align 8, !tbaa !5
  %451 = load ptr, ptr %29, align 8, !tbaa !5
  %452 = load i64, ptr %451, align 8, !tbaa !9
  %453 = add nsw i64 %452, 1
  %454 = getelementptr inbounds float, ptr %450, i64 %453
  store float %449, ptr %454, align 4, !tbaa !11
  %455 = load float, ptr %63, align 4, !tbaa !11
  %456 = load ptr, ptr %49, align 8, !tbaa !5
  %457 = load ptr, ptr %29, align 8, !tbaa !5
  %458 = load i64, ptr %457, align 8, !tbaa !9
  %459 = add nsw i64 %458, 2
  %460 = getelementptr inbounds float, ptr %456, i64 %459
  store float %455, ptr %460, align 4, !tbaa !11
  %461 = load float, ptr %66, align 4, !tbaa !11
  %462 = load ptr, ptr %49, align 8, !tbaa !5
  %463 = load ptr, ptr %29, align 8, !tbaa !5
  %464 = load i64, ptr %463, align 8, !tbaa !9
  %465 = add nsw i64 %464, 3
  %466 = getelementptr inbounds float, ptr %462, i64 %465
  store float %461, ptr %466, align 4, !tbaa !11
  %467 = load float, ptr %66, align 4, !tbaa !11
  %468 = load ptr, ptr %49, align 8, !tbaa !5
  %469 = load ptr, ptr %29, align 8, !tbaa !5
  %470 = load i64, ptr %469, align 8, !tbaa !9
  %471 = add nsw i64 %470, 4
  %472 = getelementptr inbounds float, ptr %468, i64 %471
  store float %467, ptr %472, align 4, !tbaa !11
  %473 = load float, ptr %63, align 4, !tbaa !11
  %474 = load ptr, ptr %49, align 8, !tbaa !5
  %475 = load ptr, ptr %29, align 8, !tbaa !5
  %476 = load i64, ptr %475, align 8, !tbaa !9
  %477 = add nsw i64 %476, 5
  %478 = getelementptr inbounds float, ptr %474, i64 %477
  store float %473, ptr %478, align 4, !tbaa !11
  %479 = load float, ptr %66, align 4, !tbaa !11
  %480 = load ptr, ptr %49, align 8, !tbaa !5
  %481 = load ptr, ptr %29, align 8, !tbaa !5
  %482 = load i64, ptr %481, align 8, !tbaa !9
  %483 = add nsw i64 %482, 6
  %484 = getelementptr inbounds float, ptr %480, i64 %483
  store float %479, ptr %484, align 4, !tbaa !11
  %485 = load ptr, ptr %50, align 8, !tbaa !5
  %486 = getelementptr inbounds i64, ptr %485, i64 1
  store i64 -1, ptr %486, align 8, !tbaa !9
  %487 = load ptr, ptr %50, align 8, !tbaa !5
  %488 = getelementptr inbounds i64, ptr %487, i64 2
  store i64 -1, ptr %488, align 8, !tbaa !9
  %489 = load ptr, ptr %29, align 8, !tbaa !5
  %490 = load i64, ptr %489, align 8, !tbaa !9
  %491 = add nsw i64 %490, 1
  %492 = load ptr, ptr %50, align 8, !tbaa !5
  %493 = getelementptr inbounds i64, ptr %492, i64 3
  store i64 %491, ptr %493, align 8, !tbaa !9
  %494 = load ptr, ptr %29, align 8, !tbaa !5
  %495 = load i64, ptr %494, align 8, !tbaa !9
  %496 = add nsw i64 %495, 1
  %497 = load ptr, ptr %50, align 8, !tbaa !5
  %498 = getelementptr inbounds i64, ptr %497, i64 4
  store i64 %496, ptr %498, align 8, !tbaa !9
  %499 = load ptr, ptr %32, align 8, !tbaa !5
  %500 = load i64, ptr %499, align 8, !tbaa !9
  %501 = sub nsw i64 %500, 1
  %502 = load ptr, ptr %50, align 8, !tbaa !5
  %503 = getelementptr inbounds i64, ptr %502, i64 5
  store i64 %501, ptr %503, align 8, !tbaa !9
  %504 = load ptr, ptr %33, align 8, !tbaa !5
  %505 = load i64, ptr %504, align 8, !tbaa !9
  %506 = load ptr, ptr %50, align 8, !tbaa !5
  %507 = getelementptr inbounds i64, ptr %506, i64 6
  store i64 %505, ptr %507, align 8, !tbaa !9
  %508 = load ptr, ptr %29, align 8, !tbaa !5
  %509 = load ptr, ptr %39, align 8, !tbaa !5
  %510 = load ptr, ptr %36, align 8, !tbaa !5
  %511 = getelementptr inbounds float, ptr %510, i64 1
  %512 = load ptr, ptr %37, align 8, !tbaa !5
  %513 = getelementptr inbounds float, ptr %512, i64 1
  %514 = load ptr, ptr %38, align 8, !tbaa !5
  %515 = getelementptr inbounds float, ptr %514, i64 1
  %516 = load ptr, ptr %50, align 8, !tbaa !5
  %517 = getelementptr inbounds i64, ptr %516, i64 5
  %518 = load ptr, ptr %49, align 8, !tbaa !5
  %519 = load ptr, ptr %29, align 8, !tbaa !5
  %520 = load i64, ptr %519, align 8, !tbaa !9
  %521 = add nsw i64 %520, 1
  %522 = getelementptr inbounds float, ptr %518, i64 %521
  %523 = load ptr, ptr %49, align 8, !tbaa !5
  %524 = load ptr, ptr %29, align 8, !tbaa !5
  %525 = load i64, ptr %524, align 8, !tbaa !9
  %526 = add nsw i64 %525, 5
  %527 = getelementptr inbounds float, ptr %523, i64 %526
  %528 = load ptr, ptr %50, align 8, !tbaa !5
  %529 = getelementptr inbounds i64, ptr %528, i64 1
  %530 = load ptr, ptr %43, align 8, !tbaa !5
  %531 = getelementptr inbounds float, ptr %530, i64 1
  %532 = load ptr, ptr %47, align 8, !tbaa !5
  %533 = getelementptr inbounds i64, ptr %532, i64 1
  %534 = call i32 @slaebz_(ptr noundef @c__3, ptr noundef %86, ptr noundef %508, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %62, ptr noundef %84, ptr noundef %88, ptr noundef %509, ptr noundef %511, ptr noundef %513, ptr noundef %515, ptr noundef %517, ptr noundef %522, ptr noundef %527, ptr noundef %79, ptr noundef %529, ptr noundef %531, ptr noundef %533, ptr noundef %83)
  %535 = load i64, ptr %83, align 8, !tbaa !9
  %536 = icmp ne i64 %535, 0
  br i1 %536, label %537, label %540

537:                                              ; preds = %433
  %538 = load i64, ptr %83, align 8, !tbaa !9
  %539 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 %538, ptr %539, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %98, align 4
  br label %1634

540:                                              ; preds = %433
  %541 = load ptr, ptr %50, align 8, !tbaa !5
  %542 = getelementptr inbounds i64, ptr %541, i64 6
  %543 = load i64, ptr %542, align 8, !tbaa !9
  %544 = load ptr, ptr %33, align 8, !tbaa !5
  %545 = load i64, ptr %544, align 8, !tbaa !9
  %546 = icmp eq i64 %543, %545
  br i1 %546, label %547, label %580

547:                                              ; preds = %540
  %548 = load ptr, ptr %49, align 8, !tbaa !5
  %549 = load ptr, ptr %29, align 8, !tbaa !5
  %550 = load i64, ptr %549, align 8, !tbaa !9
  %551 = add nsw i64 %550, 1
  %552 = getelementptr inbounds float, ptr %548, i64 %551
  %553 = load float, ptr %552, align 4, !tbaa !11
  %554 = load ptr, ptr %45, align 8, !tbaa !5
  store float %553, ptr %554, align 4, !tbaa !11
  %555 = load ptr, ptr %49, align 8, !tbaa !5
  %556 = load ptr, ptr %29, align 8, !tbaa !5
  %557 = load i64, ptr %556, align 8, !tbaa !9
  %558 = add nsw i64 %557, 3
  %559 = getelementptr inbounds float, ptr %555, i64 %558
  %560 = load float, ptr %559, align 4, !tbaa !11
  store float %560, ptr %71, align 4, !tbaa !11
  %561 = load ptr, ptr %50, align 8, !tbaa !5
  %562 = getelementptr inbounds i64, ptr %561, i64 1
  %563 = load i64, ptr %562, align 8, !tbaa !9
  store i64 %563, ptr %70, align 8, !tbaa !9
  %564 = load ptr, ptr %49, align 8, !tbaa !5
  %565 = load ptr, ptr %29, align 8, !tbaa !5
  %566 = load i64, ptr %565, align 8, !tbaa !9
  %567 = add nsw i64 %566, 4
  %568 = getelementptr inbounds float, ptr %564, i64 %567
  %569 = load float, ptr %568, align 4, !tbaa !11
  %570 = load ptr, ptr %46, align 8, !tbaa !5
  store float %569, ptr %570, align 4, !tbaa !11
  %571 = load ptr, ptr %49, align 8, !tbaa !5
  %572 = load ptr, ptr %29, align 8, !tbaa !5
  %573 = load i64, ptr %572, align 8, !tbaa !9
  %574 = add nsw i64 %573, 2
  %575 = getelementptr inbounds float, ptr %571, i64 %574
  %576 = load float, ptr %575, align 4, !tbaa !11
  store float %576, ptr %72, align 4, !tbaa !11
  %577 = load ptr, ptr %50, align 8, !tbaa !5
  %578 = getelementptr inbounds i64, ptr %577, i64 4
  %579 = load i64, ptr %578, align 8, !tbaa !9
  store i64 %579, ptr %73, align 8, !tbaa !9
  br label %613

580:                                              ; preds = %540
  %581 = load ptr, ptr %49, align 8, !tbaa !5
  %582 = load ptr, ptr %29, align 8, !tbaa !5
  %583 = load i64, ptr %582, align 8, !tbaa !9
  %584 = add nsw i64 %583, 2
  %585 = getelementptr inbounds float, ptr %581, i64 %584
  %586 = load float, ptr %585, align 4, !tbaa !11
  %587 = load ptr, ptr %45, align 8, !tbaa !5
  store float %586, ptr %587, align 4, !tbaa !11
  %588 = load ptr, ptr %49, align 8, !tbaa !5
  %589 = load ptr, ptr %29, align 8, !tbaa !5
  %590 = load i64, ptr %589, align 8, !tbaa !9
  %591 = add nsw i64 %590, 4
  %592 = getelementptr inbounds float, ptr %588, i64 %591
  %593 = load float, ptr %592, align 4, !tbaa !11
  store float %593, ptr %71, align 4, !tbaa !11
  %594 = load ptr, ptr %50, align 8, !tbaa !5
  %595 = getelementptr inbounds i64, ptr %594, i64 2
  %596 = load i64, ptr %595, align 8, !tbaa !9
  store i64 %596, ptr %70, align 8, !tbaa !9
  %597 = load ptr, ptr %49, align 8, !tbaa !5
  %598 = load ptr, ptr %29, align 8, !tbaa !5
  %599 = load i64, ptr %598, align 8, !tbaa !9
  %600 = add nsw i64 %599, 3
  %601 = getelementptr inbounds float, ptr %597, i64 %600
  %602 = load float, ptr %601, align 4, !tbaa !11
  %603 = load ptr, ptr %46, align 8, !tbaa !5
  store float %602, ptr %603, align 4, !tbaa !11
  %604 = load ptr, ptr %49, align 8, !tbaa !5
  %605 = load ptr, ptr %29, align 8, !tbaa !5
  %606 = load i64, ptr %605, align 8, !tbaa !9
  %607 = add nsw i64 %606, 1
  %608 = getelementptr inbounds float, ptr %604, i64 %607
  %609 = load float, ptr %608, align 4, !tbaa !11
  store float %609, ptr %72, align 4, !tbaa !11
  %610 = load ptr, ptr %50, align 8, !tbaa !5
  %611 = getelementptr inbounds i64, ptr %610, i64 3
  %612 = load i64, ptr %611, align 8, !tbaa !9
  store i64 %612, ptr %73, align 8, !tbaa !9
  br label %613

613:                                              ; preds = %580, %547
  %614 = load i64, ptr %70, align 8, !tbaa !9
  %615 = icmp slt i64 %614, 0
  br i1 %615, label %629, label %616

616:                                              ; preds = %613
  %617 = load i64, ptr %70, align 8, !tbaa !9
  %618 = load ptr, ptr %29, align 8, !tbaa !5
  %619 = load i64, ptr %618, align 8, !tbaa !9
  %620 = icmp sge i64 %617, %619
  br i1 %620, label %629, label %621

621:                                              ; preds = %616
  %622 = load i64, ptr %73, align 8, !tbaa !9
  %623 = icmp slt i64 %622, 1
  br i1 %623, label %629, label %624

624:                                              ; preds = %621
  %625 = load i64, ptr %73, align 8, !tbaa !9
  %626 = load ptr, ptr %29, align 8, !tbaa !5
  %627 = load i64, ptr %626, align 8, !tbaa !9
  %628 = icmp sgt i64 %625, %627
  br i1 %628, label %629, label %631

629:                                              ; preds = %624, %621, %616, %613
  %630 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 4, ptr %630, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %98, align 4
  br label %1634

631:                                              ; preds = %624
  br label %652

632:                                              ; preds = %394
  %633 = load i64, ptr %92, align 8, !tbaa !9
  %634 = icmp eq i64 %633, 2
  br i1 %634, label %635, label %642

635:                                              ; preds = %632
  %636 = load ptr, ptr %30, align 8, !tbaa !5
  %637 = load float, ptr %636, align 4, !tbaa !11
  %638 = load ptr, ptr %45, align 8, !tbaa !5
  store float %637, ptr %638, align 4, !tbaa !11
  %639 = load ptr, ptr %31, align 8, !tbaa !5
  %640 = load float, ptr %639, align 4, !tbaa !11
  %641 = load ptr, ptr %46, align 8, !tbaa !5
  store float %640, ptr %641, align 4, !tbaa !11
  br label %651

642:                                              ; preds = %632
  %643 = load i64, ptr %92, align 8, !tbaa !9
  %644 = icmp eq i64 %643, 1
  br i1 %644, label %645, label %650

645:                                              ; preds = %642
  %646 = load float, ptr %63, align 4, !tbaa !11
  %647 = load ptr, ptr %45, align 8, !tbaa !5
  store float %646, ptr %647, align 4, !tbaa !11
  %648 = load float, ptr %66, align 4, !tbaa !11
  %649 = load ptr, ptr %46, align 8, !tbaa !5
  store float %648, ptr %649, align 4, !tbaa !11
  br label %650

650:                                              ; preds = %645, %642
  br label %651

651:                                              ; preds = %650, %635
  br label %652

652:                                              ; preds = %651, %631
  %653 = load ptr, ptr %42, align 8, !tbaa !5
  store i64 0, ptr %653, align 8, !tbaa !9
  store i64 0, ptr %76, align 8, !tbaa !9
  %654 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 0, ptr %654, align 8, !tbaa !9
  store i64 0, ptr %70, align 8, !tbaa !9
  store i64 0, ptr %73, align 8, !tbaa !9
  %655 = load ptr, ptr %40, align 8, !tbaa !5
  %656 = load i64, ptr %655, align 8, !tbaa !9
  store i64 %656, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %657

657:                                              ; preds = %1130, %652
  %658 = load i64, ptr %77, align 8, !tbaa !9
  %659 = load i64, ptr %52, align 8, !tbaa !9
  %660 = icmp sle i64 %658, %659
  br i1 %660, label %661, label %1133

661:                                              ; preds = %657
  %662 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %662, ptr %78, align 8, !tbaa !9
  %663 = load i64, ptr %78, align 8, !tbaa !9
  %664 = add nsw i64 %663, 1
  store i64 %664, ptr %91, align 8, !tbaa !9
  %665 = load ptr, ptr %41, align 8, !tbaa !5
  %666 = load i64, ptr %77, align 8, !tbaa !9
  %667 = getelementptr inbounds i64, ptr %665, i64 %666
  %668 = load i64, ptr %667, align 8, !tbaa !9
  store i64 %668, ptr %76, align 8, !tbaa !9
  %669 = load i64, ptr %76, align 8, !tbaa !9
  %670 = load i64, ptr %78, align 8, !tbaa !9
  %671 = sub nsw i64 %669, %670
  store i64 %671, ptr %65, align 8, !tbaa !9
  %672 = load i64, ptr %65, align 8, !tbaa !9
  %673 = icmp eq i64 %672, 1
  br i1 %673, label %674, label %753

674:                                              ; preds = %661
  %675 = load ptr, ptr %45, align 8, !tbaa !5
  %676 = load float, ptr %675, align 4, !tbaa !11
  %677 = load ptr, ptr %36, align 8, !tbaa !5
  %678 = load i64, ptr %91, align 8, !tbaa !9
  %679 = getelementptr inbounds float, ptr %677, i64 %678
  %680 = load float, ptr %679, align 4, !tbaa !11
  %681 = load ptr, ptr %39, align 8, !tbaa !5
  %682 = load float, ptr %681, align 4, !tbaa !11
  %683 = fsub float %680, %682
  %684 = fcmp oge float %676, %683
  br i1 %684, label %685, label %688

685:                                              ; preds = %674
  %686 = load i64, ptr %70, align 8, !tbaa !9
  %687 = add nsw i64 %686, 1
  store i64 %687, ptr %70, align 8, !tbaa !9
  br label %688

688:                                              ; preds = %685, %674
  %689 = load ptr, ptr %46, align 8, !tbaa !5
  %690 = load float, ptr %689, align 4, !tbaa !11
  %691 = load ptr, ptr %36, align 8, !tbaa !5
  %692 = load i64, ptr %91, align 8, !tbaa !9
  %693 = getelementptr inbounds float, ptr %691, i64 %692
  %694 = load float, ptr %693, align 4, !tbaa !11
  %695 = load ptr, ptr %39, align 8, !tbaa !5
  %696 = load float, ptr %695, align 4, !tbaa !11
  %697 = fsub float %694, %696
  %698 = fcmp oge float %690, %697
  br i1 %698, label %699, label %702

699:                                              ; preds = %688
  %700 = load i64, ptr %73, align 8, !tbaa !9
  %701 = add nsw i64 %700, 1
  store i64 %701, ptr %73, align 8, !tbaa !9
  br label %702

702:                                              ; preds = %699, %688
  %703 = load i64, ptr %92, align 8, !tbaa !9
  %704 = icmp eq i64 %703, 1
  br i1 %704, label %727, label %705

705:                                              ; preds = %702
  %706 = load ptr, ptr %45, align 8, !tbaa !5
  %707 = load float, ptr %706, align 4, !tbaa !11
  %708 = load ptr, ptr %36, align 8, !tbaa !5
  %709 = load i64, ptr %91, align 8, !tbaa !9
  %710 = getelementptr inbounds float, ptr %708, i64 %709
  %711 = load float, ptr %710, align 4, !tbaa !11
  %712 = load ptr, ptr %39, align 8, !tbaa !5
  %713 = load float, ptr %712, align 4, !tbaa !11
  %714 = fsub float %711, %713
  %715 = fcmp olt float %707, %714
  br i1 %715, label %716, label %752

716:                                              ; preds = %705
  %717 = load ptr, ptr %46, align 8, !tbaa !5
  %718 = load float, ptr %717, align 4, !tbaa !11
  %719 = load ptr, ptr %36, align 8, !tbaa !5
  %720 = load i64, ptr %91, align 8, !tbaa !9
  %721 = getelementptr inbounds float, ptr %719, i64 %720
  %722 = load float, ptr %721, align 4, !tbaa !11
  %723 = load ptr, ptr %39, align 8, !tbaa !5
  %724 = load float, ptr %723, align 4, !tbaa !11
  %725 = fsub float %722, %724
  %726 = fcmp oge float %718, %725
  br i1 %726, label %727, label %752

727:                                              ; preds = %716, %702
  %728 = load ptr, ptr %42, align 8, !tbaa !5
  %729 = load i64, ptr %728, align 8, !tbaa !9
  %730 = add nsw i64 %729, 1
  store i64 %730, ptr %728, align 8, !tbaa !9
  %731 = load ptr, ptr %36, align 8, !tbaa !5
  %732 = load i64, ptr %91, align 8, !tbaa !9
  %733 = getelementptr inbounds float, ptr %731, i64 %732
  %734 = load float, ptr %733, align 4, !tbaa !11
  %735 = load ptr, ptr %43, align 8, !tbaa !5
  %736 = load ptr, ptr %42, align 8, !tbaa !5
  %737 = load i64, ptr %736, align 8, !tbaa !9
  %738 = getelementptr inbounds float, ptr %735, i64 %737
  store float %734, ptr %738, align 4, !tbaa !11
  %739 = load ptr, ptr %44, align 8, !tbaa !5
  %740 = load ptr, ptr %42, align 8, !tbaa !5
  %741 = load i64, ptr %740, align 8, !tbaa !9
  %742 = getelementptr inbounds float, ptr %739, i64 %741
  store float 0.000000e+00, ptr %742, align 4, !tbaa !11
  %743 = load i64, ptr %77, align 8, !tbaa !9
  %744 = load ptr, ptr %47, align 8, !tbaa !5
  %745 = load ptr, ptr %42, align 8, !tbaa !5
  %746 = load i64, ptr %745, align 8, !tbaa !9
  %747 = getelementptr inbounds i64, ptr %744, i64 %746
  store i64 %743, ptr %747, align 8, !tbaa !9
  %748 = load ptr, ptr %48, align 8, !tbaa !5
  %749 = load ptr, ptr %42, align 8, !tbaa !5
  %750 = load i64, ptr %749, align 8, !tbaa !9
  %751 = getelementptr inbounds i64, ptr %748, i64 %750
  store i64 1, ptr %751, align 8, !tbaa !9
  br label %752

752:                                              ; preds = %727, %716, %705
  br label %1128

753:                                              ; preds = %661
  %754 = load ptr, ptr %36, align 8, !tbaa !5
  %755 = load i64, ptr %91, align 8, !tbaa !9
  %756 = getelementptr inbounds float, ptr %754, i64 %755
  %757 = load float, ptr %756, align 4, !tbaa !11
  store float %757, ptr %66, align 4, !tbaa !11
  %758 = load ptr, ptr %36, align 8, !tbaa !5
  %759 = load i64, ptr %91, align 8, !tbaa !9
  %760 = getelementptr inbounds float, ptr %758, i64 %759
  %761 = load float, ptr %760, align 4, !tbaa !11
  store float %761, ptr %63, align 4, !tbaa !11
  store float 0.000000e+00, ptr %74, align 4, !tbaa !11
  %762 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %762, ptr %53, align 8, !tbaa !9
  %763 = load i64, ptr %91, align 8, !tbaa !9
  store i64 %763, ptr %58, align 8, !tbaa !9
  br label %764

764:                                              ; preds = %804, %753
  %765 = load i64, ptr %58, align 8, !tbaa !9
  %766 = load i64, ptr %53, align 8, !tbaa !9
  %767 = icmp sle i64 %765, %766
  br i1 %767, label %768, label %807

768:                                              ; preds = %764
  %769 = load float, ptr %63, align 4, !tbaa !11
  store float %769, ptr %55, align 4, !tbaa !11
  %770 = load ptr, ptr %34, align 8, !tbaa !5
  %771 = load i64, ptr %58, align 8, !tbaa !9
  %772 = shl i64 %771, 1
  %773 = sub nsw i64 %772, 1
  %774 = getelementptr inbounds float, ptr %770, i64 %773
  %775 = load float, ptr %774, align 4, !tbaa !11
  store float %775, ptr %56, align 4, !tbaa !11
  %776 = load float, ptr %55, align 4, !tbaa !11
  %777 = load float, ptr %56, align 4, !tbaa !11
  %778 = fcmp ole float %776, %777
  br i1 %778, label %779, label %781

779:                                              ; preds = %768
  %780 = load float, ptr %55, align 4, !tbaa !11
  br label %783

781:                                              ; preds = %768
  %782 = load float, ptr %56, align 4, !tbaa !11
  br label %783

783:                                              ; preds = %781, %779
  %784 = phi float [ %780, %779 ], [ %782, %781 ]
  %785 = fpext float %784 to double
  %786 = fptrunc double %785 to float
  store float %786, ptr %63, align 4, !tbaa !11
  %787 = load float, ptr %66, align 4, !tbaa !11
  store float %787, ptr %55, align 4, !tbaa !11
  %788 = load ptr, ptr %34, align 8, !tbaa !5
  %789 = load i64, ptr %58, align 8, !tbaa !9
  %790 = mul nsw i64 %789, 2
  %791 = getelementptr inbounds float, ptr %788, i64 %790
  %792 = load float, ptr %791, align 4, !tbaa !11
  store float %792, ptr %56, align 4, !tbaa !11
  %793 = load float, ptr %55, align 4, !tbaa !11
  %794 = load float, ptr %56, align 4, !tbaa !11
  %795 = fcmp oge float %793, %794
  br i1 %795, label %796, label %798

796:                                              ; preds = %783
  %797 = load float, ptr %55, align 4, !tbaa !11
  br label %800

798:                                              ; preds = %783
  %799 = load float, ptr %56, align 4, !tbaa !11
  br label %800

800:                                              ; preds = %798, %796
  %801 = phi float [ %797, %796 ], [ %799, %798 ]
  %802 = fpext float %801 to double
  %803 = fptrunc double %802 to float
  store float %803, ptr %66, align 4, !tbaa !11
  br label %804

804:                                              ; preds = %800
  %805 = load i64, ptr %58, align 8, !tbaa !9
  %806 = add nsw i64 %805, 1
  store i64 %806, ptr %58, align 8, !tbaa !9
  br label %764, !llvm.loop !15

807:                                              ; preds = %764
  %808 = load float, ptr %63, align 4, !tbaa !11
  %809 = load float, ptr %90, align 4, !tbaa !11
  %810 = fmul float %809, 2.000000e+00
  %811 = load float, ptr %69, align 4, !tbaa !11
  %812 = fmul float %810, %811
  %813 = load i64, ptr %65, align 8, !tbaa !9
  %814 = sitofp i64 %813 to float
  %815 = fneg float %812
  %816 = call float @llvm.fmuladd.f32(float %815, float %814, float %808)
  %817 = load ptr, ptr %39, align 8, !tbaa !5
  %818 = load float, ptr %817, align 4, !tbaa !11
  %819 = fneg float %818
  %820 = call float @llvm.fmuladd.f32(float %819, float 2.000000e+00, float %816)
  store float %820, ptr %63, align 4, !tbaa !11
  %821 = load float, ptr %66, align 4, !tbaa !11
  %822 = load float, ptr %90, align 4, !tbaa !11
  %823 = fmul float %822, 2.000000e+00
  %824 = load float, ptr %69, align 4, !tbaa !11
  %825 = fmul float %823, %824
  %826 = load i64, ptr %65, align 8, !tbaa !9
  %827 = sitofp i64 %826 to float
  %828 = call float @llvm.fmuladd.f32(float %825, float %827, float %821)
  %829 = load ptr, ptr %39, align 8, !tbaa !5
  %830 = load float, ptr %829, align 4, !tbaa !11
  %831 = call float @llvm.fmuladd.f32(float %830, float 2.000000e+00, float %828)
  store float %831, ptr %66, align 4, !tbaa !11
  %832 = load i64, ptr %92, align 8, !tbaa !9
  %833 = icmp sgt i64 %832, 1
  br i1 %833, label %834, label %878

834:                                              ; preds = %807
  %835 = load float, ptr %66, align 4, !tbaa !11
  %836 = load ptr, ptr %45, align 8, !tbaa !5
  %837 = load float, ptr %836, align 4, !tbaa !11
  %838 = fcmp olt float %835, %837
  br i1 %838, label %839, label %846

839:                                              ; preds = %834
  %840 = load i64, ptr %65, align 8, !tbaa !9
  %841 = load i64, ptr %70, align 8, !tbaa !9
  %842 = add nsw i64 %841, %840
  store i64 %842, ptr %70, align 8, !tbaa !9
  %843 = load i64, ptr %65, align 8, !tbaa !9
  %844 = load i64, ptr %73, align 8, !tbaa !9
  %845 = add nsw i64 %844, %843
  store i64 %845, ptr %73, align 8, !tbaa !9
  br label %1129

846:                                              ; preds = %834
  %847 = load float, ptr %63, align 4, !tbaa !11
  %848 = load ptr, ptr %45, align 8, !tbaa !5
  %849 = load float, ptr %848, align 4, !tbaa !11
  %850 = fcmp oge float %847, %849
  br i1 %850, label %851, label %853

851:                                              ; preds = %846
  %852 = load float, ptr %63, align 4, !tbaa !11
  br label %856

853:                                              ; preds = %846
  %854 = load ptr, ptr %45, align 8, !tbaa !5
  %855 = load float, ptr %854, align 4, !tbaa !11
  br label %856

856:                                              ; preds = %853, %851
  %857 = phi float [ %852, %851 ], [ %855, %853 ]
  %858 = fpext float %857 to double
  %859 = fptrunc double %858 to float
  store float %859, ptr %63, align 4, !tbaa !11
  %860 = load float, ptr %66, align 4, !tbaa !11
  %861 = load ptr, ptr %46, align 8, !tbaa !5
  %862 = load float, ptr %861, align 4, !tbaa !11
  %863 = fcmp ole float %860, %862
  br i1 %863, label %864, label %866

864:                                              ; preds = %856
  %865 = load float, ptr %66, align 4, !tbaa !11
  br label %869

866:                                              ; preds = %856
  %867 = load ptr, ptr %46, align 8, !tbaa !5
  %868 = load float, ptr %867, align 4, !tbaa !11
  br label %869

869:                                              ; preds = %866, %864
  %870 = phi float [ %865, %864 ], [ %868, %866 ]
  %871 = fpext float %870 to double
  %872 = fptrunc double %871 to float
  store float %872, ptr %66, align 4, !tbaa !11
  %873 = load float, ptr %63, align 4, !tbaa !11
  %874 = load float, ptr %66, align 4, !tbaa !11
  %875 = fcmp oge float %873, %874
  br i1 %875, label %876, label %877

876:                                              ; preds = %869
  br label %1129

877:                                              ; preds = %869
  br label %878

878:                                              ; preds = %877, %807
  %879 = load float, ptr %63, align 4, !tbaa !11
  %880 = load ptr, ptr %49, align 8, !tbaa !5
  %881 = load ptr, ptr %29, align 8, !tbaa !5
  %882 = load i64, ptr %881, align 8, !tbaa !9
  %883 = add nsw i64 %882, 1
  %884 = getelementptr inbounds float, ptr %880, i64 %883
  store float %879, ptr %884, align 4, !tbaa !11
  %885 = load float, ptr %66, align 4, !tbaa !11
  %886 = load ptr, ptr %49, align 8, !tbaa !5
  %887 = load ptr, ptr %29, align 8, !tbaa !5
  %888 = load i64, ptr %887, align 8, !tbaa !9
  %889 = load i64, ptr %65, align 8, !tbaa !9
  %890 = add nsw i64 %888, %889
  %891 = add nsw i64 %890, 1
  %892 = getelementptr inbounds float, ptr %886, i64 %891
  store float %885, ptr %892, align 4, !tbaa !11
  %893 = load ptr, ptr %39, align 8, !tbaa !5
  %894 = load ptr, ptr %36, align 8, !tbaa !5
  %895 = load i64, ptr %91, align 8, !tbaa !9
  %896 = getelementptr inbounds float, ptr %894, i64 %895
  %897 = load ptr, ptr %37, align 8, !tbaa !5
  %898 = load i64, ptr %91, align 8, !tbaa !9
  %899 = getelementptr inbounds float, ptr %897, i64 %898
  %900 = load ptr, ptr %38, align 8, !tbaa !5
  %901 = load i64, ptr %91, align 8, !tbaa !9
  %902 = getelementptr inbounds float, ptr %900, i64 %901
  %903 = getelementptr inbounds [1 x i64], ptr %94, i64 0, i64 0
  %904 = load ptr, ptr %49, align 8, !tbaa !5
  %905 = load ptr, ptr %29, align 8, !tbaa !5
  %906 = load i64, ptr %905, align 8, !tbaa !9
  %907 = add nsw i64 %906, 1
  %908 = getelementptr inbounds float, ptr %904, i64 %907
  %909 = load ptr, ptr %49, align 8, !tbaa !5
  %910 = load ptr, ptr %29, align 8, !tbaa !5
  %911 = load i64, ptr %910, align 8, !tbaa !9
  %912 = load i64, ptr %65, align 8, !tbaa !9
  %913 = shl i64 %912, 1
  %914 = add nsw i64 %911, %913
  %915 = add nsw i64 %914, 1
  %916 = getelementptr inbounds float, ptr %909, i64 %915
  %917 = load ptr, ptr %50, align 8, !tbaa !5
  %918 = getelementptr inbounds i64, ptr %917, i64 1
  %919 = load ptr, ptr %43, align 8, !tbaa !5
  %920 = load ptr, ptr %42, align 8, !tbaa !5
  %921 = load i64, ptr %920, align 8, !tbaa !9
  %922 = add nsw i64 %921, 1
  %923 = getelementptr inbounds float, ptr %919, i64 %922
  %924 = load ptr, ptr %47, align 8, !tbaa !5
  %925 = load ptr, ptr %42, align 8, !tbaa !5
  %926 = load i64, ptr %925, align 8, !tbaa !9
  %927 = add nsw i64 %926, 1
  %928 = getelementptr inbounds i64, ptr %924, i64 %927
  %929 = call i32 @slaebz_(ptr noundef @c__1, ptr noundef @c__0, ptr noundef %65, ptr noundef %65, ptr noundef @c__1, ptr noundef %62, ptr noundef %84, ptr noundef %88, ptr noundef %893, ptr noundef %896, ptr noundef %899, ptr noundef %902, ptr noundef %903, ptr noundef %908, ptr noundef %916, ptr noundef %64, ptr noundef %918, ptr noundef %923, ptr noundef %928, ptr noundef %83)
  %930 = load i64, ptr %83, align 8, !tbaa !9
  %931 = icmp ne i64 %930, 0
  br i1 %931, label %932, label %935

932:                                              ; preds = %878
  %933 = load i64, ptr %83, align 8, !tbaa !9
  %934 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 %933, ptr %934, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %98, align 4
  br label %1634

935:                                              ; preds = %878
  %936 = load ptr, ptr %50, align 8, !tbaa !5
  %937 = getelementptr inbounds i64, ptr %936, i64 1
  %938 = load i64, ptr %937, align 8, !tbaa !9
  %939 = load i64, ptr %70, align 8, !tbaa !9
  %940 = add nsw i64 %939, %938
  store i64 %940, ptr %70, align 8, !tbaa !9
  %941 = load ptr, ptr %50, align 8, !tbaa !5
  %942 = load i64, ptr %65, align 8, !tbaa !9
  %943 = add nsw i64 %942, 1
  %944 = getelementptr inbounds i64, ptr %941, i64 %943
  %945 = load i64, ptr %944, align 8, !tbaa !9
  %946 = load i64, ptr %73, align 8, !tbaa !9
  %947 = add nsw i64 %946, %945
  store i64 %947, ptr %73, align 8, !tbaa !9
  %948 = load ptr, ptr %42, align 8, !tbaa !5
  %949 = load i64, ptr %948, align 8, !tbaa !9
  %950 = load ptr, ptr %50, align 8, !tbaa !5
  %951 = getelementptr inbounds i64, ptr %950, i64 1
  %952 = load i64, ptr %951, align 8, !tbaa !9
  %953 = sub nsw i64 %949, %952
  store i64 %953, ptr %85, align 8, !tbaa !9
  %954 = load float, ptr %66, align 4, !tbaa !11
  %955 = load float, ptr %63, align 4, !tbaa !11
  %956 = fsub float %954, %955
  %957 = load ptr, ptr %39, align 8, !tbaa !5
  %958 = load float, ptr %957, align 4, !tbaa !11
  %959 = fadd float %956, %958
  %960 = fpext float %959 to double
  %961 = call double @log(double noundef %960) #5
  %962 = load ptr, ptr %39, align 8, !tbaa !5
  %963 = load float, ptr %962, align 4, !tbaa !11
  %964 = fpext float %963 to double
  %965 = call double @log(double noundef %964) #5
  %966 = fsub double %961, %965
  %967 = call double @log(double noundef 2.000000e+00) #5
  %968 = fdiv double %966, %967
  %969 = fptosi double %968 to i64
  %970 = add nsw i64 %969, 2
  store i64 %970, ptr %86, align 8, !tbaa !9
  %971 = load ptr, ptr %39, align 8, !tbaa !5
  %972 = load ptr, ptr %36, align 8, !tbaa !5
  %973 = load i64, ptr %91, align 8, !tbaa !9
  %974 = getelementptr inbounds float, ptr %972, i64 %973
  %975 = load ptr, ptr %37, align 8, !tbaa !5
  %976 = load i64, ptr %91, align 8, !tbaa !9
  %977 = getelementptr inbounds float, ptr %975, i64 %976
  %978 = load ptr, ptr %38, align 8, !tbaa !5
  %979 = load i64, ptr %91, align 8, !tbaa !9
  %980 = getelementptr inbounds float, ptr %978, i64 %979
  %981 = getelementptr inbounds [1 x i64], ptr %94, i64 0, i64 0
  %982 = load ptr, ptr %49, align 8, !tbaa !5
  %983 = load ptr, ptr %29, align 8, !tbaa !5
  %984 = load i64, ptr %983, align 8, !tbaa !9
  %985 = add nsw i64 %984, 1
  %986 = getelementptr inbounds float, ptr %982, i64 %985
  %987 = load ptr, ptr %49, align 8, !tbaa !5
  %988 = load ptr, ptr %29, align 8, !tbaa !5
  %989 = load i64, ptr %988, align 8, !tbaa !9
  %990 = load i64, ptr %65, align 8, !tbaa !9
  %991 = shl i64 %990, 1
  %992 = add nsw i64 %989, %991
  %993 = add nsw i64 %992, 1
  %994 = getelementptr inbounds float, ptr %987, i64 %993
  %995 = load ptr, ptr %50, align 8, !tbaa !5
  %996 = getelementptr inbounds i64, ptr %995, i64 1
  %997 = load ptr, ptr %43, align 8, !tbaa !5
  %998 = load ptr, ptr %42, align 8, !tbaa !5
  %999 = load i64, ptr %998, align 8, !tbaa !9
  %1000 = add nsw i64 %999, 1
  %1001 = getelementptr inbounds float, ptr %997, i64 %1000
  %1002 = load ptr, ptr %47, align 8, !tbaa !5
  %1003 = load ptr, ptr %42, align 8, !tbaa !5
  %1004 = load i64, ptr %1003, align 8, !tbaa !9
  %1005 = add nsw i64 %1004, 1
  %1006 = getelementptr inbounds i64, ptr %1002, i64 %1005
  %1007 = call i32 @slaebz_(ptr noundef @c__2, ptr noundef %86, ptr noundef %65, ptr noundef %65, ptr noundef @c__1, ptr noundef %62, ptr noundef %84, ptr noundef %88, ptr noundef %971, ptr noundef %974, ptr noundef %977, ptr noundef %980, ptr noundef %981, ptr noundef %986, ptr noundef %994, ptr noundef %79, ptr noundef %996, ptr noundef %1001, ptr noundef %1006, ptr noundef %83)
  %1008 = load i64, ptr %83, align 8, !tbaa !9
  %1009 = icmp ne i64 %1008, 0
  br i1 %1009, label %1010, label %1013

1010:                                             ; preds = %935
  %1011 = load i64, ptr %83, align 8, !tbaa !9
  %1012 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 %1011, ptr %1012, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %98, align 4
  br label %1634

1013:                                             ; preds = %935
  %1014 = load i64, ptr %79, align 8, !tbaa !9
  store i64 %1014, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %1015

1015:                                             ; preds = %1120, %1013
  %1016 = load i64, ptr %58, align 8, !tbaa !9
  %1017 = load i64, ptr %53, align 8, !tbaa !9
  %1018 = icmp sle i64 %1016, %1017
  br i1 %1018, label %1019, label %1123

1019:                                             ; preds = %1015
  %1020 = load ptr, ptr %49, align 8, !tbaa !5
  %1021 = load i64, ptr %58, align 8, !tbaa !9
  %1022 = load ptr, ptr %29, align 8, !tbaa !5
  %1023 = load i64, ptr %1022, align 8, !tbaa !9
  %1024 = add nsw i64 %1021, %1023
  %1025 = getelementptr inbounds float, ptr %1020, i64 %1024
  %1026 = load float, ptr %1025, align 4, !tbaa !11
  %1027 = load ptr, ptr %49, align 8, !tbaa !5
  %1028 = load i64, ptr %58, align 8, !tbaa !9
  %1029 = load i64, ptr %65, align 8, !tbaa !9
  %1030 = add nsw i64 %1028, %1029
  %1031 = load ptr, ptr %29, align 8, !tbaa !5
  %1032 = load i64, ptr %1031, align 8, !tbaa !9
  %1033 = add nsw i64 %1030, %1032
  %1034 = getelementptr inbounds float, ptr %1027, i64 %1033
  %1035 = load float, ptr %1034, align 4, !tbaa !11
  %1036 = fadd float %1026, %1035
  %1037 = fmul float %1036, 5.000000e-01
  store float %1037, ptr %74, align 4, !tbaa !11
  %1038 = load ptr, ptr %49, align 8, !tbaa !5
  %1039 = load i64, ptr %58, align 8, !tbaa !9
  %1040 = load ptr, ptr %29, align 8, !tbaa !5
  %1041 = load i64, ptr %1040, align 8, !tbaa !9
  %1042 = add nsw i64 %1039, %1041
  %1043 = getelementptr inbounds float, ptr %1038, i64 %1042
  %1044 = load float, ptr %1043, align 4, !tbaa !11
  %1045 = load ptr, ptr %49, align 8, !tbaa !5
  %1046 = load i64, ptr %58, align 8, !tbaa !9
  %1047 = load i64, ptr %65, align 8, !tbaa !9
  %1048 = add nsw i64 %1046, %1047
  %1049 = load ptr, ptr %29, align 8, !tbaa !5
  %1050 = load i64, ptr %1049, align 8, !tbaa !9
  %1051 = add nsw i64 %1048, %1050
  %1052 = getelementptr inbounds float, ptr %1045, i64 %1051
  %1053 = load float, ptr %1052, align 4, !tbaa !11
  %1054 = fsub float %1044, %1053
  store float %1054, ptr %55, align 4, !tbaa !11
  %1055 = load float, ptr %55, align 4, !tbaa !11
  %1056 = fcmp oge float %1055, 0.000000e+00
  br i1 %1056, label %1057, label %1059

1057:                                             ; preds = %1019
  %1058 = load float, ptr %55, align 4, !tbaa !11
  br label %1062

1059:                                             ; preds = %1019
  %1060 = load float, ptr %55, align 4, !tbaa !11
  %1061 = fneg float %1060
  br label %1062

1062:                                             ; preds = %1059, %1057
  %1063 = phi float [ %1058, %1057 ], [ %1061, %1059 ]
  %1064 = fpext float %1063 to double
  %1065 = fmul double %1064, 5.000000e-01
  %1066 = fptrunc double %1065 to float
  store float %1066, ptr %75, align 4, !tbaa !11
  %1067 = load i64, ptr %58, align 8, !tbaa !9
  %1068 = load i64, ptr %79, align 8, !tbaa !9
  %1069 = load i64, ptr %83, align 8, !tbaa !9
  %1070 = sub nsw i64 %1068, %1069
  %1071 = icmp sgt i64 %1067, %1070
  br i1 %1071, label %1072, label %1075

1072:                                             ; preds = %1062
  store i64 1, ptr %96, align 8, !tbaa !9
  %1073 = load i64, ptr %77, align 8, !tbaa !9
  %1074 = sub nsw i64 0, %1073
  store i64 %1074, ptr %59, align 8, !tbaa !9
  br label %1077

1075:                                             ; preds = %1062
  %1076 = load i64, ptr %77, align 8, !tbaa !9
  store i64 %1076, ptr %59, align 8, !tbaa !9
  br label %1077

1077:                                             ; preds = %1075, %1072
  %1078 = load ptr, ptr %50, align 8, !tbaa !5
  %1079 = load i64, ptr %58, align 8, !tbaa !9
  %1080 = load i64, ptr %65, align 8, !tbaa !9
  %1081 = add nsw i64 %1079, %1080
  %1082 = getelementptr inbounds i64, ptr %1078, i64 %1081
  %1083 = load i64, ptr %1082, align 8, !tbaa !9
  %1084 = load i64, ptr %85, align 8, !tbaa !9
  %1085 = add nsw i64 %1083, %1084
  store i64 %1085, ptr %54, align 8, !tbaa !9
  %1086 = load ptr, ptr %50, align 8, !tbaa !5
  %1087 = load i64, ptr %58, align 8, !tbaa !9
  %1088 = getelementptr inbounds i64, ptr %1086, i64 %1087
  %1089 = load i64, ptr %1088, align 8, !tbaa !9
  %1090 = add nsw i64 %1089, 1
  %1091 = load i64, ptr %85, align 8, !tbaa !9
  %1092 = add nsw i64 %1090, %1091
  store i64 %1092, ptr %61, align 8, !tbaa !9
  br label %1093

1093:                                             ; preds = %1116, %1077
  %1094 = load i64, ptr %61, align 8, !tbaa !9
  %1095 = load i64, ptr %54, align 8, !tbaa !9
  %1096 = icmp sle i64 %1094, %1095
  br i1 %1096, label %1097, label %1119

1097:                                             ; preds = %1093
  %1098 = load float, ptr %74, align 4, !tbaa !11
  %1099 = load ptr, ptr %43, align 8, !tbaa !5
  %1100 = load i64, ptr %61, align 8, !tbaa !9
  %1101 = getelementptr inbounds float, ptr %1099, i64 %1100
  store float %1098, ptr %1101, align 4, !tbaa !11
  %1102 = load float, ptr %75, align 4, !tbaa !11
  %1103 = load ptr, ptr %44, align 8, !tbaa !5
  %1104 = load i64, ptr %61, align 8, !tbaa !9
  %1105 = getelementptr inbounds float, ptr %1103, i64 %1104
  store float %1102, ptr %1105, align 4, !tbaa !11
  %1106 = load i64, ptr %61, align 8, !tbaa !9
  %1107 = load i64, ptr %85, align 8, !tbaa !9
  %1108 = sub nsw i64 %1106, %1107
  %1109 = load ptr, ptr %48, align 8, !tbaa !5
  %1110 = load i64, ptr %61, align 8, !tbaa !9
  %1111 = getelementptr inbounds i64, ptr %1109, i64 %1110
  store i64 %1108, ptr %1111, align 8, !tbaa !9
  %1112 = load i64, ptr %59, align 8, !tbaa !9
  %1113 = load ptr, ptr %47, align 8, !tbaa !5
  %1114 = load i64, ptr %61, align 8, !tbaa !9
  %1115 = getelementptr inbounds i64, ptr %1113, i64 %1114
  store i64 %1112, ptr %1115, align 8, !tbaa !9
  br label %1116

1116:                                             ; preds = %1097
  %1117 = load i64, ptr %61, align 8, !tbaa !9
  %1118 = add nsw i64 %1117, 1
  store i64 %1118, ptr %61, align 8, !tbaa !9
  br label %1093, !llvm.loop !16

1119:                                             ; preds = %1093
  br label %1120

1120:                                             ; preds = %1119
  %1121 = load i64, ptr %58, align 8, !tbaa !9
  %1122 = add nsw i64 %1121, 1
  store i64 %1122, ptr %58, align 8, !tbaa !9
  br label %1015, !llvm.loop !17

1123:                                             ; preds = %1015
  %1124 = load i64, ptr %64, align 8, !tbaa !9
  %1125 = load ptr, ptr %42, align 8, !tbaa !5
  %1126 = load i64, ptr %1125, align 8, !tbaa !9
  %1127 = add nsw i64 %1126, %1124
  store i64 %1127, ptr %1125, align 8, !tbaa !9
  br label %1128

1128:                                             ; preds = %1123, %752
  br label %1129

1129:                                             ; preds = %1128, %876, %839
  br label %1130

1130:                                             ; preds = %1129
  %1131 = load i64, ptr %77, align 8, !tbaa !9
  %1132 = add nsw i64 %1131, 1
  store i64 %1132, ptr %77, align 8, !tbaa !9
  br label %657, !llvm.loop !18

1133:                                             ; preds = %657
  %1134 = load i64, ptr %92, align 8, !tbaa !9
  %1135 = icmp eq i64 %1134, 3
  br i1 %1135, label %1136, label %1484

1136:                                             ; preds = %1133
  %1137 = load ptr, ptr %32, align 8, !tbaa !5
  %1138 = load i64, ptr %1137, align 8, !tbaa !9
  %1139 = sub nsw i64 %1138, 1
  %1140 = load i64, ptr %70, align 8, !tbaa !9
  %1141 = sub nsw i64 %1139, %1140
  store i64 %1141, ptr %93, align 8, !tbaa !9
  %1142 = load i64, ptr %73, align 8, !tbaa !9
  %1143 = load ptr, ptr %33, align 8, !tbaa !5
  %1144 = load i64, ptr %1143, align 8, !tbaa !9
  %1145 = sub nsw i64 %1142, %1144
  store i64 %1145, ptr %95, align 8, !tbaa !9
  %1146 = load i64, ptr %93, align 8, !tbaa !9
  %1147 = icmp sgt i64 %1146, 0
  br i1 %1147, label %1148, label %1206

1148:                                             ; preds = %1136
  store i64 0, ptr %64, align 8, !tbaa !9
  %1149 = load ptr, ptr %42, align 8, !tbaa !5
  %1150 = load i64, ptr %1149, align 8, !tbaa !9
  store i64 %1150, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %1151

1151:                                             ; preds = %1200, %1148
  %1152 = load i64, ptr %61, align 8, !tbaa !9
  %1153 = load i64, ptr %52, align 8, !tbaa !9
  %1154 = icmp sle i64 %1152, %1153
  br i1 %1154, label %1155, label %1203

1155:                                             ; preds = %1151
  %1156 = load ptr, ptr %43, align 8, !tbaa !5
  %1157 = load i64, ptr %61, align 8, !tbaa !9
  %1158 = getelementptr inbounds float, ptr %1156, i64 %1157
  %1159 = load float, ptr %1158, align 4, !tbaa !11
  %1160 = load float, ptr %71, align 4, !tbaa !11
  %1161 = fcmp ole float %1159, %1160
  br i1 %1161, label %1162, label %1168

1162:                                             ; preds = %1155
  %1163 = load i64, ptr %93, align 8, !tbaa !9
  %1164 = icmp sgt i64 %1163, 0
  br i1 %1164, label %1165, label %1168

1165:                                             ; preds = %1162
  %1166 = load i64, ptr %93, align 8, !tbaa !9
  %1167 = add nsw i64 %1166, -1
  store i64 %1167, ptr %93, align 8, !tbaa !9
  br label %1199

1168:                                             ; preds = %1162, %1155
  %1169 = load i64, ptr %64, align 8, !tbaa !9
  %1170 = add nsw i64 %1169, 1
  store i64 %1170, ptr %64, align 8, !tbaa !9
  %1171 = load ptr, ptr %43, align 8, !tbaa !5
  %1172 = load i64, ptr %61, align 8, !tbaa !9
  %1173 = getelementptr inbounds float, ptr %1171, i64 %1172
  %1174 = load float, ptr %1173, align 4, !tbaa !11
  %1175 = load ptr, ptr %43, align 8, !tbaa !5
  %1176 = load i64, ptr %64, align 8, !tbaa !9
  %1177 = getelementptr inbounds float, ptr %1175, i64 %1176
  store float %1174, ptr %1177, align 4, !tbaa !11
  %1178 = load ptr, ptr %44, align 8, !tbaa !5
  %1179 = load i64, ptr %61, align 8, !tbaa !9
  %1180 = getelementptr inbounds float, ptr %1178, i64 %1179
  %1181 = load float, ptr %1180, align 4, !tbaa !11
  %1182 = load ptr, ptr %44, align 8, !tbaa !5
  %1183 = load i64, ptr %64, align 8, !tbaa !9
  %1184 = getelementptr inbounds float, ptr %1182, i64 %1183
  store float %1181, ptr %1184, align 4, !tbaa !11
  %1185 = load ptr, ptr %48, align 8, !tbaa !5
  %1186 = load i64, ptr %61, align 8, !tbaa !9
  %1187 = getelementptr inbounds i64, ptr %1185, i64 %1186
  %1188 = load i64, ptr %1187, align 8, !tbaa !9
  %1189 = load ptr, ptr %48, align 8, !tbaa !5
  %1190 = load i64, ptr %64, align 8, !tbaa !9
  %1191 = getelementptr inbounds i64, ptr %1189, i64 %1190
  store i64 %1188, ptr %1191, align 8, !tbaa !9
  %1192 = load ptr, ptr %47, align 8, !tbaa !5
  %1193 = load i64, ptr %61, align 8, !tbaa !9
  %1194 = getelementptr inbounds i64, ptr %1192, i64 %1193
  %1195 = load i64, ptr %1194, align 8, !tbaa !9
  %1196 = load ptr, ptr %47, align 8, !tbaa !5
  %1197 = load i64, ptr %64, align 8, !tbaa !9
  %1198 = getelementptr inbounds i64, ptr %1196, i64 %1197
  store i64 %1195, ptr %1198, align 8, !tbaa !9
  br label %1199

1199:                                             ; preds = %1168, %1165
  br label %1200

1200:                                             ; preds = %1199
  %1201 = load i64, ptr %61, align 8, !tbaa !9
  %1202 = add nsw i64 %1201, 1
  store i64 %1202, ptr %61, align 8, !tbaa !9
  br label %1151, !llvm.loop !19

1203:                                             ; preds = %1151
  %1204 = load i64, ptr %64, align 8, !tbaa !9
  %1205 = load ptr, ptr %42, align 8, !tbaa !5
  store i64 %1204, ptr %1205, align 8, !tbaa !9
  br label %1206

1206:                                             ; preds = %1203, %1136
  %1207 = load i64, ptr %95, align 8, !tbaa !9
  %1208 = icmp sgt i64 %1207, 0
  br i1 %1208, label %1209, label %1315

1209:                                             ; preds = %1206
  %1210 = load ptr, ptr %42, align 8, !tbaa !5
  %1211 = load i64, ptr %1210, align 8, !tbaa !9
  %1212 = add nsw i64 %1211, 1
  store i64 %1212, ptr %64, align 8, !tbaa !9
  %1213 = load ptr, ptr %42, align 8, !tbaa !5
  %1214 = load i64, ptr %1213, align 8, !tbaa !9
  store i64 %1214, ptr %61, align 8, !tbaa !9
  br label %1215

1215:                                             ; preds = %1263, %1209
  %1216 = load i64, ptr %61, align 8, !tbaa !9
  %1217 = icmp sge i64 %1216, 1
  br i1 %1217, label %1218, label %1266

1218:                                             ; preds = %1215
  %1219 = load ptr, ptr %43, align 8, !tbaa !5
  %1220 = load i64, ptr %61, align 8, !tbaa !9
  %1221 = getelementptr inbounds float, ptr %1219, i64 %1220
  %1222 = load float, ptr %1221, align 4, !tbaa !11
  %1223 = load float, ptr %72, align 4, !tbaa !11
  %1224 = fcmp oge float %1222, %1223
  br i1 %1224, label %1225, label %1231

1225:                                             ; preds = %1218
  %1226 = load i64, ptr %95, align 8, !tbaa !9
  %1227 = icmp sgt i64 %1226, 0
  br i1 %1227, label %1228, label %1231

1228:                                             ; preds = %1225
  %1229 = load i64, ptr %95, align 8, !tbaa !9
  %1230 = add nsw i64 %1229, -1
  store i64 %1230, ptr %95, align 8, !tbaa !9
  br label %1262

1231:                                             ; preds = %1225, %1218
  %1232 = load i64, ptr %64, align 8, !tbaa !9
  %1233 = add nsw i64 %1232, -1
  store i64 %1233, ptr %64, align 8, !tbaa !9
  %1234 = load ptr, ptr %43, align 8, !tbaa !5
  %1235 = load i64, ptr %61, align 8, !tbaa !9
  %1236 = getelementptr inbounds float, ptr %1234, i64 %1235
  %1237 = load float, ptr %1236, align 4, !tbaa !11
  %1238 = load ptr, ptr %43, align 8, !tbaa !5
  %1239 = load i64, ptr %64, align 8, !tbaa !9
  %1240 = getelementptr inbounds float, ptr %1238, i64 %1239
  store float %1237, ptr %1240, align 4, !tbaa !11
  %1241 = load ptr, ptr %44, align 8, !tbaa !5
  %1242 = load i64, ptr %61, align 8, !tbaa !9
  %1243 = getelementptr inbounds float, ptr %1241, i64 %1242
  %1244 = load float, ptr %1243, align 4, !tbaa !11
  %1245 = load ptr, ptr %44, align 8, !tbaa !5
  %1246 = load i64, ptr %64, align 8, !tbaa !9
  %1247 = getelementptr inbounds float, ptr %1245, i64 %1246
  store float %1244, ptr %1247, align 4, !tbaa !11
  %1248 = load ptr, ptr %48, align 8, !tbaa !5
  %1249 = load i64, ptr %61, align 8, !tbaa !9
  %1250 = getelementptr inbounds i64, ptr %1248, i64 %1249
  %1251 = load i64, ptr %1250, align 8, !tbaa !9
  %1252 = load ptr, ptr %48, align 8, !tbaa !5
  %1253 = load i64, ptr %64, align 8, !tbaa !9
  %1254 = getelementptr inbounds i64, ptr %1252, i64 %1253
  store i64 %1251, ptr %1254, align 8, !tbaa !9
  %1255 = load ptr, ptr %47, align 8, !tbaa !5
  %1256 = load i64, ptr %61, align 8, !tbaa !9
  %1257 = getelementptr inbounds i64, ptr %1255, i64 %1256
  %1258 = load i64, ptr %1257, align 8, !tbaa !9
  %1259 = load ptr, ptr %47, align 8, !tbaa !5
  %1260 = load i64, ptr %64, align 8, !tbaa !9
  %1261 = getelementptr inbounds i64, ptr %1259, i64 %1260
  store i64 %1258, ptr %1261, align 8, !tbaa !9
  br label %1262

1262:                                             ; preds = %1231, %1228
  br label %1263

1263:                                             ; preds = %1262
  %1264 = load i64, ptr %61, align 8, !tbaa !9
  %1265 = add nsw i64 %1264, -1
  store i64 %1265, ptr %61, align 8, !tbaa !9
  br label %1215, !llvm.loop !20

1266:                                             ; preds = %1215
  store i64 0, ptr %68, align 8, !tbaa !9
  %1267 = load ptr, ptr %42, align 8, !tbaa !5
  %1268 = load i64, ptr %1267, align 8, !tbaa !9
  store i64 %1268, ptr %52, align 8, !tbaa !9
  %1269 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %1269, ptr %61, align 8, !tbaa !9
  br label %1270

1270:                                             ; preds = %1305, %1266
  %1271 = load i64, ptr %61, align 8, !tbaa !9
  %1272 = load i64, ptr %52, align 8, !tbaa !9
  %1273 = icmp sle i64 %1271, %1272
  br i1 %1273, label %1274, label %1308

1274:                                             ; preds = %1270
  %1275 = load i64, ptr %68, align 8, !tbaa !9
  %1276 = add nsw i64 %1275, 1
  store i64 %1276, ptr %68, align 8, !tbaa !9
  %1277 = load ptr, ptr %43, align 8, !tbaa !5
  %1278 = load i64, ptr %61, align 8, !tbaa !9
  %1279 = getelementptr inbounds float, ptr %1277, i64 %1278
  %1280 = load float, ptr %1279, align 4, !tbaa !11
  %1281 = load ptr, ptr %43, align 8, !tbaa !5
  %1282 = load i64, ptr %68, align 8, !tbaa !9
  %1283 = getelementptr inbounds float, ptr %1281, i64 %1282
  store float %1280, ptr %1283, align 4, !tbaa !11
  %1284 = load ptr, ptr %44, align 8, !tbaa !5
  %1285 = load i64, ptr %61, align 8, !tbaa !9
  %1286 = getelementptr inbounds float, ptr %1284, i64 %1285
  %1287 = load float, ptr %1286, align 4, !tbaa !11
  %1288 = load ptr, ptr %44, align 8, !tbaa !5
  %1289 = load i64, ptr %68, align 8, !tbaa !9
  %1290 = getelementptr inbounds float, ptr %1288, i64 %1289
  store float %1287, ptr %1290, align 4, !tbaa !11
  %1291 = load ptr, ptr %48, align 8, !tbaa !5
  %1292 = load i64, ptr %61, align 8, !tbaa !9
  %1293 = getelementptr inbounds i64, ptr %1291, i64 %1292
  %1294 = load i64, ptr %1293, align 8, !tbaa !9
  %1295 = load ptr, ptr %48, align 8, !tbaa !5
  %1296 = load i64, ptr %68, align 8, !tbaa !9
  %1297 = getelementptr inbounds i64, ptr %1295, i64 %1296
  store i64 %1294, ptr %1297, align 8, !tbaa !9
  %1298 = load ptr, ptr %47, align 8, !tbaa !5
  %1299 = load i64, ptr %61, align 8, !tbaa !9
  %1300 = getelementptr inbounds i64, ptr %1298, i64 %1299
  %1301 = load i64, ptr %1300, align 8, !tbaa !9
  %1302 = load ptr, ptr %47, align 8, !tbaa !5
  %1303 = load i64, ptr %68, align 8, !tbaa !9
  %1304 = getelementptr inbounds i64, ptr %1302, i64 %1303
  store i64 %1301, ptr %1304, align 8, !tbaa !9
  br label %1305

1305:                                             ; preds = %1274
  %1306 = load i64, ptr %61, align 8, !tbaa !9
  %1307 = add nsw i64 %1306, 1
  store i64 %1307, ptr %61, align 8, !tbaa !9
  br label %1270, !llvm.loop !21

1308:                                             ; preds = %1270
  %1309 = load ptr, ptr %42, align 8, !tbaa !5
  %1310 = load i64, ptr %1309, align 8, !tbaa !9
  %1311 = load i64, ptr %64, align 8, !tbaa !9
  %1312 = sub nsw i64 %1310, %1311
  %1313 = add nsw i64 %1312, 1
  %1314 = load ptr, ptr %42, align 8, !tbaa !5
  store i64 %1313, ptr %1314, align 8, !tbaa !9
  br label %1315

1315:                                             ; preds = %1308, %1206
  %1316 = load i64, ptr %93, align 8, !tbaa !9
  %1317 = icmp sgt i64 %1316, 0
  br i1 %1317, label %1321, label %1318

1318:                                             ; preds = %1315
  %1319 = load i64, ptr %95, align 8, !tbaa !9
  %1320 = icmp sgt i64 %1319, 0
  br i1 %1320, label %1321, label %1476

1321:                                             ; preds = %1318, %1315
  %1322 = load i64, ptr %93, align 8, !tbaa !9
  %1323 = icmp sgt i64 %1322, 0
  br i1 %1323, label %1324, label %1373

1324:                                             ; preds = %1321
  %1325 = load ptr, ptr %46, align 8, !tbaa !5
  %1326 = load float, ptr %1325, align 4, !tbaa !11
  store float %1326, ptr %87, align 4, !tbaa !11
  %1327 = load i64, ptr %93, align 8, !tbaa !9
  store i64 %1327, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %1328

1328:                                             ; preds = %1369, %1324
  %1329 = load i64, ptr %82, align 8, !tbaa !9
  %1330 = load i64, ptr %52, align 8, !tbaa !9
  %1331 = icmp sle i64 %1329, %1330
  br i1 %1331, label %1332, label %1372

1332:                                             ; preds = %1328
  store i64 0, ptr %67, align 8, !tbaa !9
  %1333 = load ptr, ptr %42, align 8, !tbaa !5
  %1334 = load i64, ptr %1333, align 8, !tbaa !9
  store i64 %1334, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %1335

1335:                                             ; preds = %1362, %1332
  %1336 = load i64, ptr %61, align 8, !tbaa !9
  %1337 = load i64, ptr %53, align 8, !tbaa !9
  %1338 = icmp sle i64 %1336, %1337
  br i1 %1338, label %1339, label %1365

1339:                                             ; preds = %1335
  %1340 = load ptr, ptr %47, align 8, !tbaa !5
  %1341 = load i64, ptr %61, align 8, !tbaa !9
  %1342 = getelementptr inbounds i64, ptr %1340, i64 %1341
  %1343 = load i64, ptr %1342, align 8, !tbaa !9
  %1344 = icmp ne i64 %1343, 0
  br i1 %1344, label %1345, label %1361

1345:                                             ; preds = %1339
  %1346 = load ptr, ptr %43, align 8, !tbaa !5
  %1347 = load i64, ptr %61, align 8, !tbaa !9
  %1348 = getelementptr inbounds float, ptr %1346, i64 %1347
  %1349 = load float, ptr %1348, align 4, !tbaa !11
  %1350 = load float, ptr %87, align 4, !tbaa !11
  %1351 = fcmp olt float %1349, %1350
  br i1 %1351, label %1355, label %1352

1352:                                             ; preds = %1345
  %1353 = load i64, ptr %67, align 8, !tbaa !9
  %1354 = icmp eq i64 %1353, 0
  br i1 %1354, label %1355, label %1361

1355:                                             ; preds = %1352, %1345
  %1356 = load i64, ptr %61, align 8, !tbaa !9
  store i64 %1356, ptr %67, align 8, !tbaa !9
  %1357 = load ptr, ptr %43, align 8, !tbaa !5
  %1358 = load i64, ptr %61, align 8, !tbaa !9
  %1359 = getelementptr inbounds float, ptr %1357, i64 %1358
  %1360 = load float, ptr %1359, align 4, !tbaa !11
  store float %1360, ptr %87, align 4, !tbaa !11
  br label %1361

1361:                                             ; preds = %1355, %1352, %1339
  br label %1362

1362:                                             ; preds = %1361
  %1363 = load i64, ptr %61, align 8, !tbaa !9
  %1364 = add nsw i64 %1363, 1
  store i64 %1364, ptr %61, align 8, !tbaa !9
  br label %1335, !llvm.loop !22

1365:                                             ; preds = %1335
  %1366 = load ptr, ptr %47, align 8, !tbaa !5
  %1367 = load i64, ptr %67, align 8, !tbaa !9
  %1368 = getelementptr inbounds i64, ptr %1366, i64 %1367
  store i64 0, ptr %1368, align 8, !tbaa !9
  br label %1369

1369:                                             ; preds = %1365
  %1370 = load i64, ptr %82, align 8, !tbaa !9
  %1371 = add nsw i64 %1370, 1
  store i64 %1371, ptr %82, align 8, !tbaa !9
  br label %1328, !llvm.loop !23

1372:                                             ; preds = %1328
  br label %1373

1373:                                             ; preds = %1372, %1321
  %1374 = load i64, ptr %95, align 8, !tbaa !9
  %1375 = icmp sgt i64 %1374, 0
  br i1 %1375, label %1376, label %1425

1376:                                             ; preds = %1373
  %1377 = load ptr, ptr %45, align 8, !tbaa !5
  %1378 = load float, ptr %1377, align 4, !tbaa !11
  store float %1378, ptr %87, align 4, !tbaa !11
  %1379 = load i64, ptr %95, align 8, !tbaa !9
  store i64 %1379, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %1380

1380:                                             ; preds = %1421, %1376
  %1381 = load i64, ptr %82, align 8, !tbaa !9
  %1382 = load i64, ptr %52, align 8, !tbaa !9
  %1383 = icmp sle i64 %1381, %1382
  br i1 %1383, label %1384, label %1424

1384:                                             ; preds = %1380
  store i64 0, ptr %67, align 8, !tbaa !9
  %1385 = load ptr, ptr %42, align 8, !tbaa !5
  %1386 = load i64, ptr %1385, align 8, !tbaa !9
  store i64 %1386, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %1387

1387:                                             ; preds = %1414, %1384
  %1388 = load i64, ptr %61, align 8, !tbaa !9
  %1389 = load i64, ptr %53, align 8, !tbaa !9
  %1390 = icmp sle i64 %1388, %1389
  br i1 %1390, label %1391, label %1417

1391:                                             ; preds = %1387
  %1392 = load ptr, ptr %47, align 8, !tbaa !5
  %1393 = load i64, ptr %61, align 8, !tbaa !9
  %1394 = getelementptr inbounds i64, ptr %1392, i64 %1393
  %1395 = load i64, ptr %1394, align 8, !tbaa !9
  %1396 = icmp ne i64 %1395, 0
  br i1 %1396, label %1397, label %1413

1397:                                             ; preds = %1391
  %1398 = load ptr, ptr %43, align 8, !tbaa !5
  %1399 = load i64, ptr %61, align 8, !tbaa !9
  %1400 = getelementptr inbounds float, ptr %1398, i64 %1399
  %1401 = load float, ptr %1400, align 4, !tbaa !11
  %1402 = load float, ptr %87, align 4, !tbaa !11
  %1403 = fcmp oge float %1401, %1402
  br i1 %1403, label %1407, label %1404

1404:                                             ; preds = %1397
  %1405 = load i64, ptr %67, align 8, !tbaa !9
  %1406 = icmp eq i64 %1405, 0
  br i1 %1406, label %1407, label %1413

1407:                                             ; preds = %1404, %1397
  %1408 = load i64, ptr %61, align 8, !tbaa !9
  store i64 %1408, ptr %67, align 8, !tbaa !9
  %1409 = load ptr, ptr %43, align 8, !tbaa !5
  %1410 = load i64, ptr %61, align 8, !tbaa !9
  %1411 = getelementptr inbounds float, ptr %1409, i64 %1410
  %1412 = load float, ptr %1411, align 4, !tbaa !11
  store float %1412, ptr %87, align 4, !tbaa !11
  br label %1413

1413:                                             ; preds = %1407, %1404, %1391
  br label %1414

1414:                                             ; preds = %1413
  %1415 = load i64, ptr %61, align 8, !tbaa !9
  %1416 = add nsw i64 %1415, 1
  store i64 %1416, ptr %61, align 8, !tbaa !9
  br label %1387, !llvm.loop !24

1417:                                             ; preds = %1387
  %1418 = load ptr, ptr %47, align 8, !tbaa !5
  %1419 = load i64, ptr %67, align 8, !tbaa !9
  %1420 = getelementptr inbounds i64, ptr %1418, i64 %1419
  store i64 0, ptr %1420, align 8, !tbaa !9
  br label %1421

1421:                                             ; preds = %1417
  %1422 = load i64, ptr %82, align 8, !tbaa !9
  %1423 = add nsw i64 %1422, 1
  store i64 %1423, ptr %82, align 8, !tbaa !9
  br label %1380, !llvm.loop !25

1424:                                             ; preds = %1380
  br label %1425

1425:                                             ; preds = %1424, %1373
  store i64 0, ptr %64, align 8, !tbaa !9
  %1426 = load ptr, ptr %42, align 8, !tbaa !5
  %1427 = load i64, ptr %1426, align 8, !tbaa !9
  store i64 %1427, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %1428

1428:                                             ; preds = %1470, %1425
  %1429 = load i64, ptr %61, align 8, !tbaa !9
  %1430 = load i64, ptr %52, align 8, !tbaa !9
  %1431 = icmp sle i64 %1429, %1430
  br i1 %1431, label %1432, label %1473

1432:                                             ; preds = %1428
  %1433 = load ptr, ptr %47, align 8, !tbaa !5
  %1434 = load i64, ptr %61, align 8, !tbaa !9
  %1435 = getelementptr inbounds i64, ptr %1433, i64 %1434
  %1436 = load i64, ptr %1435, align 8, !tbaa !9
  %1437 = icmp ne i64 %1436, 0
  br i1 %1437, label %1438, label %1469

1438:                                             ; preds = %1432
  %1439 = load i64, ptr %64, align 8, !tbaa !9
  %1440 = add nsw i64 %1439, 1
  store i64 %1440, ptr %64, align 8, !tbaa !9
  %1441 = load ptr, ptr %43, align 8, !tbaa !5
  %1442 = load i64, ptr %61, align 8, !tbaa !9
  %1443 = getelementptr inbounds float, ptr %1441, i64 %1442
  %1444 = load float, ptr %1443, align 4, !tbaa !11
  %1445 = load ptr, ptr %43, align 8, !tbaa !5
  %1446 = load i64, ptr %64, align 8, !tbaa !9
  %1447 = getelementptr inbounds float, ptr %1445, i64 %1446
  store float %1444, ptr %1447, align 4, !tbaa !11
  %1448 = load ptr, ptr %44, align 8, !tbaa !5
  %1449 = load i64, ptr %61, align 8, !tbaa !9
  %1450 = getelementptr inbounds float, ptr %1448, i64 %1449
  %1451 = load float, ptr %1450, align 4, !tbaa !11
  %1452 = load ptr, ptr %44, align 8, !tbaa !5
  %1453 = load i64, ptr %64, align 8, !tbaa !9
  %1454 = getelementptr inbounds float, ptr %1452, i64 %1453
  store float %1451, ptr %1454, align 4, !tbaa !11
  %1455 = load ptr, ptr %48, align 8, !tbaa !5
  %1456 = load i64, ptr %61, align 8, !tbaa !9
  %1457 = getelementptr inbounds i64, ptr %1455, i64 %1456
  %1458 = load i64, ptr %1457, align 8, !tbaa !9
  %1459 = load ptr, ptr %48, align 8, !tbaa !5
  %1460 = load i64, ptr %64, align 8, !tbaa !9
  %1461 = getelementptr inbounds i64, ptr %1459, i64 %1460
  store i64 %1458, ptr %1461, align 8, !tbaa !9
  %1462 = load ptr, ptr %47, align 8, !tbaa !5
  %1463 = load i64, ptr %61, align 8, !tbaa !9
  %1464 = getelementptr inbounds i64, ptr %1462, i64 %1463
  %1465 = load i64, ptr %1464, align 8, !tbaa !9
  %1466 = load ptr, ptr %47, align 8, !tbaa !5
  %1467 = load i64, ptr %64, align 8, !tbaa !9
  %1468 = getelementptr inbounds i64, ptr %1466, i64 %1467
  store i64 %1465, ptr %1468, align 8, !tbaa !9
  br label %1469

1469:                                             ; preds = %1438, %1432
  br label %1470

1470:                                             ; preds = %1469
  %1471 = load i64, ptr %61, align 8, !tbaa !9
  %1472 = add nsw i64 %1471, 1
  store i64 %1472, ptr %61, align 8, !tbaa !9
  br label %1428, !llvm.loop !26

1473:                                             ; preds = %1428
  %1474 = load i64, ptr %64, align 8, !tbaa !9
  %1475 = load ptr, ptr %42, align 8, !tbaa !5
  store i64 %1474, ptr %1475, align 8, !tbaa !9
  br label %1476

1476:                                             ; preds = %1473, %1318
  %1477 = load i64, ptr %93, align 8, !tbaa !9
  %1478 = icmp slt i64 %1477, 0
  br i1 %1478, label %1482, label %1479

1479:                                             ; preds = %1476
  %1480 = load i64, ptr %95, align 8, !tbaa !9
  %1481 = icmp slt i64 %1480, 0
  br i1 %1481, label %1482, label %1483

1482:                                             ; preds = %1479, %1476
  store i64 1, ptr %97, align 8, !tbaa !9
  br label %1483

1483:                                             ; preds = %1482, %1479
  br label %1484

1484:                                             ; preds = %1483, %1133
  %1485 = load i64, ptr %92, align 8, !tbaa !9
  %1486 = icmp eq i64 %1485, 1
  br i1 %1486, label %1487, label %1493

1487:                                             ; preds = %1484
  %1488 = load ptr, ptr %42, align 8, !tbaa !5
  %1489 = load i64, ptr %1488, align 8, !tbaa !9
  %1490 = load ptr, ptr %29, align 8, !tbaa !5
  %1491 = load i64, ptr %1490, align 8, !tbaa !9
  %1492 = icmp ne i64 %1489, %1491
  br i1 %1492, label %1506, label %1493

1493:                                             ; preds = %1487, %1484
  %1494 = load i64, ptr %92, align 8, !tbaa !9
  %1495 = icmp eq i64 %1494, 3
  br i1 %1495, label %1496, label %1507

1496:                                             ; preds = %1493
  %1497 = load ptr, ptr %42, align 8, !tbaa !5
  %1498 = load i64, ptr %1497, align 8, !tbaa !9
  %1499 = load ptr, ptr %33, align 8, !tbaa !5
  %1500 = load i64, ptr %1499, align 8, !tbaa !9
  %1501 = load ptr, ptr %32, align 8, !tbaa !5
  %1502 = load i64, ptr %1501, align 8, !tbaa !9
  %1503 = sub nsw i64 %1500, %1502
  %1504 = add nsw i64 %1503, 1
  %1505 = icmp ne i64 %1498, %1504
  br i1 %1505, label %1506, label %1507

1506:                                             ; preds = %1496, %1487
  store i64 1, ptr %97, align 8, !tbaa !9
  br label %1507

1507:                                             ; preds = %1506, %1496, %1493
  %1508 = load ptr, ptr %28, align 8, !tbaa !5
  %1509 = call i64 @lsame_(ptr noundef %1508, ptr noundef @.str.4)
  %1510 = icmp ne i64 %1509, 0
  br i1 %1510, label %1511, label %1618

1511:                                             ; preds = %1507
  %1512 = load ptr, ptr %40, align 8, !tbaa !5
  %1513 = load i64, ptr %1512, align 8, !tbaa !9
  %1514 = icmp sgt i64 %1513, 1
  br i1 %1514, label %1515, label %1618

1515:                                             ; preds = %1511
  %1516 = load ptr, ptr %42, align 8, !tbaa !5
  %1517 = load i64, ptr %1516, align 8, !tbaa !9
  %1518 = sub nsw i64 %1517, 1
  store i64 %1518, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %1519

1519:                                             ; preds = %1614, %1515
  %1520 = load i64, ptr %61, align 8, !tbaa !9
  %1521 = load i64, ptr %52, align 8, !tbaa !9
  %1522 = icmp sle i64 %1520, %1521
  br i1 %1522, label %1523, label %1617

1523:                                             ; preds = %1519
  store i64 0, ptr %60, align 8, !tbaa !9
  %1524 = load ptr, ptr %43, align 8, !tbaa !5
  %1525 = load i64, ptr %61, align 8, !tbaa !9
  %1526 = getelementptr inbounds float, ptr %1524, i64 %1525
  %1527 = load float, ptr %1526, align 4, !tbaa !11
  store float %1527, ptr %74, align 4, !tbaa !11
  %1528 = load ptr, ptr %42, align 8, !tbaa !5
  %1529 = load i64, ptr %1528, align 8, !tbaa !9
  store i64 %1529, ptr %53, align 8, !tbaa !9
  %1530 = load i64, ptr %61, align 8, !tbaa !9
  %1531 = add nsw i64 %1530, 1
  store i64 %1531, ptr %58, align 8, !tbaa !9
  br label %1532

1532:                                             ; preds = %1550, %1523
  %1533 = load i64, ptr %58, align 8, !tbaa !9
  %1534 = load i64, ptr %53, align 8, !tbaa !9
  %1535 = icmp sle i64 %1533, %1534
  br i1 %1535, label %1536, label %1553

1536:                                             ; preds = %1532
  %1537 = load ptr, ptr %43, align 8, !tbaa !5
  %1538 = load i64, ptr %58, align 8, !tbaa !9
  %1539 = getelementptr inbounds float, ptr %1537, i64 %1538
  %1540 = load float, ptr %1539, align 4, !tbaa !11
  %1541 = load float, ptr %74, align 4, !tbaa !11
  %1542 = fcmp olt float %1540, %1541
  br i1 %1542, label %1543, label %1549

1543:                                             ; preds = %1536
  %1544 = load i64, ptr %58, align 8, !tbaa !9
  store i64 %1544, ptr %60, align 8, !tbaa !9
  %1545 = load ptr, ptr %43, align 8, !tbaa !5
  %1546 = load i64, ptr %58, align 8, !tbaa !9
  %1547 = getelementptr inbounds float, ptr %1545, i64 %1546
  %1548 = load float, ptr %1547, align 4, !tbaa !11
  store float %1548, ptr %74, align 4, !tbaa !11
  br label %1549

1549:                                             ; preds = %1543, %1536
  br label %1550

1550:                                             ; preds = %1549
  %1551 = load i64, ptr %58, align 8, !tbaa !9
  %1552 = add nsw i64 %1551, 1
  store i64 %1552, ptr %58, align 8, !tbaa !9
  br label %1532, !llvm.loop !27

1553:                                             ; preds = %1532
  %1554 = load i64, ptr %60, align 8, !tbaa !9
  %1555 = icmp ne i64 %1554, 0
  br i1 %1555, label %1556, label %1613

1556:                                             ; preds = %1553
  %1557 = load ptr, ptr %44, align 8, !tbaa !5
  %1558 = load i64, ptr %60, align 8, !tbaa !9
  %1559 = getelementptr inbounds float, ptr %1557, i64 %1558
  %1560 = load float, ptr %1559, align 4, !tbaa !11
  store float %1560, ptr %75, align 4, !tbaa !11
  %1561 = load ptr, ptr %47, align 8, !tbaa !5
  %1562 = load i64, ptr %60, align 8, !tbaa !9
  %1563 = getelementptr inbounds i64, ptr %1561, i64 %1562
  %1564 = load i64, ptr %1563, align 8, !tbaa !9
  store i64 %1564, ptr %80, align 8, !tbaa !9
  %1565 = load ptr, ptr %48, align 8, !tbaa !5
  %1566 = load i64, ptr %60, align 8, !tbaa !9
  %1567 = getelementptr inbounds i64, ptr %1565, i64 %1566
  %1568 = load i64, ptr %1567, align 8, !tbaa !9
  store i64 %1568, ptr %81, align 8, !tbaa !9
  %1569 = load ptr, ptr %43, align 8, !tbaa !5
  %1570 = load i64, ptr %61, align 8, !tbaa !9
  %1571 = getelementptr inbounds float, ptr %1569, i64 %1570
  %1572 = load float, ptr %1571, align 4, !tbaa !11
  %1573 = load ptr, ptr %43, align 8, !tbaa !5
  %1574 = load i64, ptr %60, align 8, !tbaa !9
  %1575 = getelementptr inbounds float, ptr %1573, i64 %1574
  store float %1572, ptr %1575, align 4, !tbaa !11
  %1576 = load ptr, ptr %44, align 8, !tbaa !5
  %1577 = load i64, ptr %61, align 8, !tbaa !9
  %1578 = getelementptr inbounds float, ptr %1576, i64 %1577
  %1579 = load float, ptr %1578, align 4, !tbaa !11
  %1580 = load ptr, ptr %44, align 8, !tbaa !5
  %1581 = load i64, ptr %60, align 8, !tbaa !9
  %1582 = getelementptr inbounds float, ptr %1580, i64 %1581
  store float %1579, ptr %1582, align 4, !tbaa !11
  %1583 = load ptr, ptr %47, align 8, !tbaa !5
  %1584 = load i64, ptr %61, align 8, !tbaa !9
  %1585 = getelementptr inbounds i64, ptr %1583, i64 %1584
  %1586 = load i64, ptr %1585, align 8, !tbaa !9
  %1587 = load ptr, ptr %47, align 8, !tbaa !5
  %1588 = load i64, ptr %60, align 8, !tbaa !9
  %1589 = getelementptr inbounds i64, ptr %1587, i64 %1588
  store i64 %1586, ptr %1589, align 8, !tbaa !9
  %1590 = load ptr, ptr %48, align 8, !tbaa !5
  %1591 = load i64, ptr %61, align 8, !tbaa !9
  %1592 = getelementptr inbounds i64, ptr %1590, i64 %1591
  %1593 = load i64, ptr %1592, align 8, !tbaa !9
  %1594 = load ptr, ptr %48, align 8, !tbaa !5
  %1595 = load i64, ptr %60, align 8, !tbaa !9
  %1596 = getelementptr inbounds i64, ptr %1594, i64 %1595
  store i64 %1593, ptr %1596, align 8, !tbaa !9
  %1597 = load float, ptr %74, align 4, !tbaa !11
  %1598 = load ptr, ptr %43, align 8, !tbaa !5
  %1599 = load i64, ptr %61, align 8, !tbaa !9
  %1600 = getelementptr inbounds float, ptr %1598, i64 %1599
  store float %1597, ptr %1600, align 4, !tbaa !11
  %1601 = load float, ptr %75, align 4, !tbaa !11
  %1602 = load ptr, ptr %44, align 8, !tbaa !5
  %1603 = load i64, ptr %61, align 8, !tbaa !9
  %1604 = getelementptr inbounds float, ptr %1602, i64 %1603
  store float %1601, ptr %1604, align 4, !tbaa !11
  %1605 = load i64, ptr %80, align 8, !tbaa !9
  %1606 = load ptr, ptr %47, align 8, !tbaa !5
  %1607 = load i64, ptr %61, align 8, !tbaa !9
  %1608 = getelementptr inbounds i64, ptr %1606, i64 %1607
  store i64 %1605, ptr %1608, align 8, !tbaa !9
  %1609 = load i64, ptr %81, align 8, !tbaa !9
  %1610 = load ptr, ptr %48, align 8, !tbaa !5
  %1611 = load i64, ptr %61, align 8, !tbaa !9
  %1612 = getelementptr inbounds i64, ptr %1610, i64 %1611
  store i64 %1609, ptr %1612, align 8, !tbaa !9
  br label %1613

1613:                                             ; preds = %1556, %1553
  br label %1614

1614:                                             ; preds = %1613
  %1615 = load i64, ptr %61, align 8, !tbaa !9
  %1616 = add nsw i64 %1615, 1
  store i64 %1616, ptr %61, align 8, !tbaa !9
  br label %1519, !llvm.loop !28

1617:                                             ; preds = %1519
  br label %1618

1618:                                             ; preds = %1617, %1511, %1507
  %1619 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 0, ptr %1619, align 8, !tbaa !9
  %1620 = load i64, ptr %96, align 8, !tbaa !9
  %1621 = icmp ne i64 %1620, 0
  br i1 %1621, label %1622, label %1626

1622:                                             ; preds = %1618
  %1623 = load ptr, ptr %51, align 8, !tbaa !5
  %1624 = load i64, ptr %1623, align 8, !tbaa !9
  %1625 = add nsw i64 %1624, 1
  store i64 %1625, ptr %1623, align 8, !tbaa !9
  br label %1626

1626:                                             ; preds = %1622, %1618
  %1627 = load i64, ptr %97, align 8, !tbaa !9
  %1628 = icmp ne i64 %1627, 0
  br i1 %1628, label %1629, label %1633

1629:                                             ; preds = %1626
  %1630 = load ptr, ptr %51, align 8, !tbaa !5
  %1631 = load i64, ptr %1630, align 8, !tbaa !9
  %1632 = add nsw i64 %1631, 2
  store i64 %1632, ptr %1630, align 8, !tbaa !9
  br label %1633

1633:                                             ; preds = %1629, %1626
  store i32 0, ptr %26, align 4
  store i32 1, ptr %98, align 4
  br label %1634

1634:                                             ; preds = %1633, %1010, %932, %629, %537, %305, %238, %231
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  %1635 = load i32, ptr %26, align 4
  ret i32 %1635
}

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

declare i64 @lsame_(ptr noundef, ptr noundef) #2

declare double @slamch_(ptr noundef) #2

declare i64 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

; Function Attrs: nounwind
declare double @log(double noundef) #4

declare i32 @slaebz_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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 = { "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 #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind "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 #5 = { 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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}


; 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"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c__0 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slarrd_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr nocapture noundef readonly %7, ptr nocapture noundef readonly %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr nocapture noundef readonly %13, ptr nocapture noundef readonly %14, ptr nocapture noundef %15, ptr noundef %16, ptr nocapture noundef %17, ptr nocapture noundef %18, ptr nocapture noundef %19, ptr noundef %20, ptr nocapture noundef %21, ptr noundef %22, ptr noundef %23, ptr nocapture noundef %24) local_unnamed_addr #0 {
  %26 = ptrtoint ptr %21 to i64
  %27 = ptrtoint ptr %20 to i64
  %28 = ptrtoint ptr %16 to i64
  %29 = ptrtoint ptr %17 to i64
  %30 = ptrtoint ptr %21 to i64
  %31 = ptrtoint ptr %20 to i64
  %32 = ptrtoint ptr %16 to i64
  %33 = ptrtoint ptr %17 to i64
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca float, align 4
  %40 = alloca i64, align 8
  %41 = alloca float, align 4
  %42 = alloca [1 x i64], align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #7
  %43 = getelementptr inbounds i8, ptr %23, i64 -8
  %44 = getelementptr inbounds i8, ptr %22, i64 -4
  %45 = getelementptr inbounds i8, ptr %21, i64 -8
  %46 = getelementptr inbounds i8, ptr %20, i64 -8
  %47 = getelementptr inbounds i8, ptr %17, i64 -4
  %48 = getelementptr inbounds i8, ptr %16, i64 -4
  %49 = getelementptr inbounds i8, ptr %14, i64 -8
  %50 = getelementptr inbounds i8, ptr %7, i64 -4
  store i64 0, ptr %24, align 8, !tbaa !5
  %51 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #7
  %.not = icmp eq i64 %51, 0
  br i1 %.not, label %52, label %.thread

52:                                               ; preds = %25
  %53 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #7
  %.not677 = icmp eq i64 %53, 0
  br i1 %.not677, label %54, label %.thread

54:                                               ; preds = %52
  %55 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #7
  %.not678 = icmp eq i64 %55, 0
  br i1 %.not678, label %56, label %.thread

56:                                               ; preds = %54
  store i64 -1, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

.thread:                                          ; preds = %52, %25, %54
  %.0606724 = phi i64 [ 3, %54 ], [ 2, %52 ], [ 1, %25 ]
  %57 = phi i1 [ true, %54 ], [ false, %52 ], [ false, %25 ]
  %58 = phi i1 [ false, %54 ], [ true, %52 ], [ false, %25 ]
  %59 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #7
  %.not679 = icmp eq i64 %59, 0
  br i1 %.not679, label %60, label %63

60:                                               ; preds = %.thread
  %61 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #7
  %.not680 = icmp eq i64 %61, 0
  br i1 %.not680, label %62, label %63

62:                                               ; preds = %60
  store i64 -2, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

63:                                               ; preds = %60, %.thread
  %64 = load i64, ptr %2, align 8, !tbaa !5
  %65 = icmp slt i64 %64, 0
  br i1 %65, label %66, label %67

66:                                               ; preds = %63
  store i64 -3, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

67:                                               ; preds = %63
  br i1 %58, label %68, label %73

68:                                               ; preds = %67
  %69 = load float, ptr %3, align 4, !tbaa !9
  %70 = load float, ptr %4, align 4, !tbaa !9
  %71 = fcmp ult float %69, %70
  br i1 %71, label %.critedge, label %72

72:                                               ; preds = %68
  store i64 -5, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

73:                                               ; preds = %67
  br i1 %57, label %74, label %.critedge

74:                                               ; preds = %73
  %75 = load i64, ptr %5, align 8, !tbaa !5
  %76 = icmp slt i64 %75, 1
  %spec.select = tail call i64 @llvm.umax.i64(i64 %64, i64 1)
  %77 = icmp ugt i64 %75, %spec.select
  %or.cond = or i1 %76, %77
  br i1 %or.cond, label %78, label %79

78:                                               ; preds = %74
  store i64 -6, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

79:                                               ; preds = %74
  %80 = load i64, ptr %6, align 8, !tbaa !5
  %.716 = tail call i64 @llvm.umin.i64(i64 %64, i64 %75)
  %81 = icmp slt i64 %80, %.716
  %82 = icmp ugt i64 %80, %64
  %or.cond736 = or i1 %81, %82
  br i1 %or.cond736, label %83, label %.critedge

83:                                               ; preds = %79
  store i64 -7, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

.critedge:                                        ; preds = %79, %73, %68
  %.pr = load i64, ptr %24, align 8, !tbaa !5
  %.not682 = icmp eq i64 %.pr, 0
  br i1 %.not682, label %84, label %.critedge.thread

84:                                               ; preds = %.critedge
  store i64 0, ptr %15, align 8, !tbaa !5
  %85 = load i64, ptr %2, align 8, !tbaa !5
  %86 = icmp eq i64 %85, 0
  br i1 %86, label %.critedge.thread, label %87

87:                                               ; preds = %84
  br i1 %57, label %88, label %94

88:                                               ; preds = %87
  %89 = load i64, ptr %5, align 8, !tbaa !5
  %90 = icmp eq i64 %89, 1
  br i1 %90, label %91, label %94

91:                                               ; preds = %88
  %92 = load i64, ptr %6, align 8, !tbaa !5
  %93 = icmp eq i64 %92, %85
  %spec.select717 = select i1 %93, i64 1, i64 3
  br label %94

94:                                               ; preds = %91, %88, %87
  %.1607 = phi i64 [ 3, %88 ], [ %.0606724, %87 ], [ %spec.select717, %91 ]
  %95 = tail call double @slamch_(ptr noundef nonnull @.str.5) #7
  %96 = fptrunc double %95 to float
  %97 = tail call double @slamch_(ptr noundef nonnull @.str.6) #7
  %98 = fptrunc double %97 to float
  %99 = load i64, ptr %2, align 8, !tbaa !5
  %100 = icmp eq i64 %99, 1
  br i1 %100, label %101, label %117

101:                                              ; preds = %94
  switch i64 %.1607, label %default.unreachable [
    i64 1, label %115
    i64 2, label %102
    i64 3, label %109
  ]

102:                                              ; preds = %101
  %103 = load float, ptr %9, align 4, !tbaa !9
  %104 = load float, ptr %3, align 4, !tbaa !9
  %105 = fcmp ogt float %103, %104
  br i1 %105, label %106, label %.critedge.thread

106:                                              ; preds = %102
  %107 = load float, ptr %4, align 4, !tbaa !9
  %108 = fcmp ugt float %103, %107
  br i1 %108, label %.critedge.thread, label %115

109:                                              ; preds = %101
  %110 = load i64, ptr %5, align 8, !tbaa !5
  %111 = icmp eq i64 %110, 1
  br i1 %111, label %112, label %.critedge.thread

112:                                              ; preds = %109
  %113 = load i64, ptr %6, align 8, !tbaa !5
  %114 = icmp eq i64 %113, 1
  br i1 %114, label %115, label %.critedge.thread

115:                                              ; preds = %101, %112, %106
  store i64 1, ptr %15, align 8, !tbaa !5
  %116 = load float, ptr %9, align 4, !tbaa !9
  store float %116, ptr %16, align 4, !tbaa !9
  store float 0.000000e+00, ptr %17, align 4, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !5
  store i64 1, ptr %21, align 8, !tbaa !5
  br label %.critedge.thread

117:                                              ; preds = %94
  %118 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #7
  %119 = icmp slt i64 %118, 2
  %spec.store.select = select i1 %119, i64 0, i64 %118
  store i64 %spec.store.select, ptr %34, align 8
  %120 = load float, ptr %9, align 4, !tbaa !9
  %121 = load i64, ptr %2, align 8, !tbaa !5
  %.not683750 = icmp slt i64 %121, 1
  %122 = insertelement <2 x float> poison, float %120, i64 0
  %123 = shufflevector <2 x float> %122, <2 x float> poison, <2 x i32> zeroinitializer
  br i1 %.not683750, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %117
  %xtraiter = and i64 %121, 1
  %124 = icmp eq i64 %121, 1
  br i1 %124, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %121, 9223372036854775806
  %invariant.gep = getelementptr i8, ptr %50, i64 -4
  %invariant.gep973 = getelementptr i8, ptr %50, i64 4
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %.0654751 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %137, %.lr.ph ]
  %125 = phi <2 x float> [ %123, %.lr.ph.preheader.new ], [ %136, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %.idx712 = shl i64 %.0654751, 3
  %gep = getelementptr i8, ptr %invariant.gep, i64 %.idx712
  %126 = load <2 x float>, ptr %gep, align 4, !tbaa !9
  %127 = shufflevector <2 x float> %125, <2 x float> %126, <2 x i32> <i32 0, i32 3>
  %128 = shufflevector <2 x float> %126, <2 x float> %125, <2 x i32> <i32 0, i32 3>
  %129 = fcmp ole <2 x float> %127, %128
  %130 = select <2 x i1> %129, <2 x float> %125, <2 x float> %126
  %131 = shl i64 %.0654751, 3
  %gep974 = getelementptr i8, ptr %invariant.gep973, i64 %131
  %132 = load <2 x float>, ptr %gep974, align 4, !tbaa !9
  %133 = shufflevector <2 x float> %130, <2 x float> %132, <2 x i32> <i32 0, i32 3>
  %134 = shufflevector <2 x float> %132, <2 x float> %130, <2 x i32> <i32 0, i32 3>
  %135 = fcmp ole <2 x float> %133, %134
  %136 = select <2 x i1> %135, <2 x float> %130, <2 x float> %132
  %137 = add nuw i64 %.0654751, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !11

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph, %.lr.ph.preheader
  %.lcssa946.ph = phi <2 x float> [ poison, %.lr.ph.preheader ], [ %136, %.lr.ph ]
  %.0654751.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %137, %.lr.ph ]
  %.unr = phi <2 x float> [ %123, %.lr.ph.preheader ], [ %136, %.lr.ph ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.loopexit.unr-lcssa
  %.idx712.epil = shl i64 %.0654751.unr, 3
  %138 = getelementptr i8, ptr %50, i64 %.idx712.epil
  %139 = getelementptr i8, ptr %138, i64 -4
  %140 = load <2 x float>, ptr %139, align 4, !tbaa !9
  %141 = shufflevector <2 x float> %.unr, <2 x float> %140, <2 x i32> <i32 0, i32 3>
  %142 = shufflevector <2 x float> %140, <2 x float> %.unr, <2 x i32> <i32 0, i32 3>
  %143 = fcmp ole <2 x float> %141, %142
  %144 = select <2 x i1> %143, <2 x float> %.unr, <2 x float> %140
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %117
  %145 = phi <2 x float> [ %123, %117 ], [ %.lcssa946.ph, %._crit_edge.loopexit.unr-lcssa ], [ %144, %.lr.ph.epil ]
  %146 = fcmp oge <2 x float> %145, zeroinitializer
  %147 = fneg <2 x float> %145
  %148 = select <2 x i1> %146, <2 x float> %145, <2 x float> %147
  %149 = extractelement <2 x float> %148, i64 0
  %150 = extractelement <2 x float> %148, i64 1
  %151 = fcmp oge float %149, %150
  %152 = select i1 %151, float %149, float %150
  %153 = fmul float %152, 2.000000e+00
  %154 = fmul float %153, %96
  %155 = sitofp i64 %121 to float
  %156 = fneg float %154
  %157 = load float, ptr %12, align 4, !tbaa !9
  %158 = fneg float %157
  %159 = insertelement <2 x float> poison, float %156, i64 0
  %160 = insertelement <2 x float> %159, float %154, i64 1
  %161 = insertelement <2 x float> poison, float %155, i64 0
  %162 = shufflevector <2 x float> %161, <2 x float> poison, <2 x i32> zeroinitializer
  %163 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %160, <2 x float> %162, <2 x float> %145)
  %164 = insertelement <2 x float> poison, float %158, i64 0
  %165 = insertelement <2 x float> %164, float %157, i64 1
  %166 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %165, <2 x float> <float 4.000000e+00, float 4.000000e+00>, <2 x float> %163)
  %167 = load float, ptr %8, align 4, !tbaa !9
  store float %167, ptr %41, align 4, !tbaa !9
  %168 = fmul float %157, 4.000000e+00
  %169 = tail call float @llvm.fmuladd.f32(float %98, float 4.000000e+00, float %168)
  store float %169, ptr %39, align 4, !tbaa !9
  %170 = icmp eq i64 %.1607, 3
  br i1 %170, label %171, label %234

171:                                              ; preds = %._crit_edge
  %172 = shufflevector <2 x float> %166, <2 x float> poison, <4 x i32> <i32 0, i32 0, i32 1, i32 1>
  %173 = fadd float %152, %157
  %174 = fpext float %173 to double
  %175 = tail call double @log(double noundef %174) #7
  %176 = load float, ptr %12, align 4, !tbaa !9
  %177 = fpext float %176 to double
  %178 = tail call double @log(double noundef %177) #7
  %179 = fsub double %175, %178
  %180 = fdiv double %179, 0x3FE62E42FEFA39EF
  %181 = fptosi double %180 to i64
  %182 = add nsw i64 %181, 2
  store i64 %182, ptr %40, align 8, !tbaa !5
  %183 = load i64, ptr %2, align 8, !tbaa !5
  %184 = getelementptr float, ptr %22, i64 %183
  %185 = getelementptr float, ptr %44, i64 %183
  store <4 x float> %172, ptr %184, align 4, !tbaa !9
  %186 = getelementptr i8, ptr %185, i64 20
  store <2 x float> %166, ptr %186, align 4, !tbaa !9
  %187 = getelementptr inbounds i8, ptr %23, i64 8
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %23, i8 -1, i64 16, i1 false)
  %188 = load i64, ptr %2, align 8, !tbaa !5
  %189 = add nsw i64 %188, 1
  %190 = getelementptr inbounds i8, ptr %23, i64 16
  store i64 %189, ptr %190, align 8, !tbaa !5
  %191 = load i64, ptr %2, align 8, !tbaa !5
  %192 = add nsw i64 %191, 1
  %193 = getelementptr inbounds i8, ptr %23, i64 24
  store i64 %192, ptr %193, align 8, !tbaa !5
  %194 = load i64, ptr %5, align 8, !tbaa !5
  %195 = add nsw i64 %194, -1
  %196 = getelementptr inbounds i8, ptr %23, i64 32
  store i64 %195, ptr %196, align 8, !tbaa !5
  %197 = load i64, ptr %6, align 8, !tbaa !5
  %198 = getelementptr inbounds i8, ptr %23, i64 40
  store i64 %197, ptr %198, align 8, !tbaa !5
  %199 = load i64, ptr %2, align 8, !tbaa !5
  %200 = getelementptr float, ptr %22, i64 %199
  %201 = getelementptr float, ptr %44, i64 %199
  %202 = getelementptr i8, ptr %201, i64 20
  %203 = call i32 @slaebz_(ptr noundef nonnull @c__3, ptr noundef nonnull %40, ptr noundef nonnull %2, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %34, ptr noundef nonnull %39, ptr noundef nonnull %41, ptr noundef nonnull %12, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %196, ptr noundef %200, ptr noundef %202, ptr noundef nonnull %37, ptr noundef nonnull %23, ptr noundef %16, ptr noundef %20, ptr noundef nonnull %38) #7
  %204 = load i64, ptr %38, align 8, !tbaa !5
  %.not684 = icmp eq i64 %204, 0
  br i1 %.not684, label %206, label %205

205:                                              ; preds = %171
  store i64 %204, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

206:                                              ; preds = %171
  %207 = load i64, ptr %198, align 8, !tbaa !5
  %208 = load i64, ptr %6, align 8, !tbaa !5
  %209 = icmp eq i64 %207, %208
  %210 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %209, label %211, label %218

211:                                              ; preds = %206
  %212 = getelementptr float, ptr %22, i64 %210
  %213 = load float, ptr %212, align 4, !tbaa !9
  store float %213, ptr %18, align 4, !tbaa !9
  %214 = getelementptr float, ptr %44, i64 %210
  %215 = getelementptr i8, ptr %214, i64 12
  %216 = getelementptr i8, ptr %214, i64 16
  %217 = getelementptr i8, ptr %214, i64 8
  br label %225

218:                                              ; preds = %206
  %219 = getelementptr float, ptr %44, i64 %210
  %220 = getelementptr i8, ptr %219, i64 8
  %221 = load float, ptr %220, align 4, !tbaa !9
  store float %221, ptr %18, align 4, !tbaa !9
  %222 = getelementptr i8, ptr %219, i64 16
  %223 = getelementptr i8, ptr %219, i64 12
  %224 = getelementptr float, ptr %22, i64 %210
  br label %225

225:                                              ; preds = %218, %211
  %.sink.in = phi ptr [ %216, %211 ], [ %223, %218 ]
  %.0627.in = phi ptr [ %23, %211 ], [ %187, %218 ]
  %.0625.in = phi ptr [ %215, %211 ], [ %222, %218 ]
  %.0623.in = phi ptr [ %217, %211 ], [ %224, %218 ]
  %.0619.in = phi ptr [ %193, %211 ], [ %190, %218 ]
  %.0625 = load float, ptr %.0625.in, align 4, !tbaa !9
  %.0627 = load i64, ptr %.0627.in, align 8, !tbaa !5
  %.sink = load float, ptr %.sink.in, align 4, !tbaa !9
  store float %.sink, ptr %19, align 4
  %226 = icmp slt i64 %.0627, 0
  br i1 %226, label %233, label %227

227:                                              ; preds = %225
  %.0623 = load float, ptr %.0623.in, align 4, !tbaa !9
  %.0619 = load i64, ptr %.0619.in, align 8, !tbaa !5
  %228 = load i64, ptr %2, align 8, !tbaa !5
  %229 = icmp sge i64 %.0627, %228
  %230 = icmp slt i64 %.0619, 1
  %231 = icmp sgt i64 %.0619, %228
  %232 = or i1 %230, %231
  %or.cond718 = select i1 %229, i1 true, i1 %232
  br i1 %or.cond718, label %233, label %241

233:                                              ; preds = %227, %225
  store i64 4, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

234:                                              ; preds = %._crit_edge
  switch i64 %.1607, label %241 [
    i64 2, label %235
    i64 1, label %238
  ]

235:                                              ; preds = %234
  %236 = load float, ptr %3, align 4, !tbaa !9
  store float %236, ptr %18, align 4, !tbaa !9
  %237 = load float, ptr %4, align 4, !tbaa !9
  br label %.sink.split

238:                                              ; preds = %234
  %239 = extractelement <2 x float> %166, i64 0
  store float %239, ptr %18, align 4, !tbaa !9
  %240 = extractelement <2 x float> %166, i64 1
  br label %.sink.split

.sink.split:                                      ; preds = %238, %235
  %.sink886 = phi float [ %237, %235 ], [ %240, %238 ]
  store float %.sink886, ptr %19, align 4, !tbaa !9
  br label %241

241:                                              ; preds = %.sink.split, %234, %227
  %.1626 = phi float [ %.0625, %227 ], [ undef, %234 ], [ undef, %.sink.split ]
  %.1624 = phi float [ %.0623, %227 ], [ undef, %234 ], [ undef, %.sink.split ]
  store i64 0, ptr %15, align 8, !tbaa !5
  store i64 0, ptr %24, align 8, !tbaa !5
  %242 = load i64, ptr %13, align 8, !tbaa !5
  %.not685776 = icmp slt i64 %242, 1
  br i1 %.not685776, label %._crit_edge785, label %.lr.ph784

.lr.ph784:                                        ; preds = %241
  %243 = icmp sgt i64 %.1607, 1
  %244 = icmp eq i64 %.1607, 1
  %245 = sub i64 %33, %32
  %246 = sub i64 %31, %30
  %diff.check = icmp ult i64 %245, 16
  %diff.check896 = icmp ult i64 %246, 32
  %conflict.rdx = or i1 %diff.check, %diff.check896
  br label %247

247:                                              ; preds = %.lr.ph784, %415
  %.0598782 = phi i64 [ 0, %.lr.ph784 ], [ %.3, %415 ]
  %.0615780 = phi i64 [ 1, %.lr.ph784 ], [ %416, %415 ]
  %.0616779 = phi i64 [ 0, %.lr.ph784 ], [ %249, %415 ]
  %.1620778 = phi i64 [ 0, %.lr.ph784 ], [ %.3622, %415 ]
  %.1628777 = phi i64 [ 0, %.lr.ph784 ], [ %.3630, %415 ]
  %248 = getelementptr inbounds i64, ptr %49, i64 %.0615780
  %249 = load i64, ptr %248, align 8, !tbaa !5
  %250 = sub nsw i64 %249, %.0616779
  store i64 %250, ptr %36, align 8, !tbaa !5
  %251 = icmp eq i64 %250, 1
  br i1 %251, label %252, label %273

252:                                              ; preds = %247
  %253 = load float, ptr %18, align 4, !tbaa !9
  %254 = getelementptr float, ptr %9, i64 %.0616779
  %255 = load float, ptr %254, align 4, !tbaa !9
  %256 = load float, ptr %12, align 4, !tbaa !9
  %257 = fsub float %255, %256
  %258 = fcmp oge float %253, %257
  %259 = zext i1 %258 to i64
  %.2629 = add nsw i64 %.1628777, %259
  %260 = load float, ptr %19, align 4, !tbaa !9
  %261 = fcmp ult float %260, %257
  %not. = xor i1 %261, true
  %262 = zext i1 %not. to i64
  %.2621 = add nsw i64 %.1620778, %262
  br i1 %244, label %265, label %263

263:                                              ; preds = %252
  %264 = fcmp uge float %253, %257
  %brmerge = select i1 %264, i1 true, i1 %261
  %.2621.mux = select i1 %264, i64 %.2621, i64 %.1620778
  br i1 %brmerge, label %415, label %265

265:                                              ; preds = %263, %252
  %266 = load i64, ptr %15, align 8, !tbaa !5
  %267 = add nsw i64 %266, 1
  store i64 %267, ptr %15, align 8, !tbaa !5
  %268 = getelementptr float, ptr %16, i64 %266
  store float %255, ptr %268, align 4, !tbaa !9
  %269 = getelementptr float, ptr %17, i64 %266
  store float 0.000000e+00, ptr %269, align 4, !tbaa !9
  %270 = getelementptr i64, ptr %20, i64 %266
  store i64 %.0615780, ptr %270, align 8, !tbaa !5
  %271 = load i64, ptr %15, align 8, !tbaa !5
  %272 = getelementptr inbounds i64, ptr %45, i64 %271
  store i64 1, ptr %272, align 8, !tbaa !5
  br label %415

273:                                              ; preds = %247
  %274 = getelementptr float, ptr %9, i64 %.0616779
  %275 = load float, ptr %274, align 4, !tbaa !9
  %.not704.not755 = icmp slt i64 %.0616779, %249
  br i1 %.not704.not755, label %.lr.ph760.preheader, label %._crit_edge761

.lr.ph760.preheader:                              ; preds = %273
  %.neg = add i64 %.0616779, 1
  %xtraiter948 = and i64 %250, 1
  %lcmp.mod949.not = icmp eq i64 %xtraiter948, 0
  br i1 %lcmp.mod949.not, label %.lr.ph760.prol.loopexit, label %.lr.ph760.prol

.lr.ph760.prol:                                   ; preds = %.lr.ph760.preheader
  %.0651.prol = add nsw i64 %.0616779, 1
  %.idx710.prol = shl i64 %.0651.prol, 3
  %276 = getelementptr i8, ptr %50, i64 %.idx710.prol
  %277 = getelementptr i8, ptr %276, i64 -4
  %278 = load float, ptr %277, align 4, !tbaa !9
  %279 = fcmp ole float %275, %278
  %280 = select i1 %279, float %275, float %278
  %281 = load float, ptr %276, align 4, !tbaa !9
  %282 = fcmp oge float %275, %281
  %283 = select i1 %282, float %275, float %281
  br label %.lr.ph760.prol.loopexit

.lr.ph760.prol.loopexit:                          ; preds = %.lr.ph760.prol, %.lr.ph760.preheader
  %.lcssa942.unr = phi float [ poison, %.lr.ph760.preheader ], [ %280, %.lr.ph760.prol ]
  %.lcssa941.unr = phi float [ poison, %.lr.ph760.preheader ], [ %283, %.lr.ph760.prol ]
  %.1637758.unr = phi float [ %275, %.lr.ph760.preheader ], [ %283, %.lr.ph760.prol ]
  %.1640757.unr = phi float [ %275, %.lr.ph760.preheader ], [ %280, %.lr.ph760.prol ]
  %.0651.in756.unr = phi i64 [ %.0616779, %.lr.ph760.preheader ], [ %.0651.prol, %.lr.ph760.prol ]
  %284 = icmp eq i64 %249, %.neg
  br i1 %284, label %._crit_edge761, label %.lr.ph760

.lr.ph760:                                        ; preds = %.lr.ph760.prol.loopexit, %.lr.ph760
  %.1637758 = phi float [ %301, %.lr.ph760 ], [ %.1637758.unr, %.lr.ph760.prol.loopexit ]
  %.1640757 = phi float [ %298, %.lr.ph760 ], [ %.1640757.unr, %.lr.ph760.prol.loopexit ]
  %.0651.in756 = phi i64 [ %.0651.1, %.lr.ph760 ], [ %.0651.in756.unr, %.lr.ph760.prol.loopexit ]
  %.0651 = shl i64 %.0651.in756, 3
  %285 = getelementptr i8, ptr %50, i64 %.0651
  %286 = getelementptr i8, ptr %285, i64 8
  %287 = getelementptr i8, ptr %285, i64 4
  %288 = load float, ptr %287, align 4, !tbaa !9
  %289 = fcmp ole float %.1640757, %288
  %290 = select i1 %289, float %.1640757, float %288
  %291 = load float, ptr %286, align 4, !tbaa !9
  %292 = fcmp oge float %.1637758, %291
  %293 = select i1 %292, float %.1637758, float %291
  %.0651.1 = add nsw i64 %.0651.in756, 2
  %.idx710.1 = shl i64 %.0651.1, 3
  %294 = getelementptr i8, ptr %50, i64 %.idx710.1
  %295 = getelementptr i8, ptr %294, i64 -4
  %296 = load float, ptr %295, align 4, !tbaa !9
  %297 = fcmp ole float %290, %296
  %298 = select i1 %297, float %290, float %296
  %299 = load float, ptr %294, align 4, !tbaa !9
  %300 = fcmp oge float %293, %299
  %301 = select i1 %300, float %293, float %299
  %exitcond856.not.1 = icmp eq i64 %.0651.1, %249
  br i1 %exitcond856.not.1, label %._crit_edge761, label %.lr.ph760, !llvm.loop !13

._crit_edge761:                                   ; preds = %.lr.ph760.prol.loopexit, %.lr.ph760, %273
  %.1640.lcssa = phi float [ %275, %273 ], [ %.lcssa942.unr, %.lr.ph760.prol.loopexit ], [ %298, %.lr.ph760 ]
  %.1637.lcssa = phi float [ %275, %273 ], [ %.lcssa941.unr, %.lr.ph760.prol.loopexit ], [ %301, %.lr.ph760 ]
  %302 = sitofp i64 %250 to float
  %303 = call float @llvm.fmuladd.f32(float %156, float %302, float %.1640.lcssa)
  %304 = load float, ptr %12, align 4, !tbaa !9
  %305 = fneg float %304
  %306 = call float @llvm.fmuladd.f32(float %305, float 2.000000e+00, float %303)
  %307 = call float @llvm.fmuladd.f32(float %154, float %302, float %.1637.lcssa)
  %308 = call float @llvm.fmuladd.f32(float %304, float 2.000000e+00, float %307)
  br i1 %243, label %309, label %319

309:                                              ; preds = %._crit_edge761
  %310 = load float, ptr %18, align 4, !tbaa !9
  %311 = fcmp olt float %308, %310
  br i1 %311, label %312, label %315

312:                                              ; preds = %309
  %313 = add nsw i64 %250, %.1628777
  %314 = add nsw i64 %250, %.1620778
  br label %415

315:                                              ; preds = %309
  %.inv = fcmp oge float %306, %310
  %.719 = select i1 %.inv, float %306, float %310
  %316 = load float, ptr %19, align 4, !tbaa !9
  %.inv738 = fcmp ole float %308, %316
  %317 = select i1 %.inv738, float %308, float %316
  %318 = fcmp ult float %.719, %317
  br i1 %318, label %319, label %415

319:                                              ; preds = %315, %._crit_edge761
  %.2641 = phi float [ %.719, %315 ], [ %306, %._crit_edge761 ]
  %.2638 = phi float [ %317, %315 ], [ %308, %._crit_edge761 ]
  %320 = load i64, ptr %2, align 8, !tbaa !5
  %321 = getelementptr float, ptr %22, i64 %320
  store float %.2641, ptr %321, align 4, !tbaa !9
  %322 = getelementptr float, ptr %321, i64 %250
  store float %.2638, ptr %322, align 4, !tbaa !9
  %323 = getelementptr float, ptr %10, i64 %.0616779
  %324 = getelementptr float, ptr %11, i64 %.0616779
  %.idx = shl i64 %250, 3
  %325 = getelementptr i8, ptr %321, i64 %.idx
  %326 = load i64, ptr %15, align 8, !tbaa !5
  %327 = getelementptr float, ptr %16, i64 %326
  %328 = getelementptr i64, ptr %20, i64 %326
  %329 = call i32 @slaebz_(ptr noundef nonnull @c__1, ptr noundef nonnull @c__0, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %34, ptr noundef nonnull %39, ptr noundef nonnull %41, ptr noundef nonnull %12, ptr noundef nonnull %274, ptr noundef %323, ptr noundef %324, ptr noundef nonnull %42, ptr noundef nonnull %321, ptr noundef %325, ptr noundef nonnull %35, ptr noundef %23, ptr noundef %327, ptr noundef %328, ptr noundef nonnull %38) #7
  %330 = load i64, ptr %38, align 8, !tbaa !5
  %.not705 = icmp eq i64 %330, 0
  br i1 %.not705, label %332, label %331

331:                                              ; preds = %319
  store i64 %330, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

332:                                              ; preds = %319
  %333 = load i64, ptr %23, align 8, !tbaa !5
  %334 = add nsw i64 %333, %.1628777
  %335 = load i64, ptr %36, align 8, !tbaa !5
  %336 = getelementptr i64, ptr %23, i64 %335
  %337 = load i64, ptr %336, align 8, !tbaa !5
  %338 = add nsw i64 %337, %.1620778
  %339 = load i64, ptr %15, align 8, !tbaa !5
  %340 = sub nsw i64 %339, %333
  %341 = fsub float %.2638, %.2641
  %342 = load float, ptr %12, align 4, !tbaa !9
  %343 = fadd float %341, %342
  %344 = fpext float %343 to double
  %345 = call double @log(double noundef %344) #7
  %346 = load float, ptr %12, align 4, !tbaa !9
  %347 = fpext float %346 to double
  %348 = call double @log(double noundef %347) #7
  %349 = fsub double %345, %348
  %350 = fdiv double %349, 0x3FE62E42FEFA39EF
  %351 = fptosi double %350 to i64
  %352 = add nsw i64 %351, 2
  store i64 %352, ptr %40, align 8, !tbaa !5
  %353 = load i64, ptr %2, align 8, !tbaa !5
  %354 = getelementptr float, ptr %22, i64 %353
  %355 = load i64, ptr %36, align 8, !tbaa !5
  %.idx706 = shl i64 %355, 3
  %356 = getelementptr i8, ptr %354, i64 %.idx706
  %357 = load i64, ptr %15, align 8, !tbaa !5
  %358 = getelementptr float, ptr %16, i64 %357
  %359 = getelementptr i64, ptr %20, i64 %357
  %360 = call i32 @slaebz_(ptr noundef nonnull @c__2, ptr noundef nonnull %40, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %34, ptr noundef nonnull %39, ptr noundef nonnull %41, ptr noundef nonnull %12, ptr noundef nonnull %274, ptr noundef %323, ptr noundef %324, ptr noundef nonnull %42, ptr noundef %354, ptr noundef %356, ptr noundef nonnull %37, ptr noundef nonnull %23, ptr noundef %358, ptr noundef %359, ptr noundef nonnull %38) #7
  %361 = load i64, ptr %38, align 8, !tbaa !5
  %.not707 = icmp eq i64 %361, 0
  br i1 %.not707, label %363, label %362

362:                                              ; preds = %332
  store i64 %361, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

363:                                              ; preds = %332
  %364 = load i64, ptr %37, align 8, !tbaa !5
  %.not708769 = icmp slt i64 %364, 1
  br i1 %.not708769, label %._crit_edge774, label %.lr.ph773

.lr.ph773:                                        ; preds = %363
  %365 = load i64, ptr %36, align 8, !tbaa !5
  %366 = sub nsw i64 0, %.0615780
  %367 = add i64 %340, 1
  %368 = add i64 %339, 1
  %369 = sub i64 %368, %333
  %broadcast.splatinsert900 = insertelement <2 x i64> poison, i64 %340, i64 0
  %broadcast.splat901 = shufflevector <2 x i64> %broadcast.splatinsert900, <2 x i64> poison, <2 x i32> zeroinitializer
  br label %370

370:                                              ; preds = %.lr.ph773, %._crit_edge768
  %.1599771 = phi i64 [ %.0598782, %.lr.ph773 ], [ %.2, %._crit_edge768 ]
  %.1652770 = phi i64 [ 1, %.lr.ph773 ], [ %411, %._crit_edge768 ]
  %371 = load i64, ptr %2, align 8, !tbaa !5
  %372 = getelementptr float, ptr %44, i64 %.1652770
  %373 = getelementptr float, ptr %372, i64 %371
  %374 = load float, ptr %373, align 4, !tbaa !9
  %375 = getelementptr float, ptr %372, i64 %365
  %376 = getelementptr float, ptr %375, i64 %371
  %377 = load float, ptr %376, align 4, !tbaa !9
  %378 = fadd float %374, %377
  %379 = fmul float %378, 5.000000e-01
  %380 = fsub float %374, %377
  %381 = fcmp oge float %380, 0.000000e+00
  %382 = fneg float %380
  %383 = select i1 %381, float %380, float %382
  %384 = fmul float %383, 5.000000e-01
  %385 = icmp sgt i64 %.1652770, %364
  %.0650 = select i1 %385, i64 %366, i64 %.0615780
  %.2 = select i1 %385, i64 1, i64 %.1599771
  %386 = getelementptr i64, ptr %43, i64 %.1652770
  %387 = getelementptr i64, ptr %386, i64 %365
  %388 = load i64, ptr %387, align 8, !tbaa !5
  %389 = add nsw i64 %388, %340
  %390 = load i64, ptr %386, align 8, !tbaa !5
  %391 = add i64 %367, %390
  %.not709764 = icmp sgt i64 %391, %389
  br i1 %.not709764, label %._crit_edge768, label %.lr.ph767.preheader

.lr.ph767.preheader:                              ; preds = %370
  %392 = add i64 %369, %388
  %393 = sub i64 %388, %390
  %min.iters.check = icmp ult i64 %393, 4
  %brmerge975 = or i1 %min.iters.check, %conflict.rdx
  br i1 %brmerge975, label %.lr.ph767.preheader940, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph767.preheader
  %n.vec = and i64 %393, -4
  %ind.end = add i64 %391, %n.vec
  %.splatinsert = insertelement <2 x i64> poison, i64 %391, i64 0
  %.splat = shufflevector <2 x i64> %.splatinsert, <2 x i64> poison, <2 x i32> zeroinitializer
  %induction = add <2 x i64> %.splat, <i64 0, i64 1>
  %broadcast.splatinsert = insertelement <2 x float> poison, float %379, i64 0
  %broadcast.splat = shufflevector <2 x float> %broadcast.splatinsert, <2 x float> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert898 = insertelement <2 x float> poison, float %384, i64 0
  %broadcast.splat899 = shufflevector <2 x float> %broadcast.splatinsert898, <2 x float> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert902 = insertelement <2 x i64> poison, i64 %.0650, i64 0
  %broadcast.splat903 = shufflevector <2 x i64> %broadcast.splatinsert902, <2 x i64> poison, <2 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 <2 x i64> [ %induction, %vector.ph ], [ %vec.ind.next, %vector.body ]
  %step.add = add <2 x i64> %vec.ind, <i64 2, i64 2>
  %offset.idx = add i64 %391, %index
  %394 = getelementptr inbounds float, ptr %48, i64 %offset.idx
  %395 = getelementptr inbounds i8, ptr %394, i64 8
  store <2 x float> %broadcast.splat, ptr %394, align 4, !tbaa !9
  store <2 x float> %broadcast.splat, ptr %395, align 4, !tbaa !9
  %396 = getelementptr inbounds float, ptr %47, i64 %offset.idx
  %397 = getelementptr inbounds i8, ptr %396, i64 8
  store <2 x float> %broadcast.splat899, ptr %396, align 4, !tbaa !9
  store <2 x float> %broadcast.splat899, ptr %397, align 4, !tbaa !9
  %398 = sub nsw <2 x i64> %vec.ind, %broadcast.splat901
  %399 = sub nsw <2 x i64> %step.add, %broadcast.splat901
  %400 = getelementptr inbounds i64, ptr %45, i64 %offset.idx
  %401 = getelementptr inbounds i8, ptr %400, i64 16
  store <2 x i64> %398, ptr %400, align 8, !tbaa !5
  store <2 x i64> %399, ptr %401, align 8, !tbaa !5
  %402 = getelementptr inbounds i64, ptr %46, i64 %offset.idx
  %403 = getelementptr inbounds i8, ptr %402, i64 16
  store <2 x i64> %broadcast.splat903, ptr %402, align 8, !tbaa !5
  store <2 x i64> %broadcast.splat903, ptr %403, align 8, !tbaa !5
  %index.next = add nuw i64 %index, 4
  %vec.ind.next = add <2 x i64> %vec.ind, <i64 4, i64 4>
  %404 = icmp eq i64 %index.next, %n.vec
  br i1 %404, label %middle.block, label %vector.body, !llvm.loop !14

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %393, %n.vec
  br i1 %cmp.n, label %._crit_edge768, label %.lr.ph767.preheader940

.lr.ph767.preheader940:                           ; preds = %.lr.ph767.preheader, %middle.block
  %.0642765.ph = phi i64 [ %391, %.lr.ph767.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph767

.lr.ph767:                                        ; preds = %.lr.ph767.preheader940, %.lr.ph767
  %.0642765 = phi i64 [ %410, %.lr.ph767 ], [ %.0642765.ph, %.lr.ph767.preheader940 ]
  %405 = getelementptr inbounds float, ptr %48, i64 %.0642765
  store float %379, ptr %405, align 4, !tbaa !9
  %406 = getelementptr inbounds float, ptr %47, i64 %.0642765
  store float %384, ptr %406, align 4, !tbaa !9
  %407 = sub nsw i64 %.0642765, %340
  %408 = getelementptr inbounds i64, ptr %45, i64 %.0642765
  store i64 %407, ptr %408, align 8, !tbaa !5
  %409 = getelementptr inbounds i64, ptr %46, i64 %.0642765
  store i64 %.0650, ptr %409, align 8, !tbaa !5
  %410 = add i64 %.0642765, 1
  %exitcond857.not = icmp eq i64 %410, %392
  br i1 %exitcond857.not, label %._crit_edge768, label %.lr.ph767, !llvm.loop !17

._crit_edge768:                                   ; preds = %.lr.ph767, %middle.block, %370
  %411 = add nuw i64 %.1652770, 1
  %exitcond858.not = icmp eq i64 %.1652770, %364
  br i1 %exitcond858.not, label %._crit_edge774, label %370, !llvm.loop !18

._crit_edge774:                                   ; preds = %._crit_edge768, %363
  %.1599.lcssa = phi i64 [ %.0598782, %363 ], [ %.2, %._crit_edge768 ]
  %412 = load i64, ptr %35, align 8, !tbaa !5
  %413 = load i64, ptr %15, align 8, !tbaa !5
  %414 = add nsw i64 %413, %412
  store i64 %414, ptr %15, align 8, !tbaa !5
  br label %415

415:                                              ; preds = %263, %312, %315, %265, %._crit_edge774
  %.3630 = phi i64 [ %.2629, %265 ], [ %.2629, %263 ], [ %313, %312 ], [ %.1628777, %315 ], [ %334, %._crit_edge774 ]
  %.3622 = phi i64 [ %.2621, %265 ], [ %.2621.mux, %263 ], [ %314, %312 ], [ %.1620778, %315 ], [ %338, %._crit_edge774 ]
  %.3 = phi i64 [ %.0598782, %265 ], [ %.0598782, %263 ], [ %.0598782, %312 ], [ %.0598782, %315 ], [ %.1599.lcssa, %._crit_edge774 ]
  %416 = add nuw i64 %.0615780, 1
  %exitcond859.not = icmp eq i64 %.0615780, %242
  br i1 %exitcond859.not, label %._crit_edge785, label %247, !llvm.loop !19

._crit_edge785:                                   ; preds = %415, %241
  %.1628.lcssa = phi i64 [ 0, %241 ], [ %.3630, %415 ]
  %.1620.lcssa = phi i64 [ 0, %241 ], [ %.3622, %415 ]
  %.0598.lcssa = phi i64 [ 0, %241 ], [ %.3, %415 ]
  br i1 %170, label %417, label %.thread730

417:                                              ; preds = %._crit_edge785
  %418 = load i64, ptr %5, align 8, !tbaa !5
  %419 = xor i64 %.1628.lcssa, -1
  %420 = add i64 %418, %419
  %421 = load i64, ptr %6, align 8, !tbaa !5
  %422 = sub nsw i64 %.1620.lcssa, %421
  %423 = icmp sgt i64 %420, 0
  br i1 %423, label %424, label %449

424:                                              ; preds = %417
  store i64 0, ptr %35, align 8, !tbaa !5
  %425 = load i64, ptr %15, align 8, !tbaa !5
  %.not686789 = icmp slt i64 %425, 1
  br i1 %.not686789, label %._crit_edge794, label %.lr.ph793

.lr.ph793:                                        ; preds = %424, %445
  %.0603791 = phi i64 [ %.1604, %445 ], [ %420, %424 ]
  %.1643790 = phi i64 [ %447, %445 ], [ 1, %424 ]
  %426 = phi i64 [ %446, %445 ], [ 0, %424 ]
  %427 = getelementptr inbounds float, ptr %48, i64 %.1643790
  %428 = load float, ptr %427, align 4, !tbaa !9
  %429 = fcmp ole float %428, %.1626
  %430 = icmp sgt i64 %.0603791, 0
  %or.cond3 = select i1 %429, i1 %430, i1 false
  br i1 %or.cond3, label %431, label %433

431:                                              ; preds = %.lr.ph793
  %432 = add nsw i64 %.0603791, -1
  br label %445

433:                                              ; preds = %.lr.ph793
  %434 = add nsw i64 %426, 1
  store i64 %434, ptr %35, align 8, !tbaa !5
  %435 = getelementptr float, ptr %16, i64 %426
  store float %428, ptr %435, align 4, !tbaa !9
  %436 = getelementptr inbounds float, ptr %47, i64 %.1643790
  %437 = load float, ptr %436, align 4, !tbaa !9
  %438 = getelementptr float, ptr %17, i64 %426
  store float %437, ptr %438, align 4, !tbaa !9
  %439 = getelementptr inbounds i64, ptr %45, i64 %.1643790
  %440 = load i64, ptr %439, align 8, !tbaa !5
  %441 = getelementptr i64, ptr %21, i64 %426
  store i64 %440, ptr %441, align 8, !tbaa !5
  %442 = getelementptr inbounds i64, ptr %46, i64 %.1643790
  %443 = load i64, ptr %442, align 8, !tbaa !5
  %444 = getelementptr i64, ptr %20, i64 %426
  store i64 %443, ptr %444, align 8, !tbaa !5
  br label %445

445:                                              ; preds = %431, %433
  %446 = phi i64 [ %426, %431 ], [ %434, %433 ]
  %.1604 = phi i64 [ %432, %431 ], [ %.0603791, %433 ]
  %447 = add nuw i64 %.1643790, 1
  %exitcond860.not = icmp eq i64 %.1643790, %425
  br i1 %exitcond860.not, label %._crit_edge794, label %.lr.ph793, !llvm.loop !20

._crit_edge794:                                   ; preds = %445, %424
  %448 = phi i64 [ 0, %424 ], [ %446, %445 ]
  %.0603.lcssa = phi i64 [ %420, %424 ], [ %.1604, %445 ]
  store i64 %448, ptr %15, align 8, !tbaa !5
  br label %449

449:                                              ; preds = %._crit_edge794, %417
  %.2605 = phi i64 [ %.0603.lcssa, %._crit_edge794 ], [ %420, %417 ]
  %450 = icmp sgt i64 %422, 0
  br i1 %450, label %451, label %522

451:                                              ; preds = %449
  %452 = load i64, ptr %15, align 8, !tbaa !5
  %453 = add nsw i64 %452, 1
  store i64 %453, ptr %35, align 8, !tbaa !5
  %454 = icmp sgt i64 %452, 0
  br i1 %454, label %.lr.ph800, label %._crit_edge808

.lr.ph800:                                        ; preds = %451, %474
  %.0600798 = phi i64 [ %.1601, %474 ], [ %422, %451 ]
  %.2644797 = phi i64 [ %476, %474 ], [ %452, %451 ]
  %455 = phi i64 [ %475, %474 ], [ %453, %451 ]
  %456 = getelementptr inbounds float, ptr %48, i64 %.2644797
  %457 = load float, ptr %456, align 4, !tbaa !9
  %458 = fcmp oge float %457, %.1624
  %459 = icmp sgt i64 %.0600798, 0
  %or.cond5 = select i1 %458, i1 %459, i1 false
  br i1 %or.cond5, label %460, label %462

460:                                              ; preds = %.lr.ph800
  %461 = add nsw i64 %.0600798, -1
  br label %474

462:                                              ; preds = %.lr.ph800
  %463 = add nsw i64 %455, -1
  store i64 %463, ptr %35, align 8, !tbaa !5
  %464 = getelementptr inbounds float, ptr %48, i64 %463
  store float %457, ptr %464, align 4, !tbaa !9
  %465 = getelementptr inbounds float, ptr %47, i64 %.2644797
  %466 = load float, ptr %465, align 4, !tbaa !9
  %467 = getelementptr inbounds float, ptr %47, i64 %463
  store float %466, ptr %467, align 4, !tbaa !9
  %468 = getelementptr inbounds i64, ptr %45, i64 %.2644797
  %469 = load i64, ptr %468, align 8, !tbaa !5
  %470 = getelementptr inbounds i64, ptr %45, i64 %463
  store i64 %469, ptr %470, align 8, !tbaa !5
  %471 = getelementptr inbounds i64, ptr %46, i64 %.2644797
  %472 = load i64, ptr %471, align 8, !tbaa !5
  %473 = getelementptr inbounds i64, ptr %46, i64 %463
  store i64 %472, ptr %473, align 8, !tbaa !5
  br label %474

474:                                              ; preds = %460, %462
  %475 = phi i64 [ %455, %460 ], [ %463, %462 ]
  %.1601 = phi i64 [ %461, %460 ], [ %.0600798, %462 ]
  %476 = add nsw i64 %.2644797, -1
  %477 = icmp sgt i64 %.2644797, 1
  br i1 %477, label %.lr.ph800, label %._crit_edge801, !llvm.loop !21

._crit_edge801:                                   ; preds = %474
  %.pre = load i64, ptr %15, align 8, !tbaa !5
  %.not687803 = icmp sgt i64 %475, %.pre
  br i1 %.not687803, label %._crit_edge808, label %.lr.ph807.preheader

.lr.ph807.preheader:                              ; preds = %._crit_edge801
  %478 = add i64 %.pre, 1
  %479 = sub i64 %478, %475
  %min.iters.check922 = icmp ult i64 %479, 30
  br i1 %min.iters.check922, label %.lr.ph807.preheader937, label %vector.memcheck904

vector.memcheck904:                               ; preds = %.lr.ph807.preheader
  %480 = add i64 %29, 4
  %481 = shl i64 %475, 2
  %482 = add i64 %481, %28
  %483 = sub i64 %480, %482
  %diff.check905 = icmp ult i64 %483, 8
  %484 = add i64 %29, -4
  %485 = sub i64 %484, %28
  %486 = add i64 %485, %481
  %diff.check906 = icmp ult i64 %486, 8
  %conflict.rdx907 = or i1 %diff.check905, %diff.check906
  %487 = sub i64 %29, %28
  %diff.check908 = icmp ult i64 %487, 8
  %conflict.rdx909 = or i1 %conflict.rdx907, %diff.check908
  %488 = add i64 %27, 8
  %489 = shl i64 %475, 3
  %490 = add i64 %489, %26
  %491 = sub i64 %488, %490
  %diff.check910 = icmp ult i64 %491, 16
  %conflict.rdx911 = or i1 %conflict.rdx909, %diff.check910
  %492 = add i64 %27, -8
  %493 = sub i64 %492, %26
  %494 = add i64 %493, %489
  %diff.check912 = icmp ult i64 %494, 16
  %conflict.rdx913 = or i1 %conflict.rdx911, %diff.check912
  %495 = sub i64 %27, %26
  %diff.check914 = icmp ult i64 %495, 16
  %conflict.rdx915 = or i1 %conflict.rdx913, %diff.check914
  %diff.check916 = icmp ult i64 %481, 8
  %conflict.rdx917 = or i1 %conflict.rdx915, %diff.check916
  %diff.check918 = icmp ult i64 %489, 16
  %conflict.rdx919 = or i1 %conflict.rdx917, %diff.check918
  br i1 %conflict.rdx919, label %.lr.ph807.preheader937, label %vector.ph923

vector.ph923:                                     ; preds = %vector.memcheck904
  %n.vec925 = and i64 %479, -2
  %ind.end927 = add i64 %475, %n.vec925
  br label %vector.body929

vector.body929:                                   ; preds = %vector.body929, %vector.ph923
  %index930 = phi i64 [ 0, %vector.ph923 ], [ %index.next935, %vector.body929 ]
  %offset.idx931 = add i64 %475, %index930
  %496 = getelementptr inbounds float, ptr %48, i64 %offset.idx931
  %wide.load = load <2 x float>, ptr %496, align 4, !tbaa !9
  %497 = getelementptr float, ptr %16, i64 %index930
  store <2 x float> %wide.load, ptr %497, align 4, !tbaa !9
  %498 = getelementptr inbounds float, ptr %47, i64 %offset.idx931
  %wide.load932 = load <2 x float>, ptr %498, align 4, !tbaa !9
  %499 = getelementptr float, ptr %17, i64 %index930
  store <2 x float> %wide.load932, ptr %499, align 4, !tbaa !9
  %500 = getelementptr inbounds i64, ptr %45, i64 %offset.idx931
  %wide.load933 = load <2 x i64>, ptr %500, align 8, !tbaa !5
  %501 = getelementptr i64, ptr %21, i64 %index930
  store <2 x i64> %wide.load933, ptr %501, align 8, !tbaa !5
  %502 = getelementptr inbounds i64, ptr %46, i64 %offset.idx931
  %wide.load934 = load <2 x i64>, ptr %502, align 8, !tbaa !5
  %503 = getelementptr i64, ptr %20, i64 %index930
  store <2 x i64> %wide.load934, ptr %503, align 8, !tbaa !5
  %index.next935 = add nuw i64 %index930, 2
  %504 = icmp eq i64 %index.next935, %n.vec925
  br i1 %504, label %middle.block920, label %vector.body929, !llvm.loop !22

middle.block920:                                  ; preds = %vector.body929
  %cmp.n936 = icmp eq i64 %479, %n.vec925
  br i1 %cmp.n936, label %._crit_edge808.loopexit, label %.lr.ph807.preheader937

.lr.ph807.preheader937:                           ; preds = %middle.block920, %vector.memcheck904, %.lr.ph807.preheader
  %.0631805.ph = phi i64 [ 0, %vector.memcheck904 ], [ 0, %.lr.ph807.preheader ], [ %n.vec925, %middle.block920 ]
  %.3645804.ph = phi i64 [ %475, %vector.memcheck904 ], [ %475, %.lr.ph807.preheader ], [ %ind.end927, %middle.block920 ]
  br label %.lr.ph807

.lr.ph807:                                        ; preds = %.lr.ph807.preheader937, %.lr.ph807
  %.0631805 = phi i64 [ %505, %.lr.ph807 ], [ %.0631805.ph, %.lr.ph807.preheader937 ]
  %.3645804 = phi i64 [ %518, %.lr.ph807 ], [ %.3645804.ph, %.lr.ph807.preheader937 ]
  %505 = add nuw i64 %.0631805, 1
  %506 = getelementptr inbounds float, ptr %48, i64 %.3645804
  %507 = load float, ptr %506, align 4, !tbaa !9
  %508 = getelementptr float, ptr %16, i64 %.0631805
  store float %507, ptr %508, align 4, !tbaa !9
  %509 = getelementptr inbounds float, ptr %47, i64 %.3645804
  %510 = load float, ptr %509, align 4, !tbaa !9
  %511 = getelementptr float, ptr %17, i64 %.0631805
  store float %510, ptr %511, align 4, !tbaa !9
  %512 = getelementptr inbounds i64, ptr %45, i64 %.3645804
  %513 = load i64, ptr %512, align 8, !tbaa !5
  %514 = getelementptr i64, ptr %21, i64 %.0631805
  store i64 %513, ptr %514, align 8, !tbaa !5
  %515 = getelementptr inbounds i64, ptr %46, i64 %.3645804
  %516 = load i64, ptr %515, align 8, !tbaa !5
  %517 = getelementptr i64, ptr %20, i64 %.0631805
  store i64 %516, ptr %517, align 8, !tbaa !5
  %518 = add nsw i64 %.3645804, 1
  %exitcond861.not = icmp eq i64 %505, %479
  br i1 %exitcond861.not, label %._crit_edge808.loopexit, label %.lr.ph807, !llvm.loop !23

._crit_edge808.loopexit:                          ; preds = %.lr.ph807, %middle.block920
  %.pre868 = load i64, ptr %15, align 8, !tbaa !5
  br label %._crit_edge808

._crit_edge808:                                   ; preds = %451, %._crit_edge808.loopexit, %._crit_edge801
  %.0600.lcssa873 = phi i64 [ %.1601, %._crit_edge808.loopexit ], [ %.1601, %._crit_edge801 ], [ %422, %451 ]
  %519 = phi i64 [ %475, %._crit_edge808.loopexit ], [ %475, %._crit_edge801 ], [ %453, %451 ]
  %520 = phi i64 [ %.pre868, %._crit_edge808.loopexit ], [ %.pre, %._crit_edge801 ], [ %452, %451 ]
  %reass.sub = sub i64 %520, %519
  %521 = add i64 %reass.sub, 1
  store i64 %521, ptr %15, align 8, !tbaa !5
  br label %522

522:                                              ; preds = %._crit_edge808, %449
  %.2602 = phi i64 [ %.0600.lcssa873, %._crit_edge808 ], [ %422, %449 ]
  %523 = icmp sgt i64 %.2605, 0
  %524 = icmp sgt i64 %.2602, 0
  %or.cond7 = select i1 %523, i1 true, i1 %524
  br i1 %or.cond7, label %525, label %._crit_edge869

._crit_edge869:                                   ; preds = %522
  %.pre870 = load i64, ptr %15, align 8, !tbaa !5
  br label %615

525:                                              ; preds = %522
  br i1 %523, label %526, label %.loopexit741

526:                                              ; preds = %525
  %527 = load float, ptr %19, align 4, !tbaa !9
  br label %528

528:                                              ; preds = %526, %._crit_edge815
  %.0609819 = phi float [ %527, %526 ], [ %.1610.lcssa, %._crit_edge815 ]
  %.0613818 = phi i64 [ 1, %526 ], [ %559, %._crit_edge815 ]
  %529 = load i64, ptr %15, align 8, !tbaa !5
  %.not702809 = icmp slt i64 %529, 1
  br i1 %.not702809, label %._crit_edge815, label %.lr.ph814.preheader

.lr.ph814.preheader:                              ; preds = %528
  %xtraiter950 = and i64 %529, 1
  %530 = icmp eq i64 %529, 1
  br i1 %530, label %._crit_edge815.loopexit.unr-lcssa, label %.lr.ph814.preheader.new

.lr.ph814.preheader.new:                          ; preds = %.lr.ph814.preheader
  %unroll_iter954 = and i64 %529, 9223372036854775806
  br label %.lr.ph814

.lr.ph814:                                        ; preds = %548, %.lr.ph814.preheader.new
  %.1610812 = phi float [ %.0609819, %.lr.ph814.preheader.new ], [ %.2611.1, %548 ]
  %.0632811 = phi i64 [ 0, %.lr.ph814.preheader.new ], [ %.1633.1, %548 ]
  %.4646810 = phi i64 [ 1, %.lr.ph814.preheader.new ], [ %549, %548 ]
  %niter955 = phi i64 [ 0, %.lr.ph814.preheader.new ], [ %niter955.next.1, %548 ]
  %531 = getelementptr inbounds i64, ptr %46, i64 %.4646810
  %532 = load i64, ptr %531, align 8, !tbaa !5
  %.not703 = icmp eq i64 %532, 0
  br i1 %.not703, label %.lr.ph814.1, label %533

533:                                              ; preds = %.lr.ph814
  %534 = getelementptr inbounds float, ptr %48, i64 %.4646810
  %535 = load float, ptr %534, align 4, !tbaa !9
  %536 = fcmp olt float %535, %.1610812
  %537 = icmp eq i64 %.0632811, 0
  %or.cond9 = select i1 %536, i1 true, i1 %537
  br i1 %or.cond9, label %538, label %.lr.ph814.1

538:                                              ; preds = %533
  br label %.lr.ph814.1

.lr.ph814.1:                                      ; preds = %.lr.ph814, %538, %533
  %.1633 = phi i64 [ %.4646810, %538 ], [ %.0632811, %533 ], [ %.0632811, %.lr.ph814 ]
  %.2611 = phi float [ %535, %538 ], [ %.1610812, %533 ], [ %.1610812, %.lr.ph814 ]
  %539 = add nuw i64 %.4646810, 1
  %540 = getelementptr i64, ptr %20, i64 %.4646810
  %541 = load i64, ptr %540, align 8, !tbaa !5
  %.not703.1 = icmp eq i64 %541, 0
  br i1 %.not703.1, label %548, label %542

542:                                              ; preds = %.lr.ph814.1
  %543 = getelementptr float, ptr %16, i64 %.4646810
  %544 = load float, ptr %543, align 4, !tbaa !9
  %545 = fcmp olt float %544, %.2611
  %546 = icmp eq i64 %.1633, 0
  %or.cond9.1 = select i1 %545, i1 true, i1 %546
  br i1 %or.cond9.1, label %547, label %548

547:                                              ; preds = %542
  br label %548

548:                                              ; preds = %547, %542, %.lr.ph814.1
  %.1633.1 = phi i64 [ %539, %547 ], [ %.1633, %542 ], [ %.1633, %.lr.ph814.1 ]
  %.2611.1 = phi float [ %544, %547 ], [ %.2611, %542 ], [ %.2611, %.lr.ph814.1 ]
  %549 = add nuw i64 %.4646810, 2
  %niter955.next.1 = add i64 %niter955, 2
  %niter955.ncmp.1 = icmp eq i64 %niter955.next.1, %unroll_iter954
  br i1 %niter955.ncmp.1, label %._crit_edge815.loopexit.unr-lcssa, label %.lr.ph814, !llvm.loop !24

._crit_edge815.loopexit.unr-lcssa:                ; preds = %548, %.lr.ph814.preheader
  %.1633.lcssa.ph = phi i64 [ poison, %.lr.ph814.preheader ], [ %.1633.1, %548 ]
  %.2611.lcssa.ph = phi float [ poison, %.lr.ph814.preheader ], [ %.2611.1, %548 ]
  %.1610812.unr = phi float [ %.0609819, %.lr.ph814.preheader ], [ %.2611.1, %548 ]
  %.0632811.unr = phi i64 [ 0, %.lr.ph814.preheader ], [ %.1633.1, %548 ]
  %.4646810.unr = phi i64 [ 1, %.lr.ph814.preheader ], [ %549, %548 ]
  %lcmp.mod951.not = icmp eq i64 %xtraiter950, 0
  br i1 %lcmp.mod951.not, label %._crit_edge815, label %.lr.ph814.epil

.lr.ph814.epil:                                   ; preds = %._crit_edge815.loopexit.unr-lcssa
  %550 = getelementptr inbounds i64, ptr %46, i64 %.4646810.unr
  %551 = load i64, ptr %550, align 8, !tbaa !5
  %.not703.epil = icmp eq i64 %551, 0
  br i1 %.not703.epil, label %._crit_edge815, label %552

552:                                              ; preds = %.lr.ph814.epil
  %553 = getelementptr inbounds float, ptr %48, i64 %.4646810.unr
  %554 = load float, ptr %553, align 4, !tbaa !9
  %555 = fcmp olt float %554, %.1610812.unr
  %556 = icmp eq i64 %.0632811.unr, 0
  %or.cond9.epil = select i1 %555, i1 true, i1 %556
  br i1 %or.cond9.epil, label %557, label %._crit_edge815

557:                                              ; preds = %552
  br label %._crit_edge815

._crit_edge815:                                   ; preds = %._crit_edge815.loopexit.unr-lcssa, %557, %552, %.lr.ph814.epil, %528
  %.0632.lcssa = phi i64 [ 0, %528 ], [ %.1633.lcssa.ph, %._crit_edge815.loopexit.unr-lcssa ], [ %.4646810.unr, %557 ], [ %.0632811.unr, %552 ], [ %.0632811.unr, %.lr.ph814.epil ]
  %.1610.lcssa = phi float [ %.0609819, %528 ], [ %.2611.lcssa.ph, %._crit_edge815.loopexit.unr-lcssa ], [ %554, %557 ], [ %.1610812.unr, %552 ], [ %.1610812.unr, %.lr.ph814.epil ]
  %558 = getelementptr inbounds i64, ptr %46, i64 %.0632.lcssa
  store i64 0, ptr %558, align 8, !tbaa !5
  %559 = add nuw i64 %.0613818, 1
  %exitcond863.not = icmp eq i64 %.0613818, %.2605
  br i1 %exitcond863.not, label %.loopexit741, label %528, !llvm.loop !25

.loopexit741:                                     ; preds = %._crit_edge815, %525
  br i1 %524, label %560, label %.loopexit740

560:                                              ; preds = %.loopexit741
  %561 = load float, ptr %18, align 4, !tbaa !9
  br label %562

562:                                              ; preds = %560, %._crit_edge826
  %.3612830 = phi float [ %561, %560 ], [ %.4.lcssa, %._crit_edge826 ]
  %.1614829 = phi i64 [ 1, %560 ], [ %593, %._crit_edge826 ]
  %563 = load i64, ptr %15, align 8, !tbaa !5
  %.not700820 = icmp slt i64 %563, 1
  br i1 %.not700820, label %._crit_edge826, label %.lr.ph825.preheader

.lr.ph825.preheader:                              ; preds = %562
  %xtraiter956 = and i64 %563, 1
  %564 = icmp eq i64 %563, 1
  br i1 %564, label %._crit_edge826.loopexit.unr-lcssa, label %.lr.ph825.preheader.new

.lr.ph825.preheader.new:                          ; preds = %.lr.ph825.preheader
  %unroll_iter960 = and i64 %563, 9223372036854775806
  br label %.lr.ph825

.lr.ph825:                                        ; preds = %582, %.lr.ph825.preheader.new
  %.4823 = phi float [ %.3612830, %.lr.ph825.preheader.new ], [ %.5.1, %582 ]
  %.2634822 = phi i64 [ 0, %.lr.ph825.preheader.new ], [ %.3635.1, %582 ]
  %.5647821 = phi i64 [ 1, %.lr.ph825.preheader.new ], [ %583, %582 ]
  %niter961 = phi i64 [ 0, %.lr.ph825.preheader.new ], [ %niter961.next.1, %582 ]
  %565 = getelementptr inbounds i64, ptr %46, i64 %.5647821
  %566 = load i64, ptr %565, align 8, !tbaa !5
  %.not701 = icmp eq i64 %566, 0
  br i1 %.not701, label %.lr.ph825.1, label %567

567:                                              ; preds = %.lr.ph825
  %568 = getelementptr inbounds float, ptr %48, i64 %.5647821
  %569 = load float, ptr %568, align 4, !tbaa !9
  %570 = fcmp oge float %569, %.4823
  %571 = icmp eq i64 %.2634822, 0
  %or.cond11 = select i1 %570, i1 true, i1 %571
  br i1 %or.cond11, label %572, label %.lr.ph825.1

572:                                              ; preds = %567
  br label %.lr.ph825.1

.lr.ph825.1:                                      ; preds = %.lr.ph825, %572, %567
  %.3635 = phi i64 [ %.5647821, %572 ], [ %.2634822, %567 ], [ %.2634822, %.lr.ph825 ]
  %.5 = phi float [ %569, %572 ], [ %.4823, %567 ], [ %.4823, %.lr.ph825 ]
  %573 = add nuw i64 %.5647821, 1
  %574 = getelementptr i64, ptr %20, i64 %.5647821
  %575 = load i64, ptr %574, align 8, !tbaa !5
  %.not701.1 = icmp eq i64 %575, 0
  br i1 %.not701.1, label %582, label %576

576:                                              ; preds = %.lr.ph825.1
  %577 = getelementptr float, ptr %16, i64 %.5647821
  %578 = load float, ptr %577, align 4, !tbaa !9
  %579 = fcmp oge float %578, %.5
  %580 = icmp eq i64 %.3635, 0
  %or.cond11.1 = select i1 %579, i1 true, i1 %580
  br i1 %or.cond11.1, label %581, label %582

581:                                              ; preds = %576
  br label %582

582:                                              ; preds = %581, %576, %.lr.ph825.1
  %.3635.1 = phi i64 [ %573, %581 ], [ %.3635, %576 ], [ %.3635, %.lr.ph825.1 ]
  %.5.1 = phi float [ %578, %581 ], [ %.5, %576 ], [ %.5, %.lr.ph825.1 ]
  %583 = add nuw i64 %.5647821, 2
  %niter961.next.1 = add i64 %niter961, 2
  %niter961.ncmp.1 = icmp eq i64 %niter961.next.1, %unroll_iter960
  br i1 %niter961.ncmp.1, label %._crit_edge826.loopexit.unr-lcssa, label %.lr.ph825, !llvm.loop !26

._crit_edge826.loopexit.unr-lcssa:                ; preds = %582, %.lr.ph825.preheader
  %.3635.lcssa.ph = phi i64 [ poison, %.lr.ph825.preheader ], [ %.3635.1, %582 ]
  %.5.lcssa.ph = phi float [ poison, %.lr.ph825.preheader ], [ %.5.1, %582 ]
  %.4823.unr = phi float [ %.3612830, %.lr.ph825.preheader ], [ %.5.1, %582 ]
  %.2634822.unr = phi i64 [ 0, %.lr.ph825.preheader ], [ %.3635.1, %582 ]
  %.5647821.unr = phi i64 [ 1, %.lr.ph825.preheader ], [ %583, %582 ]
  %lcmp.mod957.not = icmp eq i64 %xtraiter956, 0
  br i1 %lcmp.mod957.not, label %._crit_edge826, label %.lr.ph825.epil

.lr.ph825.epil:                                   ; preds = %._crit_edge826.loopexit.unr-lcssa
  %584 = getelementptr inbounds i64, ptr %46, i64 %.5647821.unr
  %585 = load i64, ptr %584, align 8, !tbaa !5
  %.not701.epil = icmp eq i64 %585, 0
  br i1 %.not701.epil, label %._crit_edge826, label %586

586:                                              ; preds = %.lr.ph825.epil
  %587 = getelementptr inbounds float, ptr %48, i64 %.5647821.unr
  %588 = load float, ptr %587, align 4, !tbaa !9
  %589 = fcmp oge float %588, %.4823.unr
  %590 = icmp eq i64 %.2634822.unr, 0
  %or.cond11.epil = select i1 %589, i1 true, i1 %590
  br i1 %or.cond11.epil, label %591, label %._crit_edge826

591:                                              ; preds = %586
  br label %._crit_edge826

._crit_edge826:                                   ; preds = %._crit_edge826.loopexit.unr-lcssa, %591, %586, %.lr.ph825.epil, %562
  %.2634.lcssa = phi i64 [ 0, %562 ], [ %.3635.lcssa.ph, %._crit_edge826.loopexit.unr-lcssa ], [ %.5647821.unr, %591 ], [ %.2634822.unr, %586 ], [ %.2634822.unr, %.lr.ph825.epil ]
  %.4.lcssa = phi float [ %.3612830, %562 ], [ %.5.lcssa.ph, %._crit_edge826.loopexit.unr-lcssa ], [ %588, %591 ], [ %.4823.unr, %586 ], [ %.4823.unr, %.lr.ph825.epil ]
  %592 = getelementptr inbounds i64, ptr %46, i64 %.2634.lcssa
  store i64 0, ptr %592, align 8, !tbaa !5
  %593 = add nuw i64 %.1614829, 1
  %exitcond865.not = icmp eq i64 %.1614829, %.2602
  br i1 %exitcond865.not, label %.loopexit740, label %562, !llvm.loop !27

.loopexit740:                                     ; preds = %._crit_edge826, %.loopexit741
  store i64 0, ptr %35, align 8, !tbaa !5
  %594 = load i64, ptr %15, align 8, !tbaa !5
  %.not690832 = icmp slt i64 %594, 1
  br i1 %.not690832, label %._crit_edge836, label %.lr.ph835

.lr.ph835:                                        ; preds = %.loopexit740, %611
  %.6833 = phi i64 [ %613, %611 ], [ 1, %.loopexit740 ]
  %595 = phi i64 [ %612, %611 ], [ 0, %.loopexit740 ]
  %596 = getelementptr inbounds i64, ptr %46, i64 %.6833
  %597 = load i64, ptr %596, align 8, !tbaa !5
  %.not699 = icmp eq i64 %597, 0
  br i1 %.not699, label %611, label %598

598:                                              ; preds = %.lr.ph835
  %599 = add nsw i64 %595, 1
  store i64 %599, ptr %35, align 8, !tbaa !5
  %600 = getelementptr inbounds float, ptr %48, i64 %.6833
  %601 = load float, ptr %600, align 4, !tbaa !9
  %602 = getelementptr float, ptr %16, i64 %595
  store float %601, ptr %602, align 4, !tbaa !9
  %603 = getelementptr inbounds float, ptr %47, i64 %.6833
  %604 = load float, ptr %603, align 4, !tbaa !9
  %605 = getelementptr float, ptr %17, i64 %595
  store float %604, ptr %605, align 4, !tbaa !9
  %606 = getelementptr inbounds i64, ptr %45, i64 %.6833
  %607 = load i64, ptr %606, align 8, !tbaa !5
  %608 = getelementptr i64, ptr %21, i64 %595
  store i64 %607, ptr %608, align 8, !tbaa !5
  %609 = load i64, ptr %596, align 8, !tbaa !5
  %610 = getelementptr i64, ptr %20, i64 %595
  store i64 %609, ptr %610, align 8, !tbaa !5
  br label %611

611:                                              ; preds = %.lr.ph835, %598
  %612 = phi i64 [ %595, %.lr.ph835 ], [ %599, %598 ]
  %613 = add nuw i64 %.6833, 1
  %exitcond866.not = icmp eq i64 %.6833, %594
  br i1 %exitcond866.not, label %._crit_edge836, label %.lr.ph835, !llvm.loop !28

._crit_edge836:                                   ; preds = %611, %.loopexit740
  %614 = phi i64 [ 0, %.loopexit740 ], [ %612, %611 ]
  store i64 %614, ptr %15, align 8, !tbaa !5
  br label %615

615:                                              ; preds = %._crit_edge869, %._crit_edge836
  %616 = phi i64 [ %.pre870, %._crit_edge869 ], [ %614, %._crit_edge836 ]
  %617 = icmp slt i64 %.2605, 0
  %618 = icmp slt i64 %.2602, 0
  %or.cond13 = select i1 %617, i1 true, i1 %618
  %619 = load i64, ptr %6, align 8, !tbaa !5
  %620 = load i64, ptr %5, align 8, !tbaa !5
  %621 = add i64 %619, 1
  %622 = sub i64 %621, %620
  %.not692 = icmp eq i64 %616, %622
  br i1 %.not692, label %.thread734, label %627

.thread730:                                       ; preds = %._crit_edge785
  %623 = icmp eq i64 %.1607, 1
  br i1 %623, label %624, label %.thread734

624:                                              ; preds = %.thread730
  %625 = load i64, ptr %15, align 8, !tbaa !5
  %626 = load i64, ptr %2, align 8, !tbaa !5
  %.not691 = icmp eq i64 %625, %626
  br i1 %.not691, label %.thread734, label %627

627:                                              ; preds = %615, %624
  br label %.thread734

.thread734:                                       ; preds = %624, %.thread730, %627, %615
  %.1.shrunk = phi i1 [ true, %627 ], [ %or.cond13, %615 ], [ false, %.thread730 ], [ false, %624 ]
  %628 = call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #7
  %.not693 = icmp eq i64 %628, 0
  br i1 %.not693, label %.loopexit, label %629

629:                                              ; preds = %.thread734
  %630 = load i64, ptr %13, align 8, !tbaa !5
  %631 = icmp sgt i64 %630, 1
  br i1 %631, label %632, label %.loopexit

632:                                              ; preds = %629
  %633 = load i64, ptr %15, align 8, !tbaa !5
  %.not694.not846 = icmp sgt i64 %633, 1
  br i1 %.not694.not846, label %.lr.ph849, label %.loopexit

.lr.ph849:                                        ; preds = %632, %._crit_edge843.thread
  %.7847 = phi i64 [ %637, %._crit_edge843.thread ], [ 1, %632 ]
  %634 = getelementptr inbounds float, ptr %48, i64 %.7847
  %635 = load float, ptr %634, align 4, !tbaa !9
  %636 = load i64, ptr %15, align 8, !tbaa !5
  %637 = add nuw nsw i64 %.7847, 1
  %.not697837.not = icmp slt i64 %.7847, %636
  br i1 %.not697837.not, label %.lr.ph842, label %._crit_edge843.thread

.lr.ph842:                                        ; preds = %.lr.ph849, %.lr.ph842
  %.0617840 = phi float [ %.1618, %.lr.ph842 ], [ %635, %.lr.ph849 ]
  %.0648839 = phi i64 [ %.1649, %.lr.ph842 ], [ 0, %.lr.ph849 ]
  %.2653838 = phi i64 [ %641, %.lr.ph842 ], [ %637, %.lr.ph849 ]
  %638 = getelementptr inbounds float, ptr %48, i64 %.2653838
  %639 = load float, ptr %638, align 4, !tbaa !9
  %640 = fcmp olt float %639, %.0617840
  %.1649 = select i1 %640, i64 %.2653838, i64 %.0648839
  %.1618 = select i1 %640, float %639, float %.0617840
  %641 = add nuw nsw i64 %.2653838, 1
  %.not697.not = icmp slt i64 %.2653838, %636
  br i1 %.not697.not, label %.lr.ph842, label %._crit_edge843, !llvm.loop !29

._crit_edge843:                                   ; preds = %.lr.ph842
  %.not698 = icmp eq i64 %.1649, 0
  br i1 %.not698, label %._crit_edge843.thread, label %642

642:                                              ; preds = %._crit_edge843
  %643 = getelementptr inbounds float, ptr %47, i64 %.1649
  %644 = load float, ptr %643, align 4, !tbaa !9
  %645 = getelementptr inbounds i64, ptr %46, i64 %.1649
  %646 = load i64, ptr %645, align 8, !tbaa !5
  %647 = getelementptr inbounds i64, ptr %45, i64 %.1649
  %648 = load i64, ptr %647, align 8, !tbaa !5
  %649 = getelementptr inbounds float, ptr %48, i64 %.1649
  store float %635, ptr %649, align 4, !tbaa !9
  %650 = getelementptr inbounds float, ptr %47, i64 %.7847
  %651 = load float, ptr %650, align 4, !tbaa !9
  store float %651, ptr %643, align 4, !tbaa !9
  %652 = getelementptr inbounds i64, ptr %46, i64 %.7847
  %653 = load i64, ptr %652, align 8, !tbaa !5
  store i64 %653, ptr %645, align 8, !tbaa !5
  %654 = getelementptr inbounds i64, ptr %45, i64 %.7847
  %655 = load i64, ptr %654, align 8, !tbaa !5
  store i64 %655, ptr %647, align 8, !tbaa !5
  store float %.1618, ptr %634, align 4, !tbaa !9
  store float %644, ptr %650, align 4, !tbaa !9
  store i64 %646, ptr %652, align 8, !tbaa !5
  store i64 %648, ptr %654, align 8, !tbaa !5
  br label %._crit_edge843.thread

._crit_edge843.thread:                            ; preds = %.lr.ph849, %._crit_edge843, %642
  %exitcond867.not = icmp eq i64 %637, %633
  br i1 %exitcond867.not, label %.loopexit, label %.lr.ph849, !llvm.loop !30

.loopexit:                                        ; preds = %._crit_edge843.thread, %632, %629, %.thread734
  %.not695 = icmp ne i64 %.0598.lcssa, 0
  %spec.select721 = zext i1 %.not695 to i64
  store i64 %spec.select721, ptr %24, align 8, !tbaa !5
  br i1 %.1.shrunk, label %656, label %.critedge.thread

656:                                              ; preds = %.loopexit
  %657 = select i1 %.not695, i64 3, i64 2
  store i64 %657, ptr %24, align 8, !tbaa !5
  br label %.critedge.thread

default.unreachable:                              ; preds = %101
  unreachable

.critedge.thread:                                 ; preds = %56, %66, %78, %83, %72, %62, %102, %106, %.loopexit, %656, %109, %112, %115, %84, %.critedge, %362, %331, %233, %205
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #7
  ret i32 0
}

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

declare i64 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

declare i64 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @log(double noundef) local_unnamed_addr #4

declare i32 @slaebz_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #5

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #5

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 = { "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 #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { mustprogress nofree nounwind willreturn memory(write) "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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { 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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12, !15, !16}
!15 = !{!"llvm.loop.isvectorized", i32 1}
!16 = !{!"llvm.loop.unroll.runtime.disable"}
!17 = distinct !{!17, !12, !15}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12, !15, !16}
!23 = distinct !{!23, !12, !15}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MemCpyOptPass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass