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

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

108:                                              ; preds = %18
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %122

109:                                              ; preds = %18
  %110 = load ptr, ptr %20, align 8, !tbaa !5
  %111 = call i64 @lsame_(ptr noundef %110, ptr noundef @.str.1)
  %112 = icmp ne i64 %111, 0
  br i1 %112, label %113, label %114

113:                                              ; preds = %109
  store i64 2, ptr %80, align 8, !tbaa !9
  br label %121

114:                                              ; preds = %109
  %115 = load ptr, ptr %20, align 8, !tbaa !5
  %116 = call i64 @lsame_(ptr noundef %115, ptr noundef @.str.2)
  %117 = icmp ne i64 %116, 0
  br i1 %117, label %118, label %119

118:                                              ; preds = %114
  store i64 3, ptr %80, align 8, !tbaa !9
  br label %120

119:                                              ; preds = %114
  store i64 0, ptr %80, align 8, !tbaa !9
  br label %120

120:                                              ; preds = %119, %118
  br label %121

121:                                              ; preds = %120, %113
  br label %122

122:                                              ; preds = %121, %108
  %123 = load ptr, ptr %21, align 8, !tbaa !5
  %124 = call i64 @lsame_(ptr noundef %123, ptr noundef @.str.3)
  %125 = icmp ne i64 %124, 0
  br i1 %125, label %126, label %127

126:                                              ; preds = %122
  store i64 2, ptr %85, align 8, !tbaa !9
  br label %134

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

131:                                              ; preds = %127
  store i64 1, ptr %85, align 8, !tbaa !9
  br label %133

132:                                              ; preds = %127
  store i64 0, ptr %85, align 8, !tbaa !9
  br label %133

133:                                              ; preds = %132, %131
  br label %134

134:                                              ; preds = %133, %126
  %135 = load i64, ptr %80, align 8, !tbaa !9
  %136 = icmp sle i64 %135, 0
  br i1 %136, label %137, label %139

137:                                              ; preds = %134
  %138 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -1, ptr %138, align 8, !tbaa !9
  br label %217

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

142:                                              ; preds = %139
  %143 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -2, ptr %143, align 8, !tbaa !9
  br label %216

144:                                              ; preds = %139
  %145 = load ptr, ptr %22, align 8, !tbaa !5
  %146 = load i64, ptr %145, align 8, !tbaa !9
  %147 = icmp slt i64 %146, 0
  br i1 %147, label %148, label %150

148:                                              ; preds = %144
  %149 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -3, ptr %149, align 8, !tbaa !9
  br label %215

150:                                              ; preds = %144
  %151 = load i64, ptr %80, align 8, !tbaa !9
  %152 = icmp eq i64 %151, 2
  br i1 %152, label %153, label %162

153:                                              ; preds = %150
  %154 = load ptr, ptr %23, align 8, !tbaa !5
  %155 = load float, ptr %154, align 4, !tbaa !11
  %156 = load ptr, ptr %24, align 8, !tbaa !5
  %157 = load float, ptr %156, align 4, !tbaa !11
  %158 = fcmp oge float %155, %157
  br i1 %158, label %159, label %161

159:                                              ; preds = %153
  %160 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -5, ptr %160, align 8, !tbaa !9
  br label %161

161:                                              ; preds = %159, %153
  br label %214

162:                                              ; preds = %150
  %163 = load i64, ptr %80, align 8, !tbaa !9
  %164 = icmp eq i64 %163, 3
  br i1 %164, label %165, label %184

165:                                              ; preds = %162
  %166 = load ptr, ptr %25, align 8, !tbaa !5
  %167 = load i64, ptr %166, align 8, !tbaa !9
  %168 = icmp slt i64 %167, 1
  br i1 %168, label %182, label %169

169:                                              ; preds = %165
  %170 = load ptr, ptr %25, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = load ptr, ptr %22, align 8, !tbaa !5
  %173 = load i64, ptr %172, align 8, !tbaa !9
  %174 = icmp sge i64 1, %173
  br i1 %174, label %175, label %176

175:                                              ; preds = %169
  br label %179

176:                                              ; preds = %169
  %177 = load ptr, ptr %22, align 8, !tbaa !5
  %178 = load i64, ptr %177, align 8, !tbaa !9
  br label %179

179:                                              ; preds = %176, %175
  %180 = phi i64 [ 1, %175 ], [ %178, %176 ]
  %181 = icmp sgt i64 %171, %180
  br i1 %181, label %182, label %184

182:                                              ; preds = %179, %165
  %183 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -6, ptr %183, align 8, !tbaa !9
  br label %213

184:                                              ; preds = %179, %162
  %185 = load i64, ptr %80, align 8, !tbaa !9
  %186 = icmp eq i64 %185, 3
  br i1 %186, label %187, label %212

187:                                              ; preds = %184
  %188 = load ptr, ptr %26, align 8, !tbaa !5
  %189 = load i64, ptr %188, align 8, !tbaa !9
  %190 = load ptr, ptr %22, align 8, !tbaa !5
  %191 = load i64, ptr %190, align 8, !tbaa !9
  %192 = load ptr, ptr %25, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  %194 = icmp sle i64 %191, %193
  br i1 %194, label %195, label %198

195:                                              ; preds = %187
  %196 = load ptr, ptr %22, align 8, !tbaa !5
  %197 = load i64, ptr %196, align 8, !tbaa !9
  br label %201

198:                                              ; preds = %187
  %199 = load ptr, ptr %25, align 8, !tbaa !5
  %200 = load i64, ptr %199, align 8, !tbaa !9
  br label %201

201:                                              ; preds = %198, %195
  %202 = phi i64 [ %197, %195 ], [ %200, %198 ]
  %203 = icmp slt i64 %189, %202
  br i1 %203, label %210, label %204

204:                                              ; preds = %201
  %205 = load ptr, ptr %26, align 8, !tbaa !5
  %206 = load i64, ptr %205, align 8, !tbaa !9
  %207 = load ptr, ptr %22, align 8, !tbaa !5
  %208 = load i64, ptr %207, align 8, !tbaa !9
  %209 = icmp sgt i64 %206, %208
  br i1 %209, label %210, label %212

210:                                              ; preds = %204, %201
  %211 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -7, ptr %211, align 8, !tbaa !9
  br label %212

212:                                              ; preds = %210, %204, %184
  br label %213

213:                                              ; preds = %212, %182
  br label %214

214:                                              ; preds = %213, %161
  br label %215

215:                                              ; preds = %214, %148
  br label %216

216:                                              ; preds = %215, %142
  br label %217

217:                                              ; preds = %216, %137
  %218 = load ptr, ptr %37, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !9
  %220 = icmp ne i64 %219, 0
  br i1 %220, label %221, label %226

221:                                              ; preds = %217
  %222 = load ptr, ptr %37, align 8, !tbaa !5
  %223 = load i64, ptr %222, align 8, !tbaa !9
  %224 = sub nsw i64 0, %223
  store i64 %224, ptr %38, align 8, !tbaa !9
  %225 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %38)
  store i32 0, ptr %19, align 4
  store i32 1, ptr %89, align 4
  br label %1790

226:                                              ; preds = %217
  %227 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 0, ptr %227, align 8, !tbaa !9
  store i64 0, ptr %86, align 8, !tbaa !9
  store i64 0, ptr %88, align 8, !tbaa !9
  %228 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 0, ptr %228, align 8, !tbaa !9
  %229 = load ptr, ptr %22, align 8, !tbaa !5
  %230 = load i64, ptr %229, align 8, !tbaa !9
  %231 = icmp eq i64 %230, 0
  br i1 %231, label %232, label %233

232:                                              ; preds = %226
  store i32 0, ptr %19, align 4
  store i32 1, ptr %89, align 4
  br label %1790

233:                                              ; preds = %226
  %234 = load i64, ptr %80, align 8, !tbaa !9
  %235 = icmp eq i64 %234, 3
  br i1 %235, label %236, label %247

236:                                              ; preds = %233
  %237 = load ptr, ptr %25, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = icmp eq i64 %238, 1
  br i1 %239, label %240, label %247

240:                                              ; preds = %236
  %241 = load ptr, ptr %26, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  %243 = load ptr, ptr %22, align 8, !tbaa !5
  %244 = load i64, ptr %243, align 8, !tbaa !9
  %245 = icmp eq i64 %242, %244
  br i1 %245, label %246, label %247

246:                                              ; preds = %240
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %247

247:                                              ; preds = %246, %240, %236, %233
  %248 = call double @slamch_(ptr noundef @.str.6)
  %249 = fptrunc double %248 to float
  store float %249, ptr %82, align 4, !tbaa !11
  %250 = call double @slamch_(ptr noundef @.str.7)
  %251 = fptrunc double %250 to float
  store float %251, ptr %60, align 4, !tbaa !11
  %252 = load float, ptr %60, align 4, !tbaa !11
  %253 = fmul float %252, 2.000000e+00
  store float %253, ptr %77, align 4, !tbaa !11
  %254 = load ptr, ptr %22, align 8, !tbaa !5
  %255 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.8, ptr noundef %254, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %255, ptr %51, align 8, !tbaa !9
  %256 = load i64, ptr %51, align 8, !tbaa !9
  %257 = icmp sle i64 %256, 1
  br i1 %257, label %258, label %259

258:                                              ; preds = %247
  store i64 0, ptr %51, align 8, !tbaa !9
  br label %259

259:                                              ; preds = %258, %247
  %260 = load ptr, ptr %22, align 8, !tbaa !5
  %261 = load i64, ptr %260, align 8, !tbaa !9
  %262 = icmp eq i64 %261, 1
  br i1 %262, label %263, label %295

263:                                              ; preds = %259
  %264 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 1, ptr %264, align 8, !tbaa !9
  %265 = load ptr, ptr %34, align 8, !tbaa !5
  %266 = getelementptr inbounds i64, ptr %265, i64 1
  store i64 1, ptr %266, align 8, !tbaa !9
  %267 = load i64, ptr %80, align 8, !tbaa !9
  %268 = icmp eq i64 %267, 2
  br i1 %268, label %269, label %285

269:                                              ; preds = %263
  %270 = load ptr, ptr %23, align 8, !tbaa !5
  %271 = load float, ptr %270, align 4, !tbaa !11
  %272 = load ptr, ptr %28, align 8, !tbaa !5
  %273 = getelementptr inbounds float, ptr %272, i64 1
  %274 = load float, ptr %273, align 4, !tbaa !11
  %275 = fcmp oge float %271, %274
  br i1 %275, label %283, label %276

276:                                              ; preds = %269
  %277 = load ptr, ptr %24, align 8, !tbaa !5
  %278 = load float, ptr %277, align 4, !tbaa !11
  %279 = load ptr, ptr %28, align 8, !tbaa !5
  %280 = getelementptr inbounds float, ptr %279, i64 1
  %281 = load float, ptr %280, align 4, !tbaa !11
  %282 = fcmp olt float %278, %281
  br i1 %282, label %283, label %285

283:                                              ; preds = %276, %269
  %284 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 0, ptr %284, align 8, !tbaa !9
  br label %294

285:                                              ; preds = %276, %263
  %286 = load ptr, ptr %28, align 8, !tbaa !5
  %287 = getelementptr inbounds float, ptr %286, i64 1
  %288 = load float, ptr %287, align 4, !tbaa !11
  %289 = load ptr, ptr %32, align 8, !tbaa !5
  %290 = getelementptr inbounds float, ptr %289, i64 1
  store float %288, ptr %290, align 4, !tbaa !11
  %291 = load ptr, ptr %33, align 8, !tbaa !5
  %292 = getelementptr inbounds i64, ptr %291, i64 1
  store i64 1, ptr %292, align 8, !tbaa !9
  %293 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 1, ptr %293, align 8, !tbaa !9
  br label %294

294:                                              ; preds = %285, %283
  store i32 0, ptr %19, align 4
  store i32 1, ptr %89, align 4
  br label %1790

295:                                              ; preds = %259
  %296 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 1, ptr %296, align 8, !tbaa !9
  %297 = load ptr, ptr %35, align 8, !tbaa !5
  %298 = load ptr, ptr %22, align 8, !tbaa !5
  %299 = load i64, ptr %298, align 8, !tbaa !9
  %300 = getelementptr inbounds float, ptr %297, i64 %299
  store float 0.000000e+00, ptr %300, align 4, !tbaa !11
  store float 1.000000e+00, ptr %87, align 4, !tbaa !11
  %301 = load ptr, ptr %22, align 8, !tbaa !5
  %302 = load i64, ptr %301, align 8, !tbaa !9
  store i64 %302, ptr %38, align 8, !tbaa !9
  store i64 2, ptr %46, align 8, !tbaa !9
  br label %303

303:                                              ; preds = %379, %295
  %304 = load i64, ptr %46, align 8, !tbaa !9
  %305 = load i64, ptr %38, align 8, !tbaa !9
  %306 = icmp sle i64 %304, %305
  br i1 %306, label %307, label %382

307:                                              ; preds = %303
  %308 = load ptr, ptr %29, align 8, !tbaa !5
  %309 = load i64, ptr %46, align 8, !tbaa !9
  %310 = sub nsw i64 %309, 1
  %311 = getelementptr inbounds float, ptr %308, i64 %310
  %312 = load float, ptr %311, align 4, !tbaa !11
  store float %312, ptr %41, align 4, !tbaa !11
  %313 = load float, ptr %41, align 4, !tbaa !11
  %314 = load float, ptr %41, align 4, !tbaa !11
  %315 = fmul float %313, %314
  store float %315, ptr %64, align 4, !tbaa !11
  %316 = load float, ptr %60, align 4, !tbaa !11
  store float %316, ptr %42, align 4, !tbaa !11
  %317 = load ptr, ptr %28, align 8, !tbaa !5
  %318 = load i64, ptr %46, align 8, !tbaa !9
  %319 = getelementptr inbounds float, ptr %317, i64 %318
  %320 = load float, ptr %319, align 4, !tbaa !11
  %321 = load ptr, ptr %28, align 8, !tbaa !5
  %322 = load i64, ptr %46, align 8, !tbaa !9
  %323 = sub nsw i64 %322, 1
  %324 = getelementptr inbounds float, ptr %321, i64 %323
  %325 = load float, ptr %324, align 4, !tbaa !11
  %326 = fmul float %320, %325
  store float %326, ptr %41, align 4, !tbaa !11
  %327 = load float, ptr %41, align 4, !tbaa !11
  %328 = fcmp oge float %327, 0.000000e+00
  br i1 %328, label %329, label %331

329:                                              ; preds = %307
  %330 = load float, ptr %41, align 4, !tbaa !11
  br label %334

331:                                              ; preds = %307
  %332 = load float, ptr %41, align 4, !tbaa !11
  %333 = fneg float %332
  br label %334

334:                                              ; preds = %331, %329
  %335 = phi float [ %330, %329 ], [ %333, %331 ]
  %336 = fpext float %335 to double
  %337 = load float, ptr %42, align 4, !tbaa !11
  %338 = load float, ptr %42, align 4, !tbaa !11
  %339 = fmul float %337, %338
  %340 = fpext float %339 to double
  %341 = load float, ptr %82, align 4, !tbaa !11
  %342 = fpext float %341 to double
  %343 = call double @llvm.fmuladd.f64(double %336, double %340, double %342)
  %344 = load float, ptr %64, align 4, !tbaa !11
  %345 = fpext float %344 to double
  %346 = fcmp ogt double %343, %345
  br i1 %346, label %347, label %361

347:                                              ; preds = %334
  %348 = load i64, ptr %46, align 8, !tbaa !9
  %349 = sub nsw i64 %348, 1
  %350 = load ptr, ptr %34, align 8, !tbaa !5
  %351 = load ptr, ptr %31, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  %353 = getelementptr inbounds i64, ptr %350, i64 %352
  store i64 %349, ptr %353, align 8, !tbaa !9
  %354 = load ptr, ptr %31, align 8, !tbaa !5
  %355 = load i64, ptr %354, align 8, !tbaa !9
  %356 = add nsw i64 %355, 1
  store i64 %356, ptr %354, align 8, !tbaa !9
  %357 = load ptr, ptr %35, align 8, !tbaa !5
  %358 = load i64, ptr %46, align 8, !tbaa !9
  %359 = sub nsw i64 %358, 1
  %360 = getelementptr inbounds float, ptr %357, i64 %359
  store float 0.000000e+00, ptr %360, align 4, !tbaa !11
  br label %378

361:                                              ; preds = %334
  %362 = load float, ptr %64, align 4, !tbaa !11
  %363 = load ptr, ptr %35, align 8, !tbaa !5
  %364 = load i64, ptr %46, align 8, !tbaa !9
  %365 = sub nsw i64 %364, 1
  %366 = getelementptr inbounds float, ptr %363, i64 %365
  store float %362, ptr %366, align 4, !tbaa !11
  %367 = load float, ptr %87, align 4, !tbaa !11
  %368 = load float, ptr %64, align 4, !tbaa !11
  %369 = fcmp oge float %367, %368
  br i1 %369, label %370, label %372

370:                                              ; preds = %361
  %371 = load float, ptr %87, align 4, !tbaa !11
  br label %374

372:                                              ; preds = %361
  %373 = load float, ptr %64, align 4, !tbaa !11
  br label %374

374:                                              ; preds = %372, %370
  %375 = phi float [ %371, %370 ], [ %373, %372 ]
  %376 = fpext float %375 to double
  %377 = fptrunc double %376 to float
  store float %377, ptr %87, align 4, !tbaa !11
  br label %378

378:                                              ; preds = %374, %347
  br label %379

379:                                              ; preds = %378
  %380 = load i64, ptr %46, align 8, !tbaa !9
  %381 = add nsw i64 %380, 1
  store i64 %381, ptr %46, align 8, !tbaa !9
  br label %303, !llvm.loop !13

382:                                              ; preds = %303
  %383 = load ptr, ptr %22, align 8, !tbaa !5
  %384 = load i64, ptr %383, align 8, !tbaa !9
  %385 = load ptr, ptr %34, align 8, !tbaa !5
  %386 = load ptr, ptr %31, align 8, !tbaa !5
  %387 = load i64, ptr %386, align 8, !tbaa !9
  %388 = getelementptr inbounds i64, ptr %385, i64 %387
  store i64 %384, ptr %388, align 8, !tbaa !9
  %389 = load float, ptr %82, align 4, !tbaa !11
  %390 = load float, ptr %87, align 4, !tbaa !11
  %391 = fmul float %390, %389
  store float %391, ptr %87, align 4, !tbaa !11
  %392 = load i64, ptr %80, align 8, !tbaa !9
  %393 = icmp eq i64 %392, 3
  br i1 %393, label %394, label %752

394:                                              ; preds = %382
  %395 = load ptr, ptr %28, align 8, !tbaa !5
  %396 = getelementptr inbounds float, ptr %395, i64 1
  %397 = load float, ptr %396, align 4, !tbaa !11
  store float %397, ptr %55, align 4, !tbaa !11
  %398 = load ptr, ptr %28, align 8, !tbaa !5
  %399 = getelementptr inbounds float, ptr %398, i64 1
  %400 = load float, ptr %399, align 4, !tbaa !11
  store float %400, ptr %52, align 4, !tbaa !11
  store float 0.000000e+00, ptr %64, align 4, !tbaa !11
  %401 = load ptr, ptr %22, align 8, !tbaa !5
  %402 = load i64, ptr %401, align 8, !tbaa !9
  %403 = sub nsw i64 %402, 1
  store i64 %403, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %46, align 8, !tbaa !9
  br label %404

404:                                              ; preds = %457, %394
  %405 = load i64, ptr %46, align 8, !tbaa !9
  %406 = load i64, ptr %38, align 8, !tbaa !9
  %407 = icmp sle i64 %405, %406
  br i1 %407, label %408, label %460

408:                                              ; preds = %404
  %409 = load ptr, ptr %35, align 8, !tbaa !5
  %410 = load i64, ptr %46, align 8, !tbaa !9
  %411 = getelementptr inbounds float, ptr %409, i64 %410
  %412 = load float, ptr %411, align 4, !tbaa !11
  %413 = fpext float %412 to double
  %414 = call double @sqrt(double noundef %413) #5
  %415 = fptrunc double %414 to float
  store float %415, ptr %65, align 4, !tbaa !11
  %416 = load float, ptr %55, align 4, !tbaa !11
  store float %416, ptr %41, align 4, !tbaa !11
  %417 = load ptr, ptr %28, align 8, !tbaa !5
  %418 = load i64, ptr %46, align 8, !tbaa !9
  %419 = getelementptr inbounds float, ptr %417, i64 %418
  %420 = load float, ptr %419, align 4, !tbaa !11
  %421 = load float, ptr %64, align 4, !tbaa !11
  %422 = fadd float %420, %421
  %423 = load float, ptr %65, align 4, !tbaa !11
  %424 = fadd float %422, %423
  store float %424, ptr %42, align 4, !tbaa !11
  %425 = load float, ptr %41, align 4, !tbaa !11
  %426 = load float, ptr %42, align 4, !tbaa !11
  %427 = fcmp oge float %425, %426
  br i1 %427, label %428, label %430

428:                                              ; preds = %408
  %429 = load float, ptr %41, align 4, !tbaa !11
  br label %432

430:                                              ; preds = %408
  %431 = load float, ptr %42, align 4, !tbaa !11
  br label %432

432:                                              ; preds = %430, %428
  %433 = phi float [ %429, %428 ], [ %431, %430 ]
  %434 = fpext float %433 to double
  %435 = fptrunc double %434 to float
  store float %435, ptr %55, align 4, !tbaa !11
  %436 = load float, ptr %52, align 4, !tbaa !11
  store float %436, ptr %41, align 4, !tbaa !11
  %437 = load ptr, ptr %28, align 8, !tbaa !5
  %438 = load i64, ptr %46, align 8, !tbaa !9
  %439 = getelementptr inbounds float, ptr %437, i64 %438
  %440 = load float, ptr %439, align 4, !tbaa !11
  %441 = load float, ptr %64, align 4, !tbaa !11
  %442 = fsub float %440, %441
  %443 = load float, ptr %65, align 4, !tbaa !11
  %444 = fsub float %442, %443
  store float %444, ptr %42, align 4, !tbaa !11
  %445 = load float, ptr %41, align 4, !tbaa !11
  %446 = load float, ptr %42, align 4, !tbaa !11
  %447 = fcmp ole float %445, %446
  br i1 %447, label %448, label %450

448:                                              ; preds = %432
  %449 = load float, ptr %41, align 4, !tbaa !11
  br label %452

450:                                              ; preds = %432
  %451 = load float, ptr %42, align 4, !tbaa !11
  br label %452

452:                                              ; preds = %450, %448
  %453 = phi float [ %449, %448 ], [ %451, %450 ]
  %454 = fpext float %453 to double
  %455 = fptrunc double %454 to float
  store float %455, ptr %52, align 4, !tbaa !11
  %456 = load float, ptr %65, align 4, !tbaa !11
  store float %456, ptr %64, align 4, !tbaa !11
  br label %457

457:                                              ; preds = %452
  %458 = load i64, ptr %46, align 8, !tbaa !9
  %459 = add nsw i64 %458, 1
  store i64 %459, ptr %46, align 8, !tbaa !9
  br label %404, !llvm.loop !15

460:                                              ; preds = %404
  %461 = load float, ptr %55, align 4, !tbaa !11
  store float %461, ptr %41, align 4, !tbaa !11
  %462 = load ptr, ptr %28, align 8, !tbaa !5
  %463 = load ptr, ptr %22, align 8, !tbaa !5
  %464 = load i64, ptr %463, align 8, !tbaa !9
  %465 = getelementptr inbounds float, ptr %462, i64 %464
  %466 = load float, ptr %465, align 4, !tbaa !11
  %467 = load float, ptr %64, align 4, !tbaa !11
  %468 = fadd float %466, %467
  store float %468, ptr %42, align 4, !tbaa !11
  %469 = load float, ptr %41, align 4, !tbaa !11
  %470 = load float, ptr %42, align 4, !tbaa !11
  %471 = fcmp oge float %469, %470
  br i1 %471, label %472, label %474

472:                                              ; preds = %460
  %473 = load float, ptr %41, align 4, !tbaa !11
  br label %476

474:                                              ; preds = %460
  %475 = load float, ptr %42, align 4, !tbaa !11
  br label %476

476:                                              ; preds = %474, %472
  %477 = phi float [ %473, %472 ], [ %475, %474 ]
  %478 = fpext float %477 to double
  %479 = fptrunc double %478 to float
  store float %479, ptr %55, align 4, !tbaa !11
  %480 = load float, ptr %52, align 4, !tbaa !11
  store float %480, ptr %41, align 4, !tbaa !11
  %481 = load ptr, ptr %28, align 8, !tbaa !5
  %482 = load ptr, ptr %22, align 8, !tbaa !5
  %483 = load i64, ptr %482, align 8, !tbaa !9
  %484 = getelementptr inbounds float, ptr %481, i64 %483
  %485 = load float, ptr %484, align 4, !tbaa !11
  %486 = load float, ptr %64, align 4, !tbaa !11
  %487 = fsub float %485, %486
  store float %487, ptr %42, align 4, !tbaa !11
  %488 = load float, ptr %41, align 4, !tbaa !11
  %489 = load float, ptr %42, align 4, !tbaa !11
  %490 = fcmp ole float %488, %489
  br i1 %490, label %491, label %493

491:                                              ; preds = %476
  %492 = load float, ptr %41, align 4, !tbaa !11
  br label %495

493:                                              ; preds = %476
  %494 = load float, ptr %42, align 4, !tbaa !11
  br label %495

495:                                              ; preds = %493, %491
  %496 = phi float [ %492, %491 ], [ %494, %493 ]
  %497 = fpext float %496 to double
  %498 = fptrunc double %497 to float
  store float %498, ptr %52, align 4, !tbaa !11
  %499 = load float, ptr %52, align 4, !tbaa !11
  %500 = fcmp oge float %499, 0.000000e+00
  br i1 %500, label %501, label %503

501:                                              ; preds = %495
  %502 = load float, ptr %52, align 4, !tbaa !11
  br label %506

503:                                              ; preds = %495
  %504 = load float, ptr %52, align 4, !tbaa !11
  %505 = fneg float %504
  br label %506

506:                                              ; preds = %503, %501
  %507 = phi float [ %502, %501 ], [ %505, %503 ]
  %508 = fpext float %507 to double
  %509 = fptrunc double %508 to float
  store float %509, ptr %41, align 4, !tbaa !11
  %510 = load float, ptr %55, align 4, !tbaa !11
  %511 = fcmp oge float %510, 0.000000e+00
  br i1 %511, label %512, label %514

512:                                              ; preds = %506
  %513 = load float, ptr %55, align 4, !tbaa !11
  br label %517

514:                                              ; preds = %506
  %515 = load float, ptr %55, align 4, !tbaa !11
  %516 = fneg float %515
  br label %517

517:                                              ; preds = %514, %512
  %518 = phi float [ %513, %512 ], [ %516, %514 ]
  %519 = fpext float %518 to double
  %520 = fptrunc double %519 to float
  store float %520, ptr %42, align 4, !tbaa !11
  %521 = load float, ptr %41, align 4, !tbaa !11
  %522 = load float, ptr %42, align 4, !tbaa !11
  %523 = fcmp oge float %521, %522
  br i1 %523, label %524, label %526

524:                                              ; preds = %517
  %525 = load float, ptr %41, align 4, !tbaa !11
  br label %528

526:                                              ; preds = %517
  %527 = load float, ptr %42, align 4, !tbaa !11
  br label %528

528:                                              ; preds = %526, %524
  %529 = phi float [ %525, %524 ], [ %527, %526 ]
  %530 = fpext float %529 to double
  %531 = fptrunc double %530 to float
  store float %531, ptr %78, align 4, !tbaa !11
  %532 = load float, ptr %52, align 4, !tbaa !11
  %533 = load float, ptr %78, align 4, !tbaa !11
  %534 = fmul float %533, 0x4000CCCCC0000000
  %535 = load float, ptr %60, align 4, !tbaa !11
  %536 = fmul float %534, %535
  %537 = load ptr, ptr %22, align 8, !tbaa !5
  %538 = load i64, ptr %537, align 8, !tbaa !9
  %539 = sitofp i64 %538 to float
  %540 = fneg float %536
  %541 = call float @llvm.fmuladd.f32(float %540, float %539, float %532)
  %542 = load float, ptr %87, align 4, !tbaa !11
  %543 = fneg float %542
  %544 = call float @llvm.fmuladd.f32(float %543, float 0x4010CCCCC0000000, float %541)
  store float %544, ptr %52, align 4, !tbaa !11
  %545 = load float, ptr %55, align 4, !tbaa !11
  %546 = load float, ptr %78, align 4, !tbaa !11
  %547 = fmul float %546, 0x4000CCCCC0000000
  %548 = load float, ptr %60, align 4, !tbaa !11
  %549 = fmul float %547, %548
  %550 = load ptr, ptr %22, align 8, !tbaa !5
  %551 = load i64, ptr %550, align 8, !tbaa !9
  %552 = sitofp i64 %551 to float
  %553 = call float @llvm.fmuladd.f32(float %549, float %552, float %545)
  %554 = load float, ptr %87, align 4, !tbaa !11
  %555 = call float @llvm.fmuladd.f32(float %554, float 0x4000CCCCC0000000, float %553)
  store float %555, ptr %55, align 4, !tbaa !11
  %556 = load float, ptr %78, align 4, !tbaa !11
  %557 = load float, ptr %87, align 4, !tbaa !11
  %558 = fadd float %556, %557
  %559 = fpext float %558 to double
  %560 = call double @log(double noundef %559) #5
  %561 = load float, ptr %87, align 4, !tbaa !11
  %562 = fpext float %561 to double
  %563 = call double @log(double noundef %562) #5
  %564 = fsub double %560, %563
  %565 = call double @log(double noundef 2.000000e+00) #5
  %566 = fdiv double %564, %565
  %567 = fptosi double %566 to i64
  %568 = add nsw i64 %567, 2
  store i64 %568, ptr %75, align 8, !tbaa !9
  %569 = load ptr, ptr %27, align 8, !tbaa !5
  %570 = load float, ptr %569, align 4, !tbaa !11
  %571 = fcmp ole float %570, 0.000000e+00
  br i1 %571, label %572, label %576

572:                                              ; preds = %528
  %573 = load float, ptr %60, align 4, !tbaa !11
  %574 = load float, ptr %78, align 4, !tbaa !11
  %575 = fmul float %573, %574
  store float %575, ptr %72, align 4, !tbaa !11
  br label %579

576:                                              ; preds = %528
  %577 = load ptr, ptr %27, align 8, !tbaa !5
  %578 = load float, ptr %577, align 4, !tbaa !11
  store float %578, ptr %72, align 4, !tbaa !11
  br label %579

579:                                              ; preds = %576, %572
  %580 = load float, ptr %52, align 4, !tbaa !11
  %581 = load ptr, ptr %35, align 8, !tbaa !5
  %582 = load ptr, ptr %22, align 8, !tbaa !5
  %583 = load i64, ptr %582, align 8, !tbaa !9
  %584 = add nsw i64 %583, 1
  %585 = getelementptr inbounds float, ptr %581, i64 %584
  store float %580, ptr %585, align 4, !tbaa !11
  %586 = load float, ptr %52, align 4, !tbaa !11
  %587 = load ptr, ptr %35, align 8, !tbaa !5
  %588 = load ptr, ptr %22, align 8, !tbaa !5
  %589 = load i64, ptr %588, align 8, !tbaa !9
  %590 = add nsw i64 %589, 2
  %591 = getelementptr inbounds float, ptr %587, i64 %590
  store float %586, ptr %591, align 4, !tbaa !11
  %592 = load float, ptr %55, align 4, !tbaa !11
  %593 = load ptr, ptr %35, align 8, !tbaa !5
  %594 = load ptr, ptr %22, align 8, !tbaa !5
  %595 = load i64, ptr %594, align 8, !tbaa !9
  %596 = add nsw i64 %595, 3
  %597 = getelementptr inbounds float, ptr %593, i64 %596
  store float %592, ptr %597, align 4, !tbaa !11
  %598 = load float, ptr %55, align 4, !tbaa !11
  %599 = load ptr, ptr %35, align 8, !tbaa !5
  %600 = load ptr, ptr %22, align 8, !tbaa !5
  %601 = load i64, ptr %600, align 8, !tbaa !9
  %602 = add nsw i64 %601, 4
  %603 = getelementptr inbounds float, ptr %599, i64 %602
  store float %598, ptr %603, align 4, !tbaa !11
  %604 = load float, ptr %52, align 4, !tbaa !11
  %605 = load ptr, ptr %35, align 8, !tbaa !5
  %606 = load ptr, ptr %22, align 8, !tbaa !5
  %607 = load i64, ptr %606, align 8, !tbaa !9
  %608 = add nsw i64 %607, 5
  %609 = getelementptr inbounds float, ptr %605, i64 %608
  store float %604, ptr %609, align 4, !tbaa !11
  %610 = load float, ptr %55, align 4, !tbaa !11
  %611 = load ptr, ptr %35, align 8, !tbaa !5
  %612 = load ptr, ptr %22, align 8, !tbaa !5
  %613 = load i64, ptr %612, align 8, !tbaa !9
  %614 = add nsw i64 %613, 6
  %615 = getelementptr inbounds float, ptr %611, i64 %614
  store float %610, ptr %615, align 4, !tbaa !11
  %616 = load ptr, ptr %36, align 8, !tbaa !5
  %617 = getelementptr inbounds i64, ptr %616, i64 1
  store i64 -1, ptr %617, align 8, !tbaa !9
  %618 = load ptr, ptr %36, align 8, !tbaa !5
  %619 = getelementptr inbounds i64, ptr %618, i64 2
  store i64 -1, ptr %619, align 8, !tbaa !9
  %620 = load ptr, ptr %22, align 8, !tbaa !5
  %621 = load i64, ptr %620, align 8, !tbaa !9
  %622 = add nsw i64 %621, 1
  %623 = load ptr, ptr %36, align 8, !tbaa !5
  %624 = getelementptr inbounds i64, ptr %623, i64 3
  store i64 %622, ptr %624, align 8, !tbaa !9
  %625 = load ptr, ptr %22, align 8, !tbaa !5
  %626 = load i64, ptr %625, align 8, !tbaa !9
  %627 = add nsw i64 %626, 1
  %628 = load ptr, ptr %36, align 8, !tbaa !5
  %629 = getelementptr inbounds i64, ptr %628, i64 4
  store i64 %627, ptr %629, align 8, !tbaa !9
  %630 = load ptr, ptr %25, align 8, !tbaa !5
  %631 = load i64, ptr %630, align 8, !tbaa !9
  %632 = sub nsw i64 %631, 1
  %633 = load ptr, ptr %36, align 8, !tbaa !5
  %634 = getelementptr inbounds i64, ptr %633, i64 5
  store i64 %632, ptr %634, align 8, !tbaa !9
  %635 = load ptr, ptr %26, align 8, !tbaa !5
  %636 = load i64, ptr %635, align 8, !tbaa !9
  %637 = load ptr, ptr %36, align 8, !tbaa !5
  %638 = getelementptr inbounds i64, ptr %637, i64 6
  store i64 %636, ptr %638, align 8, !tbaa !9
  %639 = load ptr, ptr %22, align 8, !tbaa !5
  %640 = load ptr, ptr %28, align 8, !tbaa !5
  %641 = getelementptr inbounds float, ptr %640, i64 1
  %642 = load ptr, ptr %29, align 8, !tbaa !5
  %643 = getelementptr inbounds float, ptr %642, i64 1
  %644 = load ptr, ptr %35, align 8, !tbaa !5
  %645 = getelementptr inbounds float, ptr %644, i64 1
  %646 = load ptr, ptr %36, align 8, !tbaa !5
  %647 = getelementptr inbounds i64, ptr %646, i64 5
  %648 = load ptr, ptr %35, align 8, !tbaa !5
  %649 = load ptr, ptr %22, align 8, !tbaa !5
  %650 = load i64, ptr %649, align 8, !tbaa !9
  %651 = add nsw i64 %650, 1
  %652 = getelementptr inbounds float, ptr %648, i64 %651
  %653 = load ptr, ptr %35, align 8, !tbaa !5
  %654 = load ptr, ptr %22, align 8, !tbaa !5
  %655 = load i64, ptr %654, align 8, !tbaa !9
  %656 = add nsw i64 %655, 5
  %657 = getelementptr inbounds float, ptr %653, i64 %656
  %658 = load ptr, ptr %36, align 8, !tbaa !5
  %659 = getelementptr inbounds i64, ptr %658, i64 1
  %660 = load ptr, ptr %32, align 8, !tbaa !5
  %661 = getelementptr inbounds float, ptr %660, i64 1
  %662 = load ptr, ptr %33, align 8, !tbaa !5
  %663 = getelementptr inbounds i64, ptr %662, i64 1
  %664 = call i32 @slaebz_(ptr noundef @c__3, ptr noundef %75, ptr noundef %639, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %51, ptr noundef %72, ptr noundef %77, ptr noundef %87, ptr noundef %641, ptr noundef %643, ptr noundef %645, ptr noundef %647, ptr noundef %652, ptr noundef %657, ptr noundef %68, ptr noundef %659, ptr noundef %661, ptr noundef %663, ptr noundef %71)
  %665 = load ptr, ptr %36, align 8, !tbaa !5
  %666 = getelementptr inbounds i64, ptr %665, i64 6
  %667 = load i64, ptr %666, align 8, !tbaa !9
  %668 = load ptr, ptr %26, align 8, !tbaa !5
  %669 = load i64, ptr %668, align 8, !tbaa !9
  %670 = icmp eq i64 %667, %669
  br i1 %670, label %671, label %702

671:                                              ; preds = %579
  %672 = load ptr, ptr %35, align 8, !tbaa !5
  %673 = load ptr, ptr %22, align 8, !tbaa !5
  %674 = load i64, ptr %673, align 8, !tbaa !9
  %675 = add nsw i64 %674, 1
  %676 = getelementptr inbounds float, ptr %672, i64 %675
  %677 = load float, ptr %676, align 4, !tbaa !11
  store float %677, ptr %57, align 4, !tbaa !11
  %678 = load ptr, ptr %35, align 8, !tbaa !5
  %679 = load ptr, ptr %22, align 8, !tbaa !5
  %680 = load i64, ptr %679, align 8, !tbaa !9
  %681 = add nsw i64 %680, 3
  %682 = getelementptr inbounds float, ptr %678, i64 %681
  %683 = load float, ptr %682, align 4, !tbaa !11
  store float %683, ptr %61, align 4, !tbaa !11
  %684 = load ptr, ptr %36, align 8, !tbaa !5
  %685 = getelementptr inbounds i64, ptr %684, i64 1
  %686 = load i64, ptr %685, align 8, !tbaa !9
  store i64 %686, ptr %59, align 8, !tbaa !9
  %687 = load ptr, ptr %35, align 8, !tbaa !5
  %688 = load ptr, ptr %22, align 8, !tbaa !5
  %689 = load i64, ptr %688, align 8, !tbaa !9
  %690 = add nsw i64 %689, 4
  %691 = getelementptr inbounds float, ptr %687, i64 %690
  %692 = load float, ptr %691, align 4, !tbaa !11
  store float %692, ptr %58, align 4, !tbaa !11
  %693 = load ptr, ptr %35, align 8, !tbaa !5
  %694 = load ptr, ptr %22, align 8, !tbaa !5
  %695 = load i64, ptr %694, align 8, !tbaa !9
  %696 = add nsw i64 %695, 2
  %697 = getelementptr inbounds float, ptr %693, i64 %696
  %698 = load float, ptr %697, align 4, !tbaa !11
  store float %698, ptr %62, align 4, !tbaa !11
  %699 = load ptr, ptr %36, align 8, !tbaa !5
  %700 = getelementptr inbounds i64, ptr %699, i64 4
  %701 = load i64, ptr %700, align 8, !tbaa !9
  store i64 %701, ptr %63, align 8, !tbaa !9
  br label %733

702:                                              ; preds = %579
  %703 = load ptr, ptr %35, align 8, !tbaa !5
  %704 = load ptr, ptr %22, align 8, !tbaa !5
  %705 = load i64, ptr %704, align 8, !tbaa !9
  %706 = add nsw i64 %705, 2
  %707 = getelementptr inbounds float, ptr %703, i64 %706
  %708 = load float, ptr %707, align 4, !tbaa !11
  store float %708, ptr %57, align 4, !tbaa !11
  %709 = load ptr, ptr %35, align 8, !tbaa !5
  %710 = load ptr, ptr %22, align 8, !tbaa !5
  %711 = load i64, ptr %710, align 8, !tbaa !9
  %712 = add nsw i64 %711, 4
  %713 = getelementptr inbounds float, ptr %709, i64 %712
  %714 = load float, ptr %713, align 4, !tbaa !11
  store float %714, ptr %61, align 4, !tbaa !11
  %715 = load ptr, ptr %36, align 8, !tbaa !5
  %716 = getelementptr inbounds i64, ptr %715, i64 2
  %717 = load i64, ptr %716, align 8, !tbaa !9
  store i64 %717, ptr %59, align 8, !tbaa !9
  %718 = load ptr, ptr %35, align 8, !tbaa !5
  %719 = load ptr, ptr %22, align 8, !tbaa !5
  %720 = load i64, ptr %719, align 8, !tbaa !9
  %721 = add nsw i64 %720, 3
  %722 = getelementptr inbounds float, ptr %718, i64 %721
  %723 = load float, ptr %722, align 4, !tbaa !11
  store float %723, ptr %58, align 4, !tbaa !11
  %724 = load ptr, ptr %35, align 8, !tbaa !5
  %725 = load ptr, ptr %22, align 8, !tbaa !5
  %726 = load i64, ptr %725, align 8, !tbaa !9
  %727 = add nsw i64 %726, 1
  %728 = getelementptr inbounds float, ptr %724, i64 %727
  %729 = load float, ptr %728, align 4, !tbaa !11
  store float %729, ptr %62, align 4, !tbaa !11
  %730 = load ptr, ptr %36, align 8, !tbaa !5
  %731 = getelementptr inbounds i64, ptr %730, i64 3
  %732 = load i64, ptr %731, align 8, !tbaa !9
  store i64 %732, ptr %63, align 8, !tbaa !9
  br label %733

733:                                              ; preds = %702, %671
  %734 = load i64, ptr %59, align 8, !tbaa !9
  %735 = icmp slt i64 %734, 0
  br i1 %735, label %749, label %736

736:                                              ; preds = %733
  %737 = load i64, ptr %59, align 8, !tbaa !9
  %738 = load ptr, ptr %22, align 8, !tbaa !5
  %739 = load i64, ptr %738, align 8, !tbaa !9
  %740 = icmp sge i64 %737, %739
  br i1 %740, label %749, label %741

741:                                              ; preds = %736
  %742 = load i64, ptr %63, align 8, !tbaa !9
  %743 = icmp slt i64 %742, 1
  br i1 %743, label %749, label %744

744:                                              ; preds = %741
  %745 = load i64, ptr %63, align 8, !tbaa !9
  %746 = load ptr, ptr %22, align 8, !tbaa !5
  %747 = load i64, ptr %746, align 8, !tbaa !9
  %748 = icmp sgt i64 %745, %747
  br i1 %748, label %749, label %751

749:                                              ; preds = %744, %741, %736, %733
  %750 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 4, ptr %750, align 8, !tbaa !9
  store i32 0, ptr %19, align 4
  store i32 1, ptr %89, align 4
  br label %1790

751:                                              ; preds = %744
  br label %921

752:                                              ; preds = %382
  %753 = load ptr, ptr %28, align 8, !tbaa !5
  %754 = getelementptr inbounds float, ptr %753, i64 1
  %755 = load float, ptr %754, align 4, !tbaa !11
  %756 = fcmp oge float %755, 0.000000e+00
  br i1 %756, label %757, label %761

757:                                              ; preds = %752
  %758 = load ptr, ptr %28, align 8, !tbaa !5
  %759 = getelementptr inbounds float, ptr %758, i64 1
  %760 = load float, ptr %759, align 4, !tbaa !11
  br label %766

761:                                              ; preds = %752
  %762 = load ptr, ptr %28, align 8, !tbaa !5
  %763 = getelementptr inbounds float, ptr %762, i64 1
  %764 = load float, ptr %763, align 4, !tbaa !11
  %765 = fneg float %764
  br label %766

766:                                              ; preds = %761, %757
  %767 = phi float [ %760, %757 ], [ %765, %761 ]
  %768 = fpext float %767 to double
  %769 = load ptr, ptr %29, align 8, !tbaa !5
  %770 = getelementptr inbounds float, ptr %769, i64 1
  %771 = load float, ptr %770, align 4, !tbaa !11
  %772 = fcmp oge float %771, 0.000000e+00
  br i1 %772, label %773, label %777

773:                                              ; preds = %766
  %774 = load ptr, ptr %29, align 8, !tbaa !5
  %775 = getelementptr inbounds float, ptr %774, i64 1
  %776 = load float, ptr %775, align 4, !tbaa !11
  br label %782

777:                                              ; preds = %766
  %778 = load ptr, ptr %29, align 8, !tbaa !5
  %779 = getelementptr inbounds float, ptr %778, i64 1
  %780 = load float, ptr %779, align 4, !tbaa !11
  %781 = fneg float %780
  br label %782

782:                                              ; preds = %777, %773
  %783 = phi float [ %776, %773 ], [ %781, %777 ]
  %784 = fpext float %783 to double
  %785 = fadd double %768, %784
  %786 = fptrunc double %785 to float
  store float %786, ptr %43, align 4, !tbaa !11
  %787 = load ptr, ptr %28, align 8, !tbaa !5
  %788 = load ptr, ptr %22, align 8, !tbaa !5
  %789 = load i64, ptr %788, align 8, !tbaa !9
  %790 = getelementptr inbounds float, ptr %787, i64 %789
  %791 = load float, ptr %790, align 4, !tbaa !11
  store float %791, ptr %41, align 4, !tbaa !11
  %792 = load float, ptr %41, align 4, !tbaa !11
  %793 = fcmp oge float %792, 0.000000e+00
  br i1 %793, label %794, label %796

794:                                              ; preds = %782
  %795 = load float, ptr %41, align 4, !tbaa !11
  br label %799

796:                                              ; preds = %782
  %797 = load float, ptr %41, align 4, !tbaa !11
  %798 = fneg float %797
  br label %799

799:                                              ; preds = %796, %794
  %800 = phi float [ %795, %794 ], [ %798, %796 ]
  %801 = fpext float %800 to double
  %802 = load ptr, ptr %29, align 8, !tbaa !5
  %803 = load ptr, ptr %22, align 8, !tbaa !5
  %804 = load i64, ptr %803, align 8, !tbaa !9
  %805 = sub nsw i64 %804, 1
  %806 = getelementptr inbounds float, ptr %802, i64 %805
  %807 = load float, ptr %806, align 4, !tbaa !11
  store float %807, ptr %42, align 4, !tbaa !11
  %808 = load float, ptr %42, align 4, !tbaa !11
  %809 = fcmp oge float %808, 0.000000e+00
  br i1 %809, label %810, label %812

810:                                              ; preds = %799
  %811 = load float, ptr %42, align 4, !tbaa !11
  br label %815

812:                                              ; preds = %799
  %813 = load float, ptr %42, align 4, !tbaa !11
  %814 = fneg float %813
  br label %815

815:                                              ; preds = %812, %810
  %816 = phi float [ %811, %810 ], [ %814, %812 ]
  %817 = fpext float %816 to double
  %818 = fadd double %801, %817
  %819 = fptrunc double %818 to float
  store float %819, ptr %44, align 4, !tbaa !11
  %820 = load float, ptr %43, align 4, !tbaa !11
  %821 = load float, ptr %44, align 4, !tbaa !11
  %822 = fcmp oge float %820, %821
  br i1 %822, label %823, label %825

823:                                              ; preds = %815
  %824 = load float, ptr %43, align 4, !tbaa !11
  br label %827

825:                                              ; preds = %815
  %826 = load float, ptr %44, align 4, !tbaa !11
  br label %827

827:                                              ; preds = %825, %823
  %828 = phi float [ %824, %823 ], [ %826, %825 ]
  %829 = fpext float %828 to double
  %830 = fptrunc double %829 to float
  store float %830, ptr %78, align 4, !tbaa !11
  %831 = load ptr, ptr %22, align 8, !tbaa !5
  %832 = load i64, ptr %831, align 8, !tbaa !9
  %833 = sub nsw i64 %832, 1
  store i64 %833, ptr %38, align 8, !tbaa !9
  store i64 2, ptr %46, align 8, !tbaa !9
  br label %834

834:                                              ; preds = %897, %827
  %835 = load i64, ptr %46, align 8, !tbaa !9
  %836 = load i64, ptr %38, align 8, !tbaa !9
  %837 = icmp sle i64 %835, %836
  br i1 %837, label %838, label %900

838:                                              ; preds = %834
  %839 = load float, ptr %78, align 4, !tbaa !11
  store float %839, ptr %44, align 4, !tbaa !11
  %840 = load ptr, ptr %28, align 8, !tbaa !5
  %841 = load i64, ptr %46, align 8, !tbaa !9
  %842 = getelementptr inbounds float, ptr %840, i64 %841
  %843 = load float, ptr %842, align 4, !tbaa !11
  store float %843, ptr %41, align 4, !tbaa !11
  %844 = load float, ptr %41, align 4, !tbaa !11
  %845 = fcmp oge float %844, 0.000000e+00
  br i1 %845, label %846, label %848

846:                                              ; preds = %838
  %847 = load float, ptr %41, align 4, !tbaa !11
  br label %851

848:                                              ; preds = %838
  %849 = load float, ptr %41, align 4, !tbaa !11
  %850 = fneg float %849
  br label %851

851:                                              ; preds = %848, %846
  %852 = phi float [ %847, %846 ], [ %850, %848 ]
  %853 = fpext float %852 to double
  %854 = load ptr, ptr %29, align 8, !tbaa !5
  %855 = load i64, ptr %46, align 8, !tbaa !9
  %856 = sub nsw i64 %855, 1
  %857 = getelementptr inbounds float, ptr %854, i64 %856
  %858 = load float, ptr %857, align 4, !tbaa !11
  store float %858, ptr %42, align 4, !tbaa !11
  %859 = load float, ptr %42, align 4, !tbaa !11
  %860 = fcmp oge float %859, 0.000000e+00
  br i1 %860, label %861, label %863

861:                                              ; preds = %851
  %862 = load float, ptr %42, align 4, !tbaa !11
  br label %866

863:                                              ; preds = %851
  %864 = load float, ptr %42, align 4, !tbaa !11
  %865 = fneg float %864
  br label %866

866:                                              ; preds = %863, %861
  %867 = phi float [ %862, %861 ], [ %865, %863 ]
  %868 = fpext float %867 to double
  %869 = fadd double %853, %868
  %870 = load ptr, ptr %29, align 8, !tbaa !5
  %871 = load i64, ptr %46, align 8, !tbaa !9
  %872 = getelementptr inbounds float, ptr %870, i64 %871
  %873 = load float, ptr %872, align 4, !tbaa !11
  store float %873, ptr %43, align 4, !tbaa !11
  %874 = load float, ptr %43, align 4, !tbaa !11
  %875 = fcmp oge float %874, 0.000000e+00
  br i1 %875, label %876, label %878

876:                                              ; preds = %866
  %877 = load float, ptr %43, align 4, !tbaa !11
  br label %881

878:                                              ; preds = %866
  %879 = load float, ptr %43, align 4, !tbaa !11
  %880 = fneg float %879
  br label %881

881:                                              ; preds = %878, %876
  %882 = phi float [ %877, %876 ], [ %880, %878 ]
  %883 = fpext float %882 to double
  %884 = fadd double %869, %883
  %885 = fptrunc double %884 to float
  store float %885, ptr %45, align 4, !tbaa !11
  %886 = load float, ptr %44, align 4, !tbaa !11
  %887 = load float, ptr %45, align 4, !tbaa !11
  %888 = fcmp oge float %886, %887
  br i1 %888, label %889, label %891

889:                                              ; preds = %881
  %890 = load float, ptr %44, align 4, !tbaa !11
  br label %893

891:                                              ; preds = %881
  %892 = load float, ptr %45, align 4, !tbaa !11
  br label %893

893:                                              ; preds = %891, %889
  %894 = phi float [ %890, %889 ], [ %892, %891 ]
  %895 = fpext float %894 to double
  %896 = fptrunc double %895 to float
  store float %896, ptr %78, align 4, !tbaa !11
  br label %897

897:                                              ; preds = %893
  %898 = load i64, ptr %46, align 8, !tbaa !9
  %899 = add nsw i64 %898, 1
  store i64 %899, ptr %46, align 8, !tbaa !9
  br label %834, !llvm.loop !16

900:                                              ; preds = %834
  %901 = load ptr, ptr %27, align 8, !tbaa !5
  %902 = load float, ptr %901, align 4, !tbaa !11
  %903 = fcmp ole float %902, 0.000000e+00
  br i1 %903, label %904, label %908

904:                                              ; preds = %900
  %905 = load float, ptr %60, align 4, !tbaa !11
  %906 = load float, ptr %78, align 4, !tbaa !11
  %907 = fmul float %905, %906
  store float %907, ptr %72, align 4, !tbaa !11
  br label %911

908:                                              ; preds = %900
  %909 = load ptr, ptr %27, align 8, !tbaa !5
  %910 = load float, ptr %909, align 4, !tbaa !11
  store float %910, ptr %72, align 4, !tbaa !11
  br label %911

911:                                              ; preds = %908, %904
  %912 = load i64, ptr %80, align 8, !tbaa !9
  %913 = icmp eq i64 %912, 2
  br i1 %913, label %914, label %919

914:                                              ; preds = %911
  %915 = load ptr, ptr %23, align 8, !tbaa !5
  %916 = load float, ptr %915, align 4, !tbaa !11
  store float %916, ptr %57, align 4, !tbaa !11
  %917 = load ptr, ptr %24, align 8, !tbaa !5
  %918 = load float, ptr %917, align 4, !tbaa !11
  store float %918, ptr %58, align 4, !tbaa !11
  br label %920

919:                                              ; preds = %911
  store float 0.000000e+00, ptr %57, align 4, !tbaa !11
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  br label %920

920:                                              ; preds = %919, %914
  br label %921

921:                                              ; preds = %920, %751
  %922 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 0, ptr %922, align 8, !tbaa !9
  store i64 0, ptr %66, align 8, !tbaa !9
  %923 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 0, ptr %923, align 8, !tbaa !9
  store i64 0, ptr %59, align 8, !tbaa !9
  store i64 0, ptr %63, align 8, !tbaa !9
  %924 = load ptr, ptr %31, align 8, !tbaa !5
  %925 = load i64, ptr %924, align 8, !tbaa !9
  store i64 %925, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %926

926:                                              ; preds = %1462, %921
  %927 = load i64, ptr %48, align 8, !tbaa !9
  %928 = load i64, ptr %38, align 8, !tbaa !9
  %929 = icmp sle i64 %927, %928
  br i1 %929, label %930, label %1465

930:                                              ; preds = %926
  %931 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %931, ptr %67, align 8, !tbaa !9
  %932 = load i64, ptr %67, align 8, !tbaa !9
  %933 = add nsw i64 %932, 1
  store i64 %933, ptr %79, align 8, !tbaa !9
  %934 = load ptr, ptr %34, align 8, !tbaa !5
  %935 = load i64, ptr %48, align 8, !tbaa !9
  %936 = getelementptr inbounds i64, ptr %934, i64 %935
  %937 = load i64, ptr %936, align 8, !tbaa !9
  store i64 %937, ptr %66, align 8, !tbaa !9
  %938 = load i64, ptr %66, align 8, !tbaa !9
  %939 = load i64, ptr %67, align 8, !tbaa !9
  %940 = sub nsw i64 %938, %939
  store i64 %940, ptr %54, align 8, !tbaa !9
  %941 = load i64, ptr %54, align 8, !tbaa !9
  %942 = icmp eq i64 %941, 1
  br i1 %942, label %943, label %1012

943:                                              ; preds = %930
  %944 = load i64, ptr %80, align 8, !tbaa !9
  %945 = icmp eq i64 %944, 1
  br i1 %945, label %955, label %946

946:                                              ; preds = %943
  %947 = load float, ptr %57, align 4, !tbaa !11
  %948 = load ptr, ptr %28, align 8, !tbaa !5
  %949 = load i64, ptr %79, align 8, !tbaa !9
  %950 = getelementptr inbounds float, ptr %948, i64 %949
  %951 = load float, ptr %950, align 4, !tbaa !11
  %952 = load float, ptr %87, align 4, !tbaa !11
  %953 = fsub float %951, %952
  %954 = fcmp oge float %947, %953
  br i1 %954, label %955, label %958

955:                                              ; preds = %946, %943
  %956 = load i64, ptr %59, align 8, !tbaa !9
  %957 = add nsw i64 %956, 1
  store i64 %957, ptr %59, align 8, !tbaa !9
  br label %958

958:                                              ; preds = %955, %946
  %959 = load i64, ptr %80, align 8, !tbaa !9
  %960 = icmp eq i64 %959, 1
  br i1 %960, label %970, label %961

961:                                              ; preds = %958
  %962 = load float, ptr %58, align 4, !tbaa !11
  %963 = load ptr, ptr %28, align 8, !tbaa !5
  %964 = load i64, ptr %79, align 8, !tbaa !9
  %965 = getelementptr inbounds float, ptr %963, i64 %964
  %966 = load float, ptr %965, align 4, !tbaa !11
  %967 = load float, ptr %87, align 4, !tbaa !11
  %968 = fsub float %966, %967
  %969 = fcmp oge float %962, %968
  br i1 %969, label %970, label %973

970:                                              ; preds = %961, %958
  %971 = load i64, ptr %63, align 8, !tbaa !9
  %972 = add nsw i64 %971, 1
  store i64 %972, ptr %63, align 8, !tbaa !9
  br label %973

973:                                              ; preds = %970, %961
  %974 = load i64, ptr %80, align 8, !tbaa !9
  %975 = icmp eq i64 %974, 1
  br i1 %975, label %994, label %976

976:                                              ; preds = %973
  %977 = load float, ptr %57, align 4, !tbaa !11
  %978 = load ptr, ptr %28, align 8, !tbaa !5
  %979 = load i64, ptr %79, align 8, !tbaa !9
  %980 = getelementptr inbounds float, ptr %978, i64 %979
  %981 = load float, ptr %980, align 4, !tbaa !11
  %982 = load float, ptr %87, align 4, !tbaa !11
  %983 = fsub float %981, %982
  %984 = fcmp olt float %977, %983
  br i1 %984, label %985, label %1011

985:                                              ; preds = %976
  %986 = load float, ptr %58, align 4, !tbaa !11
  %987 = load ptr, ptr %28, align 8, !tbaa !5
  %988 = load i64, ptr %79, align 8, !tbaa !9
  %989 = getelementptr inbounds float, ptr %987, i64 %988
  %990 = load float, ptr %989, align 4, !tbaa !11
  %991 = load float, ptr %87, align 4, !tbaa !11
  %992 = fsub float %990, %991
  %993 = fcmp oge float %986, %992
  br i1 %993, label %994, label %1011

994:                                              ; preds = %985, %973
  %995 = load ptr, ptr %30, align 8, !tbaa !5
  %996 = load i64, ptr %995, align 8, !tbaa !9
  %997 = add nsw i64 %996, 1
  store i64 %997, ptr %995, align 8, !tbaa !9
  %998 = load ptr, ptr %28, align 8, !tbaa !5
  %999 = load i64, ptr %79, align 8, !tbaa !9
  %1000 = getelementptr inbounds float, ptr %998, i64 %999
  %1001 = load float, ptr %1000, align 4, !tbaa !11
  %1002 = load ptr, ptr %32, align 8, !tbaa !5
  %1003 = load ptr, ptr %30, align 8, !tbaa !5
  %1004 = load i64, ptr %1003, align 8, !tbaa !9
  %1005 = getelementptr inbounds float, ptr %1002, i64 %1004
  store float %1001, ptr %1005, align 4, !tbaa !11
  %1006 = load i64, ptr %48, align 8, !tbaa !9
  %1007 = load ptr, ptr %33, align 8, !tbaa !5
  %1008 = load ptr, ptr %30, align 8, !tbaa !5
  %1009 = load i64, ptr %1008, align 8, !tbaa !9
  %1010 = getelementptr inbounds i64, ptr %1007, i64 %1009
  store i64 %1006, ptr %1010, align 8, !tbaa !9
  br label %1011

1011:                                             ; preds = %994, %985, %976
  br label %1460

1012:                                             ; preds = %930
  %1013 = load ptr, ptr %28, align 8, !tbaa !5
  %1014 = load i64, ptr %79, align 8, !tbaa !9
  %1015 = getelementptr inbounds float, ptr %1013, i64 %1014
  %1016 = load float, ptr %1015, align 4, !tbaa !11
  store float %1016, ptr %55, align 4, !tbaa !11
  %1017 = load ptr, ptr %28, align 8, !tbaa !5
  %1018 = load i64, ptr %79, align 8, !tbaa !9
  %1019 = getelementptr inbounds float, ptr %1017, i64 %1018
  %1020 = load float, ptr %1019, align 4, !tbaa !11
  store float %1020, ptr %52, align 4, !tbaa !11
  store float 0.000000e+00, ptr %64, align 4, !tbaa !11
  %1021 = load i64, ptr %66, align 8, !tbaa !9
  %1022 = sub nsw i64 %1021, 1
  store i64 %1022, ptr %39, align 8, !tbaa !9
  %1023 = load i64, ptr %79, align 8, !tbaa !9
  store i64 %1023, ptr %46, align 8, !tbaa !9
  br label %1024

1024:                                             ; preds = %1085, %1012
  %1025 = load i64, ptr %46, align 8, !tbaa !9
  %1026 = load i64, ptr %39, align 8, !tbaa !9
  %1027 = icmp sle i64 %1025, %1026
  br i1 %1027, label %1028, label %1088

1028:                                             ; preds = %1024
  %1029 = load ptr, ptr %29, align 8, !tbaa !5
  %1030 = load i64, ptr %46, align 8, !tbaa !9
  %1031 = getelementptr inbounds float, ptr %1029, i64 %1030
  %1032 = load float, ptr %1031, align 4, !tbaa !11
  store float %1032, ptr %41, align 4, !tbaa !11
  %1033 = load float, ptr %41, align 4, !tbaa !11
  %1034 = fcmp oge float %1033, 0.000000e+00
  br i1 %1034, label %1035, label %1037

1035:                                             ; preds = %1028
  %1036 = load float, ptr %41, align 4, !tbaa !11
  br label %1040

1037:                                             ; preds = %1028
  %1038 = load float, ptr %41, align 4, !tbaa !11
  %1039 = fneg float %1038
  br label %1040

1040:                                             ; preds = %1037, %1035
  %1041 = phi float [ %1036, %1035 ], [ %1039, %1037 ]
  %1042 = fpext float %1041 to double
  %1043 = fptrunc double %1042 to float
  store float %1043, ptr %65, align 4, !tbaa !11
  %1044 = load float, ptr %55, align 4, !tbaa !11
  store float %1044, ptr %41, align 4, !tbaa !11
  %1045 = load ptr, ptr %28, align 8, !tbaa !5
  %1046 = load i64, ptr %46, align 8, !tbaa !9
  %1047 = getelementptr inbounds float, ptr %1045, i64 %1046
  %1048 = load float, ptr %1047, align 4, !tbaa !11
  %1049 = load float, ptr %64, align 4, !tbaa !11
  %1050 = fadd float %1048, %1049
  %1051 = load float, ptr %65, align 4, !tbaa !11
  %1052 = fadd float %1050, %1051
  store float %1052, ptr %42, align 4, !tbaa !11
  %1053 = load float, ptr %41, align 4, !tbaa !11
  %1054 = load float, ptr %42, align 4, !tbaa !11
  %1055 = fcmp oge float %1053, %1054
  br i1 %1055, label %1056, label %1058

1056:                                             ; preds = %1040
  %1057 = load float, ptr %41, align 4, !tbaa !11
  br label %1060

1058:                                             ; preds = %1040
  %1059 = load float, ptr %42, align 4, !tbaa !11
  br label %1060

1060:                                             ; preds = %1058, %1056
  %1061 = phi float [ %1057, %1056 ], [ %1059, %1058 ]
  %1062 = fpext float %1061 to double
  %1063 = fptrunc double %1062 to float
  store float %1063, ptr %55, align 4, !tbaa !11
  %1064 = load float, ptr %52, align 4, !tbaa !11
  store float %1064, ptr %41, align 4, !tbaa !11
  %1065 = load ptr, ptr %28, align 8, !tbaa !5
  %1066 = load i64, ptr %46, align 8, !tbaa !9
  %1067 = getelementptr inbounds float, ptr %1065, i64 %1066
  %1068 = load float, ptr %1067, align 4, !tbaa !11
  %1069 = load float, ptr %64, align 4, !tbaa !11
  %1070 = fsub float %1068, %1069
  %1071 = load float, ptr %65, align 4, !tbaa !11
  %1072 = fsub float %1070, %1071
  store float %1072, ptr %42, align 4, !tbaa !11
  %1073 = load float, ptr %41, align 4, !tbaa !11
  %1074 = load float, ptr %42, align 4, !tbaa !11
  %1075 = fcmp ole float %1073, %1074
  br i1 %1075, label %1076, label %1078

1076:                                             ; preds = %1060
  %1077 = load float, ptr %41, align 4, !tbaa !11
  br label %1080

1078:                                             ; preds = %1060
  %1079 = load float, ptr %42, align 4, !tbaa !11
  br label %1080

1080:                                             ; preds = %1078, %1076
  %1081 = phi float [ %1077, %1076 ], [ %1079, %1078 ]
  %1082 = fpext float %1081 to double
  %1083 = fptrunc double %1082 to float
  store float %1083, ptr %52, align 4, !tbaa !11
  %1084 = load float, ptr %65, align 4, !tbaa !11
  store float %1084, ptr %64, align 4, !tbaa !11
  br label %1085

1085:                                             ; preds = %1080
  %1086 = load i64, ptr %46, align 8, !tbaa !9
  %1087 = add nsw i64 %1086, 1
  store i64 %1087, ptr %46, align 8, !tbaa !9
  br label %1024, !llvm.loop !17

1088:                                             ; preds = %1024
  %1089 = load float, ptr %55, align 4, !tbaa !11
  store float %1089, ptr %41, align 4, !tbaa !11
  %1090 = load ptr, ptr %28, align 8, !tbaa !5
  %1091 = load i64, ptr %66, align 8, !tbaa !9
  %1092 = getelementptr inbounds float, ptr %1090, i64 %1091
  %1093 = load float, ptr %1092, align 4, !tbaa !11
  %1094 = load float, ptr %64, align 4, !tbaa !11
  %1095 = fadd float %1093, %1094
  store float %1095, ptr %42, align 4, !tbaa !11
  %1096 = load float, ptr %41, align 4, !tbaa !11
  %1097 = load float, ptr %42, align 4, !tbaa !11
  %1098 = fcmp oge float %1096, %1097
  br i1 %1098, label %1099, label %1101

1099:                                             ; preds = %1088
  %1100 = load float, ptr %41, align 4, !tbaa !11
  br label %1103

1101:                                             ; preds = %1088
  %1102 = load float, ptr %42, align 4, !tbaa !11
  br label %1103

1103:                                             ; preds = %1101, %1099
  %1104 = phi float [ %1100, %1099 ], [ %1102, %1101 ]
  %1105 = fpext float %1104 to double
  %1106 = fptrunc double %1105 to float
  store float %1106, ptr %55, align 4, !tbaa !11
  %1107 = load float, ptr %52, align 4, !tbaa !11
  store float %1107, ptr %41, align 4, !tbaa !11
  %1108 = load ptr, ptr %28, align 8, !tbaa !5
  %1109 = load i64, ptr %66, align 8, !tbaa !9
  %1110 = getelementptr inbounds float, ptr %1108, i64 %1109
  %1111 = load float, ptr %1110, align 4, !tbaa !11
  %1112 = load float, ptr %64, align 4, !tbaa !11
  %1113 = fsub float %1111, %1112
  store float %1113, ptr %42, align 4, !tbaa !11
  %1114 = load float, ptr %41, align 4, !tbaa !11
  %1115 = load float, ptr %42, align 4, !tbaa !11
  %1116 = fcmp ole float %1114, %1115
  br i1 %1116, label %1117, label %1119

1117:                                             ; preds = %1103
  %1118 = load float, ptr %41, align 4, !tbaa !11
  br label %1121

1119:                                             ; preds = %1103
  %1120 = load float, ptr %42, align 4, !tbaa !11
  br label %1121

1121:                                             ; preds = %1119, %1117
  %1122 = phi float [ %1118, %1117 ], [ %1120, %1119 ]
  %1123 = fpext float %1122 to double
  %1124 = fptrunc double %1123 to float
  store float %1124, ptr %52, align 4, !tbaa !11
  %1125 = load float, ptr %52, align 4, !tbaa !11
  %1126 = fcmp oge float %1125, 0.000000e+00
  br i1 %1126, label %1127, label %1129

1127:                                             ; preds = %1121
  %1128 = load float, ptr %52, align 4, !tbaa !11
  br label %1132

1129:                                             ; preds = %1121
  %1130 = load float, ptr %52, align 4, !tbaa !11
  %1131 = fneg float %1130
  br label %1132

1132:                                             ; preds = %1129, %1127
  %1133 = phi float [ %1128, %1127 ], [ %1131, %1129 ]
  %1134 = fpext float %1133 to double
  %1135 = fptrunc double %1134 to float
  store float %1135, ptr %41, align 4, !tbaa !11
  %1136 = load float, ptr %55, align 4, !tbaa !11
  %1137 = fcmp oge float %1136, 0.000000e+00
  br i1 %1137, label %1138, label %1140

1138:                                             ; preds = %1132
  %1139 = load float, ptr %55, align 4, !tbaa !11
  br label %1143

1140:                                             ; preds = %1132
  %1141 = load float, ptr %55, align 4, !tbaa !11
  %1142 = fneg float %1141
  br label %1143

1143:                                             ; preds = %1140, %1138
  %1144 = phi float [ %1139, %1138 ], [ %1142, %1140 ]
  %1145 = fpext float %1144 to double
  %1146 = fptrunc double %1145 to float
  store float %1146, ptr %42, align 4, !tbaa !11
  %1147 = load float, ptr %41, align 4, !tbaa !11
  %1148 = load float, ptr %42, align 4, !tbaa !11
  %1149 = fcmp oge float %1147, %1148
  br i1 %1149, label %1150, label %1152

1150:                                             ; preds = %1143
  %1151 = load float, ptr %41, align 4, !tbaa !11
  br label %1154

1152:                                             ; preds = %1143
  %1153 = load float, ptr %42, align 4, !tbaa !11
  br label %1154

1154:                                             ; preds = %1152, %1150
  %1155 = phi float [ %1151, %1150 ], [ %1153, %1152 ]
  %1156 = fpext float %1155 to double
  %1157 = fptrunc double %1156 to float
  store float %1157, ptr %74, align 4, !tbaa !11
  %1158 = load float, ptr %52, align 4, !tbaa !11
  %1159 = load float, ptr %74, align 4, !tbaa !11
  %1160 = fmul float %1159, 0x4000CCCCC0000000
  %1161 = load float, ptr %60, align 4, !tbaa !11
  %1162 = fmul float %1160, %1161
  %1163 = load i64, ptr %54, align 8, !tbaa !9
  %1164 = sitofp i64 %1163 to float
  %1165 = fneg float %1162
  %1166 = call float @llvm.fmuladd.f32(float %1165, float %1164, float %1158)
  %1167 = load float, ptr %87, align 4, !tbaa !11
  %1168 = fneg float %1167
  %1169 = call float @llvm.fmuladd.f32(float %1168, float 0x4000CCCCC0000000, float %1166)
  store float %1169, ptr %52, align 4, !tbaa !11
  %1170 = load float, ptr %55, align 4, !tbaa !11
  %1171 = load float, ptr %74, align 4, !tbaa !11
  %1172 = fmul float %1171, 0x4000CCCCC0000000
  %1173 = load float, ptr %60, align 4, !tbaa !11
  %1174 = fmul float %1172, %1173
  %1175 = load i64, ptr %54, align 8, !tbaa !9
  %1176 = sitofp i64 %1175 to float
  %1177 = call float @llvm.fmuladd.f32(float %1174, float %1176, float %1170)
  %1178 = load float, ptr %87, align 4, !tbaa !11
  %1179 = call float @llvm.fmuladd.f32(float %1178, float 0x4000CCCCC0000000, float %1177)
  store float %1179, ptr %55, align 4, !tbaa !11
  %1180 = load ptr, ptr %27, align 8, !tbaa !5
  %1181 = load float, ptr %1180, align 4, !tbaa !11
  %1182 = fcmp ole float %1181, 0.000000e+00
  br i1 %1182, label %1183, label %1220

1183:                                             ; preds = %1154
  %1184 = load float, ptr %52, align 4, !tbaa !11
  %1185 = fcmp oge float %1184, 0.000000e+00
  br i1 %1185, label %1186, label %1188

1186:                                             ; preds = %1183
  %1187 = load float, ptr %52, align 4, !tbaa !11
  br label %1191

1188:                                             ; preds = %1183
  %1189 = load float, ptr %52, align 4, !tbaa !11
  %1190 = fneg float %1189
  br label %1191

1191:                                             ; preds = %1188, %1186
  %1192 = phi float [ %1187, %1186 ], [ %1190, %1188 ]
  %1193 = fpext float %1192 to double
  %1194 = fptrunc double %1193 to float
  store float %1194, ptr %41, align 4, !tbaa !11
  %1195 = load float, ptr %55, align 4, !tbaa !11
  %1196 = fcmp oge float %1195, 0.000000e+00
  br i1 %1196, label %1197, label %1199

1197:                                             ; preds = %1191
  %1198 = load float, ptr %55, align 4, !tbaa !11
  br label %1202

1199:                                             ; preds = %1191
  %1200 = load float, ptr %55, align 4, !tbaa !11
  %1201 = fneg float %1200
  br label %1202

1202:                                             ; preds = %1199, %1197
  %1203 = phi float [ %1198, %1197 ], [ %1201, %1199 ]
  %1204 = fpext float %1203 to double
  %1205 = fptrunc double %1204 to float
  store float %1205, ptr %42, align 4, !tbaa !11
  %1206 = load float, ptr %60, align 4, !tbaa !11
  %1207 = fpext float %1206 to double
  %1208 = load float, ptr %41, align 4, !tbaa !11
  %1209 = load float, ptr %42, align 4, !tbaa !11
  %1210 = fcmp oge float %1208, %1209
  br i1 %1210, label %1211, label %1213

1211:                                             ; preds = %1202
  %1212 = load float, ptr %41, align 4, !tbaa !11
  br label %1215

1213:                                             ; preds = %1202
  %1214 = load float, ptr %42, align 4, !tbaa !11
  br label %1215

1215:                                             ; preds = %1213, %1211
  %1216 = phi float [ %1212, %1211 ], [ %1214, %1213 ]
  %1217 = fpext float %1216 to double
  %1218 = fmul double %1207, %1217
  %1219 = fptrunc double %1218 to float
  store float %1219, ptr %72, align 4, !tbaa !11
  br label %1223

1220:                                             ; preds = %1154
  %1221 = load ptr, ptr %27, align 8, !tbaa !5
  %1222 = load float, ptr %1221, align 4, !tbaa !11
  store float %1222, ptr %72, align 4, !tbaa !11
  br label %1223

1223:                                             ; preds = %1220, %1215
  %1224 = load i64, ptr %80, align 8, !tbaa !9
  %1225 = icmp sgt i64 %1224, 1
  br i1 %1225, label %1226, label %1265

1226:                                             ; preds = %1223
  %1227 = load float, ptr %55, align 4, !tbaa !11
  %1228 = load float, ptr %57, align 4, !tbaa !11
  %1229 = fcmp olt float %1227, %1228
  br i1 %1229, label %1230, label %1237

1230:                                             ; preds = %1226
  %1231 = load i64, ptr %54, align 8, !tbaa !9
  %1232 = load i64, ptr %59, align 8, !tbaa !9
  %1233 = add nsw i64 %1232, %1231
  store i64 %1233, ptr %59, align 8, !tbaa !9
  %1234 = load i64, ptr %54, align 8, !tbaa !9
  %1235 = load i64, ptr %63, align 8, !tbaa !9
  %1236 = add nsw i64 %1235, %1234
  store i64 %1236, ptr %63, align 8, !tbaa !9
  br label %1461

1237:                                             ; preds = %1226
  %1238 = load float, ptr %52, align 4, !tbaa !11
  %1239 = load float, ptr %57, align 4, !tbaa !11
  %1240 = fcmp oge float %1238, %1239
  br i1 %1240, label %1241, label %1243

1241:                                             ; preds = %1237
  %1242 = load float, ptr %52, align 4, !tbaa !11
  br label %1245

1243:                                             ; preds = %1237
  %1244 = load float, ptr %57, align 4, !tbaa !11
  br label %1245

1245:                                             ; preds = %1243, %1241
  %1246 = phi float [ %1242, %1241 ], [ %1244, %1243 ]
  %1247 = fpext float %1246 to double
  %1248 = fptrunc double %1247 to float
  store float %1248, ptr %52, align 4, !tbaa !11
  %1249 = load float, ptr %55, align 4, !tbaa !11
  %1250 = load float, ptr %58, align 4, !tbaa !11
  %1251 = fcmp ole float %1249, %1250
  br i1 %1251, label %1252, label %1254

1252:                                             ; preds = %1245
  %1253 = load float, ptr %55, align 4, !tbaa !11
  br label %1256

1254:                                             ; preds = %1245
  %1255 = load float, ptr %58, align 4, !tbaa !11
  br label %1256

1256:                                             ; preds = %1254, %1252
  %1257 = phi float [ %1253, %1252 ], [ %1255, %1254 ]
  %1258 = fpext float %1257 to double
  %1259 = fptrunc double %1258 to float
  store float %1259, ptr %55, align 4, !tbaa !11
  %1260 = load float, ptr %52, align 4, !tbaa !11
  %1261 = load float, ptr %55, align 4, !tbaa !11
  %1262 = fcmp oge float %1260, %1261
  br i1 %1262, label %1263, label %1264

1263:                                             ; preds = %1256
  br label %1461

1264:                                             ; preds = %1256
  br label %1265

1265:                                             ; preds = %1264, %1223
  %1266 = load float, ptr %52, align 4, !tbaa !11
  %1267 = load ptr, ptr %35, align 8, !tbaa !5
  %1268 = load ptr, ptr %22, align 8, !tbaa !5
  %1269 = load i64, ptr %1268, align 8, !tbaa !9
  %1270 = add nsw i64 %1269, 1
  %1271 = getelementptr inbounds float, ptr %1267, i64 %1270
  store float %1266, ptr %1271, align 4, !tbaa !11
  %1272 = load float, ptr %55, align 4, !tbaa !11
  %1273 = load ptr, ptr %35, align 8, !tbaa !5
  %1274 = load ptr, ptr %22, align 8, !tbaa !5
  %1275 = load i64, ptr %1274, align 8, !tbaa !9
  %1276 = load i64, ptr %54, align 8, !tbaa !9
  %1277 = add nsw i64 %1275, %1276
  %1278 = add nsw i64 %1277, 1
  %1279 = getelementptr inbounds float, ptr %1273, i64 %1278
  store float %1272, ptr %1279, align 4, !tbaa !11
  %1280 = load ptr, ptr %28, align 8, !tbaa !5
  %1281 = load i64, ptr %79, align 8, !tbaa !9
  %1282 = getelementptr inbounds float, ptr %1280, i64 %1281
  %1283 = load ptr, ptr %29, align 8, !tbaa !5
  %1284 = load i64, ptr %79, align 8, !tbaa !9
  %1285 = getelementptr inbounds float, ptr %1283, i64 %1284
  %1286 = load ptr, ptr %35, align 8, !tbaa !5
  %1287 = load i64, ptr %79, align 8, !tbaa !9
  %1288 = getelementptr inbounds float, ptr %1286, i64 %1287
  %1289 = getelementptr inbounds [1 x i64], ptr %83, i64 0, i64 0
  %1290 = load ptr, ptr %35, align 8, !tbaa !5
  %1291 = load ptr, ptr %22, align 8, !tbaa !5
  %1292 = load i64, ptr %1291, align 8, !tbaa !9
  %1293 = add nsw i64 %1292, 1
  %1294 = getelementptr inbounds float, ptr %1290, i64 %1293
  %1295 = load ptr, ptr %35, align 8, !tbaa !5
  %1296 = load ptr, ptr %22, align 8, !tbaa !5
  %1297 = load i64, ptr %1296, align 8, !tbaa !9
  %1298 = load i64, ptr %54, align 8, !tbaa !9
  %1299 = shl i64 %1298, 1
  %1300 = add nsw i64 %1297, %1299
  %1301 = add nsw i64 %1300, 1
  %1302 = getelementptr inbounds float, ptr %1295, i64 %1301
  %1303 = load ptr, ptr %36, align 8, !tbaa !5
  %1304 = getelementptr inbounds i64, ptr %1303, i64 1
  %1305 = load ptr, ptr %32, align 8, !tbaa !5
  %1306 = load ptr, ptr %30, align 8, !tbaa !5
  %1307 = load i64, ptr %1306, align 8, !tbaa !9
  %1308 = add nsw i64 %1307, 1
  %1309 = getelementptr inbounds float, ptr %1305, i64 %1308
  %1310 = load ptr, ptr %33, align 8, !tbaa !5
  %1311 = load ptr, ptr %30, align 8, !tbaa !5
  %1312 = load i64, ptr %1311, align 8, !tbaa !9
  %1313 = add nsw i64 %1312, 1
  %1314 = getelementptr inbounds i64, ptr %1310, i64 %1313
  %1315 = call i32 @slaebz_(ptr noundef @c__1, ptr noundef @c__0, ptr noundef %54, ptr noundef %54, ptr noundef @c__1, ptr noundef %51, ptr noundef %72, ptr noundef %77, ptr noundef %87, ptr noundef %1282, ptr noundef %1285, ptr noundef %1288, ptr noundef %1289, ptr noundef %1294, ptr noundef %1302, ptr noundef %53, ptr noundef %1304, ptr noundef %1309, ptr noundef %1314, ptr noundef %71)
  %1316 = load ptr, ptr %36, align 8, !tbaa !5
  %1317 = getelementptr inbounds i64, ptr %1316, i64 1
  %1318 = load i64, ptr %1317, align 8, !tbaa !9
  %1319 = load i64, ptr %59, align 8, !tbaa !9
  %1320 = add nsw i64 %1319, %1318
  store i64 %1320, ptr %59, align 8, !tbaa !9
  %1321 = load ptr, ptr %36, align 8, !tbaa !5
  %1322 = load i64, ptr %54, align 8, !tbaa !9
  %1323 = add nsw i64 %1322, 1
  %1324 = getelementptr inbounds i64, ptr %1321, i64 %1323
  %1325 = load i64, ptr %1324, align 8, !tbaa !9
  %1326 = load i64, ptr %63, align 8, !tbaa !9
  %1327 = add nsw i64 %1326, %1325
  store i64 %1327, ptr %63, align 8, !tbaa !9
  %1328 = load ptr, ptr %30, align 8, !tbaa !5
  %1329 = load i64, ptr %1328, align 8, !tbaa !9
  %1330 = load ptr, ptr %36, align 8, !tbaa !5
  %1331 = getelementptr inbounds i64, ptr %1330, i64 1
  %1332 = load i64, ptr %1331, align 8, !tbaa !9
  %1333 = sub nsw i64 %1329, %1332
  store i64 %1333, ptr %73, align 8, !tbaa !9
  %1334 = load float, ptr %55, align 4, !tbaa !11
  %1335 = load float, ptr %52, align 4, !tbaa !11
  %1336 = fsub float %1334, %1335
  %1337 = load float, ptr %87, align 4, !tbaa !11
  %1338 = fadd float %1336, %1337
  %1339 = fpext float %1338 to double
  %1340 = call double @log(double noundef %1339) #5
  %1341 = load float, ptr %87, align 4, !tbaa !11
  %1342 = fpext float %1341 to double
  %1343 = call double @log(double noundef %1342) #5
  %1344 = fsub double %1340, %1343
  %1345 = call double @log(double noundef 2.000000e+00) #5
  %1346 = fdiv double %1344, %1345
  %1347 = fptosi double %1346 to i64
  %1348 = add nsw i64 %1347, 2
  store i64 %1348, ptr %75, align 8, !tbaa !9
  %1349 = load ptr, ptr %28, align 8, !tbaa !5
  %1350 = load i64, ptr %79, align 8, !tbaa !9
  %1351 = getelementptr inbounds float, ptr %1349, i64 %1350
  %1352 = load ptr, ptr %29, align 8, !tbaa !5
  %1353 = load i64, ptr %79, align 8, !tbaa !9
  %1354 = getelementptr inbounds float, ptr %1352, i64 %1353
  %1355 = load ptr, ptr %35, align 8, !tbaa !5
  %1356 = load i64, ptr %79, align 8, !tbaa !9
  %1357 = getelementptr inbounds float, ptr %1355, i64 %1356
  %1358 = getelementptr inbounds [1 x i64], ptr %83, i64 0, i64 0
  %1359 = load ptr, ptr %35, align 8, !tbaa !5
  %1360 = load ptr, ptr %22, align 8, !tbaa !5
  %1361 = load i64, ptr %1360, align 8, !tbaa !9
  %1362 = add nsw i64 %1361, 1
  %1363 = getelementptr inbounds float, ptr %1359, i64 %1362
  %1364 = load ptr, ptr %35, align 8, !tbaa !5
  %1365 = load ptr, ptr %22, align 8, !tbaa !5
  %1366 = load i64, ptr %1365, align 8, !tbaa !9
  %1367 = load i64, ptr %54, align 8, !tbaa !9
  %1368 = shl i64 %1367, 1
  %1369 = add nsw i64 %1366, %1368
  %1370 = add nsw i64 %1369, 1
  %1371 = getelementptr inbounds float, ptr %1364, i64 %1370
  %1372 = load ptr, ptr %36, align 8, !tbaa !5
  %1373 = getelementptr inbounds i64, ptr %1372, i64 1
  %1374 = load ptr, ptr %32, align 8, !tbaa !5
  %1375 = load ptr, ptr %30, align 8, !tbaa !5
  %1376 = load i64, ptr %1375, align 8, !tbaa !9
  %1377 = add nsw i64 %1376, 1
  %1378 = getelementptr inbounds float, ptr %1374, i64 %1377
  %1379 = load ptr, ptr %33, align 8, !tbaa !5
  %1380 = load ptr, ptr %30, align 8, !tbaa !5
  %1381 = load i64, ptr %1380, align 8, !tbaa !9
  %1382 = add nsw i64 %1381, 1
  %1383 = getelementptr inbounds i64, ptr %1379, i64 %1382
  %1384 = call i32 @slaebz_(ptr noundef @c__2, ptr noundef %75, ptr noundef %54, ptr noundef %54, ptr noundef @c__1, ptr noundef %51, ptr noundef %72, ptr noundef %77, ptr noundef %87, ptr noundef %1351, ptr noundef %1354, ptr noundef %1357, ptr noundef %1358, ptr noundef %1363, ptr noundef %1371, ptr noundef %68, ptr noundef %1373, ptr noundef %1378, ptr noundef %1383, ptr noundef %71)
  %1385 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %1385, ptr %39, align 8, !tbaa !9
  store i64 1, ptr %46, align 8, !tbaa !9
  br label %1386

1386:                                             ; preds = %1452, %1265
  %1387 = load i64, ptr %46, align 8, !tbaa !9
  %1388 = load i64, ptr %39, align 8, !tbaa !9
  %1389 = icmp sle i64 %1387, %1388
  br i1 %1389, label %1390, label %1455

1390:                                             ; preds = %1386
  %1391 = load ptr, ptr %35, align 8, !tbaa !5
  %1392 = load i64, ptr %46, align 8, !tbaa !9
  %1393 = load ptr, ptr %22, align 8, !tbaa !5
  %1394 = load i64, ptr %1393, align 8, !tbaa !9
  %1395 = add nsw i64 %1392, %1394
  %1396 = getelementptr inbounds float, ptr %1391, i64 %1395
  %1397 = load float, ptr %1396, align 4, !tbaa !11
  %1398 = load ptr, ptr %35, align 8, !tbaa !5
  %1399 = load i64, ptr %46, align 8, !tbaa !9
  %1400 = load i64, ptr %54, align 8, !tbaa !9
  %1401 = add nsw i64 %1399, %1400
  %1402 = load ptr, ptr %22, align 8, !tbaa !5
  %1403 = load i64, ptr %1402, align 8, !tbaa !9
  %1404 = add nsw i64 %1401, %1403
  %1405 = getelementptr inbounds float, ptr %1398, i64 %1404
  %1406 = load float, ptr %1405, align 4, !tbaa !11
  %1407 = fadd float %1397, %1406
  %1408 = fmul float %1407, 5.000000e-01
  store float %1408, ptr %64, align 4, !tbaa !11
  %1409 = load i64, ptr %46, align 8, !tbaa !9
  %1410 = load i64, ptr %68, align 8, !tbaa !9
  %1411 = load i64, ptr %71, align 8, !tbaa !9
  %1412 = sub nsw i64 %1410, %1411
  %1413 = icmp sgt i64 %1409, %1412
  br i1 %1413, label %1414, label %1417

1414:                                             ; preds = %1390
  store i64 1, ptr %86, align 8, !tbaa !9
  %1415 = load i64, ptr %48, align 8, !tbaa !9
  %1416 = sub nsw i64 0, %1415
  store i64 %1416, ptr %47, align 8, !tbaa !9
  br label %1419

1417:                                             ; preds = %1390
  %1418 = load i64, ptr %48, align 8, !tbaa !9
  store i64 %1418, ptr %47, align 8, !tbaa !9
  br label %1419

1419:                                             ; preds = %1417, %1414
  %1420 = load ptr, ptr %36, align 8, !tbaa !5
  %1421 = load i64, ptr %46, align 8, !tbaa !9
  %1422 = load i64, ptr %54, align 8, !tbaa !9
  %1423 = add nsw i64 %1421, %1422
  %1424 = getelementptr inbounds i64, ptr %1420, i64 %1423
  %1425 = load i64, ptr %1424, align 8, !tbaa !9
  %1426 = load i64, ptr %73, align 8, !tbaa !9
  %1427 = add nsw i64 %1425, %1426
  store i64 %1427, ptr %40, align 8, !tbaa !9
  %1428 = load ptr, ptr %36, align 8, !tbaa !5
  %1429 = load i64, ptr %46, align 8, !tbaa !9
  %1430 = getelementptr inbounds i64, ptr %1428, i64 %1429
  %1431 = load i64, ptr %1430, align 8, !tbaa !9
  %1432 = add nsw i64 %1431, 1
  %1433 = load i64, ptr %73, align 8, !tbaa !9
  %1434 = add nsw i64 %1432, %1433
  store i64 %1434, ptr %50, align 8, !tbaa !9
  br label %1435

1435:                                             ; preds = %1448, %1419
  %1436 = load i64, ptr %50, align 8, !tbaa !9
  %1437 = load i64, ptr %40, align 8, !tbaa !9
  %1438 = icmp sle i64 %1436, %1437
  br i1 %1438, label %1439, label %1451

1439:                                             ; preds = %1435
  %1440 = load float, ptr %64, align 4, !tbaa !11
  %1441 = load ptr, ptr %32, align 8, !tbaa !5
  %1442 = load i64, ptr %50, align 8, !tbaa !9
  %1443 = getelementptr inbounds float, ptr %1441, i64 %1442
  store float %1440, ptr %1443, align 4, !tbaa !11
  %1444 = load i64, ptr %47, align 8, !tbaa !9
  %1445 = load ptr, ptr %33, align 8, !tbaa !5
  %1446 = load i64, ptr %50, align 8, !tbaa !9
  %1447 = getelementptr inbounds i64, ptr %1445, i64 %1446
  store i64 %1444, ptr %1447, align 8, !tbaa !9
  br label %1448

1448:                                             ; preds = %1439
  %1449 = load i64, ptr %50, align 8, !tbaa !9
  %1450 = add nsw i64 %1449, 1
  store i64 %1450, ptr %50, align 8, !tbaa !9
  br label %1435, !llvm.loop !18

1451:                                             ; preds = %1435
  br label %1452

1452:                                             ; preds = %1451
  %1453 = load i64, ptr %46, align 8, !tbaa !9
  %1454 = add nsw i64 %1453, 1
  store i64 %1454, ptr %46, align 8, !tbaa !9
  br label %1386, !llvm.loop !19

1455:                                             ; preds = %1386
  %1456 = load i64, ptr %53, align 8, !tbaa !9
  %1457 = load ptr, ptr %30, align 8, !tbaa !5
  %1458 = load i64, ptr %1457, align 8, !tbaa !9
  %1459 = add nsw i64 %1458, %1456
  store i64 %1459, ptr %1457, align 8, !tbaa !9
  br label %1460

1460:                                             ; preds = %1455, %1011
  br label %1461

1461:                                             ; preds = %1460, %1263, %1230
  br label %1462

1462:                                             ; preds = %1461
  %1463 = load i64, ptr %48, align 8, !tbaa !9
  %1464 = add nsw i64 %1463, 1
  store i64 %1464, ptr %48, align 8, !tbaa !9
  br label %926, !llvm.loop !20

1465:                                             ; preds = %926
  %1466 = load i64, ptr %80, align 8, !tbaa !9
  %1467 = icmp eq i64 %1466, 3
  br i1 %1467, label %1468, label %1694

1468:                                             ; preds = %1465
  store i64 0, ptr %53, align 8, !tbaa !9
  %1469 = load ptr, ptr %25, align 8, !tbaa !5
  %1470 = load i64, ptr %1469, align 8, !tbaa !9
  %1471 = sub nsw i64 %1470, 1
  %1472 = load i64, ptr %59, align 8, !tbaa !9
  %1473 = sub nsw i64 %1471, %1472
  store i64 %1473, ptr %81, align 8, !tbaa !9
  %1474 = load i64, ptr %63, align 8, !tbaa !9
  %1475 = load ptr, ptr %26, align 8, !tbaa !5
  %1476 = load i64, ptr %1475, align 8, !tbaa !9
  %1477 = sub nsw i64 %1474, %1476
  store i64 %1477, ptr %84, align 8, !tbaa !9
  %1478 = load i64, ptr %81, align 8, !tbaa !9
  %1479 = icmp sgt i64 %1478, 0
  br i1 %1479, label %1483, label %1480

1480:                                             ; preds = %1468
  %1481 = load i64, ptr %84, align 8, !tbaa !9
  %1482 = icmp sgt i64 %1481, 0
  br i1 %1482, label %1483, label %1541

1483:                                             ; preds = %1480, %1468
  %1484 = load ptr, ptr %30, align 8, !tbaa !5
  %1485 = load i64, ptr %1484, align 8, !tbaa !9
  store i64 %1485, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %50, align 8, !tbaa !9
  br label %1486

1486:                                             ; preds = %1535, %1483
  %1487 = load i64, ptr %50, align 8, !tbaa !9
  %1488 = load i64, ptr %38, align 8, !tbaa !9
  %1489 = icmp sle i64 %1487, %1488
  br i1 %1489, label %1490, label %1538

1490:                                             ; preds = %1486
  %1491 = load ptr, ptr %32, align 8, !tbaa !5
  %1492 = load i64, ptr %50, align 8, !tbaa !9
  %1493 = getelementptr inbounds float, ptr %1491, i64 %1492
  %1494 = load float, ptr %1493, align 4, !tbaa !11
  %1495 = load float, ptr %61, align 4, !tbaa !11
  %1496 = fcmp ole float %1494, %1495
  br i1 %1496, label %1497, label %1503

1497:                                             ; preds = %1490
  %1498 = load i64, ptr %81, align 8, !tbaa !9
  %1499 = icmp sgt i64 %1498, 0
  br i1 %1499, label %1500, label %1503

1500:                                             ; preds = %1497
  %1501 = load i64, ptr %81, align 8, !tbaa !9
  %1502 = add nsw i64 %1501, -1
  store i64 %1502, ptr %81, align 8, !tbaa !9
  br label %1534

1503:                                             ; preds = %1497, %1490
  %1504 = load ptr, ptr %32, align 8, !tbaa !5
  %1505 = load i64, ptr %50, align 8, !tbaa !9
  %1506 = getelementptr inbounds float, ptr %1504, i64 %1505
  %1507 = load float, ptr %1506, align 4, !tbaa !11
  %1508 = load float, ptr %62, align 4, !tbaa !11
  %1509 = fcmp oge float %1507, %1508
  br i1 %1509, label %1510, label %1516

1510:                                             ; preds = %1503
  %1511 = load i64, ptr %84, align 8, !tbaa !9
  %1512 = icmp sgt i64 %1511, 0
  br i1 %1512, label %1513, label %1516

1513:                                             ; preds = %1510
  %1514 = load i64, ptr %84, align 8, !tbaa !9
  %1515 = add nsw i64 %1514, -1
  store i64 %1515, ptr %84, align 8, !tbaa !9
  br label %1533

1516:                                             ; preds = %1510, %1503
  %1517 = load i64, ptr %53, align 8, !tbaa !9
  %1518 = add nsw i64 %1517, 1
  store i64 %1518, ptr %53, align 8, !tbaa !9
  %1519 = load ptr, ptr %32, align 8, !tbaa !5
  %1520 = load i64, ptr %50, align 8, !tbaa !9
  %1521 = getelementptr inbounds float, ptr %1519, i64 %1520
  %1522 = load float, ptr %1521, align 4, !tbaa !11
  %1523 = load ptr, ptr %32, align 8, !tbaa !5
  %1524 = load i64, ptr %53, align 8, !tbaa !9
  %1525 = getelementptr inbounds float, ptr %1523, i64 %1524
  store float %1522, ptr %1525, align 4, !tbaa !11
  %1526 = load ptr, ptr %33, align 8, !tbaa !5
  %1527 = load i64, ptr %50, align 8, !tbaa !9
  %1528 = getelementptr inbounds i64, ptr %1526, i64 %1527
  %1529 = load i64, ptr %1528, align 8, !tbaa !9
  %1530 = load ptr, ptr %33, align 8, !tbaa !5
  %1531 = load i64, ptr %53, align 8, !tbaa !9
  %1532 = getelementptr inbounds i64, ptr %1530, i64 %1531
  store i64 %1529, ptr %1532, align 8, !tbaa !9
  br label %1533

1533:                                             ; preds = %1516, %1513
  br label %1534

1534:                                             ; preds = %1533, %1500
  br label %1535

1535:                                             ; preds = %1534
  %1536 = load i64, ptr %50, align 8, !tbaa !9
  %1537 = add nsw i64 %1536, 1
  store i64 %1537, ptr %50, align 8, !tbaa !9
  br label %1486, !llvm.loop !21

1538:                                             ; preds = %1486
  %1539 = load i64, ptr %53, align 8, !tbaa !9
  %1540 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 %1539, ptr %1540, align 8, !tbaa !9
  br label %1541

1541:                                             ; preds = %1538, %1480
  %1542 = load i64, ptr %81, align 8, !tbaa !9
  %1543 = icmp sgt i64 %1542, 0
  br i1 %1543, label %1547, label %1544

1544:                                             ; preds = %1541
  %1545 = load i64, ptr %84, align 8, !tbaa !9
  %1546 = icmp sgt i64 %1545, 0
  br i1 %1546, label %1547, label %1686

1547:                                             ; preds = %1544, %1541
  %1548 = load i64, ptr %81, align 8, !tbaa !9
  %1549 = icmp sgt i64 %1548, 0
  br i1 %1549, label %1550, label %1598

1550:                                             ; preds = %1547
  %1551 = load float, ptr %58, align 4, !tbaa !11
  store float %1551, ptr %76, align 4, !tbaa !11
  %1552 = load i64, ptr %81, align 8, !tbaa !9
  store i64 %1552, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %1553

1553:                                             ; preds = %1594, %1550
  %1554 = load i64, ptr %70, align 8, !tbaa !9
  %1555 = load i64, ptr %38, align 8, !tbaa !9
  %1556 = icmp sle i64 %1554, %1555
  br i1 %1556, label %1557, label %1597

1557:                                             ; preds = %1553
  store i64 0, ptr %56, align 8, !tbaa !9
  %1558 = load ptr, ptr %30, align 8, !tbaa !5
  %1559 = load i64, ptr %1558, align 8, !tbaa !9
  store i64 %1559, ptr %39, align 8, !tbaa !9
  store i64 1, ptr %50, align 8, !tbaa !9
  br label %1560

1560:                                             ; preds = %1587, %1557
  %1561 = load i64, ptr %50, align 8, !tbaa !9
  %1562 = load i64, ptr %39, align 8, !tbaa !9
  %1563 = icmp sle i64 %1561, %1562
  br i1 %1563, label %1564, label %1590

1564:                                             ; preds = %1560
  %1565 = load ptr, ptr %33, align 8, !tbaa !5
  %1566 = load i64, ptr %50, align 8, !tbaa !9
  %1567 = getelementptr inbounds i64, ptr %1565, i64 %1566
  %1568 = load i64, ptr %1567, align 8, !tbaa !9
  %1569 = icmp ne i64 %1568, 0
  br i1 %1569, label %1570, label %1586

1570:                                             ; preds = %1564
  %1571 = load ptr, ptr %32, align 8, !tbaa !5
  %1572 = load i64, ptr %50, align 8, !tbaa !9
  %1573 = getelementptr inbounds float, ptr %1571, i64 %1572
  %1574 = load float, ptr %1573, align 4, !tbaa !11
  %1575 = load float, ptr %76, align 4, !tbaa !11
  %1576 = fcmp olt float %1574, %1575
  br i1 %1576, label %1580, label %1577

1577:                                             ; preds = %1570
  %1578 = load i64, ptr %56, align 8, !tbaa !9
  %1579 = icmp eq i64 %1578, 0
  br i1 %1579, label %1580, label %1586

1580:                                             ; preds = %1577, %1570
  %1581 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %1581, ptr %56, align 8, !tbaa !9
  %1582 = load ptr, ptr %32, align 8, !tbaa !5
  %1583 = load i64, ptr %50, align 8, !tbaa !9
  %1584 = getelementptr inbounds float, ptr %1582, i64 %1583
  %1585 = load float, ptr %1584, align 4, !tbaa !11
  store float %1585, ptr %76, align 4, !tbaa !11
  br label %1586

1586:                                             ; preds = %1580, %1577, %1564
  br label %1587

1587:                                             ; preds = %1586
  %1588 = load i64, ptr %50, align 8, !tbaa !9
  %1589 = add nsw i64 %1588, 1
  store i64 %1589, ptr %50, align 8, !tbaa !9
  br label %1560, !llvm.loop !22

1590:                                             ; preds = %1560
  %1591 = load ptr, ptr %33, align 8, !tbaa !5
  %1592 = load i64, ptr %56, align 8, !tbaa !9
  %1593 = getelementptr inbounds i64, ptr %1591, i64 %1592
  store i64 0, ptr %1593, align 8, !tbaa !9
  br label %1594

1594:                                             ; preds = %1590
  %1595 = load i64, ptr %70, align 8, !tbaa !9
  %1596 = add nsw i64 %1595, 1
  store i64 %1596, ptr %70, align 8, !tbaa !9
  br label %1553, !llvm.loop !23

1597:                                             ; preds = %1553
  br label %1598

1598:                                             ; preds = %1597, %1547
  %1599 = load i64, ptr %84, align 8, !tbaa !9
  %1600 = icmp sgt i64 %1599, 0
  br i1 %1600, label %1601, label %1649

1601:                                             ; preds = %1598
  %1602 = load float, ptr %57, align 4, !tbaa !11
  store float %1602, ptr %76, align 4, !tbaa !11
  %1603 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %1603, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %1604

1604:                                             ; preds = %1645, %1601
  %1605 = load i64, ptr %70, align 8, !tbaa !9
  %1606 = load i64, ptr %38, align 8, !tbaa !9
  %1607 = icmp sle i64 %1605, %1606
  br i1 %1607, label %1608, label %1648

1608:                                             ; preds = %1604
  store i64 0, ptr %56, align 8, !tbaa !9
  %1609 = load ptr, ptr %30, align 8, !tbaa !5
  %1610 = load i64, ptr %1609, align 8, !tbaa !9
  store i64 %1610, ptr %39, align 8, !tbaa !9
  store i64 1, ptr %50, align 8, !tbaa !9
  br label %1611

1611:                                             ; preds = %1638, %1608
  %1612 = load i64, ptr %50, align 8, !tbaa !9
  %1613 = load i64, ptr %39, align 8, !tbaa !9
  %1614 = icmp sle i64 %1612, %1613
  br i1 %1614, label %1615, label %1641

1615:                                             ; preds = %1611
  %1616 = load ptr, ptr %33, align 8, !tbaa !5
  %1617 = load i64, ptr %50, align 8, !tbaa !9
  %1618 = getelementptr inbounds i64, ptr %1616, i64 %1617
  %1619 = load i64, ptr %1618, align 8, !tbaa !9
  %1620 = icmp ne i64 %1619, 0
  br i1 %1620, label %1621, label %1637

1621:                                             ; preds = %1615
  %1622 = load ptr, ptr %32, align 8, !tbaa !5
  %1623 = load i64, ptr %50, align 8, !tbaa !9
  %1624 = getelementptr inbounds float, ptr %1622, i64 %1623
  %1625 = load float, ptr %1624, align 4, !tbaa !11
  %1626 = load float, ptr %76, align 4, !tbaa !11
  %1627 = fcmp ogt float %1625, %1626
  br i1 %1627, label %1631, label %1628

1628:                                             ; preds = %1621
  %1629 = load i64, ptr %56, align 8, !tbaa !9
  %1630 = icmp eq i64 %1629, 0
  br i1 %1630, label %1631, label %1637

1631:                                             ; preds = %1628, %1621
  %1632 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %1632, ptr %56, align 8, !tbaa !9
  %1633 = load ptr, ptr %32, align 8, !tbaa !5
  %1634 = load i64, ptr %50, align 8, !tbaa !9
  %1635 = getelementptr inbounds float, ptr %1633, i64 %1634
  %1636 = load float, ptr %1635, align 4, !tbaa !11
  store float %1636, ptr %76, align 4, !tbaa !11
  br label %1637

1637:                                             ; preds = %1631, %1628, %1615
  br label %1638

1638:                                             ; preds = %1637
  %1639 = load i64, ptr %50, align 8, !tbaa !9
  %1640 = add nsw i64 %1639, 1
  store i64 %1640, ptr %50, align 8, !tbaa !9
  br label %1611, !llvm.loop !24

1641:                                             ; preds = %1611
  %1642 = load ptr, ptr %33, align 8, !tbaa !5
  %1643 = load i64, ptr %56, align 8, !tbaa !9
  %1644 = getelementptr inbounds i64, ptr %1642, i64 %1643
  store i64 0, ptr %1644, align 8, !tbaa !9
  br label %1645

1645:                                             ; preds = %1641
  %1646 = load i64, ptr %70, align 8, !tbaa !9
  %1647 = add nsw i64 %1646, 1
  store i64 %1647, ptr %70, align 8, !tbaa !9
  br label %1604, !llvm.loop !25

1648:                                             ; preds = %1604
  br label %1649

1649:                                             ; preds = %1648, %1598
  store i64 0, ptr %53, align 8, !tbaa !9
  %1650 = load ptr, ptr %30, align 8, !tbaa !5
  %1651 = load i64, ptr %1650, align 8, !tbaa !9
  store i64 %1651, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %50, align 8, !tbaa !9
  br label %1652

1652:                                             ; preds = %1680, %1649
  %1653 = load i64, ptr %50, align 8, !tbaa !9
  %1654 = load i64, ptr %38, align 8, !tbaa !9
  %1655 = icmp sle i64 %1653, %1654
  br i1 %1655, label %1656, label %1683

1656:                                             ; preds = %1652
  %1657 = load ptr, ptr %33, align 8, !tbaa !5
  %1658 = load i64, ptr %50, align 8, !tbaa !9
  %1659 = getelementptr inbounds i64, ptr %1657, i64 %1658
  %1660 = load i64, ptr %1659, align 8, !tbaa !9
  %1661 = icmp ne i64 %1660, 0
  br i1 %1661, label %1662, label %1679

1662:                                             ; preds = %1656
  %1663 = load i64, ptr %53, align 8, !tbaa !9
  %1664 = add nsw i64 %1663, 1
  store i64 %1664, ptr %53, align 8, !tbaa !9
  %1665 = load ptr, ptr %32, align 8, !tbaa !5
  %1666 = load i64, ptr %50, align 8, !tbaa !9
  %1667 = getelementptr inbounds float, ptr %1665, i64 %1666
  %1668 = load float, ptr %1667, align 4, !tbaa !11
  %1669 = load ptr, ptr %32, align 8, !tbaa !5
  %1670 = load i64, ptr %53, align 8, !tbaa !9
  %1671 = getelementptr inbounds float, ptr %1669, i64 %1670
  store float %1668, ptr %1671, align 4, !tbaa !11
  %1672 = load ptr, ptr %33, align 8, !tbaa !5
  %1673 = load i64, ptr %50, align 8, !tbaa !9
  %1674 = getelementptr inbounds i64, ptr %1672, i64 %1673
  %1675 = load i64, ptr %1674, align 8, !tbaa !9
  %1676 = load ptr, ptr %33, align 8, !tbaa !5
  %1677 = load i64, ptr %53, align 8, !tbaa !9
  %1678 = getelementptr inbounds i64, ptr %1676, i64 %1677
  store i64 %1675, ptr %1678, align 8, !tbaa !9
  br label %1679

1679:                                             ; preds = %1662, %1656
  br label %1680

1680:                                             ; preds = %1679
  %1681 = load i64, ptr %50, align 8, !tbaa !9
  %1682 = add nsw i64 %1681, 1
  store i64 %1682, ptr %50, align 8, !tbaa !9
  br label %1652, !llvm.loop !26

1683:                                             ; preds = %1652
  %1684 = load i64, ptr %53, align 8, !tbaa !9
  %1685 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 %1684, ptr %1685, align 8, !tbaa !9
  br label %1686

1686:                                             ; preds = %1683, %1544
  %1687 = load i64, ptr %81, align 8, !tbaa !9
  %1688 = icmp slt i64 %1687, 0
  br i1 %1688, label %1692, label %1689

1689:                                             ; preds = %1686
  %1690 = load i64, ptr %84, align 8, !tbaa !9
  %1691 = icmp slt i64 %1690, 0
  br i1 %1691, label %1692, label %1693

1692:                                             ; preds = %1689, %1686
  store i64 1, ptr %88, align 8, !tbaa !9
  br label %1693

1693:                                             ; preds = %1692, %1689
  br label %1694

1694:                                             ; preds = %1693, %1465
  %1695 = load i64, ptr %85, align 8, !tbaa !9
  %1696 = icmp eq i64 %1695, 1
  br i1 %1696, label %1697, label %1774

1697:                                             ; preds = %1694
  %1698 = load ptr, ptr %31, align 8, !tbaa !5
  %1699 = load i64, ptr %1698, align 8, !tbaa !9
  %1700 = icmp sgt i64 %1699, 1
  br i1 %1700, label %1701, label %1774

1701:                                             ; preds = %1697
  %1702 = load ptr, ptr %30, align 8, !tbaa !5
  %1703 = load i64, ptr %1702, align 8, !tbaa !9
  %1704 = sub nsw i64 %1703, 1
  store i64 %1704, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %50, align 8, !tbaa !9
  br label %1705

1705:                                             ; preds = %1770, %1701
  %1706 = load i64, ptr %50, align 8, !tbaa !9
  %1707 = load i64, ptr %38, align 8, !tbaa !9
  %1708 = icmp sle i64 %1706, %1707
  br i1 %1708, label %1709, label %1773

1709:                                             ; preds = %1705
  store i64 0, ptr %49, align 8, !tbaa !9
  %1710 = load ptr, ptr %32, align 8, !tbaa !5
  %1711 = load i64, ptr %50, align 8, !tbaa !9
  %1712 = getelementptr inbounds float, ptr %1710, i64 %1711
  %1713 = load float, ptr %1712, align 4, !tbaa !11
  store float %1713, ptr %64, align 4, !tbaa !11
  %1714 = load ptr, ptr %30, align 8, !tbaa !5
  %1715 = load i64, ptr %1714, align 8, !tbaa !9
  store i64 %1715, ptr %39, align 8, !tbaa !9
  %1716 = load i64, ptr %50, align 8, !tbaa !9
  %1717 = add nsw i64 %1716, 1
  store i64 %1717, ptr %46, align 8, !tbaa !9
  br label %1718

1718:                                             ; preds = %1736, %1709
  %1719 = load i64, ptr %46, align 8, !tbaa !9
  %1720 = load i64, ptr %39, align 8, !tbaa !9
  %1721 = icmp sle i64 %1719, %1720
  br i1 %1721, label %1722, label %1739

1722:                                             ; preds = %1718
  %1723 = load ptr, ptr %32, align 8, !tbaa !5
  %1724 = load i64, ptr %46, align 8, !tbaa !9
  %1725 = getelementptr inbounds float, ptr %1723, i64 %1724
  %1726 = load float, ptr %1725, align 4, !tbaa !11
  %1727 = load float, ptr %64, align 4, !tbaa !11
  %1728 = fcmp olt float %1726, %1727
  br i1 %1728, label %1729, label %1735

1729:                                             ; preds = %1722
  %1730 = load i64, ptr %46, align 8, !tbaa !9
  store i64 %1730, ptr %49, align 8, !tbaa !9
  %1731 = load ptr, ptr %32, align 8, !tbaa !5
  %1732 = load i64, ptr %46, align 8, !tbaa !9
  %1733 = getelementptr inbounds float, ptr %1731, i64 %1732
  %1734 = load float, ptr %1733, align 4, !tbaa !11
  store float %1734, ptr %64, align 4, !tbaa !11
  br label %1735

1735:                                             ; preds = %1729, %1722
  br label %1736

1736:                                             ; preds = %1735
  %1737 = load i64, ptr %46, align 8, !tbaa !9
  %1738 = add nsw i64 %1737, 1
  store i64 %1738, ptr %46, align 8, !tbaa !9
  br label %1718, !llvm.loop !27

1739:                                             ; preds = %1718
  %1740 = load i64, ptr %49, align 8, !tbaa !9
  %1741 = icmp ne i64 %1740, 0
  br i1 %1741, label %1742, label %1769

1742:                                             ; preds = %1739
  %1743 = load ptr, ptr %33, align 8, !tbaa !5
  %1744 = load i64, ptr %49, align 8, !tbaa !9
  %1745 = getelementptr inbounds i64, ptr %1743, i64 %1744
  %1746 = load i64, ptr %1745, align 8, !tbaa !9
  store i64 %1746, ptr %69, align 8, !tbaa !9
  %1747 = load ptr, ptr %32, align 8, !tbaa !5
  %1748 = load i64, ptr %50, align 8, !tbaa !9
  %1749 = getelementptr inbounds float, ptr %1747, i64 %1748
  %1750 = load float, ptr %1749, align 4, !tbaa !11
  %1751 = load ptr, ptr %32, align 8, !tbaa !5
  %1752 = load i64, ptr %49, align 8, !tbaa !9
  %1753 = getelementptr inbounds float, ptr %1751, i64 %1752
  store float %1750, ptr %1753, align 4, !tbaa !11
  %1754 = load ptr, ptr %33, align 8, !tbaa !5
  %1755 = load i64, ptr %50, align 8, !tbaa !9
  %1756 = getelementptr inbounds i64, ptr %1754, i64 %1755
  %1757 = load i64, ptr %1756, align 8, !tbaa !9
  %1758 = load ptr, ptr %33, align 8, !tbaa !5
  %1759 = load i64, ptr %49, align 8, !tbaa !9
  %1760 = getelementptr inbounds i64, ptr %1758, i64 %1759
  store i64 %1757, ptr %1760, align 8, !tbaa !9
  %1761 = load float, ptr %64, align 4, !tbaa !11
  %1762 = load ptr, ptr %32, align 8, !tbaa !5
  %1763 = load i64, ptr %50, align 8, !tbaa !9
  %1764 = getelementptr inbounds float, ptr %1762, i64 %1763
  store float %1761, ptr %1764, align 4, !tbaa !11
  %1765 = load i64, ptr %69, align 8, !tbaa !9
  %1766 = load ptr, ptr %33, align 8, !tbaa !5
  %1767 = load i64, ptr %50, align 8, !tbaa !9
  %1768 = getelementptr inbounds i64, ptr %1766, i64 %1767
  store i64 %1765, ptr %1768, align 8, !tbaa !9
  br label %1769

1769:                                             ; preds = %1742, %1739
  br label %1770

1770:                                             ; preds = %1769
  %1771 = load i64, ptr %50, align 8, !tbaa !9
  %1772 = add nsw i64 %1771, 1
  store i64 %1772, ptr %50, align 8, !tbaa !9
  br label %1705, !llvm.loop !28

1773:                                             ; preds = %1705
  br label %1774

1774:                                             ; preds = %1773, %1697, %1694
  %1775 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 0, ptr %1775, align 8, !tbaa !9
  %1776 = load i64, ptr %86, align 8, !tbaa !9
  %1777 = icmp ne i64 %1776, 0
  br i1 %1777, label %1778, label %1782

1778:                                             ; preds = %1774
  %1779 = load ptr, ptr %37, align 8, !tbaa !5
  %1780 = load i64, ptr %1779, align 8, !tbaa !9
  %1781 = add nsw i64 %1780, 1
  store i64 %1781, ptr %1779, align 8, !tbaa !9
  br label %1782

1782:                                             ; preds = %1778, %1774
  %1783 = load i64, ptr %88, align 8, !tbaa !9
  %1784 = icmp ne i64 %1783, 0
  br i1 %1784, label %1785, label %1789

1785:                                             ; preds = %1782
  %1786 = load ptr, ptr %37, align 8, !tbaa !5
  %1787 = load i64, ptr %1786, align 8, !tbaa !9
  %1788 = add nsw i64 %1787, 2
  store i64 %1788, ptr %1786, align 8, !tbaa !9
  br label %1789

1789:                                             ; preds = %1785, %1782
  store i32 0, ptr %19, align 4
  store i32 1, ptr %89, align 4
  br label %1790

1790:                                             ; preds = %1789, %749, %294, %232, %221
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  %1791 = load i32, ptr %19, align 4
  ret i32 %1791
}

; 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 i32 @xerbla_(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 double @llvm.fmuladd.f64(double, double, double) #3

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

; 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 [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@.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 @sstebz_(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 noundef %8, ptr noundef %9, ptr nocapture noundef %10, ptr nocapture noundef %11, ptr noundef %12, ptr noundef %13, ptr nocapture noundef %14, ptr noundef %15, ptr noundef %16, ptr nocapture noundef %17) local_unnamed_addr #0 {
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca float, align 4
  %26 = alloca i64, align 8
  %27 = alloca float, align 4
  %28 = alloca [1 x i64], align 8
  %29 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  %30 = getelementptr inbounds i8, ptr %16, i64 -8
  %31 = getelementptr inbounds i8, ptr %15, i64 -4
  %32 = getelementptr inbounds i8, ptr %14, i64 -8
  %33 = getelementptr inbounds i8, ptr %13, i64 -8
  %34 = getelementptr inbounds i8, ptr %12, i64 -4
  %35 = getelementptr inbounds i8, ptr %9, i64 -4
  %36 = getelementptr inbounds i8, ptr %8, i64 -4
  store i64 0, ptr %17, align 8, !tbaa !5
  %37 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #7
  %.not = icmp eq i64 %37, 0
  br i1 %.not, label %38, label %42

38:                                               ; preds = %18
  %39 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #7
  %.not710 = icmp eq i64 %39, 0
  br i1 %.not710, label %40, label %42

40:                                               ; preds = %38
  %41 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #7
  %.not711 = icmp eq i64 %41, 0
  %not..not711 = xor i1 %.not711, true
  %.743 = select i1 %.not711, i64 0, i64 3
  br label %42

42:                                               ; preds = %40, %38, %18
  %43 = phi i1 [ false, %18 ], [ false, %38 ], [ %.not711, %40 ]
  %44 = phi i1 [ false, %18 ], [ true, %38 ], [ false, %40 ]
  %45 = phi i1 [ false, %18 ], [ false, %38 ], [ %not..not711, %40 ]
  %.0632 = phi i64 [ 1, %18 ], [ 2, %38 ], [ %.743, %40 ]
  %46 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #7
  %.not712 = icmp eq i64 %46, 0
  br i1 %.not712, label %47, label %.thread

47:                                               ; preds = %42
  %48 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #7
  br i1 %43, label %.critedge.thread.sink.split, label %49

.thread:                                          ; preds = %42
  br i1 %43, label %.critedge.thread.sink.split, label %.thread752

49:                                               ; preds = %47
  %.not713 = icmp eq i64 %48, 0
  br i1 %.not713, label %.critedge.thread.sink.split, label %.thread752

.thread752:                                       ; preds = %.thread, %49
  %50 = load i64, ptr %2, align 8, !tbaa !5
  %51 = icmp slt i64 %50, 0
  br i1 %51, label %.critedge.thread.sink.split, label %52

52:                                               ; preds = %.thread752
  br i1 %44, label %53, label %57

53:                                               ; preds = %52
  %54 = load float, ptr %3, align 4, !tbaa !9
  %55 = load float, ptr %4, align 4, !tbaa !9
  %56 = fcmp ult float %54, %55
  br i1 %56, label %.critedge, label %.critedge.thread.sink.split

57:                                               ; preds = %52
  br i1 %45, label %58, label %.critedge

58:                                               ; preds = %57
  %59 = load i64, ptr %5, align 8, !tbaa !5
  %60 = icmp slt i64 %59, 1
  %spec.select = tail call i64 @llvm.umax.i64(i64 %50, i64 1)
  %61 = icmp ugt i64 %59, %spec.select
  %or.cond = or i1 %60, %61
  br i1 %or.cond, label %.critedge.thread.sink.split, label %62

62:                                               ; preds = %58
  %63 = load i64, ptr %6, align 8, !tbaa !5
  %.746 = tail call i64 @llvm.umin.i64(i64 %50, i64 %59)
  %64 = icmp slt i64 %63, %.746
  %65 = icmp ugt i64 %63, %50
  %or.cond770 = or i1 %64, %65
  br i1 %or.cond770, label %.critedge.thread.sink.split, label %.critedge

.critedge:                                        ; preds = %62, %57, %53
  %.pr = load i64, ptr %17, align 8, !tbaa !5
  %.not715 = icmp eq i64 %.pr, 0
  br i1 %.not715, label %69, label %.critedge.thread

.critedge.thread.sink.split:                      ; preds = %62, %58, %53, %.thread752, %49, %47, %.thread
  %.sink914 = phi i64 [ -1, %.thread ], [ -1, %47 ], [ -2, %49 ], [ -3, %.thread752 ], [ -5, %53 ], [ -6, %58 ], [ -7, %62 ]
  store i64 %.sink914, ptr %17, align 8, !tbaa !5
  br label %.critedge.thread

.critedge.thread:                                 ; preds = %.critedge.thread.sink.split, %.critedge
  %66 = phi i64 [ %.pr, %.critedge ], [ %.sink914, %.critedge.thread.sink.split ]
  %67 = sub nsw i64 0, %66
  store i64 %67, ptr %19, align 8, !tbaa !5
  %68 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %19) #7
  br label %579

69:                                               ; preds = %.critedge
  store i64 0, ptr %10, align 8, !tbaa !5
  %70 = load i64, ptr %2, align 8, !tbaa !5
  %71 = icmp eq i64 %70, 0
  br i1 %71, label %579, label %72

72:                                               ; preds = %69
  br i1 %45, label %73, label %79

73:                                               ; preds = %72
  %74 = load i64, ptr %5, align 8, !tbaa !5
  %75 = icmp eq i64 %74, 1
  br i1 %75, label %76, label %79

76:                                               ; preds = %73
  %77 = load i64, ptr %6, align 8, !tbaa !5
  %78 = icmp eq i64 %77, %70
  %spec.select747 = select i1 %78, i64 1, i64 3
  br label %79

79:                                               ; preds = %76, %73, %72
  %.1633 = phi i64 [ 3, %73 ], [ %.0632, %72 ], [ %spec.select747, %76 ]
  %80 = tail call double @slamch_(ptr noundef nonnull @.str.6) #7
  %81 = fptrunc double %80 to float
  %82 = tail call double @slamch_(ptr noundef nonnull @.str.7) #7
  %83 = fptrunc double %82 to float
  %84 = fmul float %83, 2.000000e+00
  store float %84, ptr %27, align 4, !tbaa !9
  %85 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, 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
  %86 = icmp slt i64 %85, 2
  %spec.store.select = select i1 %86, i64 0, i64 %85
  store i64 %spec.store.select, ptr %20, align 8
  %87 = load i64, ptr %2, align 8, !tbaa !5
  %88 = icmp eq i64 %87, 1
  store i64 1, ptr %11, align 8, !tbaa !5
  br i1 %88, label %89, label %99

89:                                               ; preds = %79
  store i64 1, ptr %14, align 8, !tbaa !5
  %90 = icmp eq i64 %.1633, 2
  %.pre903 = load float, ptr %8, align 4, !tbaa !9
  br i1 %90, label %91, label %97

91:                                               ; preds = %89
  %92 = load float, ptr %3, align 4, !tbaa !9
  %93 = fcmp ult float %92, %.pre903
  br i1 %93, label %94, label %98

94:                                               ; preds = %91
  %95 = load float, ptr %4, align 4, !tbaa !9
  %96 = fcmp olt float %95, %.pre903
  br i1 %96, label %98, label %97

97:                                               ; preds = %94, %89
  store float %.pre903, ptr %12, align 4, !tbaa !9
  store i64 1, ptr %13, align 8, !tbaa !5
  br label %98

98:                                               ; preds = %91, %94, %97
  %storemerge741 = phi i64 [ 1, %97 ], [ 0, %94 ], [ 0, %91 ]
  store i64 %storemerge741, ptr %10, align 8, !tbaa !5
  br label %579

99:                                               ; preds = %79
  %100 = load i64, ptr %2, align 8, !tbaa !5
  %101 = getelementptr inbounds float, ptr %31, i64 %100
  store float 0.000000e+00, ptr %101, align 4, !tbaa !9
  %.not716775 = icmp slt i64 %100, 2
  br i1 %.not716775, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %99
  %102 = fmul float %83, %83
  %103 = fpext float %102 to double
  %104 = fpext float %81 to double
  br label %105

105:                                              ; preds = %.lr.ph, %131
  %.0682776 = phi i64 [ 2, %.lr.ph ], [ %134, %131 ]
  %106 = phi float [ 1.000000e+00, %.lr.ph ], [ %132, %131 ]
  %107 = add nsw i64 %.0682776, -1
  %108 = getelementptr inbounds float, ptr %35, i64 %107
  %109 = load float, ptr %108, align 4, !tbaa !9
  %110 = fmul float %109, %109
  %111 = getelementptr inbounds float, ptr %36, i64 %.0682776
  %112 = load float, ptr %111, align 4, !tbaa !9
  %113 = getelementptr inbounds float, ptr %36, i64 %107
  %114 = load float, ptr %113, align 4, !tbaa !9
  %115 = fmul float %112, %114
  %116 = fcmp oge float %115, 0.000000e+00
  %117 = fneg float %115
  %118 = select i1 %116, float %115, float %117
  %119 = fpext float %118 to double
  %120 = tail call double @llvm.fmuladd.f64(double %119, double %103, double %104)
  %121 = fpext float %110 to double
  %122 = fcmp ogt double %120, %121
  br i1 %122, label %123, label %128

123:                                              ; preds = %105
  %124 = load i64, ptr %11, align 8, !tbaa !5
  %125 = getelementptr inbounds i64, ptr %32, i64 %124
  store i64 %107, ptr %125, align 8, !tbaa !5
  %126 = load i64, ptr %11, align 8, !tbaa !5
  %127 = add nsw i64 %126, 1
  store i64 %127, ptr %11, align 8, !tbaa !5
  br label %131

128:                                              ; preds = %105
  %129 = fcmp oge float %106, %110
  %130 = select i1 %129, float %106, float %110
  br label %131

131:                                              ; preds = %123, %128
  %.sink = phi float [ 0.000000e+00, %123 ], [ %110, %128 ]
  %132 = phi float [ %106, %123 ], [ %130, %128 ]
  %133 = getelementptr inbounds float, ptr %31, i64 %107
  store float %.sink, ptr %133, align 4
  %134 = add nuw i64 %.0682776, 1
  %exitcond.not = icmp eq i64 %.0682776, %100
  br i1 %exitcond.not, label %._crit_edge.loopexit, label %105, !llvm.loop !11

._crit_edge.loopexit:                             ; preds = %131
  %.pre = load i64, ptr %2, align 8, !tbaa !5
  %.pre900 = load i64, ptr %11, align 8, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %99
  %135 = phi float [ %132, %._crit_edge.loopexit ], [ 1.000000e+00, %99 ]
  %136 = phi i64 [ %.pre900, %._crit_edge.loopexit ], [ 1, %99 ]
  %137 = phi i64 [ %.pre, %._crit_edge.loopexit ], [ %100, %99 ]
  %138 = getelementptr inbounds i64, ptr %32, i64 %136
  store i64 %137, ptr %138, align 8, !tbaa !5
  %139 = fmul float %135, %81
  store float %139, ptr %29, align 4, !tbaa !9
  %140 = icmp eq i64 %.1633, 3
  %141 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %140, label %142, label %._crit_edge782

142:                                              ; preds = %._crit_edge
  %143 = load float, ptr %8, align 4, !tbaa !9
  %144 = add nsw i64 %141, -1
  store i64 %144, ptr %19, align 8, !tbaa !5
  %.not718783 = icmp slt i64 %141, 2
  br i1 %.not718783, label %._crit_edge790, label %.lr.ph789

.lr.ph789:                                        ; preds = %142, %.lr.ph789
  %.0642787 = phi float [ %sqrtf, %.lr.ph789 ], [ 0.000000e+00, %142 ]
  %.0666786 = phi float [ %152, %.lr.ph789 ], [ %143, %142 ]
  %.0669785 = phi float [ %156, %.lr.ph789 ], [ %143, %142 ]
  %.1683784 = phi i64 [ %157, %.lr.ph789 ], [ 1, %142 ]
  %145 = getelementptr inbounds float, ptr %31, i64 %.1683784
  %146 = load float, ptr %145, align 4, !tbaa !9
  %sqrtf = tail call float @sqrtf(float noundef %146) #4
  %147 = getelementptr inbounds float, ptr %36, i64 %.1683784
  %148 = load float, ptr %147, align 4, !tbaa !9
  %149 = fadd float %.0642787, %148
  %150 = fadd float %sqrtf, %149
  %151 = fcmp oge float %.0666786, %150
  %152 = select i1 %151, float %.0666786, float %150
  %153 = fsub float %148, %.0642787
  %154 = fsub float %153, %sqrtf
  %155 = fcmp ole float %.0669785, %154
  %156 = select i1 %155, float %.0669785, float %154
  %157 = add nuw i64 %.1683784, 1
  %exitcond889.not = icmp eq i64 %157, %141
  br i1 %exitcond889.not, label %._crit_edge790.loopexit, label %.lr.ph789, !llvm.loop !13

._crit_edge790.loopexit:                          ; preds = %.lr.ph789
  %.pre901 = load i64, ptr %2, align 8, !tbaa !5
  br label %._crit_edge790

._crit_edge790:                                   ; preds = %._crit_edge790.loopexit, %142
  %158 = phi i64 [ %141, %142 ], [ %.pre901, %._crit_edge790.loopexit ]
  %.0669.lcssa = phi float [ %143, %142 ], [ %156, %._crit_edge790.loopexit ]
  %.0666.lcssa = phi float [ %143, %142 ], [ %152, %._crit_edge790.loopexit ]
  %.0642.lcssa = phi float [ 0.000000e+00, %142 ], [ %sqrtf, %._crit_edge790.loopexit ]
  %159 = getelementptr inbounds float, ptr %36, i64 %158
  %160 = load float, ptr %159, align 4, !tbaa !9
  %161 = fadd float %.0642.lcssa, %160
  %162 = fcmp oge float %.0666.lcssa, %161
  %163 = select i1 %162, float %.0666.lcssa, float %161
  %164 = fsub float %160, %.0642.lcssa
  %165 = fcmp ole float %.0669.lcssa, %164
  %166 = select i1 %165, float %.0669.lcssa, float %164
  %167 = fcmp oge float %166, 0.000000e+00
  %168 = fneg float %166
  %169 = select i1 %167, float %166, float %168
  %170 = fcmp oge float %163, 0.000000e+00
  %171 = fneg float %163
  %172 = select i1 %170, float %163, float %171
  %173 = fcmp oge float %169, %172
  %174 = select i1 %173, float %169, float %172
  %175 = fmul float %174, 0x4000CCCCC0000000
  %176 = fmul float %175, %83
  %177 = sitofp i64 %158 to float
  %178 = fneg float %176
  %179 = tail call float @llvm.fmuladd.f32(float %178, float %177, float %166)
  %180 = fneg float %139
  %181 = tail call float @llvm.fmuladd.f32(float %180, float 0x4010CCCCC0000000, float %179)
  %182 = tail call float @llvm.fmuladd.f32(float %176, float %177, float %163)
  %183 = tail call float @llvm.fmuladd.f32(float %139, float 0x4000CCCCC0000000, float %182)
  %184 = fadd float %139, %174
  %185 = fpext float %184 to double
  %186 = tail call double @log(double noundef %185) #7
  %187 = fpext float %139 to double
  %188 = tail call double @log(double noundef %187) #7
  %189 = fsub double %186, %188
  %190 = fdiv double %189, 0x3FE62E42FEFA39EF
  %191 = fptosi double %190 to i64
  %192 = add nsw i64 %191, 2
  store i64 %192, ptr %26, align 8, !tbaa !5
  %193 = load float, ptr %7, align 4, !tbaa !9
  %194 = fcmp ugt float %193, 0.000000e+00
  %195 = fmul float %174, %83
  %storemerge719 = select i1 %194, float %193, float %195
  store float %storemerge719, ptr %25, align 4, !tbaa !9
  %196 = load i64, ptr %2, align 8, !tbaa !5
  %197 = getelementptr float, ptr %15, i64 %196
  store float %181, ptr %197, align 4, !tbaa !9
  %198 = getelementptr float, ptr %31, i64 %196
  %199 = getelementptr i8, ptr %198, i64 8
  store float %181, ptr %199, align 4, !tbaa !9
  %200 = getelementptr i8, ptr %198, i64 12
  store float %183, ptr %200, align 4, !tbaa !9
  %201 = getelementptr i8, ptr %198, i64 16
  store float %183, ptr %201, align 4, !tbaa !9
  %202 = getelementptr i8, ptr %198, i64 20
  store float %181, ptr %202, align 4, !tbaa !9
  %203 = getelementptr i8, ptr %198, i64 24
  store float %183, ptr %203, align 4, !tbaa !9
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %16, i8 -1, i64 16, i1 false)
  %204 = load i64, ptr %2, align 8, !tbaa !5
  %205 = add nsw i64 %204, 1
  %206 = getelementptr inbounds i8, ptr %16, i64 16
  store i64 %205, ptr %206, align 8, !tbaa !5
  %207 = load i64, ptr %2, align 8, !tbaa !5
  %208 = add nsw i64 %207, 1
  %209 = getelementptr inbounds i8, ptr %16, i64 24
  store i64 %208, ptr %209, align 8, !tbaa !5
  %210 = load i64, ptr %5, align 8, !tbaa !5
  %211 = add nsw i64 %210, -1
  %212 = getelementptr inbounds i8, ptr %16, i64 32
  store i64 %211, ptr %212, align 8, !tbaa !5
  %213 = load i64, ptr %6, align 8, !tbaa !5
  %214 = getelementptr inbounds i8, ptr %16, i64 40
  store i64 %213, ptr %214, align 8, !tbaa !5
  %215 = load i64, ptr %2, align 8, !tbaa !5
  %216 = getelementptr float, ptr %15, i64 %215
  %217 = getelementptr float, ptr %31, i64 %215
  %218 = getelementptr i8, ptr %217, i64 20
  %219 = call i32 @slaebz_(ptr noundef nonnull @c__3, ptr noundef nonnull %26, ptr noundef nonnull %2, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %20, ptr noundef nonnull %25, ptr noundef nonnull %27, ptr noundef nonnull %29, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %15, ptr noundef nonnull %212, ptr noundef %216, ptr noundef %218, ptr noundef nonnull %23, ptr noundef nonnull %16, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %24) #7
  %220 = load i64, ptr %214, align 8, !tbaa !5
  %221 = load i64, ptr %6, align 8, !tbaa !5
  %222 = icmp eq i64 %220, %221
  %223 = load i64, ptr %2, align 8, !tbaa !5
  %224 = getelementptr float, ptr %31, i64 %223
  %225 = getelementptr i8, ptr %224, i64 16
  br i1 %222, label %226, label %230

226:                                              ; preds = %._crit_edge790
  %227 = getelementptr float, ptr %15, i64 %223
  %228 = getelementptr i8, ptr %224, i64 12
  %229 = getelementptr i8, ptr %224, i64 8
  br label %235

230:                                              ; preds = %._crit_edge790
  %231 = getelementptr inbounds i8, ptr %16, i64 8
  %232 = getelementptr i8, ptr %224, i64 8
  %233 = getelementptr i8, ptr %224, i64 12
  %234 = getelementptr float, ptr %15, i64 %223
  br label %235

235:                                              ; preds = %230, %226
  %.0660.in = phi ptr [ %227, %226 ], [ %232, %230 ]
  %.0658.in = phi ptr [ %225, %226 ], [ %233, %230 ]
  %.0654.in = phi ptr [ %16, %226 ], [ %231, %230 ]
  %.0652.in = phi ptr [ %228, %226 ], [ %225, %230 ]
  %.0650.in = phi ptr [ %229, %226 ], [ %234, %230 ]
  %.0646.in = phi ptr [ %209, %226 ], [ %206, %230 ]
  %.0654 = load i64, ptr %.0654.in, align 8, !tbaa !5
  %236 = icmp slt i64 %.0654, 0
  br i1 %236, label %242, label %237

237:                                              ; preds = %235
  %.0660 = load float, ptr %.0660.in, align 4, !tbaa !9
  %.0658 = load float, ptr %.0658.in, align 4, !tbaa !9
  %.0652 = load float, ptr %.0652.in, align 4, !tbaa !9
  %.0650 = load float, ptr %.0650.in, align 4, !tbaa !9
  %.0646 = load i64, ptr %.0646.in, align 8, !tbaa !5
  %238 = icmp sge i64 %.0654, %223
  %239 = icmp slt i64 %.0646, 1
  %240 = icmp sgt i64 %.0646, %223
  %241 = or i1 %239, %240
  %or.cond748 = select i1 %238, i1 true, i1 %241
  br i1 %or.cond748, label %242, label %247

242:                                              ; preds = %237, %235
  store i64 4, ptr %17, align 8, !tbaa !5
  br label %579

._crit_edge782:                                   ; preds = %._crit_edge
  %243 = icmp eq i64 %.1633, 2
  br i1 %243, label %244, label %247

244:                                              ; preds = %._crit_edge782
  %245 = load float, ptr %3, align 4, !tbaa !9
  %246 = load float, ptr %4, align 4, !tbaa !9
  br label %247

247:                                              ; preds = %._crit_edge782, %237, %244
  %.1661 = phi float [ %245, %244 ], [ %.0660, %237 ], [ 0.000000e+00, %._crit_edge782 ]
  %.1659 = phi float [ %246, %244 ], [ %.0658, %237 ], [ 0.000000e+00, %._crit_edge782 ]
  %.1653 = phi float [ undef, %244 ], [ %.0652, %237 ], [ undef, %._crit_edge782 ]
  %.1651 = phi float [ undef, %244 ], [ %.0650, %237 ], [ undef, %._crit_edge782 ]
  store i64 0, ptr %10, align 8, !tbaa !5
  store i64 0, ptr %17, align 8, !tbaa !5
  %248 = load i64, ptr %11, align 8, !tbaa !5
  %.not720819 = icmp slt i64 %248, 1
  br i1 %.not720819, label %._crit_edge828, label %.lr.ph827

.lr.ph827:                                        ; preds = %247
  %249 = icmp sgt i64 %.1633, 1
  %250 = icmp eq i64 %.1633, 1
  br label %251

251:                                              ; preds = %.lr.ph827, %421
  %.0623825 = phi i64 [ 0, %.lr.ph827 ], [ %.3, %421 ]
  %.0641824 = phi i64 [ 0, %.lr.ph827 ], [ %253, %421 ]
  %.1647823 = phi i64 [ 0, %.lr.ph827 ], [ %.3649, %421 ]
  %.1655822 = phi i64 [ 0, %.lr.ph827 ], [ %.3657, %421 ]
  %.0680820 = phi i64 [ 1, %.lr.ph827 ], [ %422, %421 ]
  %252 = getelementptr inbounds i64, ptr %32, i64 %.0680820
  %253 = load i64, ptr %252, align 8, !tbaa !5
  %254 = sub nsw i64 %253, %.0641824
  store i64 %254, ptr %22, align 8, !tbaa !5
  %255 = icmp eq i64 %254, 1
  br i1 %255, label %256, label %275

256:                                              ; preds = %251
  br i1 %250, label %.thread768, label %.thread755

.thread768:                                       ; preds = %256
  %257 = add nsw i64 %.1655822, 1
  %258 = add nsw i64 %.1647823, 1
  %.phi.trans.insert = getelementptr float, ptr %8, i64 %.0641824
  %.pre902 = load float, ptr %.phi.trans.insert, align 4, !tbaa !9
  br label %269

.thread755:                                       ; preds = %256
  %259 = getelementptr float, ptr %8, i64 %.0641824
  %260 = load float, ptr %259, align 4, !tbaa !9
  %261 = load float, ptr %29, align 4, !tbaa !9
  %262 = fsub float %260, %261
  %263 = fcmp oge float %.1661, %262
  %264 = zext i1 %263 to i64
  %.2656759 = add nsw i64 %.1655822, %264
  %265 = fcmp oge float %.1659, %262
  %266 = zext i1 %265 to i64
  %.2648766 = add nsw i64 %.1647823, %266
  %267 = fcmp uge float %.1661, %262
  %268 = fcmp ult float %.1659, %262
  %or.cond749 = select i1 %267, i1 true, i1 %268
  br i1 %or.cond749, label %421, label %269

269:                                              ; preds = %.thread768, %.thread755
  %270 = phi float [ %260, %.thread755 ], [ %.pre902, %.thread768 ]
  %.2648767 = phi i64 [ %.2648766, %.thread755 ], [ %258, %.thread768 ]
  %.2656758765 = phi i64 [ %.2656759, %.thread755 ], [ %257, %.thread768 ]
  %271 = load i64, ptr %10, align 8, !tbaa !5
  %272 = add nsw i64 %271, 1
  store i64 %272, ptr %10, align 8, !tbaa !5
  %273 = getelementptr float, ptr %12, i64 %271
  store float %270, ptr %273, align 4, !tbaa !9
  %274 = getelementptr i64, ptr %13, i64 %271
  store i64 %.0680820, ptr %274, align 8, !tbaa !5
  br label %421

275:                                              ; preds = %251
  %276 = getelementptr float, ptr %8, i64 %.0641824
  %277 = load float, ptr %276, align 4, !tbaa !9
  %.3685794 = add nsw i64 %.0641824, 1
  %.not736.not795 = icmp slt i64 %.3685794, %253
  br i1 %.not736.not795, label %.lr.ph802, label %._crit_edge803

.lr.ph802:                                        ; preds = %275, %.lr.ph802
  %.3685800 = phi i64 [ %.3685, %.lr.ph802 ], [ %.3685794, %275 ]
  %.1643799 = phi float [ %282, %.lr.ph802 ], [ 0.000000e+00, %275 ]
  %.1667798 = phi float [ %288, %.lr.ph802 ], [ %277, %275 ]
  %.1670797 = phi float [ %292, %.lr.ph802 ], [ %277, %275 ]
  %.3685.in796 = phi i64 [ %.3685800, %.lr.ph802 ], [ %.0641824, %275 ]
  %278 = getelementptr float, ptr %9, i64 %.3685.in796
  %279 = load float, ptr %278, align 4, !tbaa !9
  %280 = fcmp oge float %279, 0.000000e+00
  %281 = fneg float %279
  %282 = select i1 %280, float %279, float %281
  %283 = getelementptr float, ptr %8, i64 %.3685.in796
  %284 = load float, ptr %283, align 4, !tbaa !9
  %285 = fadd float %.1643799, %284
  %286 = fadd float %285, %282
  %287 = fcmp oge float %.1667798, %286
  %288 = select i1 %287, float %.1667798, float %286
  %289 = fsub float %284, %.1643799
  %290 = fsub float %289, %282
  %291 = fcmp ole float %.1670797, %290
  %292 = select i1 %291, float %.1670797, float %290
  %.3685 = add nsw i64 %.3685800, 1
  %exitcond890.not = icmp eq i64 %.3685, %253
  br i1 %exitcond890.not, label %._crit_edge803, label %.lr.ph802, !llvm.loop !14

._crit_edge803:                                   ; preds = %.lr.ph802, %275
  %.1670.lcssa = phi float [ %277, %275 ], [ %292, %.lr.ph802 ]
  %.1667.lcssa = phi float [ %277, %275 ], [ %288, %.lr.ph802 ]
  %.1643.lcssa = phi float [ 0.000000e+00, %275 ], [ %282, %.lr.ph802 ]
  %293 = getelementptr inbounds float, ptr %36, i64 %253
  %294 = load float, ptr %293, align 4, !tbaa !9
  %295 = fadd float %.1643.lcssa, %294
  %296 = fcmp oge float %.1667.lcssa, %295
  %297 = select i1 %296, float %.1667.lcssa, float %295
  %298 = fsub float %294, %.1643.lcssa
  %299 = fcmp ole float %.1670.lcssa, %298
  %300 = select i1 %299, float %.1670.lcssa, float %298
  %301 = fcmp oge float %300, 0.000000e+00
  %302 = fneg float %300
  %303 = select i1 %301, float %300, float %302
  %304 = fcmp oge float %297, 0.000000e+00
  %305 = fneg float %297
  %306 = select i1 %304, float %297, float %305
  %307 = fcmp oge float %303, %306
  %308 = select i1 %307, float %303, float %306
  %309 = fmul float %308, 0x4000CCCCC0000000
  %310 = fmul float %309, %83
  %311 = sitofp i64 %254 to float
  %312 = fneg float %310
  %313 = call float @llvm.fmuladd.f32(float %312, float %311, float %300)
  %314 = load float, ptr %29, align 4, !tbaa !9
  %315 = fneg float %314
  %316 = call float @llvm.fmuladd.f32(float %315, float 0x4000CCCCC0000000, float %313)
  %317 = call float @llvm.fmuladd.f32(float %310, float %311, float %297)
  %318 = call float @llvm.fmuladd.f32(float %314, float 0x4000CCCCC0000000, float %317)
  %319 = load float, ptr %7, align 4, !tbaa !9
  %320 = fcmp ugt float %319, 0.000000e+00
  br i1 %320, label %331, label %321

321:                                              ; preds = %._crit_edge803
  %322 = fcmp oge float %316, 0.000000e+00
  %323 = fneg float %316
  %324 = select i1 %322, float %316, float %323
  %325 = fcmp oge float %318, 0.000000e+00
  %326 = fneg float %318
  %327 = select i1 %325, float %318, float %326
  %328 = fcmp oge float %324, %327
  %329 = select i1 %328, float %324, float %327
  %330 = fmul float %329, %83
  br label %331

331:                                              ; preds = %._crit_edge803, %321
  %storemerge737 = phi float [ %330, %321 ], [ %319, %._crit_edge803 ]
  store float %storemerge737, ptr %25, align 4, !tbaa !9
  br i1 %249, label %332, label %343

332:                                              ; preds = %331
  %333 = fcmp olt float %318, %.1661
  br i1 %333, label %334, label %337

334:                                              ; preds = %332
  %335 = add nsw i64 %254, %.1655822
  %336 = add nsw i64 %254, %.1647823
  br label %421

337:                                              ; preds = %332
  %338 = fcmp oge float %316, %.1661
  %339 = select i1 %338, float %316, float %.1661
  %340 = fcmp ole float %318, %.1659
  %341 = select i1 %340, float %318, float %.1659
  %342 = fcmp ult float %339, %341
  br i1 %342, label %343, label %421

343:                                              ; preds = %337, %331
  %.2671 = phi float [ %339, %337 ], [ %316, %331 ]
  %.2668 = phi float [ %341, %337 ], [ %318, %331 ]
  %344 = load i64, ptr %2, align 8, !tbaa !5
  %345 = getelementptr float, ptr %15, i64 %344
  store float %.2671, ptr %345, align 4, !tbaa !9
  %346 = getelementptr float, ptr %345, i64 %254
  store float %.2668, ptr %346, align 4, !tbaa !9
  %347 = getelementptr float, ptr %9, i64 %.0641824
  %348 = getelementptr float, ptr %15, i64 %.0641824
  %.idx = shl i64 %254, 3
  %349 = getelementptr i8, ptr %345, i64 %.idx
  %350 = load i64, ptr %10, align 8, !tbaa !5
  %351 = getelementptr float, ptr %12, i64 %350
  %352 = getelementptr i64, ptr %13, i64 %350
  %353 = call i32 @slaebz_(ptr noundef nonnull @c__1, ptr noundef nonnull @c__0, ptr noundef nonnull %22, ptr noundef nonnull %22, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull %25, ptr noundef nonnull %27, ptr noundef nonnull %29, ptr noundef nonnull %276, ptr noundef %347, ptr noundef %348, ptr noundef nonnull %28, ptr noundef nonnull %345, ptr noundef %349, ptr noundef nonnull %21, ptr noundef %16, ptr noundef %351, ptr noundef %352, ptr noundef nonnull %24) #7
  %354 = load i64, ptr %16, align 8, !tbaa !5
  %355 = add nsw i64 %354, %.1655822
  %356 = load i64, ptr %22, align 8, !tbaa !5
  %357 = getelementptr i64, ptr %16, i64 %356
  %358 = load i64, ptr %357, align 8, !tbaa !5
  %359 = add nsw i64 %358, %.1647823
  %360 = load i64, ptr %10, align 8, !tbaa !5
  %361 = sub nsw i64 %360, %354
  %362 = fsub float %.2668, %.2671
  %363 = load float, ptr %29, align 4, !tbaa !9
  %364 = fadd float %362, %363
  %365 = fpext float %364 to double
  %366 = call double @log(double noundef %365) #7
  %367 = load float, ptr %29, align 4, !tbaa !9
  %368 = fpext float %367 to double
  %369 = call double @log(double noundef %368) #7
  %370 = fsub double %366, %369
  %371 = fdiv double %370, 0x3FE62E42FEFA39EF
  %372 = fptosi double %371 to i64
  %373 = add nsw i64 %372, 2
  store i64 %373, ptr %26, align 8, !tbaa !5
  %374 = load i64, ptr %2, align 8, !tbaa !5
  %375 = getelementptr float, ptr %15, i64 %374
  %376 = load i64, ptr %22, align 8, !tbaa !5
  %.idx738 = shl i64 %376, 3
  %377 = getelementptr i8, ptr %375, i64 %.idx738
  %378 = load i64, ptr %10, align 8, !tbaa !5
  %379 = getelementptr float, ptr %12, i64 %378
  %380 = getelementptr i64, ptr %13, i64 %378
  %381 = call i32 @slaebz_(ptr noundef nonnull @c__2, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %22, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull %25, ptr noundef nonnull %27, ptr noundef nonnull %29, ptr noundef nonnull %276, ptr noundef %347, ptr noundef %348, ptr noundef nonnull %28, ptr noundef %375, ptr noundef %377, ptr noundef nonnull %23, ptr noundef nonnull %16, ptr noundef %379, ptr noundef %380, ptr noundef nonnull %24) #7
  %382 = load i64, ptr %23, align 8, !tbaa !5
  %.not739812 = icmp slt i64 %382, 1
  br i1 %.not739812, label %._crit_edge817, label %.lr.ph816

.lr.ph816:                                        ; preds = %343
  %383 = load i64, ptr %22, align 8, !tbaa !5
  %384 = load i64, ptr %24, align 8, !tbaa !5
  %385 = sub nsw i64 %382, %384
  %386 = sub nsw i64 0, %.0680820
  %387 = add i64 %361, 1
  %388 = add i64 %360, 1
  %389 = sub i64 %388, %354
  br label %390

390:                                              ; preds = %.lr.ph816, %._crit_edge811
  %.1814 = phi i64 [ %.0623825, %.lr.ph816 ], [ %.2, %._crit_edge811 ]
  %.4686813 = phi i64 [ 1, %.lr.ph816 ], [ %417, %._crit_edge811 ]
  %391 = load i64, ptr %2, align 8, !tbaa !5
  %392 = getelementptr float, ptr %31, i64 %.4686813
  %393 = getelementptr float, ptr %392, i64 %391
  %394 = load float, ptr %393, align 4, !tbaa !9
  %395 = getelementptr float, ptr %392, i64 %383
  %396 = getelementptr float, ptr %395, i64 %391
  %397 = load float, ptr %396, align 4, !tbaa !9
  %398 = fadd float %394, %397
  %399 = fmul float %398, 5.000000e-01
  %400 = icmp sgt i64 %.4686813, %385
  %.0681 = select i1 %400, i64 %386, i64 %.0680820
  %.2 = select i1 %400, i64 1, i64 %.1814
  %401 = getelementptr i64, ptr %30, i64 %.4686813
  %402 = getelementptr i64, ptr %401, i64 %383
  %403 = load i64, ptr %402, align 8, !tbaa !5
  %404 = add nsw i64 %403, %361
  %405 = load i64, ptr %401, align 8, !tbaa !5
  %406 = add i64 %387, %405
  %.not740807 = icmp sgt i64 %406, %404
  br i1 %.not740807, label %._crit_edge811, label %.lr.ph810.preheader

.lr.ph810.preheader:                              ; preds = %390
  %407 = add i64 %389, %403
  %408 = sub i64 %403, %405
  %min.iters.check = icmp ult i64 %408, 4
  br i1 %min.iters.check, label %.lr.ph810.preheader926, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph810.preheader
  %n.vec = and i64 %408, -4
  %ind.end = add i64 %406, %n.vec
  %broadcast.splatinsert = insertelement <2 x float> poison, float %399, i64 0
  %broadcast.splat = shufflevector <2 x float> %broadcast.splatinsert, <2 x float> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert923 = insertelement <2 x i64> poison, i64 %.0681, i64 0
  %broadcast.splat924 = shufflevector <2 x i64> %broadcast.splatinsert923, <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 ]
  %offset.idx = add i64 %406, %index
  %409 = getelementptr inbounds float, ptr %34, i64 %offset.idx
  %410 = getelementptr inbounds i8, ptr %409, i64 8
  store <2 x float> %broadcast.splat, ptr %409, align 4, !tbaa !9
  store <2 x float> %broadcast.splat, ptr %410, align 4, !tbaa !9
  %411 = getelementptr inbounds i64, ptr %33, i64 %offset.idx
  %412 = getelementptr inbounds i8, ptr %411, i64 16
  store <2 x i64> %broadcast.splat924, ptr %411, align 8, !tbaa !5
  store <2 x i64> %broadcast.splat924, ptr %412, align 8, !tbaa !5
  %index.next = add nuw i64 %index, 4
  %413 = icmp eq i64 %index.next, %n.vec
  br i1 %413, label %middle.block, label %vector.body, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %408, %n.vec
  br i1 %cmp.n, label %._crit_edge811, label %.lr.ph810.preheader926

.lr.ph810.preheader926:                           ; preds = %middle.block, %.lr.ph810.preheader
  %.0672808.ph = phi i64 [ %406, %.lr.ph810.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph810

.lr.ph810:                                        ; preds = %.lr.ph810.preheader926, %.lr.ph810
  %.0672808 = phi i64 [ %416, %.lr.ph810 ], [ %.0672808.ph, %.lr.ph810.preheader926 ]
  %414 = getelementptr inbounds float, ptr %34, i64 %.0672808
  store float %399, ptr %414, align 4, !tbaa !9
  %415 = getelementptr inbounds i64, ptr %33, i64 %.0672808
  store i64 %.0681, ptr %415, align 8, !tbaa !5
  %416 = add i64 %.0672808, 1
  %exitcond891.not = icmp eq i64 %416, %407
  br i1 %exitcond891.not, label %._crit_edge811, label %.lr.ph810, !llvm.loop !18

._crit_edge811:                                   ; preds = %.lr.ph810, %middle.block, %390
  %417 = add nuw i64 %.4686813, 1
  %exitcond892.not = icmp eq i64 %.4686813, %382
  br i1 %exitcond892.not, label %._crit_edge817, label %390, !llvm.loop !19

._crit_edge817:                                   ; preds = %._crit_edge811, %343
  %.1.lcssa = phi i64 [ %.0623825, %343 ], [ %.2, %._crit_edge811 ]
  %418 = load i64, ptr %21, align 8, !tbaa !5
  %419 = load i64, ptr %10, align 8, !tbaa !5
  %420 = add nsw i64 %419, %418
  store i64 %420, ptr %10, align 8, !tbaa !5
  br label %421

421:                                              ; preds = %334, %337, %.thread755, %269, %._crit_edge817
  %.3657 = phi i64 [ %.2656758765, %269 ], [ %.2656759, %.thread755 ], [ %335, %334 ], [ %.1655822, %337 ], [ %355, %._crit_edge817 ]
  %.3649 = phi i64 [ %.2648767, %269 ], [ %.2648766, %.thread755 ], [ %336, %334 ], [ %.1647823, %337 ], [ %359, %._crit_edge817 ]
  %.3 = phi i64 [ %.0623825, %269 ], [ %.0623825, %.thread755 ], [ %.0623825, %334 ], [ %.0623825, %337 ], [ %.1.lcssa, %._crit_edge817 ]
  %422 = add nuw nsw i64 %.0680820, 1
  %.not720.not = icmp slt i64 %.0680820, %248
  br i1 %.not720.not, label %251, label %._crit_edge828.loopexit, !llvm.loop !20

._crit_edge828.loopexit:                          ; preds = %421
  %423 = xor i64 %.3657, -1
  %424 = icmp ne i64 %.3, 0
  br label %._crit_edge828

._crit_edge828:                                   ; preds = %._crit_edge828.loopexit, %247
  %.1655.lcssa = phi i64 [ -1, %247 ], [ %423, %._crit_edge828.loopexit ]
  %.1647.lcssa = phi i64 [ 0, %247 ], [ %.3649, %._crit_edge828.loopexit ]
  %.0623.lcssa = phi i1 [ false, %247 ], [ %424, %._crit_edge828.loopexit ]
  br i1 %140, label %425, label %557

425:                                              ; preds = %._crit_edge828
  %426 = load i64, ptr %5, align 8, !tbaa !5
  %427 = add i64 %426, %.1655.lcssa
  %428 = load i64, ptr %6, align 8, !tbaa !5
  %429 = sub nsw i64 %.1647.lcssa, %428
  %430 = icmp sgt i64 %427, 0
  %431 = icmp sgt i64 %429, 0
  %or.cond3 = select i1 %430, i1 true, i1 %431
  br i1 %or.cond3, label %432, label %456

432:                                              ; preds = %425
  %433 = load i64, ptr %10, align 8, !tbaa !5
  %.not721833 = icmp slt i64 %433, 1
  br i1 %.not721833, label %._crit_edge839, label %.lr.ph838

.lr.ph838:                                        ; preds = %432, %452
  %.0625836 = phi i64 [ %.1626, %452 ], [ %429, %432 ]
  %.0629835 = phi i64 [ %.1630, %452 ], [ %427, %432 ]
  %.1673834 = phi i64 [ %454, %452 ], [ 1, %432 ]
  %434 = phi i64 [ %453, %452 ], [ 0, %432 ]
  %435 = getelementptr inbounds float, ptr %34, i64 %.1673834
  %436 = load float, ptr %435, align 4, !tbaa !9
  %437 = fcmp ole float %436, %.1653
  %438 = icmp sgt i64 %.0629835, 0
  %or.cond5 = select i1 %437, i1 %438, i1 false
  br i1 %or.cond5, label %439, label %441

439:                                              ; preds = %.lr.ph838
  %440 = add nsw i64 %.0629835, -1
  br label %452

441:                                              ; preds = %.lr.ph838
  %442 = fcmp oge float %436, %.1651
  %443 = icmp sgt i64 %.0625836, 0
  %or.cond7 = select i1 %442, i1 %443, i1 false
  br i1 %or.cond7, label %444, label %446

444:                                              ; preds = %441
  %445 = add nsw i64 %.0625836, -1
  br label %452

446:                                              ; preds = %441
  %447 = add nsw i64 %434, 1
  %448 = getelementptr float, ptr %12, i64 %434
  store float %436, ptr %448, align 4, !tbaa !9
  %449 = getelementptr inbounds i64, ptr %33, i64 %.1673834
  %450 = load i64, ptr %449, align 8, !tbaa !5
  %451 = getelementptr i64, ptr %13, i64 %434
  store i64 %450, ptr %451, align 8, !tbaa !5
  br label %452

452:                                              ; preds = %439, %446, %444
  %453 = phi i64 [ %434, %439 ], [ %434, %444 ], [ %447, %446 ]
  %.1630 = phi i64 [ %440, %439 ], [ %.0629835, %444 ], [ %.0629835, %446 ]
  %.1626 = phi i64 [ %.0625836, %439 ], [ %445, %444 ], [ %.0625836, %446 ]
  %454 = add nuw i64 %.1673834, 1
  %exitcond893.not = icmp eq i64 %.1673834, %433
  br i1 %exitcond893.not, label %._crit_edge839, label %.lr.ph838, !llvm.loop !21

._crit_edge839:                                   ; preds = %452, %432
  %455 = phi i64 [ 0, %432 ], [ %453, %452 ]
  %.0629.lcssa = phi i64 [ %427, %432 ], [ %.1630, %452 ]
  %.0625.lcssa = phi i64 [ %429, %432 ], [ %.1626, %452 ]
  store i64 %455, ptr %10, align 8, !tbaa !5
  br label %456

456:                                              ; preds = %425, %._crit_edge839
  %.2631 = phi i64 [ %.0629.lcssa, %._crit_edge839 ], [ %427, %425 ]
  %.2627 = phi i64 [ %.0625.lcssa, %._crit_edge839 ], [ %429, %425 ]
  %457 = icmp sgt i64 %.2631, 0
  %458 = icmp sgt i64 %.2627, 0
  %or.cond9 = select i1 %457, i1 true, i1 %458
  br i1 %or.cond9, label %459, label %554

459:                                              ; preds = %456
  br i1 %457, label %.preheader915, label %.loopexit774

.preheader915:                                    ; preds = %459, %._crit_edge848
  %.0635852 = phi float [ %.1636.lcssa, %._crit_edge848 ], [ %.1659, %459 ]
  %.0639851 = phi i64 [ %490, %._crit_edge848 ], [ 1, %459 ]
  %460 = load i64, ptr %10, align 8, !tbaa !5
  %.not734842 = icmp slt i64 %460, 1
  br i1 %.not734842, label %._crit_edge848, label %.lr.ph847.preheader

.lr.ph847.preheader:                              ; preds = %.preheader915
  %xtraiter = and i64 %460, 1
  %461 = icmp eq i64 %460, 1
  br i1 %461, label %._crit_edge848.loopexit.unr-lcssa, label %.lr.ph847.preheader.new

.lr.ph847.preheader.new:                          ; preds = %.lr.ph847.preheader
  %unroll_iter = and i64 %460, 9223372036854775806
  br label %.lr.ph847

.lr.ph847:                                        ; preds = %479, %.lr.ph847.preheader.new
  %.1636845 = phi float [ %.0635852, %.lr.ph847.preheader.new ], [ %.2637.1, %479 ]
  %.0662844 = phi i64 [ 0, %.lr.ph847.preheader.new ], [ %.1663.1, %479 ]
  %.2674843 = phi i64 [ 1, %.lr.ph847.preheader.new ], [ %480, %479 ]
  %niter = phi i64 [ 0, %.lr.ph847.preheader.new ], [ %niter.next.1, %479 ]
  %462 = getelementptr inbounds i64, ptr %33, i64 %.2674843
  %463 = load i64, ptr %462, align 8, !tbaa !5
  %.not735 = icmp eq i64 %463, 0
  br i1 %.not735, label %.lr.ph847.1, label %464

464:                                              ; preds = %.lr.ph847
  %465 = getelementptr inbounds float, ptr %34, i64 %.2674843
  %466 = load float, ptr %465, align 4, !tbaa !9
  %467 = fcmp olt float %466, %.1636845
  %468 = icmp eq i64 %.0662844, 0
  %or.cond11 = select i1 %467, i1 true, i1 %468
  br i1 %or.cond11, label %469, label %.lr.ph847.1

469:                                              ; preds = %464
  br label %.lr.ph847.1

.lr.ph847.1:                                      ; preds = %.lr.ph847, %469, %464
  %.1663 = phi i64 [ %.2674843, %469 ], [ %.0662844, %464 ], [ %.0662844, %.lr.ph847 ]
  %.2637 = phi float [ %466, %469 ], [ %.1636845, %464 ], [ %.1636845, %.lr.ph847 ]
  %470 = add nuw i64 %.2674843, 1
  %471 = getelementptr i64, ptr %13, i64 %.2674843
  %472 = load i64, ptr %471, align 8, !tbaa !5
  %.not735.1 = icmp eq i64 %472, 0
  br i1 %.not735.1, label %479, label %473

473:                                              ; preds = %.lr.ph847.1
  %474 = getelementptr float, ptr %12, i64 %.2674843
  %475 = load float, ptr %474, align 4, !tbaa !9
  %476 = fcmp olt float %475, %.2637
  %477 = icmp eq i64 %.1663, 0
  %or.cond11.1 = select i1 %476, i1 true, i1 %477
  br i1 %or.cond11.1, label %478, label %479

478:                                              ; preds = %473
  br label %479

479:                                              ; preds = %478, %473, %.lr.ph847.1
  %.1663.1 = phi i64 [ %470, %478 ], [ %.1663, %473 ], [ %.1663, %.lr.ph847.1 ]
  %.2637.1 = phi float [ %475, %478 ], [ %.2637, %473 ], [ %.2637, %.lr.ph847.1 ]
  %480 = add nuw i64 %.2674843, 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_edge848.loopexit.unr-lcssa, label %.lr.ph847, !llvm.loop !22

._crit_edge848.loopexit.unr-lcssa:                ; preds = %479, %.lr.ph847.preheader
  %.1663.lcssa.ph = phi i64 [ poison, %.lr.ph847.preheader ], [ %.1663.1, %479 ]
  %.2637.lcssa.ph = phi float [ poison, %.lr.ph847.preheader ], [ %.2637.1, %479 ]
  %.1636845.unr = phi float [ %.0635852, %.lr.ph847.preheader ], [ %.2637.1, %479 ]
  %.0662844.unr = phi i64 [ 0, %.lr.ph847.preheader ], [ %.1663.1, %479 ]
  %.2674843.unr = phi i64 [ 1, %.lr.ph847.preheader ], [ %480, %479 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge848, label %.lr.ph847.epil

.lr.ph847.epil:                                   ; preds = %._crit_edge848.loopexit.unr-lcssa
  %481 = getelementptr inbounds i64, ptr %33, i64 %.2674843.unr
  %482 = load i64, ptr %481, align 8, !tbaa !5
  %.not735.epil = icmp eq i64 %482, 0
  br i1 %.not735.epil, label %._crit_edge848, label %483

483:                                              ; preds = %.lr.ph847.epil
  %484 = getelementptr inbounds float, ptr %34, i64 %.2674843.unr
  %485 = load float, ptr %484, align 4, !tbaa !9
  %486 = fcmp olt float %485, %.1636845.unr
  %487 = icmp eq i64 %.0662844.unr, 0
  %or.cond11.epil = select i1 %486, i1 true, i1 %487
  br i1 %or.cond11.epil, label %488, label %._crit_edge848

488:                                              ; preds = %483
  br label %._crit_edge848

._crit_edge848:                                   ; preds = %._crit_edge848.loopexit.unr-lcssa, %488, %483, %.lr.ph847.epil, %.preheader915
  %.0662.lcssa = phi i64 [ 0, %.preheader915 ], [ %.1663.lcssa.ph, %._crit_edge848.loopexit.unr-lcssa ], [ %.2674843.unr, %488 ], [ %.0662844.unr, %483 ], [ %.0662844.unr, %.lr.ph847.epil ]
  %.1636.lcssa = phi float [ %.0635852, %.preheader915 ], [ %.2637.lcssa.ph, %._crit_edge848.loopexit.unr-lcssa ], [ %485, %488 ], [ %.1636845.unr, %483 ], [ %.1636845.unr, %.lr.ph847.epil ]
  %489 = getelementptr inbounds i64, ptr %33, i64 %.0662.lcssa
  store i64 0, ptr %489, align 8, !tbaa !5
  %490 = add nuw i64 %.0639851, 1
  %exitcond895.not = icmp eq i64 %.0639851, %.2631
  br i1 %exitcond895.not, label %.loopexit774, label %.preheader915, !llvm.loop !23

.loopexit774:                                     ; preds = %._crit_edge848, %459
  br i1 %458, label %.preheader, label %.loopexit773

.preheader:                                       ; preds = %.loopexit774, %._crit_edge859
  %.3638863 = phi float [ %.4.lcssa, %._crit_edge859 ], [ %.1661, %.loopexit774 ]
  %.1640862 = phi i64 [ %521, %._crit_edge859 ], [ 1, %.loopexit774 ]
  %491 = load i64, ptr %10, align 8, !tbaa !5
  %.not732853 = icmp slt i64 %491, 1
  br i1 %.not732853, label %._crit_edge859, label %.lr.ph858.preheader

.lr.ph858.preheader:                              ; preds = %.preheader
  %xtraiter935 = and i64 %491, 1
  %492 = icmp eq i64 %491, 1
  br i1 %492, label %._crit_edge859.loopexit.unr-lcssa, label %.lr.ph858.preheader.new

.lr.ph858.preheader.new:                          ; preds = %.lr.ph858.preheader
  %unroll_iter939 = and i64 %491, 9223372036854775806
  br label %.lr.ph858

.lr.ph858:                                        ; preds = %510, %.lr.ph858.preheader.new
  %.4856 = phi float [ %.3638863, %.lr.ph858.preheader.new ], [ %.5.1, %510 ]
  %.2664855 = phi i64 [ 0, %.lr.ph858.preheader.new ], [ %.3665.1, %510 ]
  %.3675854 = phi i64 [ 1, %.lr.ph858.preheader.new ], [ %511, %510 ]
  %niter940 = phi i64 [ 0, %.lr.ph858.preheader.new ], [ %niter940.next.1, %510 ]
  %493 = getelementptr inbounds i64, ptr %33, i64 %.3675854
  %494 = load i64, ptr %493, align 8, !tbaa !5
  %.not733 = icmp eq i64 %494, 0
  br i1 %.not733, label %.lr.ph858.1, label %495

495:                                              ; preds = %.lr.ph858
  %496 = getelementptr inbounds float, ptr %34, i64 %.3675854
  %497 = load float, ptr %496, align 4, !tbaa !9
  %498 = fcmp ogt float %497, %.4856
  %499 = icmp eq i64 %.2664855, 0
  %or.cond13 = select i1 %498, i1 true, i1 %499
  br i1 %or.cond13, label %500, label %.lr.ph858.1

500:                                              ; preds = %495
  br label %.lr.ph858.1

.lr.ph858.1:                                      ; preds = %.lr.ph858, %500, %495
  %.3665 = phi i64 [ %.3675854, %500 ], [ %.2664855, %495 ], [ %.2664855, %.lr.ph858 ]
  %.5 = phi float [ %497, %500 ], [ %.4856, %495 ], [ %.4856, %.lr.ph858 ]
  %501 = add nuw i64 %.3675854, 1
  %502 = getelementptr i64, ptr %13, i64 %.3675854
  %503 = load i64, ptr %502, align 8, !tbaa !5
  %.not733.1 = icmp eq i64 %503, 0
  br i1 %.not733.1, label %510, label %504

504:                                              ; preds = %.lr.ph858.1
  %505 = getelementptr float, ptr %12, i64 %.3675854
  %506 = load float, ptr %505, align 4, !tbaa !9
  %507 = fcmp ogt float %506, %.5
  %508 = icmp eq i64 %.3665, 0
  %or.cond13.1 = select i1 %507, i1 true, i1 %508
  br i1 %or.cond13.1, label %509, label %510

509:                                              ; preds = %504
  br label %510

510:                                              ; preds = %509, %504, %.lr.ph858.1
  %.3665.1 = phi i64 [ %501, %509 ], [ %.3665, %504 ], [ %.3665, %.lr.ph858.1 ]
  %.5.1 = phi float [ %506, %509 ], [ %.5, %504 ], [ %.5, %.lr.ph858.1 ]
  %511 = add nuw i64 %.3675854, 2
  %niter940.next.1 = add i64 %niter940, 2
  %niter940.ncmp.1 = icmp eq i64 %niter940.next.1, %unroll_iter939
  br i1 %niter940.ncmp.1, label %._crit_edge859.loopexit.unr-lcssa, label %.lr.ph858, !llvm.loop !24

._crit_edge859.loopexit.unr-lcssa:                ; preds = %510, %.lr.ph858.preheader
  %.3665.lcssa.ph = phi i64 [ poison, %.lr.ph858.preheader ], [ %.3665.1, %510 ]
  %.5.lcssa.ph = phi float [ poison, %.lr.ph858.preheader ], [ %.5.1, %510 ]
  %.4856.unr = phi float [ %.3638863, %.lr.ph858.preheader ], [ %.5.1, %510 ]
  %.2664855.unr = phi i64 [ 0, %.lr.ph858.preheader ], [ %.3665.1, %510 ]
  %.3675854.unr = phi i64 [ 1, %.lr.ph858.preheader ], [ %511, %510 ]
  %lcmp.mod936.not = icmp eq i64 %xtraiter935, 0
  br i1 %lcmp.mod936.not, label %._crit_edge859, label %.lr.ph858.epil

.lr.ph858.epil:                                   ; preds = %._crit_edge859.loopexit.unr-lcssa
  %512 = getelementptr inbounds i64, ptr %33, i64 %.3675854.unr
  %513 = load i64, ptr %512, align 8, !tbaa !5
  %.not733.epil = icmp eq i64 %513, 0
  br i1 %.not733.epil, label %._crit_edge859, label %514

514:                                              ; preds = %.lr.ph858.epil
  %515 = getelementptr inbounds float, ptr %34, i64 %.3675854.unr
  %516 = load float, ptr %515, align 4, !tbaa !9
  %517 = fcmp ogt float %516, %.4856.unr
  %518 = icmp eq i64 %.2664855.unr, 0
  %or.cond13.epil = select i1 %517, i1 true, i1 %518
  br i1 %or.cond13.epil, label %519, label %._crit_edge859

519:                                              ; preds = %514
  br label %._crit_edge859

._crit_edge859:                                   ; preds = %._crit_edge859.loopexit.unr-lcssa, %519, %514, %.lr.ph858.epil, %.preheader
  %.2664.lcssa = phi i64 [ 0, %.preheader ], [ %.3665.lcssa.ph, %._crit_edge859.loopexit.unr-lcssa ], [ %.3675854.unr, %519 ], [ %.2664855.unr, %514 ], [ %.2664855.unr, %.lr.ph858.epil ]
  %.4.lcssa = phi float [ %.3638863, %.preheader ], [ %.5.lcssa.ph, %._crit_edge859.loopexit.unr-lcssa ], [ %516, %519 ], [ %.4856.unr, %514 ], [ %.4856.unr, %.lr.ph858.epil ]
  %520 = getelementptr inbounds i64, ptr %33, i64 %.2664.lcssa
  store i64 0, ptr %520, align 8, !tbaa !5
  %521 = add nuw i64 %.1640862, 1
  %exitcond897.not = icmp eq i64 %.1640862, %.2627
  br i1 %exitcond897.not, label %.loopexit773, label %.preheader, !llvm.loop !25

.loopexit773:                                     ; preds = %._crit_edge859, %.loopexit774
  %522 = load i64, ptr %10, align 8, !tbaa !5
  %.not724865 = icmp slt i64 %522, 1
  br i1 %.not724865, label %._crit_edge869, label %.lr.ph868.preheader

.lr.ph868.preheader:                              ; preds = %.loopexit773
  %xtraiter941 = and i64 %522, 1
  %523 = icmp eq i64 %522, 1
  br i1 %523, label %._crit_edge869.loopexit.unr-lcssa, label %.lr.ph868.preheader.new

.lr.ph868.preheader.new:                          ; preds = %.lr.ph868.preheader
  %unroll_iter944 = and i64 %522, 9223372036854775806
  br label %.lr.ph868

.lr.ph868:                                        ; preds = %542, %.lr.ph868.preheader.new
  %.4676866 = phi i64 [ 1, %.lr.ph868.preheader.new ], [ %544, %542 ]
  %524 = phi i64 [ 0, %.lr.ph868.preheader.new ], [ %543, %542 ]
  %niter945 = phi i64 [ 0, %.lr.ph868.preheader.new ], [ %niter945.next.1, %542 ]
  %525 = getelementptr inbounds i64, ptr %33, i64 %.4676866
  %526 = load i64, ptr %525, align 8, !tbaa !5
  %.not731 = icmp eq i64 %526, 0
  br i1 %.not731, label %.lr.ph868.1, label %527

527:                                              ; preds = %.lr.ph868
  %528 = add nsw i64 %524, 1
  %529 = getelementptr inbounds float, ptr %34, i64 %.4676866
  %530 = load float, ptr %529, align 4, !tbaa !9
  %531 = getelementptr float, ptr %12, i64 %524
  store float %530, ptr %531, align 4, !tbaa !9
  %532 = getelementptr i64, ptr %13, i64 %524
  store i64 %526, ptr %532, align 8, !tbaa !5
  br label %.lr.ph868.1

.lr.ph868.1:                                      ; preds = %.lr.ph868, %527
  %533 = phi i64 [ %524, %.lr.ph868 ], [ %528, %527 ]
  %534 = getelementptr i64, ptr %13, i64 %.4676866
  %535 = load i64, ptr %534, align 8, !tbaa !5
  %.not731.1 = icmp eq i64 %535, 0
  br i1 %.not731.1, label %542, label %536

536:                                              ; preds = %.lr.ph868.1
  %537 = add nsw i64 %533, 1
  %538 = getelementptr float, ptr %12, i64 %.4676866
  %539 = load float, ptr %538, align 4, !tbaa !9
  %540 = getelementptr float, ptr %12, i64 %533
  store float %539, ptr %540, align 4, !tbaa !9
  %541 = getelementptr i64, ptr %13, i64 %533
  store i64 %535, ptr %541, align 8, !tbaa !5
  br label %542

542:                                              ; preds = %536, %.lr.ph868.1
  %543 = phi i64 [ %533, %.lr.ph868.1 ], [ %537, %536 ]
  %544 = add nuw i64 %.4676866, 2
  %niter945.next.1 = add i64 %niter945, 2
  %niter945.ncmp.1 = icmp eq i64 %niter945.next.1, %unroll_iter944
  br i1 %niter945.ncmp.1, label %._crit_edge869.loopexit.unr-lcssa, label %.lr.ph868, !llvm.loop !26

._crit_edge869.loopexit.unr-lcssa:                ; preds = %542, %.lr.ph868.preheader
  %.lcssa.ph = phi i64 [ poison, %.lr.ph868.preheader ], [ %543, %542 ]
  %.4676866.unr = phi i64 [ 1, %.lr.ph868.preheader ], [ %544, %542 ]
  %.unr = phi i64 [ 0, %.lr.ph868.preheader ], [ %543, %542 ]
  %lcmp.mod942.not = icmp eq i64 %xtraiter941, 0
  br i1 %lcmp.mod942.not, label %._crit_edge869, label %.lr.ph868.epil

.lr.ph868.epil:                                   ; preds = %._crit_edge869.loopexit.unr-lcssa
  %545 = getelementptr inbounds i64, ptr %33, i64 %.4676866.unr
  %546 = load i64, ptr %545, align 8, !tbaa !5
  %.not731.epil = icmp eq i64 %546, 0
  br i1 %.not731.epil, label %._crit_edge869, label %547

547:                                              ; preds = %.lr.ph868.epil
  %548 = add nsw i64 %.unr, 1
  %549 = getelementptr inbounds float, ptr %34, i64 %.4676866.unr
  %550 = load float, ptr %549, align 4, !tbaa !9
  %551 = getelementptr float, ptr %12, i64 %.unr
  store float %550, ptr %551, align 4, !tbaa !9
  %552 = getelementptr i64, ptr %13, i64 %.unr
  store i64 %546, ptr %552, align 8, !tbaa !5
  br label %._crit_edge869

._crit_edge869:                                   ; preds = %._crit_edge869.loopexit.unr-lcssa, %547, %.lr.ph868.epil, %.loopexit773
  %553 = phi i64 [ 0, %.loopexit773 ], [ %.lcssa.ph, %._crit_edge869.loopexit.unr-lcssa ], [ %.unr, %.lr.ph868.epil ], [ %548, %547 ]
  store i64 %553, ptr %10, align 8, !tbaa !5
  br label %554

554:                                              ; preds = %456, %._crit_edge869
  %555 = icmp sgt i64 %.2631, -1
  %556 = icmp sgt i64 %.2627, -1
  %or.cond15.not = select i1 %555, i1 %556, i1 false
  br label %557

557:                                              ; preds = %554, %._crit_edge828
  %.not728 = phi i1 [ true, %._crit_edge828 ], [ %or.cond15.not, %554 ]
  br i1 %.not712, label %558, label %.loopexit

558:                                              ; preds = %557
  %559 = load i64, ptr %11, align 8, !tbaa !5
  %560 = icmp sgt i64 %559, 1
  br i1 %560, label %561, label %.loopexit

561:                                              ; preds = %558
  %562 = load i64, ptr %10, align 8, !tbaa !5
  %.not725.not879 = icmp sgt i64 %562, 1
  br i1 %.not725.not879, label %.lr.ph882, label %.loopexit

.lr.ph882:                                        ; preds = %561, %._crit_edge876.thread
  %.5677880 = phi i64 [ %566, %._crit_edge876.thread ], [ 1, %561 ]
  %563 = getelementptr inbounds float, ptr %34, i64 %.5677880
  %564 = load float, ptr %563, align 4, !tbaa !9
  %565 = load i64, ptr %10, align 8, !tbaa !5
  %566 = add nuw nsw i64 %.5677880, 1
  %.not729870.not = icmp slt i64 %.5677880, %565
  br i1 %.not729870.not, label %.lr.ph875, label %._crit_edge876.thread

.lr.ph875:                                        ; preds = %.lr.ph882, %.lr.ph875
  %.2644873 = phi float [ %.3645, %.lr.ph875 ], [ %564, %.lr.ph882 ]
  %.0678872 = phi i64 [ %.1679, %.lr.ph875 ], [ 0, %.lr.ph882 ]
  %.5687871 = phi i64 [ %570, %.lr.ph875 ], [ %566, %.lr.ph882 ]
  %567 = getelementptr inbounds float, ptr %34, i64 %.5687871
  %568 = load float, ptr %567, align 4, !tbaa !9
  %569 = fcmp olt float %568, %.2644873
  %.1679 = select i1 %569, i64 %.5687871, i64 %.0678872
  %.3645 = select i1 %569, float %568, float %.2644873
  %570 = add nuw nsw i64 %.5687871, 1
  %.not729.not = icmp slt i64 %.5687871, %565
  br i1 %.not729.not, label %.lr.ph875, label %._crit_edge876, !llvm.loop !27

._crit_edge876:                                   ; preds = %.lr.ph875
  %.not730 = icmp eq i64 %.1679, 0
  br i1 %.not730, label %._crit_edge876.thread, label %571

571:                                              ; preds = %._crit_edge876
  %572 = getelementptr inbounds i64, ptr %33, i64 %.1679
  %573 = load i64, ptr %572, align 8, !tbaa !5
  %574 = getelementptr inbounds float, ptr %34, i64 %.1679
  store float %564, ptr %574, align 4, !tbaa !9
  %575 = getelementptr inbounds i64, ptr %33, i64 %.5677880
  %576 = load i64, ptr %575, align 8, !tbaa !5
  store i64 %576, ptr %572, align 8, !tbaa !5
  store float %.3645, ptr %563, align 4, !tbaa !9
  store i64 %573, ptr %575, align 8, !tbaa !5
  br label %._crit_edge876.thread

._crit_edge876.thread:                            ; preds = %.lr.ph882, %._crit_edge876, %571
  %exitcond899.not = icmp eq i64 %566, %562
  br i1 %exitcond899.not, label %.loopexit, label %.lr.ph882, !llvm.loop !28

.loopexit:                                        ; preds = %._crit_edge876.thread, %561, %558, %557
  %spec.select751 = zext i1 %.0623.lcssa to i64
  store i64 %spec.select751, ptr %17, align 8, !tbaa !5
  br i1 %.not728, label %579, label %577

577:                                              ; preds = %.loopexit
  %578 = select i1 %.0623.lcssa, i64 3, i64 2
  store i64 %578, ptr %17, align 8, !tbaa !5
  br label %579

579:                                              ; preds = %.loopexit, %577, %69, %242, %98, %.critedge.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #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 i32 @xerbla_(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 double @llvm.fmuladd.f64(double, double, double) #3

; 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

declare float @sqrtf(float) local_unnamed_addr

; 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

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 = distinct !{!15, !12, !16, !17}
!16 = !{!"llvm.loop.isvectorized", i32 1}
!17 = !{!"llvm.loop.unroll.runtime.disable"}
!18 = distinct !{!18, !12, !17, !16}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}


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