; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (dstebz)

; 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 i32, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__0 = external hidden global i32, align 4

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

107:                                              ; preds = %18
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %121

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

112:                                              ; preds = %108
  store i32 2, ptr %71, align 4, !tbaa !9
  br label %120

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

117:                                              ; preds = %113
  store i32 3, ptr %71, align 4, !tbaa !9
  br label %119

118:                                              ; preds = %113
  store i32 0, ptr %71, align 4, !tbaa !9
  br label %119

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

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

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

125:                                              ; preds = %121
  store i32 2, ptr %77, align 4, !tbaa !9
  br label %133

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

130:                                              ; preds = %126
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %132

131:                                              ; preds = %126
  store i32 0, ptr %77, align 4, !tbaa !9
  br label %132

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

133:                                              ; preds = %132, %125
  %134 = load i32, ptr %71, align 4, !tbaa !9
  %135 = icmp sle i32 %134, 0
  br i1 %135, label %136, label %138

136:                                              ; preds = %133
  %137 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -1, ptr %137, align 4, !tbaa !9
  br label %216

138:                                              ; preds = %133
  %139 = load i32, ptr %77, align 4, !tbaa !9
  %140 = icmp sle i32 %139, 0
  br i1 %140, label %141, label %143

141:                                              ; preds = %138
  %142 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -2, ptr %142, align 4, !tbaa !9
  br label %215

143:                                              ; preds = %138
  %144 = load ptr, ptr %21, align 8, !tbaa !5
  %145 = load i32, ptr %144, align 4, !tbaa !9
  %146 = icmp slt i32 %145, 0
  br i1 %146, label %147, label %149

147:                                              ; preds = %143
  %148 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -3, ptr %148, align 4, !tbaa !9
  br label %214

149:                                              ; preds = %143
  %150 = load i32, ptr %71, align 4, !tbaa !9
  %151 = icmp eq i32 %150, 2
  br i1 %151, label %152, label %161

152:                                              ; preds = %149
  %153 = load ptr, ptr %22, align 8, !tbaa !5
  %154 = load double, ptr %153, align 8, !tbaa !11
  %155 = load ptr, ptr %23, align 8, !tbaa !5
  %156 = load double, ptr %155, align 8, !tbaa !11
  %157 = fcmp oge double %154, %156
  br i1 %157, label %158, label %160

158:                                              ; preds = %152
  %159 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -5, ptr %159, align 4, !tbaa !9
  br label %160

160:                                              ; preds = %158, %152
  br label %213

161:                                              ; preds = %149
  %162 = load i32, ptr %71, align 4, !tbaa !9
  %163 = icmp eq i32 %162, 3
  br i1 %163, label %164, label %183

164:                                              ; preds = %161
  %165 = load ptr, ptr %24, align 8, !tbaa !5
  %166 = load i32, ptr %165, align 4, !tbaa !9
  %167 = icmp slt i32 %166, 1
  br i1 %167, label %181, label %168

168:                                              ; preds = %164
  %169 = load ptr, ptr %24, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = load ptr, ptr %21, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !9
  %173 = icmp sge i32 1, %172
  br i1 %173, label %174, label %175

174:                                              ; preds = %168
  br label %178

175:                                              ; preds = %168
  %176 = load ptr, ptr %21, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %175, %174
  %179 = phi i32 [ 1, %174 ], [ %177, %175 ]
  %180 = icmp sgt i32 %170, %179
  br i1 %180, label %181, label %183

181:                                              ; preds = %178, %164
  %182 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -6, ptr %182, align 4, !tbaa !9
  br label %212

183:                                              ; preds = %178, %161
  %184 = load i32, ptr %71, align 4, !tbaa !9
  %185 = icmp eq i32 %184, 3
  br i1 %185, label %186, label %211

186:                                              ; preds = %183
  %187 = load ptr, ptr %25, align 8, !tbaa !5
  %188 = load i32, ptr %187, align 4, !tbaa !9
  %189 = load ptr, ptr %21, align 8, !tbaa !5
  %190 = load i32, ptr %189, align 4, !tbaa !9
  %191 = load ptr, ptr %24, align 8, !tbaa !5
  %192 = load i32, ptr %191, align 4, !tbaa !9
  %193 = icmp sle i32 %190, %192
  br i1 %193, label %194, label %197

194:                                              ; preds = %186
  %195 = load ptr, ptr %21, align 8, !tbaa !5
  %196 = load i32, ptr %195, align 4, !tbaa !9
  br label %200

197:                                              ; preds = %186
  %198 = load ptr, ptr %24, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  br label %200

200:                                              ; preds = %197, %194
  %201 = phi i32 [ %196, %194 ], [ %199, %197 ]
  %202 = icmp slt i32 %188, %201
  br i1 %202, label %209, label %203

203:                                              ; preds = %200
  %204 = load ptr, ptr %25, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  %206 = load ptr, ptr %21, align 8, !tbaa !5
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = icmp sgt i32 %205, %207
  br i1 %208, label %209, label %211

209:                                              ; preds = %203, %200
  %210 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -7, ptr %210, align 4, !tbaa !9
  br label %211

211:                                              ; preds = %209, %203, %183
  br label %212

212:                                              ; preds = %211, %181
  br label %213

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

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

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

216:                                              ; preds = %215, %136
  %217 = load ptr, ptr %36, align 8, !tbaa !5
  %218 = load i32, ptr %217, align 4, !tbaa !9
  %219 = icmp ne i32 %218, 0
  br i1 %219, label %220, label %225

220:                                              ; preds = %216
  %221 = load ptr, ptr %36, align 8, !tbaa !5
  %222 = load i32, ptr %221, align 4, !tbaa !9
  %223 = sub nsw i32 0, %222
  store i32 %223, ptr %37, align 4, !tbaa !9
  %224 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %37, i32 noundef 6)
  store i32 1, ptr %88, align 4
  br label %1818

225:                                              ; preds = %216
  %226 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 0, ptr %226, align 4, !tbaa !9
  store i32 0, ptr %78, align 4, !tbaa !9
  store i32 0, ptr %80, align 4, !tbaa !9
  %227 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 0, ptr %227, align 4, !tbaa !9
  %228 = load ptr, ptr %21, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = icmp eq i32 %229, 0
  br i1 %230, label %231, label %232

231:                                              ; preds = %225
  store i32 1, ptr %88, align 4
  br label %1818

232:                                              ; preds = %225
  %233 = load i32, ptr %71, align 4, !tbaa !9
  %234 = icmp eq i32 %233, 3
  br i1 %234, label %235, label %246

235:                                              ; preds = %232
  %236 = load ptr, ptr %24, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = icmp eq i32 %237, 1
  br i1 %238, label %239, label %246

239:                                              ; preds = %235
  %240 = load ptr, ptr %25, align 8, !tbaa !5
  %241 = load i32, ptr %240, align 4, !tbaa !9
  %242 = load ptr, ptr %21, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = icmp eq i32 %241, %243
  br i1 %244, label %245, label %246

245:                                              ; preds = %239
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %246

246:                                              ; preds = %245, %239, %235, %232
  %247 = call double @dlamch_(ptr noundef @.str.6)
  store double %247, ptr %73, align 8, !tbaa !11
  %248 = call double @dlamch_(ptr noundef @.str.7)
  store double %248, ptr %82, align 8, !tbaa !11
  %249 = load double, ptr %82, align 8, !tbaa !11
  %250 = fmul double %249, 2.000000e+00
  store double %250, ptr %57, align 8, !tbaa !11
  %251 = load ptr, ptr %21, align 8, !tbaa !5
  %252 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.8, ptr noundef %251, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %252, ptr %63, align 4, !tbaa !9
  %253 = load i32, ptr %63, align 4, !tbaa !9
  %254 = icmp sle i32 %253, 1
  br i1 %254, label %255, label %256

255:                                              ; preds = %246
  store i32 0, ptr %63, align 4, !tbaa !9
  br label %256

256:                                              ; preds = %255, %246
  %257 = load ptr, ptr %21, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = icmp eq i32 %258, 1
  br i1 %259, label %260, label %292

260:                                              ; preds = %256
  %261 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 1, ptr %261, align 4, !tbaa !9
  %262 = load ptr, ptr %33, align 8, !tbaa !5
  %263 = getelementptr inbounds i32, ptr %262, i64 1
  store i32 1, ptr %263, align 4, !tbaa !9
  %264 = load i32, ptr %71, align 4, !tbaa !9
  %265 = icmp eq i32 %264, 2
  br i1 %265, label %266, label %282

266:                                              ; preds = %260
  %267 = load ptr, ptr %22, align 8, !tbaa !5
  %268 = load double, ptr %267, align 8, !tbaa !11
  %269 = load ptr, ptr %27, align 8, !tbaa !5
  %270 = getelementptr inbounds double, ptr %269, i64 1
  %271 = load double, ptr %270, align 8, !tbaa !11
  %272 = fcmp oge double %268, %271
  br i1 %272, label %280, label %273

273:                                              ; preds = %266
  %274 = load ptr, ptr %23, align 8, !tbaa !5
  %275 = load double, ptr %274, align 8, !tbaa !11
  %276 = load ptr, ptr %27, align 8, !tbaa !5
  %277 = getelementptr inbounds double, ptr %276, i64 1
  %278 = load double, ptr %277, align 8, !tbaa !11
  %279 = fcmp olt double %275, %278
  br i1 %279, label %280, label %282

280:                                              ; preds = %273, %266
  %281 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 0, ptr %281, align 4, !tbaa !9
  br label %291

282:                                              ; preds = %273, %260
  %283 = load ptr, ptr %27, align 8, !tbaa !5
  %284 = getelementptr inbounds double, ptr %283, i64 1
  %285 = load double, ptr %284, align 8, !tbaa !11
  %286 = load ptr, ptr %31, align 8, !tbaa !5
  %287 = getelementptr inbounds double, ptr %286, i64 1
  store double %285, ptr %287, align 8, !tbaa !11
  %288 = load ptr, ptr %32, align 8, !tbaa !5
  %289 = getelementptr inbounds i32, ptr %288, i64 1
  store i32 1, ptr %289, align 4, !tbaa !9
  %290 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 1, ptr %290, align 4, !tbaa !9
  br label %291

291:                                              ; preds = %282, %280
  store i32 1, ptr %88, align 4
  br label %1818

292:                                              ; preds = %256
  %293 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 1, ptr %293, align 4, !tbaa !9
  %294 = load ptr, ptr %34, align 8, !tbaa !5
  %295 = load ptr, ptr %21, align 8, !tbaa !5
  %296 = load i32, ptr %295, align 4, !tbaa !9
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds double, ptr %294, i64 %297
  store double 0.000000e+00, ptr %298, align 8, !tbaa !11
  store double 1.000000e+00, ptr %79, align 8, !tbaa !11
  %299 = load ptr, ptr %21, align 8, !tbaa !5
  %300 = load i32, ptr %299, align 4, !tbaa !9
  store i32 %300, ptr %37, align 4, !tbaa !9
  store i32 2, ptr %49, align 4, !tbaa !9
  br label %301

301:                                              ; preds = %377, %292
  %302 = load i32, ptr %49, align 4, !tbaa !9
  %303 = load i32, ptr %37, align 4, !tbaa !9
  %304 = icmp sle i32 %302, %303
  br i1 %304, label %305, label %380

305:                                              ; preds = %301
  %306 = load ptr, ptr %28, align 8, !tbaa !5
  %307 = load i32, ptr %49, align 4, !tbaa !9
  %308 = sub nsw i32 %307, 1
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds double, ptr %306, i64 %309
  %311 = load double, ptr %310, align 8, !tbaa !11
  store double %311, ptr %40, align 8, !tbaa !11
  %312 = load double, ptr %40, align 8, !tbaa !11
  %313 = load double, ptr %40, align 8, !tbaa !11
  %314 = fmul double %312, %313
  store double %314, ptr %86, align 8, !tbaa !11
  %315 = load double, ptr %82, align 8, !tbaa !11
  store double %315, ptr %41, align 8, !tbaa !11
  %316 = load ptr, ptr %27, align 8, !tbaa !5
  %317 = load i32, ptr %49, align 4, !tbaa !9
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds double, ptr %316, i64 %318
  %320 = load double, ptr %319, align 8, !tbaa !11
  %321 = load ptr, ptr %27, align 8, !tbaa !5
  %322 = load i32, ptr %49, align 4, !tbaa !9
  %323 = sub nsw i32 %322, 1
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds double, ptr %321, i64 %324
  %326 = load double, ptr %325, align 8, !tbaa !11
  %327 = fmul double %320, %326
  store double %327, ptr %40, align 8, !tbaa !11
  %328 = load double, ptr %40, align 8, !tbaa !11
  %329 = fcmp oge double %328, 0.000000e+00
  br i1 %329, label %330, label %332

330:                                              ; preds = %305
  %331 = load double, ptr %40, align 8, !tbaa !11
  br label %335

332:                                              ; preds = %305
  %333 = load double, ptr %40, align 8, !tbaa !11
  %334 = fneg double %333
  br label %335

335:                                              ; preds = %332, %330
  %336 = phi double [ %331, %330 ], [ %334, %332 ]
  %337 = load double, ptr %41, align 8, !tbaa !11
  %338 = load double, ptr %41, align 8, !tbaa !11
  %339 = fmul double %337, %338
  %340 = load double, ptr %73, align 8, !tbaa !11
  %341 = call double @llvm.fmuladd.f64(double %336, double %339, double %340)
  %342 = load double, ptr %86, align 8, !tbaa !11
  %343 = fcmp ogt double %341, %342
  br i1 %343, label %344, label %360

344:                                              ; preds = %335
  %345 = load i32, ptr %49, align 4, !tbaa !9
  %346 = sub nsw i32 %345, 1
  %347 = load ptr, ptr %33, align 8, !tbaa !5
  %348 = load ptr, ptr %30, align 8, !tbaa !5
  %349 = load i32, ptr %348, align 4, !tbaa !9
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds i32, ptr %347, i64 %350
  store i32 %346, ptr %351, align 4, !tbaa !9
  %352 = load ptr, ptr %30, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !9
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr %352, align 4, !tbaa !9
  %355 = load ptr, ptr %34, align 8, !tbaa !5
  %356 = load i32, ptr %49, align 4, !tbaa !9
  %357 = sub nsw i32 %356, 1
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds double, ptr %355, i64 %358
  store double 0.000000e+00, ptr %359, align 8, !tbaa !11
  br label %376

360:                                              ; preds = %335
  %361 = load double, ptr %86, align 8, !tbaa !11
  %362 = load ptr, ptr %34, align 8, !tbaa !5
  %363 = load i32, ptr %49, align 4, !tbaa !9
  %364 = sub nsw i32 %363, 1
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds double, ptr %362, i64 %365
  store double %361, ptr %366, align 8, !tbaa !11
  %367 = load double, ptr %79, align 8, !tbaa !11
  %368 = load double, ptr %86, align 8, !tbaa !11
  %369 = fcmp oge double %367, %368
  br i1 %369, label %370, label %372

370:                                              ; preds = %360
  %371 = load double, ptr %79, align 8, !tbaa !11
  br label %374

372:                                              ; preds = %360
  %373 = load double, ptr %86, align 8, !tbaa !11
  br label %374

374:                                              ; preds = %372, %370
  %375 = phi double [ %371, %370 ], [ %373, %372 ]
  store double %375, ptr %79, align 8, !tbaa !11
  br label %376

376:                                              ; preds = %374, %344
  br label %377

377:                                              ; preds = %376
  %378 = load i32, ptr %49, align 4, !tbaa !9
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr %49, align 4, !tbaa !9
  br label %301, !llvm.loop !13

380:                                              ; preds = %301
  %381 = load ptr, ptr %21, align 8, !tbaa !5
  %382 = load i32, ptr %381, align 4, !tbaa !9
  %383 = load ptr, ptr %33, align 8, !tbaa !5
  %384 = load ptr, ptr %30, align 8, !tbaa !5
  %385 = load i32, ptr %384, align 4, !tbaa !9
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds i32, ptr %383, i64 %386
  store i32 %382, ptr %387, align 4, !tbaa !9
  %388 = load double, ptr %73, align 8, !tbaa !11
  %389 = load double, ptr %79, align 8, !tbaa !11
  %390 = fmul double %389, %388
  store double %390, ptr %79, align 8, !tbaa !11
  %391 = load i32, ptr %71, align 4, !tbaa !9
  %392 = icmp eq i32 %391, 3
  br i1 %392, label %393, label %753

393:                                              ; preds = %380
  %394 = load ptr, ptr %27, align 8, !tbaa !5
  %395 = getelementptr inbounds double, ptr %394, i64 1
  %396 = load double, ptr %395, align 8, !tbaa !11
  store double %396, ptr %68, align 8, !tbaa !11
  %397 = load ptr, ptr %27, align 8, !tbaa !5
  %398 = getelementptr inbounds double, ptr %397, i64 1
  %399 = load double, ptr %398, align 8, !tbaa !11
  store double %399, ptr %64, align 8, !tbaa !11
  store double 0.000000e+00, ptr %86, align 8, !tbaa !11
  %400 = load ptr, ptr %21, align 8, !tbaa !5
  %401 = load i32, ptr %400, align 4, !tbaa !9
  %402 = sub nsw i32 %401, 1
  store i32 %402, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %403

403:                                              ; preds = %453, %393
  %404 = load i32, ptr %49, align 4, !tbaa !9
  %405 = load i32, ptr %37, align 4, !tbaa !9
  %406 = icmp sle i32 %404, %405
  br i1 %406, label %407, label %456

407:                                              ; preds = %403
  %408 = load ptr, ptr %34, align 8, !tbaa !5
  %409 = load i32, ptr %49, align 4, !tbaa !9
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds double, ptr %408, i64 %410
  %412 = load double, ptr %411, align 8, !tbaa !11
  %413 = call double @sqrt(double noundef %412) #5
  store double %413, ptr %87, align 8, !tbaa !11
  %414 = load double, ptr %68, align 8, !tbaa !11
  store double %414, ptr %40, align 8, !tbaa !11
  %415 = load ptr, ptr %27, align 8, !tbaa !5
  %416 = load i32, ptr %49, align 4, !tbaa !9
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds double, ptr %415, i64 %417
  %419 = load double, ptr %418, align 8, !tbaa !11
  %420 = load double, ptr %86, align 8, !tbaa !11
  %421 = fadd double %419, %420
  %422 = load double, ptr %87, align 8, !tbaa !11
  %423 = fadd double %421, %422
  store double %423, ptr %41, align 8, !tbaa !11
  %424 = load double, ptr %40, align 8, !tbaa !11
  %425 = load double, ptr %41, align 8, !tbaa !11
  %426 = fcmp oge double %424, %425
  br i1 %426, label %427, label %429

427:                                              ; preds = %407
  %428 = load double, ptr %40, align 8, !tbaa !11
  br label %431

429:                                              ; preds = %407
  %430 = load double, ptr %41, align 8, !tbaa !11
  br label %431

431:                                              ; preds = %429, %427
  %432 = phi double [ %428, %427 ], [ %430, %429 ]
  store double %432, ptr %68, align 8, !tbaa !11
  %433 = load double, ptr %64, align 8, !tbaa !11
  store double %433, ptr %40, align 8, !tbaa !11
  %434 = load ptr, ptr %27, align 8, !tbaa !5
  %435 = load i32, ptr %49, align 4, !tbaa !9
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds double, ptr %434, i64 %436
  %438 = load double, ptr %437, align 8, !tbaa !11
  %439 = load double, ptr %86, align 8, !tbaa !11
  %440 = fsub double %438, %439
  %441 = load double, ptr %87, align 8, !tbaa !11
  %442 = fsub double %440, %441
  store double %442, ptr %41, align 8, !tbaa !11
  %443 = load double, ptr %40, align 8, !tbaa !11
  %444 = load double, ptr %41, align 8, !tbaa !11
  %445 = fcmp ole double %443, %444
  br i1 %445, label %446, label %448

446:                                              ; preds = %431
  %447 = load double, ptr %40, align 8, !tbaa !11
  br label %450

448:                                              ; preds = %431
  %449 = load double, ptr %41, align 8, !tbaa !11
  br label %450

450:                                              ; preds = %448, %446
  %451 = phi double [ %447, %446 ], [ %449, %448 ]
  store double %451, ptr %64, align 8, !tbaa !11
  %452 = load double, ptr %87, align 8, !tbaa !11
  store double %452, ptr %86, align 8, !tbaa !11
  br label %453

453:                                              ; preds = %450
  %454 = load i32, ptr %49, align 4, !tbaa !9
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr %49, align 4, !tbaa !9
  br label %403, !llvm.loop !15

456:                                              ; preds = %403
  %457 = load double, ptr %68, align 8, !tbaa !11
  store double %457, ptr %40, align 8, !tbaa !11
  %458 = load ptr, ptr %27, align 8, !tbaa !5
  %459 = load ptr, ptr %21, align 8, !tbaa !5
  %460 = load i32, ptr %459, align 4, !tbaa !9
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds double, ptr %458, i64 %461
  %463 = load double, ptr %462, align 8, !tbaa !11
  %464 = load double, ptr %86, align 8, !tbaa !11
  %465 = fadd double %463, %464
  store double %465, ptr %41, align 8, !tbaa !11
  %466 = load double, ptr %40, align 8, !tbaa !11
  %467 = load double, ptr %41, align 8, !tbaa !11
  %468 = fcmp oge double %466, %467
  br i1 %468, label %469, label %471

469:                                              ; preds = %456
  %470 = load double, ptr %40, align 8, !tbaa !11
  br label %473

471:                                              ; preds = %456
  %472 = load double, ptr %41, align 8, !tbaa !11
  br label %473

473:                                              ; preds = %471, %469
  %474 = phi double [ %470, %469 ], [ %472, %471 ]
  store double %474, ptr %68, align 8, !tbaa !11
  %475 = load double, ptr %64, align 8, !tbaa !11
  store double %475, ptr %40, align 8, !tbaa !11
  %476 = load ptr, ptr %27, align 8, !tbaa !5
  %477 = load ptr, ptr %21, align 8, !tbaa !5
  %478 = load i32, ptr %477, align 4, !tbaa !9
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds double, ptr %476, i64 %479
  %481 = load double, ptr %480, align 8, !tbaa !11
  %482 = load double, ptr %86, align 8, !tbaa !11
  %483 = fsub double %481, %482
  store double %483, ptr %41, align 8, !tbaa !11
  %484 = load double, ptr %40, align 8, !tbaa !11
  %485 = load double, ptr %41, align 8, !tbaa !11
  %486 = fcmp ole double %484, %485
  br i1 %486, label %487, label %489

487:                                              ; preds = %473
  %488 = load double, ptr %40, align 8, !tbaa !11
  br label %491

489:                                              ; preds = %473
  %490 = load double, ptr %41, align 8, !tbaa !11
  br label %491

491:                                              ; preds = %489, %487
  %492 = phi double [ %488, %487 ], [ %490, %489 ]
  store double %492, ptr %64, align 8, !tbaa !11
  %493 = load double, ptr %64, align 8, !tbaa !11
  %494 = fcmp oge double %493, 0.000000e+00
  br i1 %494, label %495, label %497

495:                                              ; preds = %491
  %496 = load double, ptr %64, align 8, !tbaa !11
  br label %500

497:                                              ; preds = %491
  %498 = load double, ptr %64, align 8, !tbaa !11
  %499 = fneg double %498
  br label %500

500:                                              ; preds = %497, %495
  %501 = phi double [ %496, %495 ], [ %499, %497 ]
  store double %501, ptr %40, align 8, !tbaa !11
  %502 = load double, ptr %68, align 8, !tbaa !11
  %503 = fcmp oge double %502, 0.000000e+00
  br i1 %503, label %504, label %506

504:                                              ; preds = %500
  %505 = load double, ptr %68, align 8, !tbaa !11
  br label %509

506:                                              ; preds = %500
  %507 = load double, ptr %68, align 8, !tbaa !11
  %508 = fneg double %507
  br label %509

509:                                              ; preds = %506, %504
  %510 = phi double [ %505, %504 ], [ %508, %506 ]
  store double %510, ptr %41, align 8, !tbaa !11
  %511 = load double, ptr %40, align 8, !tbaa !11
  %512 = load double, ptr %41, align 8, !tbaa !11
  %513 = fcmp oge double %511, %512
  br i1 %513, label %514, label %516

514:                                              ; preds = %509
  %515 = load double, ptr %40, align 8, !tbaa !11
  br label %518

516:                                              ; preds = %509
  %517 = load double, ptr %41, align 8, !tbaa !11
  br label %518

518:                                              ; preds = %516, %514
  %519 = phi double [ %515, %514 ], [ %517, %516 ]
  store double %519, ptr %58, align 8, !tbaa !11
  %520 = load double, ptr %64, align 8, !tbaa !11
  %521 = load double, ptr %58, align 8, !tbaa !11
  %522 = fmul double %521, 2.100000e+00
  %523 = load double, ptr %82, align 8, !tbaa !11
  %524 = fmul double %522, %523
  %525 = load ptr, ptr %21, align 8, !tbaa !5
  %526 = load i32, ptr %525, align 4, !tbaa !9
  %527 = sitofp i32 %526 to double
  %528 = fneg double %524
  %529 = call double @llvm.fmuladd.f64(double %528, double %527, double %520)
  %530 = load double, ptr %79, align 8, !tbaa !11
  %531 = fneg double %530
  %532 = call double @llvm.fmuladd.f64(double %531, double 4.200000e+00, double %529)
  store double %532, ptr %64, align 8, !tbaa !11
  %533 = load double, ptr %68, align 8, !tbaa !11
  %534 = load double, ptr %58, align 8, !tbaa !11
  %535 = fmul double %534, 2.100000e+00
  %536 = load double, ptr %82, align 8, !tbaa !11
  %537 = fmul double %535, %536
  %538 = load ptr, ptr %21, align 8, !tbaa !5
  %539 = load i32, ptr %538, align 4, !tbaa !9
  %540 = sitofp i32 %539 to double
  %541 = call double @llvm.fmuladd.f64(double %537, double %540, double %533)
  %542 = load double, ptr %79, align 8, !tbaa !11
  %543 = call double @llvm.fmuladd.f64(double %542, double 2.100000e+00, double %541)
  store double %543, ptr %68, align 8, !tbaa !11
  %544 = load double, ptr %58, align 8, !tbaa !11
  %545 = load double, ptr %79, align 8, !tbaa !11
  %546 = fadd double %544, %545
  %547 = call double @log(double noundef %546) #5
  %548 = load double, ptr %79, align 8, !tbaa !11
  %549 = call double @log(double noundef %548) #5
  %550 = fsub double %547, %549
  %551 = call double @log(double noundef 2.000000e+00) #5
  %552 = fdiv double %550, %551
  %553 = fptosi double %552 to i32
  %554 = add nsw i32 %553, 2
  store i32 %554, ptr %55, align 4, !tbaa !9
  %555 = load ptr, ptr %26, align 8, !tbaa !5
  %556 = load double, ptr %555, align 8, !tbaa !11
  %557 = fcmp ole double %556, 0.000000e+00
  br i1 %557, label %558, label %562

558:                                              ; preds = %518
  %559 = load double, ptr %82, align 8, !tbaa !11
  %560 = load double, ptr %58, align 8, !tbaa !11
  %561 = fmul double %559, %560
  store double %561, ptr %52, align 8, !tbaa !11
  br label %565

562:                                              ; preds = %518
  %563 = load ptr, ptr %26, align 8, !tbaa !5
  %564 = load double, ptr %563, align 8, !tbaa !11
  store double %564, ptr %52, align 8, !tbaa !11
  br label %565

565:                                              ; preds = %562, %558
  %566 = load double, ptr %64, align 8, !tbaa !11
  %567 = load ptr, ptr %34, align 8, !tbaa !5
  %568 = load ptr, ptr %21, align 8, !tbaa !5
  %569 = load i32, ptr %568, align 4, !tbaa !9
  %570 = add nsw i32 %569, 1
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds double, ptr %567, i64 %571
  store double %566, ptr %572, align 8, !tbaa !11
  %573 = load double, ptr %64, align 8, !tbaa !11
  %574 = load ptr, ptr %34, align 8, !tbaa !5
  %575 = load ptr, ptr %21, align 8, !tbaa !5
  %576 = load i32, ptr %575, align 4, !tbaa !9
  %577 = add nsw i32 %576, 2
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds double, ptr %574, i64 %578
  store double %573, ptr %579, align 8, !tbaa !11
  %580 = load double, ptr %68, align 8, !tbaa !11
  %581 = load ptr, ptr %34, align 8, !tbaa !5
  %582 = load ptr, ptr %21, align 8, !tbaa !5
  %583 = load i32, ptr %582, align 4, !tbaa !9
  %584 = add nsw i32 %583, 3
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds double, ptr %581, i64 %585
  store double %580, ptr %586, align 8, !tbaa !11
  %587 = load double, ptr %68, align 8, !tbaa !11
  %588 = load ptr, ptr %34, align 8, !tbaa !5
  %589 = load ptr, ptr %21, align 8, !tbaa !5
  %590 = load i32, ptr %589, align 4, !tbaa !9
  %591 = add nsw i32 %590, 4
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds double, ptr %588, i64 %592
  store double %587, ptr %593, align 8, !tbaa !11
  %594 = load double, ptr %64, align 8, !tbaa !11
  %595 = load ptr, ptr %34, align 8, !tbaa !5
  %596 = load ptr, ptr %21, align 8, !tbaa !5
  %597 = load i32, ptr %596, align 4, !tbaa !9
  %598 = add nsw i32 %597, 5
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds double, ptr %595, i64 %599
  store double %594, ptr %600, align 8, !tbaa !11
  %601 = load double, ptr %68, align 8, !tbaa !11
  %602 = load ptr, ptr %34, align 8, !tbaa !5
  %603 = load ptr, ptr %21, align 8, !tbaa !5
  %604 = load i32, ptr %603, align 4, !tbaa !9
  %605 = add nsw i32 %604, 6
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds double, ptr %602, i64 %606
  store double %601, ptr %607, align 8, !tbaa !11
  %608 = load ptr, ptr %35, align 8, !tbaa !5
  %609 = getelementptr inbounds i32, ptr %608, i64 1
  store i32 -1, ptr %609, align 4, !tbaa !9
  %610 = load ptr, ptr %35, align 8, !tbaa !5
  %611 = getelementptr inbounds i32, ptr %610, i64 2
  store i32 -1, ptr %611, align 4, !tbaa !9
  %612 = load ptr, ptr %21, align 8, !tbaa !5
  %613 = load i32, ptr %612, align 4, !tbaa !9
  %614 = add nsw i32 %613, 1
  %615 = load ptr, ptr %35, align 8, !tbaa !5
  %616 = getelementptr inbounds i32, ptr %615, i64 3
  store i32 %614, ptr %616, align 4, !tbaa !9
  %617 = load ptr, ptr %21, align 8, !tbaa !5
  %618 = load i32, ptr %617, align 4, !tbaa !9
  %619 = add nsw i32 %618, 1
  %620 = load ptr, ptr %35, align 8, !tbaa !5
  %621 = getelementptr inbounds i32, ptr %620, i64 4
  store i32 %619, ptr %621, align 4, !tbaa !9
  %622 = load ptr, ptr %24, align 8, !tbaa !5
  %623 = load i32, ptr %622, align 4, !tbaa !9
  %624 = sub nsw i32 %623, 1
  %625 = load ptr, ptr %35, align 8, !tbaa !5
  %626 = getelementptr inbounds i32, ptr %625, i64 5
  store i32 %624, ptr %626, align 4, !tbaa !9
  %627 = load ptr, ptr %25, align 8, !tbaa !5
  %628 = load i32, ptr %627, align 4, !tbaa !9
  %629 = load ptr, ptr %35, align 8, !tbaa !5
  %630 = getelementptr inbounds i32, ptr %629, i64 6
  store i32 %628, ptr %630, align 4, !tbaa !9
  %631 = load ptr, ptr %21, align 8, !tbaa !5
  %632 = load ptr, ptr %27, align 8, !tbaa !5
  %633 = getelementptr inbounds double, ptr %632, i64 1
  %634 = load ptr, ptr %28, align 8, !tbaa !5
  %635 = getelementptr inbounds double, ptr %634, i64 1
  %636 = load ptr, ptr %34, align 8, !tbaa !5
  %637 = getelementptr inbounds double, ptr %636, i64 1
  %638 = load ptr, ptr %35, align 8, !tbaa !5
  %639 = getelementptr inbounds i32, ptr %638, i64 5
  %640 = load ptr, ptr %34, align 8, !tbaa !5
  %641 = load ptr, ptr %21, align 8, !tbaa !5
  %642 = load i32, ptr %641, align 4, !tbaa !9
  %643 = add nsw i32 %642, 1
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds double, ptr %640, i64 %644
  %646 = load ptr, ptr %34, align 8, !tbaa !5
  %647 = load ptr, ptr %21, align 8, !tbaa !5
  %648 = load i32, ptr %647, align 4, !tbaa !9
  %649 = add nsw i32 %648, 5
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds double, ptr %646, i64 %650
  %652 = load ptr, ptr %35, align 8, !tbaa !5
  %653 = getelementptr inbounds i32, ptr %652, i64 1
  %654 = load ptr, ptr %31, align 8, !tbaa !5
  %655 = getelementptr inbounds double, ptr %654, i64 1
  %656 = load ptr, ptr %32, align 8, !tbaa !5
  %657 = getelementptr inbounds i32, ptr %656, i64 1
  call void @dlaebz_(ptr noundef @c__3, ptr noundef %55, ptr noundef %631, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %63, ptr noundef %52, ptr noundef %57, ptr noundef %79, ptr noundef %633, ptr noundef %635, ptr noundef %637, ptr noundef %639, ptr noundef %645, ptr noundef %651, ptr noundef %47, ptr noundef %653, ptr noundef %655, ptr noundef %657, ptr noundef %51)
  %658 = load ptr, ptr %35, align 8, !tbaa !5
  %659 = getelementptr inbounds i32, ptr %658, i64 6
  %660 = load i32, ptr %659, align 4, !tbaa !9
  %661 = load ptr, ptr %25, align 8, !tbaa !5
  %662 = load i32, ptr %661, align 4, !tbaa !9
  %663 = icmp eq i32 %660, %662
  br i1 %663, label %664, label %699

664:                                              ; preds = %565
  %665 = load ptr, ptr %34, align 8, !tbaa !5
  %666 = load ptr, ptr %21, align 8, !tbaa !5
  %667 = load i32, ptr %666, align 4, !tbaa !9
  %668 = add nsw i32 %667, 1
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds double, ptr %665, i64 %669
  %671 = load double, ptr %670, align 8, !tbaa !11
  store double %671, ptr %70, align 8, !tbaa !11
  %672 = load ptr, ptr %34, align 8, !tbaa !5
  %673 = load ptr, ptr %21, align 8, !tbaa !5
  %674 = load i32, ptr %673, align 4, !tbaa !9
  %675 = add nsw i32 %674, 3
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds double, ptr %672, i64 %676
  %678 = load double, ptr %677, align 8, !tbaa !11
  store double %678, ptr %83, align 8, !tbaa !11
  %679 = load ptr, ptr %35, align 8, !tbaa !5
  %680 = getelementptr inbounds i32, ptr %679, i64 1
  %681 = load i32, ptr %680, align 4, !tbaa !9
  store i32 %681, ptr %81, align 4, !tbaa !9
  %682 = load ptr, ptr %34, align 8, !tbaa !5
  %683 = load ptr, ptr %21, align 8, !tbaa !5
  %684 = load i32, ptr %683, align 4, !tbaa !9
  %685 = add nsw i32 %684, 4
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds double, ptr %682, i64 %686
  %688 = load double, ptr %687, align 8, !tbaa !11
  store double %688, ptr %74, align 8, !tbaa !11
  %689 = load ptr, ptr %34, align 8, !tbaa !5
  %690 = load ptr, ptr %21, align 8, !tbaa !5
  %691 = load i32, ptr %690, align 4, !tbaa !9
  %692 = add nsw i32 %691, 2
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds double, ptr %689, i64 %693
  %695 = load double, ptr %694, align 8, !tbaa !11
  store double %695, ptr %84, align 8, !tbaa !11
  %696 = load ptr, ptr %35, align 8, !tbaa !5
  %697 = getelementptr inbounds i32, ptr %696, i64 4
  %698 = load i32, ptr %697, align 4, !tbaa !9
  store i32 %698, ptr %85, align 4, !tbaa !9
  br label %734

699:                                              ; preds = %565
  %700 = load ptr, ptr %34, align 8, !tbaa !5
  %701 = load ptr, ptr %21, align 8, !tbaa !5
  %702 = load i32, ptr %701, align 4, !tbaa !9
  %703 = add nsw i32 %702, 2
  %704 = sext i32 %703 to i64
  %705 = getelementptr inbounds double, ptr %700, i64 %704
  %706 = load double, ptr %705, align 8, !tbaa !11
  store double %706, ptr %70, align 8, !tbaa !11
  %707 = load ptr, ptr %34, align 8, !tbaa !5
  %708 = load ptr, ptr %21, align 8, !tbaa !5
  %709 = load i32, ptr %708, align 4, !tbaa !9
  %710 = add nsw i32 %709, 4
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds double, ptr %707, i64 %711
  %713 = load double, ptr %712, align 8, !tbaa !11
  store double %713, ptr %83, align 8, !tbaa !11
  %714 = load ptr, ptr %35, align 8, !tbaa !5
  %715 = getelementptr inbounds i32, ptr %714, i64 2
  %716 = load i32, ptr %715, align 4, !tbaa !9
  store i32 %716, ptr %81, align 4, !tbaa !9
  %717 = load ptr, ptr %34, align 8, !tbaa !5
  %718 = load ptr, ptr %21, align 8, !tbaa !5
  %719 = load i32, ptr %718, align 4, !tbaa !9
  %720 = add nsw i32 %719, 3
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds double, ptr %717, i64 %721
  %723 = load double, ptr %722, align 8, !tbaa !11
  store double %723, ptr %74, align 8, !tbaa !11
  %724 = load ptr, ptr %34, align 8, !tbaa !5
  %725 = load ptr, ptr %21, align 8, !tbaa !5
  %726 = load i32, ptr %725, align 4, !tbaa !9
  %727 = add nsw i32 %726, 1
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds double, ptr %724, i64 %728
  %730 = load double, ptr %729, align 8, !tbaa !11
  store double %730, ptr %84, align 8, !tbaa !11
  %731 = load ptr, ptr %35, align 8, !tbaa !5
  %732 = getelementptr inbounds i32, ptr %731, i64 3
  %733 = load i32, ptr %732, align 4, !tbaa !9
  store i32 %733, ptr %85, align 4, !tbaa !9
  br label %734

734:                                              ; preds = %699, %664
  %735 = load i32, ptr %81, align 4, !tbaa !9
  %736 = icmp slt i32 %735, 0
  br i1 %736, label %750, label %737

737:                                              ; preds = %734
  %738 = load i32, ptr %81, align 4, !tbaa !9
  %739 = load ptr, ptr %21, align 8, !tbaa !5
  %740 = load i32, ptr %739, align 4, !tbaa !9
  %741 = icmp sge i32 %738, %740
  br i1 %741, label %750, label %742

742:                                              ; preds = %737
  %743 = load i32, ptr %85, align 4, !tbaa !9
  %744 = icmp slt i32 %743, 1
  br i1 %744, label %750, label %745

745:                                              ; preds = %742
  %746 = load i32, ptr %85, align 4, !tbaa !9
  %747 = load ptr, ptr %21, align 8, !tbaa !5
  %748 = load i32, ptr %747, align 4, !tbaa !9
  %749 = icmp sgt i32 %746, %748
  br i1 %749, label %750, label %752

750:                                              ; preds = %745, %742, %737, %734
  %751 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 4, ptr %751, align 4, !tbaa !9
  store i32 1, ptr %88, align 4
  br label %1818

752:                                              ; preds = %745
  br label %913

753:                                              ; preds = %380
  %754 = load ptr, ptr %27, align 8, !tbaa !5
  %755 = getelementptr inbounds double, ptr %754, i64 1
  %756 = load double, ptr %755, align 8, !tbaa !11
  %757 = fcmp oge double %756, 0.000000e+00
  br i1 %757, label %758, label %762

758:                                              ; preds = %753
  %759 = load ptr, ptr %27, align 8, !tbaa !5
  %760 = getelementptr inbounds double, ptr %759, i64 1
  %761 = load double, ptr %760, align 8, !tbaa !11
  br label %767

762:                                              ; preds = %753
  %763 = load ptr, ptr %27, align 8, !tbaa !5
  %764 = getelementptr inbounds double, ptr %763, i64 1
  %765 = load double, ptr %764, align 8, !tbaa !11
  %766 = fneg double %765
  br label %767

767:                                              ; preds = %762, %758
  %768 = phi double [ %761, %758 ], [ %766, %762 ]
  %769 = load ptr, ptr %28, align 8, !tbaa !5
  %770 = getelementptr inbounds double, ptr %769, i64 1
  %771 = load double, ptr %770, align 8, !tbaa !11
  %772 = fcmp oge double %771, 0.000000e+00
  br i1 %772, label %773, label %777

773:                                              ; preds = %767
  %774 = load ptr, ptr %28, align 8, !tbaa !5
  %775 = getelementptr inbounds double, ptr %774, i64 1
  %776 = load double, ptr %775, align 8, !tbaa !11
  br label %782

777:                                              ; preds = %767
  %778 = load ptr, ptr %28, align 8, !tbaa !5
  %779 = getelementptr inbounds double, ptr %778, i64 1
  %780 = load double, ptr %779, align 8, !tbaa !11
  %781 = fneg double %780
  br label %782

782:                                              ; preds = %777, %773
  %783 = phi double [ %776, %773 ], [ %781, %777 ]
  %784 = fadd double %768, %783
  store double %784, ptr %42, align 8, !tbaa !11
  %785 = load ptr, ptr %27, align 8, !tbaa !5
  %786 = load ptr, ptr %21, align 8, !tbaa !5
  %787 = load i32, ptr %786, align 4, !tbaa !9
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds double, ptr %785, i64 %788
  %790 = load double, ptr %789, align 8, !tbaa !11
  store double %790, ptr %40, align 8, !tbaa !11
  %791 = load double, ptr %40, align 8, !tbaa !11
  %792 = fcmp oge double %791, 0.000000e+00
  br i1 %792, label %793, label %795

793:                                              ; preds = %782
  %794 = load double, ptr %40, align 8, !tbaa !11
  br label %798

795:                                              ; preds = %782
  %796 = load double, ptr %40, align 8, !tbaa !11
  %797 = fneg double %796
  br label %798

798:                                              ; preds = %795, %793
  %799 = phi double [ %794, %793 ], [ %797, %795 ]
  %800 = load ptr, ptr %28, align 8, !tbaa !5
  %801 = load ptr, ptr %21, align 8, !tbaa !5
  %802 = load i32, ptr %801, align 4, !tbaa !9
  %803 = sub nsw i32 %802, 1
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds double, ptr %800, i64 %804
  %806 = load double, ptr %805, align 8, !tbaa !11
  store double %806, ptr %41, align 8, !tbaa !11
  %807 = load double, ptr %41, align 8, !tbaa !11
  %808 = fcmp oge double %807, 0.000000e+00
  br i1 %808, label %809, label %811

809:                                              ; preds = %798
  %810 = load double, ptr %41, align 8, !tbaa !11
  br label %814

811:                                              ; preds = %798
  %812 = load double, ptr %41, align 8, !tbaa !11
  %813 = fneg double %812
  br label %814

814:                                              ; preds = %811, %809
  %815 = phi double [ %810, %809 ], [ %813, %811 ]
  %816 = fadd double %799, %815
  store double %816, ptr %43, align 8, !tbaa !11
  %817 = load double, ptr %42, align 8, !tbaa !11
  %818 = load double, ptr %43, align 8, !tbaa !11
  %819 = fcmp oge double %817, %818
  br i1 %819, label %820, label %822

820:                                              ; preds = %814
  %821 = load double, ptr %42, align 8, !tbaa !11
  br label %824

822:                                              ; preds = %814
  %823 = load double, ptr %43, align 8, !tbaa !11
  br label %824

824:                                              ; preds = %822, %820
  %825 = phi double [ %821, %820 ], [ %823, %822 ]
  store double %825, ptr %58, align 8, !tbaa !11
  %826 = load ptr, ptr %21, align 8, !tbaa !5
  %827 = load i32, ptr %826, align 4, !tbaa !9
  %828 = sub nsw i32 %827, 1
  store i32 %828, ptr %37, align 4, !tbaa !9
  store i32 2, ptr %49, align 4, !tbaa !9
  br label %829

829:                                              ; preds = %889, %824
  %830 = load i32, ptr %49, align 4, !tbaa !9
  %831 = load i32, ptr %37, align 4, !tbaa !9
  %832 = icmp sle i32 %830, %831
  br i1 %832, label %833, label %892

833:                                              ; preds = %829
  %834 = load double, ptr %58, align 8, !tbaa !11
  store double %834, ptr %43, align 8, !tbaa !11
  %835 = load ptr, ptr %27, align 8, !tbaa !5
  %836 = load i32, ptr %49, align 4, !tbaa !9
  %837 = sext i32 %836 to i64
  %838 = getelementptr inbounds double, ptr %835, i64 %837
  %839 = load double, ptr %838, align 8, !tbaa !11
  store double %839, ptr %40, align 8, !tbaa !11
  %840 = load double, ptr %40, align 8, !tbaa !11
  %841 = fcmp oge double %840, 0.000000e+00
  br i1 %841, label %842, label %844

842:                                              ; preds = %833
  %843 = load double, ptr %40, align 8, !tbaa !11
  br label %847

844:                                              ; preds = %833
  %845 = load double, ptr %40, align 8, !tbaa !11
  %846 = fneg double %845
  br label %847

847:                                              ; preds = %844, %842
  %848 = phi double [ %843, %842 ], [ %846, %844 ]
  %849 = load ptr, ptr %28, align 8, !tbaa !5
  %850 = load i32, ptr %49, align 4, !tbaa !9
  %851 = sub nsw i32 %850, 1
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds double, ptr %849, i64 %852
  %854 = load double, ptr %853, align 8, !tbaa !11
  store double %854, ptr %41, align 8, !tbaa !11
  %855 = load double, ptr %41, align 8, !tbaa !11
  %856 = fcmp oge double %855, 0.000000e+00
  br i1 %856, label %857, label %859

857:                                              ; preds = %847
  %858 = load double, ptr %41, align 8, !tbaa !11
  br label %862

859:                                              ; preds = %847
  %860 = load double, ptr %41, align 8, !tbaa !11
  %861 = fneg double %860
  br label %862

862:                                              ; preds = %859, %857
  %863 = phi double [ %858, %857 ], [ %861, %859 ]
  %864 = fadd double %848, %863
  %865 = load ptr, ptr %28, align 8, !tbaa !5
  %866 = load i32, ptr %49, align 4, !tbaa !9
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds double, ptr %865, i64 %867
  %869 = load double, ptr %868, align 8, !tbaa !11
  store double %869, ptr %42, align 8, !tbaa !11
  %870 = load double, ptr %42, align 8, !tbaa !11
  %871 = fcmp oge double %870, 0.000000e+00
  br i1 %871, label %872, label %874

872:                                              ; preds = %862
  %873 = load double, ptr %42, align 8, !tbaa !11
  br label %877

874:                                              ; preds = %862
  %875 = load double, ptr %42, align 8, !tbaa !11
  %876 = fneg double %875
  br label %877

877:                                              ; preds = %874, %872
  %878 = phi double [ %873, %872 ], [ %876, %874 ]
  %879 = fadd double %864, %878
  store double %879, ptr %44, align 8, !tbaa !11
  %880 = load double, ptr %43, align 8, !tbaa !11
  %881 = load double, ptr %44, align 8, !tbaa !11
  %882 = fcmp oge double %880, %881
  br i1 %882, label %883, label %885

883:                                              ; preds = %877
  %884 = load double, ptr %43, align 8, !tbaa !11
  br label %887

885:                                              ; preds = %877
  %886 = load double, ptr %44, align 8, !tbaa !11
  br label %887

887:                                              ; preds = %885, %883
  %888 = phi double [ %884, %883 ], [ %886, %885 ]
  store double %888, ptr %58, align 8, !tbaa !11
  br label %889

889:                                              ; preds = %887
  %890 = load i32, ptr %49, align 4, !tbaa !9
  %891 = add nsw i32 %890, 1
  store i32 %891, ptr %49, align 4, !tbaa !9
  br label %829, !llvm.loop !16

892:                                              ; preds = %829
  %893 = load ptr, ptr %26, align 8, !tbaa !5
  %894 = load double, ptr %893, align 8, !tbaa !11
  %895 = fcmp ole double %894, 0.000000e+00
  br i1 %895, label %896, label %900

896:                                              ; preds = %892
  %897 = load double, ptr %82, align 8, !tbaa !11
  %898 = load double, ptr %58, align 8, !tbaa !11
  %899 = fmul double %897, %898
  store double %899, ptr %52, align 8, !tbaa !11
  br label %903

900:                                              ; preds = %892
  %901 = load ptr, ptr %26, align 8, !tbaa !5
  %902 = load double, ptr %901, align 8, !tbaa !11
  store double %902, ptr %52, align 8, !tbaa !11
  br label %903

903:                                              ; preds = %900, %896
  %904 = load i32, ptr %71, align 4, !tbaa !9
  %905 = icmp eq i32 %904, 2
  br i1 %905, label %906, label %911

906:                                              ; preds = %903
  %907 = load ptr, ptr %22, align 8, !tbaa !5
  %908 = load double, ptr %907, align 8, !tbaa !11
  store double %908, ptr %70, align 8, !tbaa !11
  %909 = load ptr, ptr %23, align 8, !tbaa !5
  %910 = load double, ptr %909, align 8, !tbaa !11
  store double %910, ptr %74, align 8, !tbaa !11
  br label %912

911:                                              ; preds = %903
  store double 0.000000e+00, ptr %70, align 8, !tbaa !11
  store double 0.000000e+00, ptr %74, align 8, !tbaa !11
  br label %912

912:                                              ; preds = %911, %906
  br label %913

913:                                              ; preds = %912, %752
  %914 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 0, ptr %914, align 4, !tbaa !9
  store i32 0, ptr %45, align 4, !tbaa !9
  %915 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 0, ptr %915, align 4, !tbaa !9
  store i32 0, ptr %81, align 4, !tbaa !9
  store i32 0, ptr %85, align 4, !tbaa !9
  %916 = load ptr, ptr %30, align 8, !tbaa !5
  %917 = load i32, ptr %916, align 4, !tbaa !9
  store i32 %917, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %918

918:                                              ; preds = %1461, %913
  %919 = load i32, ptr %60, align 4, !tbaa !9
  %920 = load i32, ptr %37, align 4, !tbaa !9
  %921 = icmp sle i32 %919, %920
  br i1 %921, label %922, label %1464

922:                                              ; preds = %918
  %923 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %923, ptr %46, align 4, !tbaa !9
  %924 = load i32, ptr %46, align 4, !tbaa !9
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr %67, align 4, !tbaa !9
  %926 = load ptr, ptr %33, align 8, !tbaa !5
  %927 = load i32, ptr %60, align 4, !tbaa !9
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds i32, ptr %926, i64 %928
  %930 = load i32, ptr %929, align 4, !tbaa !9
  store i32 %930, ptr %45, align 4, !tbaa !9
  %931 = load i32, ptr %45, align 4, !tbaa !9
  %932 = load i32, ptr %46, align 4, !tbaa !9
  %933 = sub nsw i32 %931, %932
  store i32 %933, ptr %66, align 4, !tbaa !9
  %934 = load i32, ptr %66, align 4, !tbaa !9
  %935 = icmp eq i32 %934, 1
  br i1 %935, label %936, label %1012

936:                                              ; preds = %922
  %937 = load i32, ptr %71, align 4, !tbaa !9
  %938 = icmp eq i32 %937, 1
  br i1 %938, label %949, label %939

939:                                              ; preds = %936
  %940 = load double, ptr %70, align 8, !tbaa !11
  %941 = load ptr, ptr %27, align 8, !tbaa !5
  %942 = load i32, ptr %67, align 4, !tbaa !9
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds double, ptr %941, i64 %943
  %945 = load double, ptr %944, align 8, !tbaa !11
  %946 = load double, ptr %79, align 8, !tbaa !11
  %947 = fsub double %945, %946
  %948 = fcmp oge double %940, %947
  br i1 %948, label %949, label %952

949:                                              ; preds = %939, %936
  %950 = load i32, ptr %81, align 4, !tbaa !9
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr %81, align 4, !tbaa !9
  br label %952

952:                                              ; preds = %949, %939
  %953 = load i32, ptr %71, align 4, !tbaa !9
  %954 = icmp eq i32 %953, 1
  br i1 %954, label %965, label %955

955:                                              ; preds = %952
  %956 = load double, ptr %74, align 8, !tbaa !11
  %957 = load ptr, ptr %27, align 8, !tbaa !5
  %958 = load i32, ptr %67, align 4, !tbaa !9
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds double, ptr %957, i64 %959
  %961 = load double, ptr %960, align 8, !tbaa !11
  %962 = load double, ptr %79, align 8, !tbaa !11
  %963 = fsub double %961, %962
  %964 = fcmp oge double %956, %963
  br i1 %964, label %965, label %968

965:                                              ; preds = %955, %952
  %966 = load i32, ptr %85, align 4, !tbaa !9
  %967 = add nsw i32 %966, 1
  store i32 %967, ptr %85, align 4, !tbaa !9
  br label %968

968:                                              ; preds = %965, %955
  %969 = load i32, ptr %71, align 4, !tbaa !9
  %970 = icmp eq i32 %969, 1
  br i1 %970, label %991, label %971

971:                                              ; preds = %968
  %972 = load double, ptr %70, align 8, !tbaa !11
  %973 = load ptr, ptr %27, align 8, !tbaa !5
  %974 = load i32, ptr %67, align 4, !tbaa !9
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds double, ptr %973, i64 %975
  %977 = load double, ptr %976, align 8, !tbaa !11
  %978 = load double, ptr %79, align 8, !tbaa !11
  %979 = fsub double %977, %978
  %980 = fcmp olt double %972, %979
  br i1 %980, label %981, label %1011

981:                                              ; preds = %971
  %982 = load double, ptr %74, align 8, !tbaa !11
  %983 = load ptr, ptr %27, align 8, !tbaa !5
  %984 = load i32, ptr %67, align 4, !tbaa !9
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds double, ptr %983, i64 %985
  %987 = load double, ptr %986, align 8, !tbaa !11
  %988 = load double, ptr %79, align 8, !tbaa !11
  %989 = fsub double %987, %988
  %990 = fcmp oge double %982, %989
  br i1 %990, label %991, label %1011

991:                                              ; preds = %981, %968
  %992 = load ptr, ptr %29, align 8, !tbaa !5
  %993 = load i32, ptr %992, align 4, !tbaa !9
  %994 = add nsw i32 %993, 1
  store i32 %994, ptr %992, align 4, !tbaa !9
  %995 = load ptr, ptr %27, align 8, !tbaa !5
  %996 = load i32, ptr %67, align 4, !tbaa !9
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds double, ptr %995, i64 %997
  %999 = load double, ptr %998, align 8, !tbaa !11
  %1000 = load ptr, ptr %31, align 8, !tbaa !5
  %1001 = load ptr, ptr %29, align 8, !tbaa !5
  %1002 = load i32, ptr %1001, align 4, !tbaa !9
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds double, ptr %1000, i64 %1003
  store double %999, ptr %1004, align 8, !tbaa !11
  %1005 = load i32, ptr %60, align 4, !tbaa !9
  %1006 = load ptr, ptr %32, align 8, !tbaa !5
  %1007 = load ptr, ptr %29, align 8, !tbaa !5
  %1008 = load i32, ptr %1007, align 4, !tbaa !9
  %1009 = sext i32 %1008 to i64
  %1010 = getelementptr inbounds i32, ptr %1006, i64 %1009
  store i32 %1005, ptr %1010, align 4, !tbaa !9
  br label %1011

1011:                                             ; preds = %991, %981, %971
  br label %1459

1012:                                             ; preds = %922
  %1013 = load ptr, ptr %27, align 8, !tbaa !5
  %1014 = load i32, ptr %67, align 4, !tbaa !9
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds double, ptr %1013, i64 %1015
  %1017 = load double, ptr %1016, align 8, !tbaa !11
  store double %1017, ptr %68, align 8, !tbaa !11
  %1018 = load ptr, ptr %27, align 8, !tbaa !5
  %1019 = load i32, ptr %67, align 4, !tbaa !9
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds double, ptr %1018, i64 %1020
  %1022 = load double, ptr %1021, align 8, !tbaa !11
  store double %1022, ptr %64, align 8, !tbaa !11
  store double 0.000000e+00, ptr %86, align 8, !tbaa !11
  %1023 = load i32, ptr %45, align 4, !tbaa !9
  %1024 = sub nsw i32 %1023, 1
  store i32 %1024, ptr %38, align 4, !tbaa !9
  %1025 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %1025, ptr %49, align 4, !tbaa !9
  br label %1026

1026:                                             ; preds = %1084, %1012
  %1027 = load i32, ptr %49, align 4, !tbaa !9
  %1028 = load i32, ptr %38, align 4, !tbaa !9
  %1029 = icmp sle i32 %1027, %1028
  br i1 %1029, label %1030, label %1087

1030:                                             ; preds = %1026
  %1031 = load ptr, ptr %28, align 8, !tbaa !5
  %1032 = load i32, ptr %49, align 4, !tbaa !9
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds double, ptr %1031, i64 %1033
  %1035 = load double, ptr %1034, align 8, !tbaa !11
  store double %1035, ptr %40, align 8, !tbaa !11
  %1036 = load double, ptr %40, align 8, !tbaa !11
  %1037 = fcmp oge double %1036, 0.000000e+00
  br i1 %1037, label %1038, label %1040

1038:                                             ; preds = %1030
  %1039 = load double, ptr %40, align 8, !tbaa !11
  br label %1043

1040:                                             ; preds = %1030
  %1041 = load double, ptr %40, align 8, !tbaa !11
  %1042 = fneg double %1041
  br label %1043

1043:                                             ; preds = %1040, %1038
  %1044 = phi double [ %1039, %1038 ], [ %1042, %1040 ]
  store double %1044, ptr %87, align 8, !tbaa !11
  %1045 = load double, ptr %68, align 8, !tbaa !11
  store double %1045, ptr %40, align 8, !tbaa !11
  %1046 = load ptr, ptr %27, align 8, !tbaa !5
  %1047 = load i32, ptr %49, align 4, !tbaa !9
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds double, ptr %1046, i64 %1048
  %1050 = load double, ptr %1049, align 8, !tbaa !11
  %1051 = load double, ptr %86, align 8, !tbaa !11
  %1052 = fadd double %1050, %1051
  %1053 = load double, ptr %87, align 8, !tbaa !11
  %1054 = fadd double %1052, %1053
  store double %1054, ptr %41, align 8, !tbaa !11
  %1055 = load double, ptr %40, align 8, !tbaa !11
  %1056 = load double, ptr %41, align 8, !tbaa !11
  %1057 = fcmp oge double %1055, %1056
  br i1 %1057, label %1058, label %1060

1058:                                             ; preds = %1043
  %1059 = load double, ptr %40, align 8, !tbaa !11
  br label %1062

1060:                                             ; preds = %1043
  %1061 = load double, ptr %41, align 8, !tbaa !11
  br label %1062

1062:                                             ; preds = %1060, %1058
  %1063 = phi double [ %1059, %1058 ], [ %1061, %1060 ]
  store double %1063, ptr %68, align 8, !tbaa !11
  %1064 = load double, ptr %64, align 8, !tbaa !11
  store double %1064, ptr %40, align 8, !tbaa !11
  %1065 = load ptr, ptr %27, align 8, !tbaa !5
  %1066 = load i32, ptr %49, align 4, !tbaa !9
  %1067 = sext i32 %1066 to i64
  %1068 = getelementptr inbounds double, ptr %1065, i64 %1067
  %1069 = load double, ptr %1068, align 8, !tbaa !11
  %1070 = load double, ptr %86, align 8, !tbaa !11
  %1071 = fsub double %1069, %1070
  %1072 = load double, ptr %87, align 8, !tbaa !11
  %1073 = fsub double %1071, %1072
  store double %1073, ptr %41, align 8, !tbaa !11
  %1074 = load double, ptr %40, align 8, !tbaa !11
  %1075 = load double, ptr %41, align 8, !tbaa !11
  %1076 = fcmp ole double %1074, %1075
  br i1 %1076, label %1077, label %1079

1077:                                             ; preds = %1062
  %1078 = load double, ptr %40, align 8, !tbaa !11
  br label %1081

1079:                                             ; preds = %1062
  %1080 = load double, ptr %41, align 8, !tbaa !11
  br label %1081

1081:                                             ; preds = %1079, %1077
  %1082 = phi double [ %1078, %1077 ], [ %1080, %1079 ]
  store double %1082, ptr %64, align 8, !tbaa !11
  %1083 = load double, ptr %87, align 8, !tbaa !11
  store double %1083, ptr %86, align 8, !tbaa !11
  br label %1084

1084:                                             ; preds = %1081
  %1085 = load i32, ptr %49, align 4, !tbaa !9
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr %49, align 4, !tbaa !9
  br label %1026, !llvm.loop !17

1087:                                             ; preds = %1026
  %1088 = load double, ptr %68, align 8, !tbaa !11
  store double %1088, ptr %40, align 8, !tbaa !11
  %1089 = load ptr, ptr %27, align 8, !tbaa !5
  %1090 = load i32, ptr %45, align 4, !tbaa !9
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds double, ptr %1089, i64 %1091
  %1093 = load double, ptr %1092, align 8, !tbaa !11
  %1094 = load double, ptr %86, align 8, !tbaa !11
  %1095 = fadd double %1093, %1094
  store double %1095, ptr %41, align 8, !tbaa !11
  %1096 = load double, ptr %40, align 8, !tbaa !11
  %1097 = load double, ptr %41, align 8, !tbaa !11
  %1098 = fcmp oge double %1096, %1097
  br i1 %1098, label %1099, label %1101

1099:                                             ; preds = %1087
  %1100 = load double, ptr %40, align 8, !tbaa !11
  br label %1103

1101:                                             ; preds = %1087
  %1102 = load double, ptr %41, align 8, !tbaa !11
  br label %1103

1103:                                             ; preds = %1101, %1099
  %1104 = phi double [ %1100, %1099 ], [ %1102, %1101 ]
  store double %1104, ptr %68, align 8, !tbaa !11
  %1105 = load double, ptr %64, align 8, !tbaa !11
  store double %1105, ptr %40, align 8, !tbaa !11
  %1106 = load ptr, ptr %27, align 8, !tbaa !5
  %1107 = load i32, ptr %45, align 4, !tbaa !9
  %1108 = sext i32 %1107 to i64
  %1109 = getelementptr inbounds double, ptr %1106, i64 %1108
  %1110 = load double, ptr %1109, align 8, !tbaa !11
  %1111 = load double, ptr %86, align 8, !tbaa !11
  %1112 = fsub double %1110, %1111
  store double %1112, ptr %41, align 8, !tbaa !11
  %1113 = load double, ptr %40, align 8, !tbaa !11
  %1114 = load double, ptr %41, align 8, !tbaa !11
  %1115 = fcmp ole double %1113, %1114
  br i1 %1115, label %1116, label %1118

1116:                                             ; preds = %1103
  %1117 = load double, ptr %40, align 8, !tbaa !11
  br label %1120

1118:                                             ; preds = %1103
  %1119 = load double, ptr %41, align 8, !tbaa !11
  br label %1120

1120:                                             ; preds = %1118, %1116
  %1121 = phi double [ %1117, %1116 ], [ %1119, %1118 ]
  store double %1121, ptr %64, align 8, !tbaa !11
  %1122 = load double, ptr %64, align 8, !tbaa !11
  %1123 = fcmp oge double %1122, 0.000000e+00
  br i1 %1123, label %1124, label %1126

1124:                                             ; preds = %1120
  %1125 = load double, ptr %64, align 8, !tbaa !11
  br label %1129

1126:                                             ; preds = %1120
  %1127 = load double, ptr %64, align 8, !tbaa !11
  %1128 = fneg double %1127
  br label %1129

1129:                                             ; preds = %1126, %1124
  %1130 = phi double [ %1125, %1124 ], [ %1128, %1126 ]
  store double %1130, ptr %40, align 8, !tbaa !11
  %1131 = load double, ptr %68, align 8, !tbaa !11
  %1132 = fcmp oge double %1131, 0.000000e+00
  br i1 %1132, label %1133, label %1135

1133:                                             ; preds = %1129
  %1134 = load double, ptr %68, align 8, !tbaa !11
  br label %1138

1135:                                             ; preds = %1129
  %1136 = load double, ptr %68, align 8, !tbaa !11
  %1137 = fneg double %1136
  br label %1138

1138:                                             ; preds = %1135, %1133
  %1139 = phi double [ %1134, %1133 ], [ %1137, %1135 ]
  store double %1139, ptr %41, align 8, !tbaa !11
  %1140 = load double, ptr %40, align 8, !tbaa !11
  %1141 = load double, ptr %41, align 8, !tbaa !11
  %1142 = fcmp oge double %1140, %1141
  br i1 %1142, label %1143, label %1145

1143:                                             ; preds = %1138
  %1144 = load double, ptr %40, align 8, !tbaa !11
  br label %1147

1145:                                             ; preds = %1138
  %1146 = load double, ptr %41, align 8, !tbaa !11
  br label %1147

1147:                                             ; preds = %1145, %1143
  %1148 = phi double [ %1144, %1143 ], [ %1146, %1145 ]
  store double %1148, ptr %54, align 8, !tbaa !11
  %1149 = load double, ptr %64, align 8, !tbaa !11
  %1150 = load double, ptr %54, align 8, !tbaa !11
  %1151 = fmul double %1150, 2.100000e+00
  %1152 = load double, ptr %82, align 8, !tbaa !11
  %1153 = fmul double %1151, %1152
  %1154 = load i32, ptr %66, align 4, !tbaa !9
  %1155 = sitofp i32 %1154 to double
  %1156 = fneg double %1153
  %1157 = call double @llvm.fmuladd.f64(double %1156, double %1155, double %1149)
  %1158 = load double, ptr %79, align 8, !tbaa !11
  %1159 = fneg double %1158
  %1160 = call double @llvm.fmuladd.f64(double %1159, double 2.100000e+00, double %1157)
  store double %1160, ptr %64, align 8, !tbaa !11
  %1161 = load double, ptr %68, align 8, !tbaa !11
  %1162 = load double, ptr %54, align 8, !tbaa !11
  %1163 = fmul double %1162, 2.100000e+00
  %1164 = load double, ptr %82, align 8, !tbaa !11
  %1165 = fmul double %1163, %1164
  %1166 = load i32, ptr %66, align 4, !tbaa !9
  %1167 = sitofp i32 %1166 to double
  %1168 = call double @llvm.fmuladd.f64(double %1165, double %1167, double %1161)
  %1169 = load double, ptr %79, align 8, !tbaa !11
  %1170 = call double @llvm.fmuladd.f64(double %1169, double 2.100000e+00, double %1168)
  store double %1170, ptr %68, align 8, !tbaa !11
  %1171 = load ptr, ptr %26, align 8, !tbaa !5
  %1172 = load double, ptr %1171, align 8, !tbaa !11
  %1173 = fcmp ole double %1172, 0.000000e+00
  br i1 %1173, label %1174, label %1204

1174:                                             ; preds = %1147
  %1175 = load double, ptr %64, align 8, !tbaa !11
  %1176 = fcmp oge double %1175, 0.000000e+00
  br i1 %1176, label %1177, label %1179

1177:                                             ; preds = %1174
  %1178 = load double, ptr %64, align 8, !tbaa !11
  br label %1182

1179:                                             ; preds = %1174
  %1180 = load double, ptr %64, align 8, !tbaa !11
  %1181 = fneg double %1180
  br label %1182

1182:                                             ; preds = %1179, %1177
  %1183 = phi double [ %1178, %1177 ], [ %1181, %1179 ]
  store double %1183, ptr %40, align 8, !tbaa !11
  %1184 = load double, ptr %68, align 8, !tbaa !11
  %1185 = fcmp oge double %1184, 0.000000e+00
  br i1 %1185, label %1186, label %1188

1186:                                             ; preds = %1182
  %1187 = load double, ptr %68, align 8, !tbaa !11
  br label %1191

1188:                                             ; preds = %1182
  %1189 = load double, ptr %68, align 8, !tbaa !11
  %1190 = fneg double %1189
  br label %1191

1191:                                             ; preds = %1188, %1186
  %1192 = phi double [ %1187, %1186 ], [ %1190, %1188 ]
  store double %1192, ptr %41, align 8, !tbaa !11
  %1193 = load double, ptr %82, align 8, !tbaa !11
  %1194 = load double, ptr %40, align 8, !tbaa !11
  %1195 = load double, ptr %41, align 8, !tbaa !11
  %1196 = fcmp oge double %1194, %1195
  br i1 %1196, label %1197, label %1199

1197:                                             ; preds = %1191
  %1198 = load double, ptr %40, align 8, !tbaa !11
  br label %1201

1199:                                             ; preds = %1191
  %1200 = load double, ptr %41, align 8, !tbaa !11
  br label %1201

1201:                                             ; preds = %1199, %1197
  %1202 = phi double [ %1198, %1197 ], [ %1200, %1199 ]
  %1203 = fmul double %1193, %1202
  store double %1203, ptr %52, align 8, !tbaa !11
  br label %1207

1204:                                             ; preds = %1147
  %1205 = load ptr, ptr %26, align 8, !tbaa !5
  %1206 = load double, ptr %1205, align 8, !tbaa !11
  store double %1206, ptr %52, align 8, !tbaa !11
  br label %1207

1207:                                             ; preds = %1204, %1201
  %1208 = load i32, ptr %71, align 4, !tbaa !9
  %1209 = icmp sgt i32 %1208, 1
  br i1 %1209, label %1210, label %1245

1210:                                             ; preds = %1207
  %1211 = load double, ptr %68, align 8, !tbaa !11
  %1212 = load double, ptr %70, align 8, !tbaa !11
  %1213 = fcmp olt double %1211, %1212
  br i1 %1213, label %1214, label %1221

1214:                                             ; preds = %1210
  %1215 = load i32, ptr %66, align 4, !tbaa !9
  %1216 = load i32, ptr %81, align 4, !tbaa !9
  %1217 = add nsw i32 %1216, %1215
  store i32 %1217, ptr %81, align 4, !tbaa !9
  %1218 = load i32, ptr %66, align 4, !tbaa !9
  %1219 = load i32, ptr %85, align 4, !tbaa !9
  %1220 = add nsw i32 %1219, %1218
  store i32 %1220, ptr %85, align 4, !tbaa !9
  br label %1460

1221:                                             ; preds = %1210
  %1222 = load double, ptr %64, align 8, !tbaa !11
  %1223 = load double, ptr %70, align 8, !tbaa !11
  %1224 = fcmp oge double %1222, %1223
  br i1 %1224, label %1225, label %1227

1225:                                             ; preds = %1221
  %1226 = load double, ptr %64, align 8, !tbaa !11
  br label %1229

1227:                                             ; preds = %1221
  %1228 = load double, ptr %70, align 8, !tbaa !11
  br label %1229

1229:                                             ; preds = %1227, %1225
  %1230 = phi double [ %1226, %1225 ], [ %1228, %1227 ]
  store double %1230, ptr %64, align 8, !tbaa !11
  %1231 = load double, ptr %68, align 8, !tbaa !11
  %1232 = load double, ptr %74, align 8, !tbaa !11
  %1233 = fcmp ole double %1231, %1232
  br i1 %1233, label %1234, label %1236

1234:                                             ; preds = %1229
  %1235 = load double, ptr %68, align 8, !tbaa !11
  br label %1238

1236:                                             ; preds = %1229
  %1237 = load double, ptr %74, align 8, !tbaa !11
  br label %1238

1238:                                             ; preds = %1236, %1234
  %1239 = phi double [ %1235, %1234 ], [ %1237, %1236 ]
  store double %1239, ptr %68, align 8, !tbaa !11
  %1240 = load double, ptr %64, align 8, !tbaa !11
  %1241 = load double, ptr %68, align 8, !tbaa !11
  %1242 = fcmp oge double %1240, %1241
  br i1 %1242, label %1243, label %1244

1243:                                             ; preds = %1238
  br label %1460

1244:                                             ; preds = %1238
  br label %1245

1245:                                             ; preds = %1244, %1207
  %1246 = load double, ptr %64, align 8, !tbaa !11
  %1247 = load ptr, ptr %34, align 8, !tbaa !5
  %1248 = load ptr, ptr %21, align 8, !tbaa !5
  %1249 = load i32, ptr %1248, align 4, !tbaa !9
  %1250 = add nsw i32 %1249, 1
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds double, ptr %1247, i64 %1251
  store double %1246, ptr %1252, align 8, !tbaa !11
  %1253 = load double, ptr %68, align 8, !tbaa !11
  %1254 = load ptr, ptr %34, align 8, !tbaa !5
  %1255 = load ptr, ptr %21, align 8, !tbaa !5
  %1256 = load i32, ptr %1255, align 4, !tbaa !9
  %1257 = load i32, ptr %66, align 4, !tbaa !9
  %1258 = add nsw i32 %1256, %1257
  %1259 = add nsw i32 %1258, 1
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds double, ptr %1254, i64 %1260
  store double %1253, ptr %1261, align 8, !tbaa !11
  %1262 = load ptr, ptr %27, align 8, !tbaa !5
  %1263 = load i32, ptr %67, align 4, !tbaa !9
  %1264 = sext i32 %1263 to i64
  %1265 = getelementptr inbounds double, ptr %1262, i64 %1264
  %1266 = load ptr, ptr %28, align 8, !tbaa !5
  %1267 = load i32, ptr %67, align 4, !tbaa !9
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds double, ptr %1266, i64 %1268
  %1270 = load ptr, ptr %34, align 8, !tbaa !5
  %1271 = load i32, ptr %67, align 4, !tbaa !9
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds double, ptr %1270, i64 %1272
  %1274 = getelementptr inbounds [1 x i32], ptr %75, i64 0, i64 0
  %1275 = load ptr, ptr %34, align 8, !tbaa !5
  %1276 = load ptr, ptr %21, align 8, !tbaa !5
  %1277 = load i32, ptr %1276, align 4, !tbaa !9
  %1278 = add nsw i32 %1277, 1
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds double, ptr %1275, i64 %1279
  %1281 = load ptr, ptr %34, align 8, !tbaa !5
  %1282 = load ptr, ptr %21, align 8, !tbaa !5
  %1283 = load i32, ptr %1282, align 4, !tbaa !9
  %1284 = load i32, ptr %66, align 4, !tbaa !9
  %1285 = shl i32 %1284, 1
  %1286 = add nsw i32 %1283, %1285
  %1287 = add nsw i32 %1286, 1
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr inbounds double, ptr %1281, i64 %1288
  %1290 = load ptr, ptr %35, align 8, !tbaa !5
  %1291 = getelementptr inbounds i32, ptr %1290, i64 1
  %1292 = load ptr, ptr %31, align 8, !tbaa !5
  %1293 = load ptr, ptr %29, align 8, !tbaa !5
  %1294 = load i32, ptr %1293, align 4, !tbaa !9
  %1295 = add nsw i32 %1294, 1
  %1296 = sext i32 %1295 to i64
  %1297 = getelementptr inbounds double, ptr %1292, i64 %1296
  %1298 = load ptr, ptr %32, align 8, !tbaa !5
  %1299 = load ptr, ptr %29, align 8, !tbaa !5
  %1300 = load i32, ptr %1299, align 4, !tbaa !9
  %1301 = add nsw i32 %1300, 1
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds i32, ptr %1298, i64 %1302
  call void @dlaebz_(ptr noundef @c__1, ptr noundef @c__0, ptr noundef %66, ptr noundef %66, ptr noundef @c__1, ptr noundef %63, ptr noundef %52, ptr noundef %57, ptr noundef %79, ptr noundef %1265, ptr noundef %1269, ptr noundef %1273, ptr noundef %1274, ptr noundef %1280, ptr noundef %1289, ptr noundef %65, ptr noundef %1291, ptr noundef %1297, ptr noundef %1303, ptr noundef %51)
  %1304 = load ptr, ptr %35, align 8, !tbaa !5
  %1305 = getelementptr inbounds i32, ptr %1304, i64 1
  %1306 = load i32, ptr %1305, align 4, !tbaa !9
  %1307 = load i32, ptr %81, align 4, !tbaa !9
  %1308 = add nsw i32 %1307, %1306
  store i32 %1308, ptr %81, align 4, !tbaa !9
  %1309 = load ptr, ptr %35, align 8, !tbaa !5
  %1310 = load i32, ptr %66, align 4, !tbaa !9
  %1311 = add nsw i32 %1310, 1
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds i32, ptr %1309, i64 %1312
  %1314 = load i32, ptr %1313, align 4, !tbaa !9
  %1315 = load i32, ptr %85, align 4, !tbaa !9
  %1316 = add nsw i32 %1315, %1314
  store i32 %1316, ptr %85, align 4, !tbaa !9
  %1317 = load ptr, ptr %29, align 8, !tbaa !5
  %1318 = load i32, ptr %1317, align 4, !tbaa !9
  %1319 = load ptr, ptr %35, align 8, !tbaa !5
  %1320 = getelementptr inbounds i32, ptr %1319, i64 1
  %1321 = load i32, ptr %1320, align 4, !tbaa !9
  %1322 = sub nsw i32 %1318, %1321
  store i32 %1322, ptr %53, align 4, !tbaa !9
  %1323 = load double, ptr %68, align 8, !tbaa !11
  %1324 = load double, ptr %64, align 8, !tbaa !11
  %1325 = fsub double %1323, %1324
  %1326 = load double, ptr %79, align 8, !tbaa !11
  %1327 = fadd double %1325, %1326
  %1328 = call double @log(double noundef %1327) #5
  %1329 = load double, ptr %79, align 8, !tbaa !11
  %1330 = call double @log(double noundef %1329) #5
  %1331 = fsub double %1328, %1330
  %1332 = call double @log(double noundef 2.000000e+00) #5
  %1333 = fdiv double %1331, %1332
  %1334 = fptosi double %1333 to i32
  %1335 = add nsw i32 %1334, 2
  store i32 %1335, ptr %55, align 4, !tbaa !9
  %1336 = load ptr, ptr %27, align 8, !tbaa !5
  %1337 = load i32, ptr %67, align 4, !tbaa !9
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds double, ptr %1336, i64 %1338
  %1340 = load ptr, ptr %28, align 8, !tbaa !5
  %1341 = load i32, ptr %67, align 4, !tbaa !9
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds double, ptr %1340, i64 %1342
  %1344 = load ptr, ptr %34, align 8, !tbaa !5
  %1345 = load i32, ptr %67, align 4, !tbaa !9
  %1346 = sext i32 %1345 to i64
  %1347 = getelementptr inbounds double, ptr %1344, i64 %1346
  %1348 = getelementptr inbounds [1 x i32], ptr %75, i64 0, i64 0
  %1349 = load ptr, ptr %34, align 8, !tbaa !5
  %1350 = load ptr, ptr %21, align 8, !tbaa !5
  %1351 = load i32, ptr %1350, align 4, !tbaa !9
  %1352 = add nsw i32 %1351, 1
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds double, ptr %1349, i64 %1353
  %1355 = load ptr, ptr %34, align 8, !tbaa !5
  %1356 = load ptr, ptr %21, align 8, !tbaa !5
  %1357 = load i32, ptr %1356, align 4, !tbaa !9
  %1358 = load i32, ptr %66, align 4, !tbaa !9
  %1359 = shl i32 %1358, 1
  %1360 = add nsw i32 %1357, %1359
  %1361 = add nsw i32 %1360, 1
  %1362 = sext i32 %1361 to i64
  %1363 = getelementptr inbounds double, ptr %1355, i64 %1362
  %1364 = load ptr, ptr %35, align 8, !tbaa !5
  %1365 = getelementptr inbounds i32, ptr %1364, i64 1
  %1366 = load ptr, ptr %31, align 8, !tbaa !5
  %1367 = load ptr, ptr %29, align 8, !tbaa !5
  %1368 = load i32, ptr %1367, align 4, !tbaa !9
  %1369 = add nsw i32 %1368, 1
  %1370 = sext i32 %1369 to i64
  %1371 = getelementptr inbounds double, ptr %1366, i64 %1370
  %1372 = load ptr, ptr %32, align 8, !tbaa !5
  %1373 = load ptr, ptr %29, align 8, !tbaa !5
  %1374 = load i32, ptr %1373, align 4, !tbaa !9
  %1375 = add nsw i32 %1374, 1
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds i32, ptr %1372, i64 %1376
  call void @dlaebz_(ptr noundef @c__2, ptr noundef %55, ptr noundef %66, ptr noundef %66, ptr noundef @c__1, ptr noundef %63, ptr noundef %52, ptr noundef %57, ptr noundef %79, ptr noundef %1339, ptr noundef %1343, ptr noundef %1347, ptr noundef %1348, ptr noundef %1354, ptr noundef %1363, ptr noundef %47, ptr noundef %1365, ptr noundef %1371, ptr noundef %1377, ptr noundef %51)
  %1378 = load i32, ptr %47, align 4, !tbaa !9
  store i32 %1378, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %1379

1379:                                             ; preds = %1451, %1245
  %1380 = load i32, ptr %49, align 4, !tbaa !9
  %1381 = load i32, ptr %38, align 4, !tbaa !9
  %1382 = icmp sle i32 %1380, %1381
  br i1 %1382, label %1383, label %1454

1383:                                             ; preds = %1379
  %1384 = load ptr, ptr %34, align 8, !tbaa !5
  %1385 = load i32, ptr %49, align 4, !tbaa !9
  %1386 = load ptr, ptr %21, align 8, !tbaa !5
  %1387 = load i32, ptr %1386, align 4, !tbaa !9
  %1388 = add nsw i32 %1385, %1387
  %1389 = sext i32 %1388 to i64
  %1390 = getelementptr inbounds double, ptr %1384, i64 %1389
  %1391 = load double, ptr %1390, align 8, !tbaa !11
  %1392 = load ptr, ptr %34, align 8, !tbaa !5
  %1393 = load i32, ptr %49, align 4, !tbaa !9
  %1394 = load i32, ptr %66, align 4, !tbaa !9
  %1395 = add nsw i32 %1393, %1394
  %1396 = load ptr, ptr %21, align 8, !tbaa !5
  %1397 = load i32, ptr %1396, align 4, !tbaa !9
  %1398 = add nsw i32 %1395, %1397
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds double, ptr %1392, i64 %1399
  %1401 = load double, ptr %1400, align 8, !tbaa !11
  %1402 = fadd double %1391, %1401
  %1403 = fmul double %1402, 5.000000e-01
  store double %1403, ptr %86, align 8, !tbaa !11
  %1404 = load i32, ptr %49, align 4, !tbaa !9
  %1405 = load i32, ptr %47, align 4, !tbaa !9
  %1406 = load i32, ptr %51, align 4, !tbaa !9
  %1407 = sub nsw i32 %1405, %1406
  %1408 = icmp sgt i32 %1404, %1407
  br i1 %1408, label %1409, label %1412

1409:                                             ; preds = %1383
  store i32 1, ptr %78, align 4, !tbaa !9
  %1410 = load i32, ptr %60, align 4, !tbaa !9
  %1411 = sub nsw i32 0, %1410
  store i32 %1411, ptr %59, align 4, !tbaa !9
  br label %1414

1412:                                             ; preds = %1383
  %1413 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %1413, ptr %59, align 4, !tbaa !9
  br label %1414

1414:                                             ; preds = %1412, %1409
  %1415 = load ptr, ptr %35, align 8, !tbaa !5
  %1416 = load i32, ptr %49, align 4, !tbaa !9
  %1417 = load i32, ptr %66, align 4, !tbaa !9
  %1418 = add nsw i32 %1416, %1417
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds i32, ptr %1415, i64 %1419
  %1421 = load i32, ptr %1420, align 4, !tbaa !9
  %1422 = load i32, ptr %53, align 4, !tbaa !9
  %1423 = add nsw i32 %1421, %1422
  store i32 %1423, ptr %39, align 4, !tbaa !9
  %1424 = load ptr, ptr %35, align 8, !tbaa !5
  %1425 = load i32, ptr %49, align 4, !tbaa !9
  %1426 = sext i32 %1425 to i64
  %1427 = getelementptr inbounds i32, ptr %1424, i64 %1426
  %1428 = load i32, ptr %1427, align 4, !tbaa !9
  %1429 = add nsw i32 %1428, 1
  %1430 = load i32, ptr %53, align 4, !tbaa !9
  %1431 = add nsw i32 %1429, %1430
  store i32 %1431, ptr %62, align 4, !tbaa !9
  br label %1432

1432:                                             ; preds = %1447, %1414
  %1433 = load i32, ptr %62, align 4, !tbaa !9
  %1434 = load i32, ptr %39, align 4, !tbaa !9
  %1435 = icmp sle i32 %1433, %1434
  br i1 %1435, label %1436, label %1450

1436:                                             ; preds = %1432
  %1437 = load double, ptr %86, align 8, !tbaa !11
  %1438 = load ptr, ptr %31, align 8, !tbaa !5
  %1439 = load i32, ptr %62, align 4, !tbaa !9
  %1440 = sext i32 %1439 to i64
  %1441 = getelementptr inbounds double, ptr %1438, i64 %1440
  store double %1437, ptr %1441, align 8, !tbaa !11
  %1442 = load i32, ptr %59, align 4, !tbaa !9
  %1443 = load ptr, ptr %32, align 8, !tbaa !5
  %1444 = load i32, ptr %62, align 4, !tbaa !9
  %1445 = sext i32 %1444 to i64
  %1446 = getelementptr inbounds i32, ptr %1443, i64 %1445
  store i32 %1442, ptr %1446, align 4, !tbaa !9
  br label %1447

1447:                                             ; preds = %1436
  %1448 = load i32, ptr %62, align 4, !tbaa !9
  %1449 = add nsw i32 %1448, 1
  store i32 %1449, ptr %62, align 4, !tbaa !9
  br label %1432, !llvm.loop !18

1450:                                             ; preds = %1432
  br label %1451

1451:                                             ; preds = %1450
  %1452 = load i32, ptr %49, align 4, !tbaa !9
  %1453 = add nsw i32 %1452, 1
  store i32 %1453, ptr %49, align 4, !tbaa !9
  br label %1379, !llvm.loop !19

1454:                                             ; preds = %1379
  %1455 = load i32, ptr %65, align 4, !tbaa !9
  %1456 = load ptr, ptr %29, align 8, !tbaa !5
  %1457 = load i32, ptr %1456, align 4, !tbaa !9
  %1458 = add nsw i32 %1457, %1455
  store i32 %1458, ptr %1456, align 4, !tbaa !9
  br label %1459

1459:                                             ; preds = %1454, %1011
  br label %1460

1460:                                             ; preds = %1459, %1243, %1214
  br label %1461

1461:                                             ; preds = %1460
  %1462 = load i32, ptr %60, align 4, !tbaa !9
  %1463 = add nsw i32 %1462, 1
  store i32 %1463, ptr %60, align 4, !tbaa !9
  br label %918, !llvm.loop !20

1464:                                             ; preds = %918
  %1465 = load i32, ptr %71, align 4, !tbaa !9
  %1466 = icmp eq i32 %1465, 3
  br i1 %1466, label %1467, label %1712

1467:                                             ; preds = %1464
  store i32 0, ptr %65, align 4, !tbaa !9
  %1468 = load ptr, ptr %24, align 8, !tbaa !5
  %1469 = load i32, ptr %1468, align 4, !tbaa !9
  %1470 = sub nsw i32 %1469, 1
  %1471 = load i32, ptr %81, align 4, !tbaa !9
  %1472 = sub nsw i32 %1470, %1471
  store i32 %1472, ptr %72, align 4, !tbaa !9
  %1473 = load i32, ptr %85, align 4, !tbaa !9
  %1474 = load ptr, ptr %25, align 8, !tbaa !5
  %1475 = load i32, ptr %1474, align 4, !tbaa !9
  %1476 = sub nsw i32 %1473, %1475
  store i32 %1476, ptr %76, align 4, !tbaa !9
  %1477 = load i32, ptr %72, align 4, !tbaa !9
  %1478 = icmp sgt i32 %1477, 0
  br i1 %1478, label %1482, label %1479

1479:                                             ; preds = %1467
  %1480 = load i32, ptr %76, align 4, !tbaa !9
  %1481 = icmp sgt i32 %1480, 0
  br i1 %1481, label %1482, label %1546

1482:                                             ; preds = %1479, %1467
  %1483 = load ptr, ptr %29, align 8, !tbaa !5
  %1484 = load i32, ptr %1483, align 4, !tbaa !9
  store i32 %1484, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1485

1485:                                             ; preds = %1540, %1482
  %1486 = load i32, ptr %62, align 4, !tbaa !9
  %1487 = load i32, ptr %37, align 4, !tbaa !9
  %1488 = icmp sle i32 %1486, %1487
  br i1 %1488, label %1489, label %1543

1489:                                             ; preds = %1485
  %1490 = load ptr, ptr %31, align 8, !tbaa !5
  %1491 = load i32, ptr %62, align 4, !tbaa !9
  %1492 = sext i32 %1491 to i64
  %1493 = getelementptr inbounds double, ptr %1490, i64 %1492
  %1494 = load double, ptr %1493, align 8, !tbaa !11
  %1495 = load double, ptr %83, align 8, !tbaa !11
  %1496 = fcmp ole double %1494, %1495
  br i1 %1496, label %1497, label %1503

1497:                                             ; preds = %1489
  %1498 = load i32, ptr %72, align 4, !tbaa !9
  %1499 = icmp sgt i32 %1498, 0
  br i1 %1499, label %1500, label %1503

1500:                                             ; preds = %1497
  %1501 = load i32, ptr %72, align 4, !tbaa !9
  %1502 = add nsw i32 %1501, -1
  store i32 %1502, ptr %72, align 4, !tbaa !9
  br label %1539

1503:                                             ; preds = %1497, %1489
  %1504 = load ptr, ptr %31, align 8, !tbaa !5
  %1505 = load i32, ptr %62, align 4, !tbaa !9
  %1506 = sext i32 %1505 to i64
  %1507 = getelementptr inbounds double, ptr %1504, i64 %1506
  %1508 = load double, ptr %1507, align 8, !tbaa !11
  %1509 = load double, ptr %84, align 8, !tbaa !11
  %1510 = fcmp oge double %1508, %1509
  br i1 %1510, label %1511, label %1517

1511:                                             ; preds = %1503
  %1512 = load i32, ptr %76, align 4, !tbaa !9
  %1513 = icmp sgt i32 %1512, 0
  br i1 %1513, label %1514, label %1517

1514:                                             ; preds = %1511
  %1515 = load i32, ptr %76, align 4, !tbaa !9
  %1516 = add nsw i32 %1515, -1
  store i32 %1516, ptr %76, align 4, !tbaa !9
  br label %1538

1517:                                             ; preds = %1511, %1503
  %1518 = load i32, ptr %65, align 4, !tbaa !9
  %1519 = add nsw i32 %1518, 1
  store i32 %1519, ptr %65, align 4, !tbaa !9
  %1520 = load ptr, ptr %31, align 8, !tbaa !5
  %1521 = load i32, ptr %62, align 4, !tbaa !9
  %1522 = sext i32 %1521 to i64
  %1523 = getelementptr inbounds double, ptr %1520, i64 %1522
  %1524 = load double, ptr %1523, align 8, !tbaa !11
  %1525 = load ptr, ptr %31, align 8, !tbaa !5
  %1526 = load i32, ptr %65, align 4, !tbaa !9
  %1527 = sext i32 %1526 to i64
  %1528 = getelementptr inbounds double, ptr %1525, i64 %1527
  store double %1524, ptr %1528, align 8, !tbaa !11
  %1529 = load ptr, ptr %32, align 8, !tbaa !5
  %1530 = load i32, ptr %62, align 4, !tbaa !9
  %1531 = sext i32 %1530 to i64
  %1532 = getelementptr inbounds i32, ptr %1529, i64 %1531
  %1533 = load i32, ptr %1532, align 4, !tbaa !9
  %1534 = load ptr, ptr %32, align 8, !tbaa !5
  %1535 = load i32, ptr %65, align 4, !tbaa !9
  %1536 = sext i32 %1535 to i64
  %1537 = getelementptr inbounds i32, ptr %1534, i64 %1536
  store i32 %1533, ptr %1537, align 4, !tbaa !9
  br label %1538

1538:                                             ; preds = %1517, %1514
  br label %1539

1539:                                             ; preds = %1538, %1500
  br label %1540

1540:                                             ; preds = %1539
  %1541 = load i32, ptr %62, align 4, !tbaa !9
  %1542 = add nsw i32 %1541, 1
  store i32 %1542, ptr %62, align 4, !tbaa !9
  br label %1485, !llvm.loop !21

1543:                                             ; preds = %1485
  %1544 = load i32, ptr %65, align 4, !tbaa !9
  %1545 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 %1544, ptr %1545, align 4, !tbaa !9
  br label %1546

1546:                                             ; preds = %1543, %1479
  %1547 = load i32, ptr %72, align 4, !tbaa !9
  %1548 = icmp sgt i32 %1547, 0
  br i1 %1548, label %1552, label %1549

1549:                                             ; preds = %1546
  %1550 = load i32, ptr %76, align 4, !tbaa !9
  %1551 = icmp sgt i32 %1550, 0
  br i1 %1551, label %1552, label %1704

1552:                                             ; preds = %1549, %1546
  %1553 = load i32, ptr %72, align 4, !tbaa !9
  %1554 = icmp sgt i32 %1553, 0
  br i1 %1554, label %1555, label %1607

1555:                                             ; preds = %1552
  %1556 = load double, ptr %74, align 8, !tbaa !11
  store double %1556, ptr %56, align 8, !tbaa !11
  %1557 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1557, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %1558

1558:                                             ; preds = %1603, %1555
  %1559 = load i32, ptr %50, align 4, !tbaa !9
  %1560 = load i32, ptr %37, align 4, !tbaa !9
  %1561 = icmp sle i32 %1559, %1560
  br i1 %1561, label %1562, label %1606

1562:                                             ; preds = %1558
  store i32 0, ptr %69, align 4, !tbaa !9
  %1563 = load ptr, ptr %29, align 8, !tbaa !5
  %1564 = load i32, ptr %1563, align 4, !tbaa !9
  store i32 %1564, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1565

1565:                                             ; preds = %1595, %1562
  %1566 = load i32, ptr %62, align 4, !tbaa !9
  %1567 = load i32, ptr %38, align 4, !tbaa !9
  %1568 = icmp sle i32 %1566, %1567
  br i1 %1568, label %1569, label %1598

1569:                                             ; preds = %1565
  %1570 = load ptr, ptr %32, align 8, !tbaa !5
  %1571 = load i32, ptr %62, align 4, !tbaa !9
  %1572 = sext i32 %1571 to i64
  %1573 = getelementptr inbounds i32, ptr %1570, i64 %1572
  %1574 = load i32, ptr %1573, align 4, !tbaa !9
  %1575 = icmp ne i32 %1574, 0
  br i1 %1575, label %1576, label %1594

1576:                                             ; preds = %1569
  %1577 = load ptr, ptr %31, align 8, !tbaa !5
  %1578 = load i32, ptr %62, align 4, !tbaa !9
  %1579 = sext i32 %1578 to i64
  %1580 = getelementptr inbounds double, ptr %1577, i64 %1579
  %1581 = load double, ptr %1580, align 8, !tbaa !11
  %1582 = load double, ptr %56, align 8, !tbaa !11
  %1583 = fcmp olt double %1581, %1582
  br i1 %1583, label %1587, label %1584

1584:                                             ; preds = %1576
  %1585 = load i32, ptr %69, align 4, !tbaa !9
  %1586 = icmp eq i32 %1585, 0
  br i1 %1586, label %1587, label %1594

1587:                                             ; preds = %1584, %1576
  %1588 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %1588, ptr %69, align 4, !tbaa !9
  %1589 = load ptr, ptr %31, align 8, !tbaa !5
  %1590 = load i32, ptr %62, align 4, !tbaa !9
  %1591 = sext i32 %1590 to i64
  %1592 = getelementptr inbounds double, ptr %1589, i64 %1591
  %1593 = load double, ptr %1592, align 8, !tbaa !11
  store double %1593, ptr %56, align 8, !tbaa !11
  br label %1594

1594:                                             ; preds = %1587, %1584, %1569
  br label %1595

1595:                                             ; preds = %1594
  %1596 = load i32, ptr %62, align 4, !tbaa !9
  %1597 = add nsw i32 %1596, 1
  store i32 %1597, ptr %62, align 4, !tbaa !9
  br label %1565, !llvm.loop !22

1598:                                             ; preds = %1565
  %1599 = load ptr, ptr %32, align 8, !tbaa !5
  %1600 = load i32, ptr %69, align 4, !tbaa !9
  %1601 = sext i32 %1600 to i64
  %1602 = getelementptr inbounds i32, ptr %1599, i64 %1601
  store i32 0, ptr %1602, align 4, !tbaa !9
  br label %1603

1603:                                             ; preds = %1598
  %1604 = load i32, ptr %50, align 4, !tbaa !9
  %1605 = add nsw i32 %1604, 1
  store i32 %1605, ptr %50, align 4, !tbaa !9
  br label %1558, !llvm.loop !23

1606:                                             ; preds = %1558
  br label %1607

1607:                                             ; preds = %1606, %1552
  %1608 = load i32, ptr %76, align 4, !tbaa !9
  %1609 = icmp sgt i32 %1608, 0
  br i1 %1609, label %1610, label %1662

1610:                                             ; preds = %1607
  %1611 = load double, ptr %70, align 8, !tbaa !11
  store double %1611, ptr %56, align 8, !tbaa !11
  %1612 = load i32, ptr %76, align 4, !tbaa !9
  store i32 %1612, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %1613

1613:                                             ; preds = %1658, %1610
  %1614 = load i32, ptr %50, align 4, !tbaa !9
  %1615 = load i32, ptr %37, align 4, !tbaa !9
  %1616 = icmp sle i32 %1614, %1615
  br i1 %1616, label %1617, label %1661

1617:                                             ; preds = %1613
  store i32 0, ptr %69, align 4, !tbaa !9
  %1618 = load ptr, ptr %29, align 8, !tbaa !5
  %1619 = load i32, ptr %1618, align 4, !tbaa !9
  store i32 %1619, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1620

1620:                                             ; preds = %1650, %1617
  %1621 = load i32, ptr %62, align 4, !tbaa !9
  %1622 = load i32, ptr %38, align 4, !tbaa !9
  %1623 = icmp sle i32 %1621, %1622
  br i1 %1623, label %1624, label %1653

1624:                                             ; preds = %1620
  %1625 = load ptr, ptr %32, align 8, !tbaa !5
  %1626 = load i32, ptr %62, align 4, !tbaa !9
  %1627 = sext i32 %1626 to i64
  %1628 = getelementptr inbounds i32, ptr %1625, i64 %1627
  %1629 = load i32, ptr %1628, align 4, !tbaa !9
  %1630 = icmp ne i32 %1629, 0
  br i1 %1630, label %1631, label %1649

1631:                                             ; preds = %1624
  %1632 = load ptr, ptr %31, align 8, !tbaa !5
  %1633 = load i32, ptr %62, align 4, !tbaa !9
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds double, ptr %1632, i64 %1634
  %1636 = load double, ptr %1635, align 8, !tbaa !11
  %1637 = load double, ptr %56, align 8, !tbaa !11
  %1638 = fcmp ogt double %1636, %1637
  br i1 %1638, label %1642, label %1639

1639:                                             ; preds = %1631
  %1640 = load i32, ptr %69, align 4, !tbaa !9
  %1641 = icmp eq i32 %1640, 0
  br i1 %1641, label %1642, label %1649

1642:                                             ; preds = %1639, %1631
  %1643 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %1643, ptr %69, align 4, !tbaa !9
  %1644 = load ptr, ptr %31, align 8, !tbaa !5
  %1645 = load i32, ptr %62, align 4, !tbaa !9
  %1646 = sext i32 %1645 to i64
  %1647 = getelementptr inbounds double, ptr %1644, i64 %1646
  %1648 = load double, ptr %1647, align 8, !tbaa !11
  store double %1648, ptr %56, align 8, !tbaa !11
  br label %1649

1649:                                             ; preds = %1642, %1639, %1624
  br label %1650

1650:                                             ; preds = %1649
  %1651 = load i32, ptr %62, align 4, !tbaa !9
  %1652 = add nsw i32 %1651, 1
  store i32 %1652, ptr %62, align 4, !tbaa !9
  br label %1620, !llvm.loop !24

1653:                                             ; preds = %1620
  %1654 = load ptr, ptr %32, align 8, !tbaa !5
  %1655 = load i32, ptr %69, align 4, !tbaa !9
  %1656 = sext i32 %1655 to i64
  %1657 = getelementptr inbounds i32, ptr %1654, i64 %1656
  store i32 0, ptr %1657, align 4, !tbaa !9
  br label %1658

1658:                                             ; preds = %1653
  %1659 = load i32, ptr %50, align 4, !tbaa !9
  %1660 = add nsw i32 %1659, 1
  store i32 %1660, ptr %50, align 4, !tbaa !9
  br label %1613, !llvm.loop !25

1661:                                             ; preds = %1613
  br label %1662

1662:                                             ; preds = %1661, %1607
  store i32 0, ptr %65, align 4, !tbaa !9
  %1663 = load ptr, ptr %29, align 8, !tbaa !5
  %1664 = load i32, ptr %1663, align 4, !tbaa !9
  store i32 %1664, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1665

1665:                                             ; preds = %1698, %1662
  %1666 = load i32, ptr %62, align 4, !tbaa !9
  %1667 = load i32, ptr %37, align 4, !tbaa !9
  %1668 = icmp sle i32 %1666, %1667
  br i1 %1668, label %1669, label %1701

1669:                                             ; preds = %1665
  %1670 = load ptr, ptr %32, align 8, !tbaa !5
  %1671 = load i32, ptr %62, align 4, !tbaa !9
  %1672 = sext i32 %1671 to i64
  %1673 = getelementptr inbounds i32, ptr %1670, i64 %1672
  %1674 = load i32, ptr %1673, align 4, !tbaa !9
  %1675 = icmp ne i32 %1674, 0
  br i1 %1675, label %1676, label %1697

1676:                                             ; preds = %1669
  %1677 = load i32, ptr %65, align 4, !tbaa !9
  %1678 = add nsw i32 %1677, 1
  store i32 %1678, ptr %65, align 4, !tbaa !9
  %1679 = load ptr, ptr %31, align 8, !tbaa !5
  %1680 = load i32, ptr %62, align 4, !tbaa !9
  %1681 = sext i32 %1680 to i64
  %1682 = getelementptr inbounds double, ptr %1679, i64 %1681
  %1683 = load double, ptr %1682, align 8, !tbaa !11
  %1684 = load ptr, ptr %31, align 8, !tbaa !5
  %1685 = load i32, ptr %65, align 4, !tbaa !9
  %1686 = sext i32 %1685 to i64
  %1687 = getelementptr inbounds double, ptr %1684, i64 %1686
  store double %1683, ptr %1687, align 8, !tbaa !11
  %1688 = load ptr, ptr %32, align 8, !tbaa !5
  %1689 = load i32, ptr %62, align 4, !tbaa !9
  %1690 = sext i32 %1689 to i64
  %1691 = getelementptr inbounds i32, ptr %1688, i64 %1690
  %1692 = load i32, ptr %1691, align 4, !tbaa !9
  %1693 = load ptr, ptr %32, align 8, !tbaa !5
  %1694 = load i32, ptr %65, align 4, !tbaa !9
  %1695 = sext i32 %1694 to i64
  %1696 = getelementptr inbounds i32, ptr %1693, i64 %1695
  store i32 %1692, ptr %1696, align 4, !tbaa !9
  br label %1697

1697:                                             ; preds = %1676, %1669
  br label %1698

1698:                                             ; preds = %1697
  %1699 = load i32, ptr %62, align 4, !tbaa !9
  %1700 = add nsw i32 %1699, 1
  store i32 %1700, ptr %62, align 4, !tbaa !9
  br label %1665, !llvm.loop !26

1701:                                             ; preds = %1665
  %1702 = load i32, ptr %65, align 4, !tbaa !9
  %1703 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 %1702, ptr %1703, align 4, !tbaa !9
  br label %1704

1704:                                             ; preds = %1701, %1549
  %1705 = load i32, ptr %72, align 4, !tbaa !9
  %1706 = icmp slt i32 %1705, 0
  br i1 %1706, label %1710, label %1707

1707:                                             ; preds = %1704
  %1708 = load i32, ptr %76, align 4, !tbaa !9
  %1709 = icmp slt i32 %1708, 0
  br i1 %1709, label %1710, label %1711

1710:                                             ; preds = %1707, %1704
  store i32 1, ptr %80, align 4, !tbaa !9
  br label %1711

1711:                                             ; preds = %1710, %1707
  br label %1712

1712:                                             ; preds = %1711, %1464
  %1713 = load i32, ptr %77, align 4, !tbaa !9
  %1714 = icmp eq i32 %1713, 1
  br i1 %1714, label %1715, label %1802

1715:                                             ; preds = %1712
  %1716 = load ptr, ptr %30, align 8, !tbaa !5
  %1717 = load i32, ptr %1716, align 4, !tbaa !9
  %1718 = icmp sgt i32 %1717, 1
  br i1 %1718, label %1719, label %1802

1719:                                             ; preds = %1715
  %1720 = load ptr, ptr %29, align 8, !tbaa !5
  %1721 = load i32, ptr %1720, align 4, !tbaa !9
  %1722 = sub nsw i32 %1721, 1
  store i32 %1722, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1723

1723:                                             ; preds = %1798, %1719
  %1724 = load i32, ptr %62, align 4, !tbaa !9
  %1725 = load i32, ptr %37, align 4, !tbaa !9
  %1726 = icmp sle i32 %1724, %1725
  br i1 %1726, label %1727, label %1801

1727:                                             ; preds = %1723
  store i32 0, ptr %61, align 4, !tbaa !9
  %1728 = load ptr, ptr %31, align 8, !tbaa !5
  %1729 = load i32, ptr %62, align 4, !tbaa !9
  %1730 = sext i32 %1729 to i64
  %1731 = getelementptr inbounds double, ptr %1728, i64 %1730
  %1732 = load double, ptr %1731, align 8, !tbaa !11
  store double %1732, ptr %86, align 8, !tbaa !11
  %1733 = load ptr, ptr %29, align 8, !tbaa !5
  %1734 = load i32, ptr %1733, align 4, !tbaa !9
  store i32 %1734, ptr %38, align 4, !tbaa !9
  %1735 = load i32, ptr %62, align 4, !tbaa !9
  %1736 = add nsw i32 %1735, 1
  store i32 %1736, ptr %49, align 4, !tbaa !9
  br label %1737

1737:                                             ; preds = %1757, %1727
  %1738 = load i32, ptr %49, align 4, !tbaa !9
  %1739 = load i32, ptr %38, align 4, !tbaa !9
  %1740 = icmp sle i32 %1738, %1739
  br i1 %1740, label %1741, label %1760

1741:                                             ; preds = %1737
  %1742 = load ptr, ptr %31, align 8, !tbaa !5
  %1743 = load i32, ptr %49, align 4, !tbaa !9
  %1744 = sext i32 %1743 to i64
  %1745 = getelementptr inbounds double, ptr %1742, i64 %1744
  %1746 = load double, ptr %1745, align 8, !tbaa !11
  %1747 = load double, ptr %86, align 8, !tbaa !11
  %1748 = fcmp olt double %1746, %1747
  br i1 %1748, label %1749, label %1756

1749:                                             ; preds = %1741
  %1750 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %1750, ptr %61, align 4, !tbaa !9
  %1751 = load ptr, ptr %31, align 8, !tbaa !5
  %1752 = load i32, ptr %49, align 4, !tbaa !9
  %1753 = sext i32 %1752 to i64
  %1754 = getelementptr inbounds double, ptr %1751, i64 %1753
  %1755 = load double, ptr %1754, align 8, !tbaa !11
  store double %1755, ptr %86, align 8, !tbaa !11
  br label %1756

1756:                                             ; preds = %1749, %1741
  br label %1757

1757:                                             ; preds = %1756
  %1758 = load i32, ptr %49, align 4, !tbaa !9
  %1759 = add nsw i32 %1758, 1
  store i32 %1759, ptr %49, align 4, !tbaa !9
  br label %1737, !llvm.loop !27

1760:                                             ; preds = %1737
  %1761 = load i32, ptr %61, align 4, !tbaa !9
  %1762 = icmp ne i32 %1761, 0
  br i1 %1762, label %1763, label %1797

1763:                                             ; preds = %1760
  %1764 = load ptr, ptr %32, align 8, !tbaa !5
  %1765 = load i32, ptr %61, align 4, !tbaa !9
  %1766 = sext i32 %1765 to i64
  %1767 = getelementptr inbounds i32, ptr %1764, i64 %1766
  %1768 = load i32, ptr %1767, align 4, !tbaa !9
  store i32 %1768, ptr %48, align 4, !tbaa !9
  %1769 = load ptr, ptr %31, align 8, !tbaa !5
  %1770 = load i32, ptr %62, align 4, !tbaa !9
  %1771 = sext i32 %1770 to i64
  %1772 = getelementptr inbounds double, ptr %1769, i64 %1771
  %1773 = load double, ptr %1772, align 8, !tbaa !11
  %1774 = load ptr, ptr %31, align 8, !tbaa !5
  %1775 = load i32, ptr %61, align 4, !tbaa !9
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds double, ptr %1774, i64 %1776
  store double %1773, ptr %1777, align 8, !tbaa !11
  %1778 = load ptr, ptr %32, align 8, !tbaa !5
  %1779 = load i32, ptr %62, align 4, !tbaa !9
  %1780 = sext i32 %1779 to i64
  %1781 = getelementptr inbounds i32, ptr %1778, i64 %1780
  %1782 = load i32, ptr %1781, align 4, !tbaa !9
  %1783 = load ptr, ptr %32, align 8, !tbaa !5
  %1784 = load i32, ptr %61, align 4, !tbaa !9
  %1785 = sext i32 %1784 to i64
  %1786 = getelementptr inbounds i32, ptr %1783, i64 %1785
  store i32 %1782, ptr %1786, align 4, !tbaa !9
  %1787 = load double, ptr %86, align 8, !tbaa !11
  %1788 = load ptr, ptr %31, align 8, !tbaa !5
  %1789 = load i32, ptr %62, align 4, !tbaa !9
  %1790 = sext i32 %1789 to i64
  %1791 = getelementptr inbounds double, ptr %1788, i64 %1790
  store double %1787, ptr %1791, align 8, !tbaa !11
  %1792 = load i32, ptr %48, align 4, !tbaa !9
  %1793 = load ptr, ptr %32, align 8, !tbaa !5
  %1794 = load i32, ptr %62, align 4, !tbaa !9
  %1795 = sext i32 %1794 to i64
  %1796 = getelementptr inbounds i32, ptr %1793, i64 %1795
  store i32 %1792, ptr %1796, align 4, !tbaa !9
  br label %1797

1797:                                             ; preds = %1763, %1760
  br label %1798

1798:                                             ; preds = %1797
  %1799 = load i32, ptr %62, align 4, !tbaa !9
  %1800 = add nsw i32 %1799, 1
  store i32 %1800, ptr %62, align 4, !tbaa !9
  br label %1723, !llvm.loop !28

1801:                                             ; preds = %1723
  br label %1802

1802:                                             ; preds = %1801, %1715, %1712
  %1803 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 0, ptr %1803, align 4, !tbaa !9
  %1804 = load i32, ptr %78, align 4, !tbaa !9
  %1805 = icmp ne i32 %1804, 0
  br i1 %1805, label %1806, label %1810

1806:                                             ; preds = %1802
  %1807 = load ptr, ptr %36, align 8, !tbaa !5
  %1808 = load i32, ptr %1807, align 4, !tbaa !9
  %1809 = add nsw i32 %1808, 1
  store i32 %1809, ptr %1807, align 4, !tbaa !9
  br label %1810

1810:                                             ; preds = %1806, %1802
  %1811 = load i32, ptr %80, align 4, !tbaa !9
  %1812 = icmp ne i32 %1811, 0
  br i1 %1812, label %1813, label %1817

1813:                                             ; preds = %1810
  %1814 = load ptr, ptr %36, align 8, !tbaa !5
  %1815 = load i32, ptr %1814, align 4, !tbaa !9
  %1816 = add nsw i32 %1815, 2
  store i32 %1816, ptr %1814, align 4, !tbaa !9
  br label %1817

1817:                                             ; preds = %1813, %1810
  store i32 1, ptr %88, align 4
  br label %1818

1818:                                             ; preds = %1817, %750, %291, %231, %220
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  ret void
}

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

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

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

declare double @dlamch_(ptr noundef) #2

declare i32 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 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: nounwind
declare double @log(double noundef) #4

declare void @dlaebz_(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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !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 i32, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__0 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @dstebz_(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 i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca double, align 8
  %23 = alloca i32, align 4
  %24 = alloca double, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca [1 x i32], align 4
  %29 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  %30 = getelementptr inbounds i8, ptr %16, i64 -4
  %31 = getelementptr inbounds i8, ptr %15, i64 -8
  %32 = getelementptr inbounds i8, ptr %14, i64 -4
  %33 = getelementptr inbounds i8, ptr %13, i64 -4
  %34 = getelementptr inbounds i8, ptr %12, i64 -8
  %35 = getelementptr inbounds i8, ptr %9, i64 -8
  %36 = getelementptr inbounds i8, ptr %8, i64 -8
  store i32 0, ptr %17, align 4, !tbaa !5
  %37 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %.not = icmp eq i32 %37, 0
  br i1 %.not, label %38, label %42

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

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

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

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

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

49:                                               ; preds = %47
  %.not712 = icmp eq i32 %48, 0
  br i1 %.not712, label %.critedge.thread.sink.split, label %.thread750

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

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

53:                                               ; preds = %52
  %54 = load double, ptr %3, align 8, !tbaa !9
  %55 = load double, ptr %4, align 8, !tbaa !9
  %56 = fcmp ult double %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 i32, ptr %5, align 4, !tbaa !5
  %60 = icmp slt i32 %59, 1
  %spec.select = tail call i32 @llvm.umax.i32(i32 %50, i32 1)
  %61 = icmp ugt i32 %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 i32, ptr %6, align 4, !tbaa !5
  %.744 = tail call i32 @llvm.umin.i32(i32 %50, i32 %59)
  %64 = icmp slt i32 %63, %.744
  %65 = icmp ugt i32 %63, %50
  %or.cond768 = or i1 %64, %65
  br i1 %or.cond768, label %.critedge.thread.sink.split, label %.critedge

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

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

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

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

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

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

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

79:                                               ; preds = %76, %73, %72
  %.1649 = phi i32 [ 3, %73 ], [ %.0648, %72 ], [ %spec.select745, %76 ]
  %80 = tail call double @dlamch_(ptr noundef nonnull @.str.6) #6
  %81 = tail call double @dlamch_(ptr noundef nonnull @.str.7) #6
  %82 = fmul double %81, 2.000000e+00
  store double %82, ptr %24, align 8, !tbaa !9
  %83 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #6
  %84 = icmp slt i32 %83, 2
  %spec.store.select = select i1 %84, i32 0, i32 %83
  store i32 %spec.store.select, ptr %25, align 4
  %85 = load i32, ptr %2, align 4, !tbaa !5
  %86 = icmp eq i32 %85, 1
  store i32 1, ptr %11, align 4, !tbaa !5
  br i1 %86, label %87, label %97

87:                                               ; preds = %79
  store i32 1, ptr %14, align 4, !tbaa !5
  %88 = icmp eq i32 %.1649, 2
  %.pre961 = load double, ptr %8, align 8, !tbaa !9
  br i1 %88, label %89, label %95

89:                                               ; preds = %87
  %90 = load double, ptr %3, align 8, !tbaa !9
  %91 = fcmp ult double %90, %.pre961
  br i1 %91, label %92, label %96

92:                                               ; preds = %89
  %93 = load double, ptr %4, align 8, !tbaa !9
  %94 = fcmp olt double %93, %.pre961
  br i1 %94, label %96, label %95

95:                                               ; preds = %92, %87
  store double %.pre961, ptr %12, align 8, !tbaa !9
  store i32 1, ptr %13, align 4, !tbaa !5
  br label %96

96:                                               ; preds = %89, %92, %95
  %storemerge739 = phi i32 [ 1, %95 ], [ 0, %92 ], [ 0, %89 ]
  store i32 %storemerge739, ptr %10, align 4, !tbaa !5
  br label %613

97:                                               ; preds = %79
  %98 = load i32, ptr %2, align 4, !tbaa !5
  %99 = sext i32 %98 to i64
  %100 = getelementptr inbounds double, ptr %31, i64 %99
  store double 0.000000e+00, ptr %100, align 8, !tbaa !9
  %.not715773 = icmp slt i32 %98, 2
  br i1 %.not715773, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %97
  %101 = fmul double %81, %81
  %102 = add nuw i32 %98, 1
  %wide.trip.count = zext i32 %102 to i64
  br label %103

103:                                              ; preds = %.lr.ph, %129
  %indvars.iv = phi i64 [ 2, %.lr.ph ], [ %indvars.iv.next, %129 ]
  %104 = phi double [ 1.000000e+00, %.lr.ph ], [ %130, %129 ]
  %105 = add nsw i64 %indvars.iv, -1
  %106 = getelementptr inbounds double, ptr %35, i64 %105
  %107 = load double, ptr %106, align 8, !tbaa !9
  %108 = fmul double %107, %107
  %109 = getelementptr inbounds double, ptr %36, i64 %indvars.iv
  %110 = load double, ptr %109, align 8, !tbaa !9
  %111 = getelementptr inbounds double, ptr %36, i64 %105
  %112 = load double, ptr %111, align 8, !tbaa !9
  %113 = fmul double %110, %112
  %114 = fcmp oge double %113, 0.000000e+00
  %115 = fneg double %113
  %116 = select i1 %114, double %113, double %115
  %117 = tail call double @llvm.fmuladd.f64(double %116, double %101, double %80)
  %118 = fcmp ogt double %117, %108
  br i1 %118, label %119, label %126

119:                                              ; preds = %103
  %120 = load i32, ptr %11, align 4, !tbaa !5
  %121 = sext i32 %120 to i64
  %122 = getelementptr inbounds i32, ptr %32, i64 %121
  %123 = trunc nuw nsw i64 %105 to i32
  store i32 %123, ptr %122, align 4, !tbaa !5
  %124 = load i32, ptr %11, align 4, !tbaa !5
  %125 = add nsw i32 %124, 1
  store i32 %125, ptr %11, align 4, !tbaa !5
  br label %129

126:                                              ; preds = %103
  %127 = fcmp oge double %104, %108
  %128 = select i1 %127, double %104, double %108
  br label %129

129:                                              ; preds = %119, %126
  %.sink = phi double [ 0.000000e+00, %119 ], [ %108, %126 ]
  %130 = phi double [ %104, %119 ], [ %128, %126 ]
  %131 = getelementptr inbounds double, ptr %31, i64 %105
  store double %.sink, ptr %131, align 8
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge.loopexit, label %103, !llvm.loop !11

._crit_edge.loopexit:                             ; preds = %129
  %.pre = load i32, ptr %2, align 4, !tbaa !5
  %.pre957 = load i32, ptr %11, align 4, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %97
  %132 = phi double [ %130, %._crit_edge.loopexit ], [ 1.000000e+00, %97 ]
  %133 = phi i32 [ %.pre957, %._crit_edge.loopexit ], [ 1, %97 ]
  %134 = phi i32 [ %.pre, %._crit_edge.loopexit ], [ %98, %97 ]
  %135 = sext i32 %133 to i64
  %136 = getelementptr inbounds i32, ptr %32, i64 %135
  store i32 %134, ptr %136, align 4, !tbaa !5
  %137 = fmul double %80, %132
  store double %137, ptr %29, align 8, !tbaa !9
  %138 = icmp eq i32 %.1649, 3
  %139 = load i32, ptr %2, align 4, !tbaa !5
  br i1 %138, label %140, label %._crit_edge780

140:                                              ; preds = %._crit_edge
  %141 = load double, ptr %8, align 8, !tbaa !9
  %142 = add nsw i32 %139, -1
  store i32 %142, ptr %19, align 4, !tbaa !5
  %.not717781 = icmp slt i32 %139, 2
  %143 = insertelement <2 x double> poison, double %141, i64 0
  %144 = shufflevector <2 x double> %143, <2 x double> poison, <2 x i32> zeroinitializer
  br i1 %.not717781, label %._crit_edge788, label %.lr.ph787.preheader

.lr.ph787.preheader:                              ; preds = %140
  %wide.trip.count904 = zext nneg i32 %139 to i64
  br label %.lr.ph787

.lr.ph787:                                        ; preds = %.lr.ph787.preheader, %.lr.ph787
  %indvars.iv901 = phi i64 [ 1, %.lr.ph787.preheader ], [ %indvars.iv.next902, %.lr.ph787 ]
  %.0785 = phi double [ 0.000000e+00, %.lr.ph787.preheader ], [ %148, %.lr.ph787 ]
  %145 = phi <2 x double> [ %144, %.lr.ph787.preheader ], [ %159, %.lr.ph787 ]
  %146 = getelementptr inbounds double, ptr %31, i64 %indvars.iv901
  %147 = load double, ptr %146, align 8, !tbaa !9
  %148 = tail call double @sqrt(double noundef %147) #6
  %149 = getelementptr inbounds double, ptr %36, i64 %indvars.iv901
  %150 = load double, ptr %149, align 8, !tbaa !9
  %151 = fadd double %.0785, %150
  %152 = fadd double %148, %151
  %153 = fsub double %150, %.0785
  %154 = fsub double %153, %148
  %155 = insertelement <2 x double> %145, double %154, i64 1
  %156 = insertelement <2 x double> %145, double %152, i64 0
  %157 = fcmp oge <2 x double> %155, %156
  %158 = insertelement <2 x double> %155, double %152, i64 0
  %159 = select <2 x i1> %157, <2 x double> %145, <2 x double> %158
  %indvars.iv.next902 = add nuw nsw i64 %indvars.iv901, 1
  %exitcond905.not = icmp eq i64 %indvars.iv.next902, %wide.trip.count904
  br i1 %exitcond905.not, label %._crit_edge788.loopexit, label %.lr.ph787, !llvm.loop !13

._crit_edge788.loopexit:                          ; preds = %.lr.ph787
  %.pre958 = load i32, ptr %2, align 4, !tbaa !5
  br label %._crit_edge788

._crit_edge788:                                   ; preds = %._crit_edge788.loopexit, %140
  %160 = phi i32 [ %139, %140 ], [ %.pre958, %._crit_edge788.loopexit ]
  %.0.lcssa = phi double [ 0.000000e+00, %140 ], [ %148, %._crit_edge788.loopexit ]
  %161 = phi <2 x double> [ %144, %140 ], [ %159, %._crit_edge788.loopexit ]
  %162 = sext i32 %160 to i64
  %163 = getelementptr inbounds double, ptr %36, i64 %162
  %164 = load double, ptr %163, align 8, !tbaa !9
  %165 = fadd double %.0.lcssa, %164
  %166 = fsub double %164, %.0.lcssa
  %167 = sitofp i32 %160 to double
  %168 = fneg double %137
  %169 = insertelement <2 x double> %161, double %166, i64 1
  %170 = insertelement <2 x double> %161, double %165, i64 0
  %171 = fcmp oge <2 x double> %169, %170
  %172 = insertelement <2 x double> %169, double %165, i64 0
  %173 = select <2 x i1> %171, <2 x double> %161, <2 x double> %172
  %174 = fcmp oge <2 x double> %173, zeroinitializer
  %175 = fneg <2 x double> %173
  %176 = select <2 x i1> %174, <2 x double> %173, <2 x double> %175
  %177 = extractelement <2 x double> %176, i64 0
  %178 = extractelement <2 x double> %176, i64 1
  %179 = fcmp oge double %178, %177
  %180 = select i1 %179, double %178, double %177
  %181 = fmul double %180, 2.100000e+00
  %182 = fmul double %81, %181
  %183 = fneg double %182
  %184 = insertelement <2 x double> poison, double %182, i64 0
  %185 = insertelement <2 x double> %184, double %183, i64 1
  %186 = insertelement <2 x double> poison, double %167, i64 0
  %187 = shufflevector <2 x double> %186, <2 x double> poison, <2 x i32> zeroinitializer
  %188 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %187, <2 x double> %173)
  %189 = insertelement <2 x double> poison, double %137, i64 0
  %190 = insertelement <2 x double> %189, double %168, i64 1
  %191 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %190, <2 x double> <double 2.100000e+00, double 4.200000e+00>, <2 x double> %188)
  %192 = fadd double %137, %180
  %193 = tail call double @log(double noundef %192) #6
  %194 = tail call double @log(double noundef %137) #6
  %195 = fsub double %193, %194
  %196 = fdiv double %195, 0x3FE62E42FEFA39EF
  %197 = fptosi double %196 to i32
  %198 = add nsw i32 %197, 2
  store i32 %198, ptr %23, align 4, !tbaa !5
  %199 = load double, ptr %7, align 8, !tbaa !9
  %200 = fcmp ugt double %199, 0.000000e+00
  %201 = fmul double %81, %180
  %storemerge718 = select i1 %200, double %199, double %201
  store double %storemerge718, ptr %22, align 8, !tbaa !9
  %202 = load i32, ptr %2, align 4, !tbaa !5
  %203 = sext i32 %202 to i64
  %204 = getelementptr double, ptr %31, i64 %203
  %205 = getelementptr i8, ptr %204, i64 8
  %206 = extractelement <2 x double> %191, i64 1
  store double %206, ptr %205, align 8, !tbaa !9
  %207 = getelementptr i8, ptr %204, i64 16
  store double %206, ptr %207, align 8, !tbaa !9
  %208 = getelementptr i8, ptr %204, i64 24
  %209 = extractelement <2 x double> %191, i64 0
  store double %209, ptr %208, align 8, !tbaa !9
  %210 = getelementptr i8, ptr %204, i64 32
  store <2 x double> %191, ptr %210, align 8, !tbaa !9
  %211 = getelementptr i8, ptr %204, i64 48
  store double %209, ptr %211, align 8, !tbaa !9
  store i32 -1, ptr %16, align 4, !tbaa !5
  %212 = getelementptr inbounds i8, ptr %16, i64 4
  store i32 -1, ptr %212, align 4, !tbaa !5
  %213 = load i32, ptr %2, align 4, !tbaa !5
  %214 = add nsw i32 %213, 1
  %215 = getelementptr inbounds i8, ptr %16, i64 8
  store i32 %214, ptr %215, align 4, !tbaa !5
  %216 = load i32, ptr %2, align 4, !tbaa !5
  %217 = add nsw i32 %216, 1
  %218 = getelementptr inbounds i8, ptr %16, i64 12
  store i32 %217, ptr %218, align 4, !tbaa !5
  %219 = load i32, ptr %5, align 4, !tbaa !5
  %220 = add nsw i32 %219, -1
  %221 = getelementptr inbounds i8, ptr %16, i64 16
  store i32 %220, ptr %221, align 4, !tbaa !5
  %222 = load i32, ptr %6, align 4, !tbaa !5
  %223 = getelementptr inbounds i8, ptr %16, i64 20
  store i32 %222, ptr %223, align 4, !tbaa !5
  %224 = load i32, ptr %2, align 4, !tbaa !5
  %225 = sext i32 %224 to i64
  %226 = getelementptr double, ptr %31, i64 %225
  %227 = getelementptr i8, ptr %226, i64 8
  %228 = getelementptr i8, ptr %226, i64 40
  call void @dlaebz_(ptr noundef nonnull @c__3, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %25, ptr noundef nonnull %22, ptr noundef nonnull %24, ptr noundef nonnull %29, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %15, ptr noundef nonnull %221, ptr noundef %227, ptr noundef %228, ptr noundef nonnull %20, ptr noundef nonnull %16, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %21) #6
  %229 = load i32, ptr %223, align 4, !tbaa !5
  %230 = load i32, ptr %6, align 4, !tbaa !5
  %231 = icmp eq i32 %229, %230
  %.981 = select i1 %231, ptr %16, ptr %212
  %.0630 = load i32, ptr %.981, align 4, !tbaa !5
  %232 = icmp slt i32 %.0630, 0
  br i1 %232, label %245, label %233

233:                                              ; preds = %._crit_edge788
  %234 = load i32, ptr %2, align 4, !tbaa !5
  %235 = sext i32 %234 to i64
  %236 = getelementptr double, ptr %31, i64 %235
  %.980 = select i1 %231, i64 16, i64 8
  %237 = getelementptr i8, ptr %236, i64 %.980
  %.979 = select i1 %231, i64 32, i64 24
  %238 = getelementptr i8, ptr %236, i64 %.979
  %.978 = select i1 %231, i64 24, i64 32
  %239 = getelementptr i8, ptr %236, i64 %.978
  %. = select i1 %231, i64 8, i64 16
  %240 = getelementptr i8, ptr %236, i64 %.
  %.982 = select i1 %231, ptr %218, ptr %215
  %.0650 = load double, ptr %240, align 8, !tbaa !9
  %.0643 = load double, ptr %238, align 8, !tbaa !9
  %.0628 = load double, ptr %239, align 8, !tbaa !9
  %.0626 = load double, ptr %237, align 8, !tbaa !9
  %.0622 = load i32, ptr %.982, align 4, !tbaa !5
  %241 = icmp sge i32 %.0630, %234
  %242 = icmp slt i32 %.0622, 1
  %243 = icmp sgt i32 %.0622, %234
  %244 = or i1 %242, %243
  %or.cond746 = select i1 %241, i1 true, i1 %244
  br i1 %or.cond746, label %245, label %250

245:                                              ; preds = %233, %._crit_edge788
  store i32 4, ptr %17, align 4, !tbaa !5
  br label %613

._crit_edge780:                                   ; preds = %._crit_edge
  %246 = icmp eq i32 %.1649, 2
  br i1 %246, label %247, label %250

247:                                              ; preds = %._crit_edge780
  %248 = load double, ptr %3, align 8, !tbaa !9
  %249 = load double, ptr %4, align 8, !tbaa !9
  br label %250

250:                                              ; preds = %._crit_edge780, %233, %247
  %.1651 = phi double [ %248, %247 ], [ %.0650, %233 ], [ 0.000000e+00, %._crit_edge780 ]
  %.1644 = phi double [ %249, %247 ], [ %.0643, %233 ], [ 0.000000e+00, %._crit_edge780 ]
  %.1629 = phi double [ undef, %247 ], [ %.0628, %233 ], [ undef, %._crit_edge780 ]
  %.1627 = phi double [ undef, %247 ], [ %.0626, %233 ], [ undef, %._crit_edge780 ]
  store i32 0, ptr %10, align 4, !tbaa !5
  store i32 0, ptr %17, align 4, !tbaa !5
  %251 = load i32, ptr %11, align 4, !tbaa !5
  %.not719825 = icmp slt i32 %251, 1
  br i1 %.not719825, label %._crit_edge834, label %.lr.ph833

.lr.ph833:                                        ; preds = %250
  %252 = icmp sgt i32 %.1649, 1
  %253 = icmp eq i32 %.1649, 1
  %254 = zext nneg i32 %251 to i64
  br label %255

255:                                              ; preds = %.lr.ph833, %442
  %indvars.iv920 = phi i64 [ 1, %.lr.ph833 ], [ %indvars.iv.next921, %442 ]
  %.1623831 = phi i32 [ 0, %.lr.ph833 ], [ %.3625, %442 ]
  %.1631830 = phi i32 [ 0, %.lr.ph833 ], [ %.3633, %442 ]
  %.0635829 = phi i32 [ 0, %.lr.ph833 ], [ %.3638, %442 ]
  %.0685826 = phi i32 [ 0, %.lr.ph833 ], [ %258, %442 ]
  %indvars922 = trunc i64 %indvars.iv920 to i32
  %256 = add i32 %.0685826, 1
  %257 = getelementptr inbounds i32, ptr %32, i64 %indvars.iv920
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = sub nsw i32 %258, %.0685826
  store i32 %259, ptr %27, align 4, !tbaa !5
  %260 = icmp eq i32 %259, 1
  br i1 %260, label %261, label %282

261:                                              ; preds = %255
  br i1 %253, label %.thread766, label %.thread753

.thread766:                                       ; preds = %261
  %262 = add nsw i32 %.1631830, 1
  %263 = add nsw i32 %.1623831, 1
  %.pre959 = sext i32 %256 to i64
  %.phi.trans.insert = getelementptr inbounds double, ptr %36, i64 %.pre959
  %.pre960 = load double, ptr %.phi.trans.insert, align 8, !tbaa !9
  br label %275

.thread753:                                       ; preds = %261
  %264 = sext i32 %256 to i64
  %265 = getelementptr inbounds double, ptr %36, i64 %264
  %266 = load double, ptr %265, align 8, !tbaa !9
  %267 = load double, ptr %29, align 8, !tbaa !9
  %268 = fsub double %266, %267
  %269 = fcmp oge double %.1651, %268
  %270 = zext i1 %269 to i32
  %.2632757 = add nsw i32 %.1631830, %270
  %271 = fcmp oge double %.1644, %268
  %272 = zext i1 %271 to i32
  %.2624764 = add nsw i32 %.1623831, %272
  %273 = fcmp uge double %.1651, %268
  %274 = fcmp ult double %.1644, %268
  %or.cond747 = select i1 %273, i1 true, i1 %274
  br i1 %or.cond747, label %442, label %275

275:                                              ; preds = %.thread766, %.thread753
  %276 = phi double [ %.pre960, %.thread766 ], [ %266, %.thread753 ]
  %.2624765 = phi i32 [ %263, %.thread766 ], [ %.2624764, %.thread753 ]
  %.2632756763 = phi i32 [ %262, %.thread766 ], [ %.2632757, %.thread753 ]
  %277 = load i32, ptr %10, align 4, !tbaa !5
  %278 = add nsw i32 %277, 1
  store i32 %278, ptr %10, align 4, !tbaa !5
  %279 = sext i32 %278 to i64
  %280 = getelementptr inbounds double, ptr %34, i64 %279
  store double %276, ptr %280, align 8, !tbaa !9
  %281 = getelementptr inbounds i32, ptr %33, i64 %279
  store i32 %indvars922, ptr %281, align 4, !tbaa !5
  br label %442

282:                                              ; preds = %255
  %283 = sext i32 %256 to i64
  %284 = getelementptr inbounds double, ptr %36, i64 %283
  %285 = load double, ptr %284, align 8, !tbaa !9
  %.not735.not792 = icmp slt i32 %256, %258
  br i1 %.not735.not792, label %.lr.ph798, label %._crit_edge799

.lr.ph798:                                        ; preds = %282, %.lr.ph798
  %indvars.iv906 = phi i64 [ %indvars.iv.next907, %.lr.ph798 ], [ %283, %282 ]
  %.1796 = phi double [ %290, %.lr.ph798 ], [ 0.000000e+00, %282 ]
  %.1657795 = phi double [ %296, %.lr.ph798 ], [ %285, %282 ]
  %.1660794 = phi double [ %300, %.lr.ph798 ], [ %285, %282 ]
  %286 = getelementptr inbounds double, ptr %35, i64 %indvars.iv906
  %287 = load double, ptr %286, align 8, !tbaa !9
  %288 = fcmp oge double %287, 0.000000e+00
  %289 = fneg double %287
  %290 = select i1 %288, double %287, double %289
  %291 = getelementptr inbounds double, ptr %36, i64 %indvars.iv906
  %292 = load double, ptr %291, align 8, !tbaa !9
  %293 = fadd double %.1796, %292
  %294 = fadd double %293, %290
  %295 = fcmp oge double %.1657795, %294
  %296 = select i1 %295, double %.1657795, double %294
  %297 = fsub double %292, %.1796
  %298 = fsub double %297, %290
  %299 = fcmp ole double %.1660794, %298
  %300 = select i1 %299, double %.1660794, double %298
  %indvars.iv.next907 = add nsw i64 %indvars.iv906, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next907 to i32
  %exitcond909.not = icmp eq i32 %258, %lftr.wideiv
  br i1 %exitcond909.not, label %._crit_edge799, label %.lr.ph798, !llvm.loop !14

._crit_edge799:                                   ; preds = %.lr.ph798, %282
  %.1660.lcssa = phi double [ %285, %282 ], [ %300, %.lr.ph798 ]
  %.1657.lcssa = phi double [ %285, %282 ], [ %296, %.lr.ph798 ]
  %.1.lcssa = phi double [ 0.000000e+00, %282 ], [ %290, %.lr.ph798 ]
  %301 = sext i32 %258 to i64
  %302 = getelementptr inbounds double, ptr %36, i64 %301
  %303 = load double, ptr %302, align 8, !tbaa !9
  %304 = fadd double %.1.lcssa, %303
  %305 = fcmp oge double %.1657.lcssa, %304
  %306 = select i1 %305, double %.1657.lcssa, double %304
  %307 = fsub double %303, %.1.lcssa
  %308 = fcmp ole double %.1660.lcssa, %307
  %309 = select i1 %308, double %.1660.lcssa, double %307
  %310 = fcmp oge double %309, 0.000000e+00
  %311 = fneg double %309
  %312 = select i1 %310, double %309, double %311
  %313 = fcmp oge double %306, 0.000000e+00
  %314 = fneg double %306
  %315 = select i1 %313, double %306, double %314
  %316 = fcmp oge double %312, %315
  %317 = select i1 %316, double %312, double %315
  %318 = fmul double %317, 2.100000e+00
  %319 = fmul double %81, %318
  %320 = sitofp i32 %259 to double
  %321 = fneg double %319
  %322 = call double @llvm.fmuladd.f64(double %321, double %320, double %309)
  %323 = load double, ptr %29, align 8, !tbaa !9
  %324 = fneg double %323
  %325 = call double @llvm.fmuladd.f64(double %324, double 2.100000e+00, double %322)
  %326 = call double @llvm.fmuladd.f64(double %319, double %320, double %306)
  %327 = call double @llvm.fmuladd.f64(double %323, double 2.100000e+00, double %326)
  %328 = load double, ptr %7, align 8, !tbaa !9
  %329 = fcmp ugt double %328, 0.000000e+00
  br i1 %329, label %340, label %330

330:                                              ; preds = %._crit_edge799
  %331 = fcmp oge double %325, 0.000000e+00
  %332 = fneg double %325
  %333 = select i1 %331, double %325, double %332
  %334 = fcmp oge double %327, 0.000000e+00
  %335 = fneg double %327
  %336 = select i1 %334, double %327, double %335
  %337 = fcmp oge double %333, %336
  %338 = select i1 %337, double %333, double %336
  %339 = fmul double %81, %338
  br label %340

340:                                              ; preds = %._crit_edge799, %330
  %storemerge736 = phi double [ %339, %330 ], [ %328, %._crit_edge799 ]
  store double %storemerge736, ptr %22, align 8, !tbaa !9
  br i1 %252, label %341, label %352

341:                                              ; preds = %340
  %342 = fcmp olt double %327, %.1651
  br i1 %342, label %343, label %346

343:                                              ; preds = %341
  %344 = add nsw i32 %259, %.1631830
  %345 = add nsw i32 %259, %.1623831
  br label %442

346:                                              ; preds = %341
  %347 = fcmp oge double %325, %.1651
  %348 = select i1 %347, double %325, double %.1651
  %349 = fcmp ole double %327, %.1644
  %350 = select i1 %349, double %327, double %.1644
  %351 = fcmp ult double %348, %350
  br i1 %351, label %352, label %442

352:                                              ; preds = %346, %340
  %.2661 = phi double [ %348, %346 ], [ %325, %340 ]
  %.2658 = phi double [ %350, %346 ], [ %327, %340 ]
  %353 = load i32, ptr %2, align 4, !tbaa !5
  %354 = sext i32 %353 to i64
  %gep = getelementptr double, ptr %15, i64 %354
  store double %.2661, ptr %gep, align 8, !tbaa !9
  %355 = add nsw i32 %353, %259
  %356 = sext i32 %355 to i64
  %gep816 = getelementptr double, ptr %15, i64 %356
  store double %.2658, ptr %gep816, align 8, !tbaa !9
  %357 = getelementptr inbounds double, ptr %35, i64 %283
  %358 = getelementptr inbounds double, ptr %31, i64 %283
  %359 = shl i32 %259, 1
  %360 = add nsw i32 %353, %359
  %361 = sext i32 %360 to i64
  %gep818 = getelementptr double, ptr %15, i64 %361
  %362 = load i32, ptr %10, align 4, !tbaa !5
  %363 = add nsw i32 %362, 1
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds double, ptr %34, i64 %364
  %366 = getelementptr inbounds i32, ptr %33, i64 %364
  call void @dlaebz_(ptr noundef nonnull @c__1, ptr noundef nonnull @c__0, ptr noundef nonnull %27, ptr noundef nonnull %27, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull %22, ptr noundef nonnull %24, ptr noundef nonnull %29, ptr noundef nonnull %284, ptr noundef nonnull %357, ptr noundef nonnull %358, ptr noundef nonnull %28, ptr noundef nonnull %gep, ptr noundef %gep818, ptr noundef nonnull %26, ptr noundef %16, ptr noundef nonnull %365, ptr noundef nonnull %366, ptr noundef nonnull %21) #6
  %367 = load i32, ptr %16, align 4, !tbaa !5
  %368 = add nsw i32 %367, %.1631830
  %369 = load i32, ptr %27, align 4, !tbaa !5
  %370 = sext i32 %369 to i64
  %gep820 = getelementptr i32, ptr %16, i64 %370
  %371 = load i32, ptr %gep820, align 4, !tbaa !5
  %372 = add nsw i32 %371, %.1623831
  %373 = load i32, ptr %10, align 4, !tbaa !5
  %374 = sub nsw i32 %373, %367
  %375 = fsub double %.2658, %.2661
  %376 = load double, ptr %29, align 8, !tbaa !9
  %377 = fadd double %375, %376
  %378 = call double @log(double noundef %377) #6
  %379 = load double, ptr %29, align 8, !tbaa !9
  %380 = call double @log(double noundef %379) #6
  %381 = fsub double %378, %380
  %382 = fdiv double %381, 0x3FE62E42FEFA39EF
  %383 = fptosi double %382 to i32
  %384 = add nsw i32 %383, 2
  store i32 %384, ptr %23, align 4, !tbaa !5
  %385 = load i32, ptr %2, align 4, !tbaa !5
  %386 = sext i32 %385 to i64
  %gep822 = getelementptr double, ptr %15, i64 %386
  %387 = load i32, ptr %27, align 4, !tbaa !5
  %388 = shl i32 %387, 1
  %389 = add nsw i32 %388, %385
  %390 = sext i32 %389 to i64
  %gep824 = getelementptr double, ptr %15, i64 %390
  %391 = load i32, ptr %10, align 4, !tbaa !5
  %392 = add nsw i32 %391, 1
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds double, ptr %34, i64 %393
  %395 = getelementptr inbounds i32, ptr %33, i64 %393
  call void @dlaebz_(ptr noundef nonnull @c__2, ptr noundef nonnull %23, ptr noundef nonnull %27, ptr noundef nonnull %27, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull %22, ptr noundef nonnull %24, ptr noundef nonnull %29, ptr noundef nonnull %284, ptr noundef nonnull %357, ptr noundef nonnull %358, ptr noundef nonnull %28, ptr noundef %gep822, ptr noundef %gep824, ptr noundef nonnull %20, ptr noundef nonnull %16, ptr noundef nonnull %394, ptr noundef nonnull %395, ptr noundef nonnull %21) #6
  %396 = load i32, ptr %20, align 4, !tbaa !5
  %.not737808 = icmp slt i32 %396, 1
  br i1 %.not737808, label %._crit_edge813, label %.lr.ph812

.lr.ph812:                                        ; preds = %352
  %397 = load i32, ptr %27, align 4, !tbaa !5
  %398 = load i32, ptr %21, align 4, !tbaa !5
  %399 = sub nsw i32 %396, %398
  %400 = sub nsw i32 0, %indvars922
  %401 = add i32 %374, 1
  %402 = add i32 %373, 1
  %403 = sub i32 %402, %367
  %404 = sext i32 %397 to i64
  %405 = sext i32 %399 to i64
  %406 = add nuw i32 %396, 1
  %wide.trip.count918 = zext i32 %406 to i64
  br label %407

407:                                              ; preds = %.lr.ph812, %._crit_edge807
  %indvars.iv915 = phi i64 [ 1, %.lr.ph812 ], [ %indvars.iv.next916, %._crit_edge807 ]
  %.1636810 = phi i32 [ %.0635829, %.lr.ph812 ], [ %.2637, %._crit_edge807 ]
  %408 = load i32, ptr %2, align 4, !tbaa !5
  %409 = sext i32 %408 to i64
  %410 = getelementptr double, ptr %31, i64 %indvars.iv915
  %411 = getelementptr double, ptr %410, i64 %409
  %412 = load double, ptr %411, align 8, !tbaa !9
  %413 = add nsw i64 %indvars.iv915, %404
  %414 = getelementptr double, ptr %31, i64 %413
  %415 = getelementptr double, ptr %414, i64 %409
  %416 = load double, ptr %415, align 8, !tbaa !9
  %417 = fadd double %412, %416
  %418 = fmul double %417, 5.000000e-01
  %419 = icmp sgt i64 %indvars.iv915, %405
  %.0669 = select i1 %419, i32 %400, i32 %indvars922
  %.2637 = select i1 %419, i32 1, i32 %.1636810
  %420 = getelementptr inbounds i32, ptr %30, i64 %413
  %421 = load i32, ptr %420, align 4, !tbaa !5
  %422 = add nsw i32 %421, %374
  %423 = getelementptr inbounds i32, ptr %30, i64 %indvars.iv915
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = add i32 %401, %424
  %.not738803 = icmp sgt i32 %425, %422
  br i1 %.not738803, label %._crit_edge807, label %.lr.ph806.preheader

.lr.ph806.preheader:                              ; preds = %407
  %426 = sext i32 %425 to i64
  %427 = add i32 %403, %421
  %428 = xor i32 %424, -1
  %429 = add i32 %421, %428
  %430 = zext i32 %429 to i64
  %431 = add nuw nsw i64 %430, 1
  %min.iters.check = icmp ult i32 %429, 3
  br i1 %min.iters.check, label %.lr.ph806.preheader995, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph806.preheader
  %n.vec = and i64 %431, 8589934588
  %ind.end = add nsw i64 %n.vec, %426
  %broadcast.splatinsert = insertelement <2 x double> poison, double %418, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert992 = insertelement <2 x i32> poison, i32 %.0669, i64 0
  %broadcast.splat993 = shufflevector <2 x i32> %broadcast.splatinsert992, <2 x i32> 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 %index, %426
  %432 = getelementptr inbounds double, ptr %34, i64 %offset.idx
  %433 = getelementptr inbounds i8, ptr %432, i64 16
  store <2 x double> %broadcast.splat, ptr %432, align 8, !tbaa !9
  store <2 x double> %broadcast.splat, ptr %433, align 8, !tbaa !9
  %434 = getelementptr inbounds i32, ptr %33, i64 %offset.idx
  %435 = getelementptr inbounds i8, ptr %434, i64 8
  store <2 x i32> %broadcast.splat993, ptr %434, align 4, !tbaa !5
  store <2 x i32> %broadcast.splat993, ptr %435, align 4, !tbaa !5
  %index.next = add nuw i64 %index, 4
  %436 = icmp eq i64 %index.next, %n.vec
  br i1 %436, label %middle.block, label %vector.body, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %431, %n.vec
  br i1 %cmp.n, label %._crit_edge807, label %.lr.ph806.preheader995

.lr.ph806.preheader995:                           ; preds = %middle.block, %.lr.ph806.preheader
  %indvars.iv910.ph = phi i64 [ %426, %.lr.ph806.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph806

.lr.ph806:                                        ; preds = %.lr.ph806.preheader995, %.lr.ph806
  %indvars.iv910 = phi i64 [ %indvars.iv.next911, %.lr.ph806 ], [ %indvars.iv910.ph, %.lr.ph806.preheader995 ]
  %437 = getelementptr inbounds double, ptr %34, i64 %indvars.iv910
  store double %418, ptr %437, align 8, !tbaa !9
  %438 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv910
  store i32 %.0669, ptr %438, align 4, !tbaa !5
  %indvars.iv.next911 = add nsw i64 %indvars.iv910, 1
  %lftr.wideiv913 = trunc i64 %indvars.iv.next911 to i32
  %exitcond914.not = icmp eq i32 %427, %lftr.wideiv913
  br i1 %exitcond914.not, label %._crit_edge807, label %.lr.ph806, !llvm.loop !18

._crit_edge807:                                   ; preds = %.lr.ph806, %middle.block, %407
  %indvars.iv.next916 = add nuw nsw i64 %indvars.iv915, 1
  %exitcond919.not = icmp eq i64 %indvars.iv.next916, %wide.trip.count918
  br i1 %exitcond919.not, label %._crit_edge813, label %407, !llvm.loop !19

._crit_edge813:                                   ; preds = %._crit_edge807, %352
  %.1636.lcssa = phi i32 [ %.0635829, %352 ], [ %.2637, %._crit_edge807 ]
  %439 = load i32, ptr %26, align 4, !tbaa !5
  %440 = load i32, ptr %10, align 4, !tbaa !5
  %441 = add nsw i32 %440, %439
  store i32 %441, ptr %10, align 4, !tbaa !5
  br label %442

442:                                              ; preds = %343, %346, %.thread753, %275, %._crit_edge813
  %.3638 = phi i32 [ %.0635829, %275 ], [ %.0635829, %.thread753 ], [ %.0635829, %343 ], [ %.0635829, %346 ], [ %.1636.lcssa, %._crit_edge813 ]
  %.3633 = phi i32 [ %.2632756763, %275 ], [ %.2632757, %.thread753 ], [ %344, %343 ], [ %.1631830, %346 ], [ %368, %._crit_edge813 ]
  %.3625 = phi i32 [ %.2624765, %275 ], [ %.2624764, %.thread753 ], [ %345, %343 ], [ %.1623831, %346 ], [ %372, %._crit_edge813 ]
  %indvars.iv.next921 = add nuw nsw i64 %indvars.iv920, 1
  %.not719.not = icmp ult i64 %indvars.iv920, %254
  br i1 %.not719.not, label %255, label %._crit_edge834.loopexit, !llvm.loop !20

._crit_edge834.loopexit:                          ; preds = %442
  %443 = xor i32 %.3633, -1
  %444 = icmp ne i32 %.3638, 0
  br label %._crit_edge834

._crit_edge834:                                   ; preds = %._crit_edge834.loopexit, %250
  %.0635.lcssa = phi i1 [ false, %250 ], [ %444, %._crit_edge834.loopexit ]
  %.1631.lcssa = phi i32 [ -1, %250 ], [ %443, %._crit_edge834.loopexit ]
  %.1623.lcssa = phi i32 [ 0, %250 ], [ %.3625, %._crit_edge834.loopexit ]
  br i1 %138, label %445, label %589

445:                                              ; preds = %._crit_edge834
  %446 = load i32, ptr %5, align 4, !tbaa !5
  %447 = add i32 %446, %.1631.lcssa
  %448 = load i32, ptr %6, align 4, !tbaa !5
  %449 = sub nsw i32 %.1623.lcssa, %448
  %450 = icmp sgt i32 %447, 0
  %451 = icmp sgt i32 %449, 0
  %or.cond3 = select i1 %450, i1 true, i1 %451
  br i1 %or.cond3, label %452, label %477

452:                                              ; preds = %445
  %453 = load i32, ptr %10, align 4, !tbaa !5
  %.not720839 = icmp slt i32 %453, 1
  br i1 %.not720839, label %._crit_edge845, label %.lr.ph844.preheader

.lr.ph844.preheader:                              ; preds = %452
  %454 = add nuw i32 %453, 1
  %wide.trip.count926 = zext i32 %454 to i64
  br label %.lr.ph844

.lr.ph844:                                        ; preds = %.lr.ph844.preheader, %474
  %indvars.iv923 = phi i64 [ 1, %.lr.ph844.preheader ], [ %indvars.iv.next924, %474 ]
  %.0640842 = phi i32 [ %449, %.lr.ph844.preheader ], [ %.1641, %474 ]
  %.0645841 = phi i32 [ %447, %.lr.ph844.preheader ], [ %.1646, %474 ]
  %455 = phi i32 [ 0, %.lr.ph844.preheader ], [ %475, %474 ]
  %456 = getelementptr inbounds double, ptr %34, i64 %indvars.iv923
  %457 = load double, ptr %456, align 8, !tbaa !9
  %458 = fcmp ole double %457, %.1629
  %459 = icmp sgt i32 %.0645841, 0
  %or.cond5 = select i1 %458, i1 %459, i1 false
  br i1 %or.cond5, label %460, label %462

460:                                              ; preds = %.lr.ph844
  %461 = add nsw i32 %.0645841, -1
  br label %474

462:                                              ; preds = %.lr.ph844
  %463 = fcmp oge double %457, %.1627
  %464 = icmp sgt i32 %.0640842, 0
  %or.cond7 = select i1 %463, i1 %464, i1 false
  br i1 %or.cond7, label %465, label %467

465:                                              ; preds = %462
  %466 = add nsw i32 %.0640842, -1
  br label %474

467:                                              ; preds = %462
  %468 = add nsw i32 %455, 1
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds double, ptr %34, i64 %469
  store double %457, ptr %470, align 8, !tbaa !9
  %471 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv923
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = getelementptr inbounds i32, ptr %33, i64 %469
  store i32 %472, ptr %473, align 4, !tbaa !5
  br label %474

474:                                              ; preds = %460, %467, %465
  %475 = phi i32 [ %455, %460 ], [ %455, %465 ], [ %468, %467 ]
  %.1646 = phi i32 [ %461, %460 ], [ %.0645841, %465 ], [ %.0645841, %467 ]
  %.1641 = phi i32 [ %.0640842, %460 ], [ %466, %465 ], [ %.0640842, %467 ]
  %indvars.iv.next924 = add nuw nsw i64 %indvars.iv923, 1
  %exitcond927.not = icmp eq i64 %indvars.iv.next924, %wide.trip.count926
  br i1 %exitcond927.not, label %._crit_edge845, label %.lr.ph844, !llvm.loop !21

._crit_edge845:                                   ; preds = %474, %452
  %476 = phi i32 [ 0, %452 ], [ %475, %474 ]
  %.0645.lcssa = phi i32 [ %447, %452 ], [ %.1646, %474 ]
  %.0640.lcssa = phi i32 [ %449, %452 ], [ %.1641, %474 ]
  store i32 %476, ptr %10, align 4, !tbaa !5
  br label %477

477:                                              ; preds = %445, %._crit_edge845
  %.2647 = phi i32 [ %.0645.lcssa, %._crit_edge845 ], [ %447, %445 ]
  %.2642 = phi i32 [ %.0640.lcssa, %._crit_edge845 ], [ %449, %445 ]
  %478 = icmp sgt i32 %.2647, 0
  %479 = icmp sgt i32 %.2642, 0
  %or.cond9 = select i1 %478, i1 true, i1 %479
  br i1 %or.cond9, label %480, label %586

480:                                              ; preds = %477
  br i1 %478, label %.preheader983, label %.loopexit772

.preheader983:                                    ; preds = %480, %._crit_edge854
  %.0671858 = phi double [ %.1672.lcssa, %._crit_edge854 ], [ %.1644, %480 ]
  %.0677857 = phi i32 [ %515, %._crit_edge854 ], [ 1, %480 ]
  %481 = load i32, ptr %10, align 4, !tbaa !5
  %.not733848 = icmp slt i32 %481, 1
  br i1 %.not733848, label %._crit_edge854, label %.lr.ph853.preheader

.lr.ph853.preheader:                              ; preds = %.preheader983
  %482 = zext nneg i32 %481 to i64
  %xtraiter = and i64 %482, 1
  %483 = icmp eq i32 %481, 1
  br i1 %483, label %._crit_edge854.loopexit.unr-lcssa, label %.lr.ph853.preheader.new

.lr.ph853.preheader.new:                          ; preds = %.lr.ph853.preheader
  %unroll_iter = and i64 %482, 2147483646
  br label %.lr.ph853

.lr.ph853:                                        ; preds = %503, %.lr.ph853.preheader.new
  %indvars.iv928 = phi i64 [ 1, %.lr.ph853.preheader.new ], [ %indvars.iv.next929.1, %503 ]
  %.0652851 = phi i32 [ 0, %.lr.ph853.preheader.new ], [ %.1653.1, %503 ]
  %.1672849 = phi double [ %.0671858, %.lr.ph853.preheader.new ], [ %.2673.1, %503 ]
  %niter = phi i64 [ 0, %.lr.ph853.preheader.new ], [ %niter.next.1, %503 ]
  %484 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv928
  %485 = load i32, ptr %484, align 4, !tbaa !5
  %.not734 = icmp eq i32 %485, 0
  br i1 %.not734, label %.lr.ph853.1, label %486

486:                                              ; preds = %.lr.ph853
  %487 = getelementptr inbounds double, ptr %34, i64 %indvars.iv928
  %488 = load double, ptr %487, align 8, !tbaa !9
  %489 = fcmp olt double %488, %.1672849
  %490 = icmp eq i32 %.0652851, 0
  %or.cond11 = select i1 %489, i1 true, i1 %490
  br i1 %or.cond11, label %491, label %.lr.ph853.1

491:                                              ; preds = %486
  %492 = trunc nuw nsw i64 %indvars.iv928 to i32
  br label %.lr.ph853.1

.lr.ph853.1:                                      ; preds = %.lr.ph853, %491, %486
  %.2673 = phi double [ %488, %491 ], [ %.1672849, %486 ], [ %.1672849, %.lr.ph853 ]
  %.1653 = phi i32 [ %492, %491 ], [ %.0652851, %486 ], [ %.0652851, %.lr.ph853 ]
  %493 = getelementptr i32, ptr %13, i64 %indvars.iv928
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %.not734.1 = icmp eq i32 %494, 0
  br i1 %.not734.1, label %503, label %495

495:                                              ; preds = %.lr.ph853.1
  %496 = getelementptr double, ptr %12, i64 %indvars.iv928
  %497 = load double, ptr %496, align 8, !tbaa !9
  %498 = fcmp olt double %497, %.2673
  %499 = icmp eq i32 %.1653, 0
  %or.cond11.1 = select i1 %498, i1 true, i1 %499
  br i1 %or.cond11.1, label %500, label %503

500:                                              ; preds = %495
  %501 = trunc i64 %indvars.iv928 to i32
  %502 = add i32 %501, 1
  br label %503

503:                                              ; preds = %500, %495, %.lr.ph853.1
  %.2673.1 = phi double [ %497, %500 ], [ %.2673, %495 ], [ %.2673, %.lr.ph853.1 ]
  %.1653.1 = phi i32 [ %502, %500 ], [ %.1653, %495 ], [ %.1653, %.lr.ph853.1 ]
  %indvars.iv.next929.1 = add nuw nsw i64 %indvars.iv928, 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_edge854.loopexit.unr-lcssa, label %.lr.ph853, !llvm.loop !22

._crit_edge854.loopexit.unr-lcssa:                ; preds = %503, %.lr.ph853.preheader
  %.2673.lcssa.ph = phi double [ poison, %.lr.ph853.preheader ], [ %.2673.1, %503 ]
  %.1653.lcssa.ph = phi i32 [ poison, %.lr.ph853.preheader ], [ %.1653.1, %503 ]
  %indvars.iv928.unr = phi i64 [ 1, %.lr.ph853.preheader ], [ %indvars.iv.next929.1, %503 ]
  %.0652851.unr = phi i32 [ 0, %.lr.ph853.preheader ], [ %.1653.1, %503 ]
  %.1672849.unr = phi double [ %.0671858, %.lr.ph853.preheader ], [ %.2673.1, %503 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge854, label %.lr.ph853.epil

.lr.ph853.epil:                                   ; preds = %._crit_edge854.loopexit.unr-lcssa
  %504 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv928.unr
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %.not734.epil = icmp eq i32 %505, 0
  br i1 %.not734.epil, label %._crit_edge854, label %506

506:                                              ; preds = %.lr.ph853.epil
  %507 = getelementptr inbounds double, ptr %34, i64 %indvars.iv928.unr
  %508 = load double, ptr %507, align 8, !tbaa !9
  %509 = fcmp olt double %508, %.1672849.unr
  %510 = icmp eq i32 %.0652851.unr, 0
  %or.cond11.epil = select i1 %509, i1 true, i1 %510
  br i1 %or.cond11.epil, label %511, label %._crit_edge854

511:                                              ; preds = %506
  %512 = trunc nuw nsw i64 %indvars.iv928.unr to i32
  br label %._crit_edge854

._crit_edge854:                                   ; preds = %._crit_edge854.loopexit.unr-lcssa, %511, %506, %.lr.ph853.epil, %.preheader983
  %.1672.lcssa = phi double [ %.0671858, %.preheader983 ], [ %.2673.lcssa.ph, %._crit_edge854.loopexit.unr-lcssa ], [ %508, %511 ], [ %.1672849.unr, %506 ], [ %.1672849.unr, %.lr.ph853.epil ]
  %.0652.lcssa = phi i32 [ 0, %.preheader983 ], [ %.1653.lcssa.ph, %._crit_edge854.loopexit.unr-lcssa ], [ %512, %511 ], [ %.0652851.unr, %506 ], [ %.0652851.unr, %.lr.ph853.epil ]
  %513 = sext i32 %.0652.lcssa to i64
  %514 = getelementptr inbounds i32, ptr %33, i64 %513
  store i32 0, ptr %514, align 4, !tbaa !5
  %515 = add nuw i32 %.0677857, 1
  %exitcond933.not = icmp eq i32 %.0677857, %.2647
  br i1 %exitcond933.not, label %.loopexit772, label %.preheader983, !llvm.loop !23

.loopexit772:                                     ; preds = %._crit_edge854, %480
  br i1 %479, label %.preheader, label %.loopexit771

.preheader:                                       ; preds = %.loopexit772, %._crit_edge865
  %.3674869 = phi double [ %.4675.lcssa, %._crit_edge865 ], [ %.1651, %.loopexit772 ]
  %.1678868 = phi i32 [ %550, %._crit_edge865 ], [ 1, %.loopexit772 ]
  %516 = load i32, ptr %10, align 4, !tbaa !5
  %.not731859 = icmp slt i32 %516, 1
  br i1 %.not731859, label %._crit_edge865, label %.lr.ph864.preheader

.lr.ph864.preheader:                              ; preds = %.preheader
  %517 = zext nneg i32 %516 to i64
  %xtraiter1004 = and i64 %517, 1
  %518 = icmp eq i32 %516, 1
  br i1 %518, label %._crit_edge865.loopexit.unr-lcssa, label %.lr.ph864.preheader.new

.lr.ph864.preheader.new:                          ; preds = %.lr.ph864.preheader
  %unroll_iter1008 = and i64 %517, 2147483646
  br label %.lr.ph864

.lr.ph864:                                        ; preds = %538, %.lr.ph864.preheader.new
  %indvars.iv934 = phi i64 [ 1, %.lr.ph864.preheader.new ], [ %indvars.iv.next935.1, %538 ]
  %.2654862 = phi i32 [ 0, %.lr.ph864.preheader.new ], [ %.3655.1, %538 ]
  %.4675860 = phi double [ %.3674869, %.lr.ph864.preheader.new ], [ %.5676.1, %538 ]
  %niter1009 = phi i64 [ 0, %.lr.ph864.preheader.new ], [ %niter1009.next.1, %538 ]
  %519 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv934
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %.not732 = icmp eq i32 %520, 0
  br i1 %.not732, label %.lr.ph864.1, label %521

521:                                              ; preds = %.lr.ph864
  %522 = getelementptr inbounds double, ptr %34, i64 %indvars.iv934
  %523 = load double, ptr %522, align 8, !tbaa !9
  %524 = fcmp ogt double %523, %.4675860
  %525 = icmp eq i32 %.2654862, 0
  %or.cond13 = select i1 %524, i1 true, i1 %525
  br i1 %or.cond13, label %526, label %.lr.ph864.1

526:                                              ; preds = %521
  %527 = trunc nuw nsw i64 %indvars.iv934 to i32
  br label %.lr.ph864.1

.lr.ph864.1:                                      ; preds = %.lr.ph864, %526, %521
  %.5676 = phi double [ %523, %526 ], [ %.4675860, %521 ], [ %.4675860, %.lr.ph864 ]
  %.3655 = phi i32 [ %527, %526 ], [ %.2654862, %521 ], [ %.2654862, %.lr.ph864 ]
  %528 = getelementptr i32, ptr %13, i64 %indvars.iv934
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %.not732.1 = icmp eq i32 %529, 0
  br i1 %.not732.1, label %538, label %530

530:                                              ; preds = %.lr.ph864.1
  %531 = getelementptr double, ptr %12, i64 %indvars.iv934
  %532 = load double, ptr %531, align 8, !tbaa !9
  %533 = fcmp ogt double %532, %.5676
  %534 = icmp eq i32 %.3655, 0
  %or.cond13.1 = select i1 %533, i1 true, i1 %534
  br i1 %or.cond13.1, label %535, label %538

535:                                              ; preds = %530
  %536 = trunc i64 %indvars.iv934 to i32
  %537 = add i32 %536, 1
  br label %538

538:                                              ; preds = %535, %530, %.lr.ph864.1
  %.5676.1 = phi double [ %532, %535 ], [ %.5676, %530 ], [ %.5676, %.lr.ph864.1 ]
  %.3655.1 = phi i32 [ %537, %535 ], [ %.3655, %530 ], [ %.3655, %.lr.ph864.1 ]
  %indvars.iv.next935.1 = add nuw nsw i64 %indvars.iv934, 2
  %niter1009.next.1 = add i64 %niter1009, 2
  %niter1009.ncmp.1 = icmp eq i64 %niter1009.next.1, %unroll_iter1008
  br i1 %niter1009.ncmp.1, label %._crit_edge865.loopexit.unr-lcssa, label %.lr.ph864, !llvm.loop !24

._crit_edge865.loopexit.unr-lcssa:                ; preds = %538, %.lr.ph864.preheader
  %.5676.lcssa.ph = phi double [ poison, %.lr.ph864.preheader ], [ %.5676.1, %538 ]
  %.3655.lcssa.ph = phi i32 [ poison, %.lr.ph864.preheader ], [ %.3655.1, %538 ]
  %indvars.iv934.unr = phi i64 [ 1, %.lr.ph864.preheader ], [ %indvars.iv.next935.1, %538 ]
  %.2654862.unr = phi i32 [ 0, %.lr.ph864.preheader ], [ %.3655.1, %538 ]
  %.4675860.unr = phi double [ %.3674869, %.lr.ph864.preheader ], [ %.5676.1, %538 ]
  %lcmp.mod1005.not = icmp eq i64 %xtraiter1004, 0
  br i1 %lcmp.mod1005.not, label %._crit_edge865, label %.lr.ph864.epil

.lr.ph864.epil:                                   ; preds = %._crit_edge865.loopexit.unr-lcssa
  %539 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv934.unr
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %.not732.epil = icmp eq i32 %540, 0
  br i1 %.not732.epil, label %._crit_edge865, label %541

541:                                              ; preds = %.lr.ph864.epil
  %542 = getelementptr inbounds double, ptr %34, i64 %indvars.iv934.unr
  %543 = load double, ptr %542, align 8, !tbaa !9
  %544 = fcmp ogt double %543, %.4675860.unr
  %545 = icmp eq i32 %.2654862.unr, 0
  %or.cond13.epil = select i1 %544, i1 true, i1 %545
  br i1 %or.cond13.epil, label %546, label %._crit_edge865

546:                                              ; preds = %541
  %547 = trunc nuw nsw i64 %indvars.iv934.unr to i32
  br label %._crit_edge865

._crit_edge865:                                   ; preds = %._crit_edge865.loopexit.unr-lcssa, %546, %541, %.lr.ph864.epil, %.preheader
  %.4675.lcssa = phi double [ %.3674869, %.preheader ], [ %.5676.lcssa.ph, %._crit_edge865.loopexit.unr-lcssa ], [ %543, %546 ], [ %.4675860.unr, %541 ], [ %.4675860.unr, %.lr.ph864.epil ]
  %.2654.lcssa = phi i32 [ 0, %.preheader ], [ %.3655.lcssa.ph, %._crit_edge865.loopexit.unr-lcssa ], [ %547, %546 ], [ %.2654862.unr, %541 ], [ %.2654862.unr, %.lr.ph864.epil ]
  %548 = sext i32 %.2654.lcssa to i64
  %549 = getelementptr inbounds i32, ptr %33, i64 %548
  store i32 0, ptr %549, align 4, !tbaa !5
  %550 = add nuw i32 %.1678868, 1
  %exitcond939.not = icmp eq i32 %.1678868, %.2642
  br i1 %exitcond939.not, label %.loopexit771, label %.preheader, !llvm.loop !25

.loopexit771:                                     ; preds = %._crit_edge865, %.loopexit772
  %551 = load i32, ptr %10, align 4, !tbaa !5
  %.not723871 = icmp slt i32 %551, 1
  br i1 %.not723871, label %._crit_edge875, label %.lr.ph874.preheader

.lr.ph874.preheader:                              ; preds = %.loopexit771
  %552 = zext nneg i32 %551 to i64
  %xtraiter1010 = and i64 %552, 1
  %553 = icmp eq i32 %551, 1
  br i1 %553, label %._crit_edge875.loopexit.unr-lcssa, label %.lr.ph874.preheader.new

.lr.ph874.preheader.new:                          ; preds = %.lr.ph874.preheader
  %unroll_iter1013 = and i64 %552, 2147483646
  br label %.lr.ph874

.lr.ph874:                                        ; preds = %574, %.lr.ph874.preheader.new
  %indvars.iv940 = phi i64 [ 1, %.lr.ph874.preheader.new ], [ %indvars.iv.next941.1, %574 ]
  %554 = phi i32 [ 0, %.lr.ph874.preheader.new ], [ %575, %574 ]
  %niter1014 = phi i64 [ 0, %.lr.ph874.preheader.new ], [ %niter1014.next.1, %574 ]
  %555 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv940
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %.not730 = icmp eq i32 %556, 0
  br i1 %.not730, label %.lr.ph874.1, label %557

557:                                              ; preds = %.lr.ph874
  %558 = add nsw i32 %554, 1
  %559 = getelementptr inbounds double, ptr %34, i64 %indvars.iv940
  %560 = load double, ptr %559, align 8, !tbaa !9
  %561 = sext i32 %558 to i64
  %562 = getelementptr inbounds double, ptr %34, i64 %561
  store double %560, ptr %562, align 8, !tbaa !9
  %563 = getelementptr inbounds i32, ptr %33, i64 %561
  store i32 %556, ptr %563, align 4, !tbaa !5
  br label %.lr.ph874.1

.lr.ph874.1:                                      ; preds = %.lr.ph874, %557
  %564 = phi i32 [ %554, %.lr.ph874 ], [ %558, %557 ]
  %565 = getelementptr i32, ptr %13, i64 %indvars.iv940
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %.not730.1 = icmp eq i32 %566, 0
  br i1 %.not730.1, label %574, label %567

567:                                              ; preds = %.lr.ph874.1
  %568 = add nsw i32 %564, 1
  %569 = getelementptr double, ptr %12, i64 %indvars.iv940
  %570 = load double, ptr %569, align 8, !tbaa !9
  %571 = sext i32 %568 to i64
  %572 = getelementptr inbounds double, ptr %34, i64 %571
  store double %570, ptr %572, align 8, !tbaa !9
  %573 = getelementptr inbounds i32, ptr %33, i64 %571
  store i32 %566, ptr %573, align 4, !tbaa !5
  br label %574

574:                                              ; preds = %567, %.lr.ph874.1
  %575 = phi i32 [ %564, %.lr.ph874.1 ], [ %568, %567 ]
  %indvars.iv.next941.1 = add nuw nsw i64 %indvars.iv940, 2
  %niter1014.next.1 = add i64 %niter1014, 2
  %niter1014.ncmp.1 = icmp eq i64 %niter1014.next.1, %unroll_iter1013
  br i1 %niter1014.ncmp.1, label %._crit_edge875.loopexit.unr-lcssa, label %.lr.ph874, !llvm.loop !26

._crit_edge875.loopexit.unr-lcssa:                ; preds = %574, %.lr.ph874.preheader
  %.lcssa.ph = phi i32 [ poison, %.lr.ph874.preheader ], [ %575, %574 ]
  %indvars.iv940.unr = phi i64 [ 1, %.lr.ph874.preheader ], [ %indvars.iv.next941.1, %574 ]
  %.unr = phi i32 [ 0, %.lr.ph874.preheader ], [ %575, %574 ]
  %lcmp.mod1011.not = icmp eq i64 %xtraiter1010, 0
  br i1 %lcmp.mod1011.not, label %._crit_edge875, label %.lr.ph874.epil

.lr.ph874.epil:                                   ; preds = %._crit_edge875.loopexit.unr-lcssa
  %576 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv940.unr
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %.not730.epil = icmp eq i32 %577, 0
  br i1 %.not730.epil, label %._crit_edge875, label %578

578:                                              ; preds = %.lr.ph874.epil
  %579 = add nsw i32 %.unr, 1
  %580 = getelementptr inbounds double, ptr %34, i64 %indvars.iv940.unr
  %581 = load double, ptr %580, align 8, !tbaa !9
  %582 = sext i32 %579 to i64
  %583 = getelementptr inbounds double, ptr %34, i64 %582
  store double %581, ptr %583, align 8, !tbaa !9
  %584 = getelementptr inbounds i32, ptr %33, i64 %582
  store i32 %577, ptr %584, align 4, !tbaa !5
  br label %._crit_edge875

._crit_edge875:                                   ; preds = %._crit_edge875.loopexit.unr-lcssa, %578, %.lr.ph874.epil, %.loopexit771
  %585 = phi i32 [ 0, %.loopexit771 ], [ %.lcssa.ph, %._crit_edge875.loopexit.unr-lcssa ], [ %.unr, %.lr.ph874.epil ], [ %579, %578 ]
  store i32 %585, ptr %10, align 4, !tbaa !5
  br label %586

586:                                              ; preds = %477, %._crit_edge875
  %587 = icmp sgt i32 %.2647, -1
  %588 = icmp sgt i32 %.2642, -1
  %or.cond15.not = select i1 %587, i1 %588, i1 false
  br label %589

589:                                              ; preds = %586, %._crit_edge834
  %.not727 = phi i1 [ true, %._crit_edge834 ], [ %or.cond15.not, %586 ]
  br i1 %.not711, label %590, label %.loopexit

590:                                              ; preds = %589
  %591 = load i32, ptr %11, align 4, !tbaa !5
  %592 = icmp sgt i32 %591, 1
  br i1 %592, label %593, label %.loopexit

593:                                              ; preds = %590
  %594 = load i32, ptr %10, align 4, !tbaa !5
  %.not724.not885 = icmp sgt i32 %594, 1
  br i1 %.not724.not885, label %.lr.ph888.preheader, label %.loopexit

.lr.ph888.preheader:                              ; preds = %593
  %wide.trip.count955 = zext nneg i32 %594 to i64
  br label %.lr.ph888

.lr.ph888:                                        ; preds = %.lr.ph888.preheader, %._crit_edge882.thread
  %indvars.iv952 = phi i64 [ 1, %.lr.ph888.preheader ], [ %indvars.iv.next953, %._crit_edge882.thread ]
  %indvars.iv945 = phi i64 [ 2, %.lr.ph888.preheader ], [ %indvars.iv.next946, %._crit_edge882.thread ]
  %595 = getelementptr inbounds double, ptr %34, i64 %indvars.iv952
  %596 = load double, ptr %595, align 8, !tbaa !9
  %597 = load i32, ptr %10, align 4, !tbaa !5
  %indvars.iv.next953 = add nuw nsw i64 %indvars.iv952, 1
  %598 = sext i32 %597 to i64
  %.not728876.not = icmp slt i64 %indvars.iv952, %598
  br i1 %.not728876.not, label %.lr.ph881.preheader, label %._crit_edge882.thread

.lr.ph881.preheader:                              ; preds = %.lr.ph888
  %599 = add i32 %597, 1
  %wide.trip.count950 = zext i32 %599 to i64
  br label %.lr.ph881

.lr.ph881:                                        ; preds = %.lr.ph881.preheader, %.lr.ph881
  %indvars.iv947 = phi i64 [ %indvars.iv945, %.lr.ph881.preheader ], [ %indvars.iv.next948, %.lr.ph881 ]
  %.2879 = phi double [ %596, %.lr.ph881.preheader ], [ %.3, %.lr.ph881 ]
  %.0666878 = phi i32 [ 0, %.lr.ph881.preheader ], [ %.1667, %.lr.ph881 ]
  %600 = getelementptr inbounds double, ptr %34, i64 %indvars.iv947
  %601 = load double, ptr %600, align 8, !tbaa !9
  %602 = fcmp olt double %601, %.2879
  %603 = trunc nuw nsw i64 %indvars.iv947 to i32
  %.1667 = select i1 %602, i32 %603, i32 %.0666878
  %.3 = select i1 %602, double %601, double %.2879
  %indvars.iv.next948 = add nuw nsw i64 %indvars.iv947, 1
  %exitcond951.not = icmp eq i64 %indvars.iv.next948, %wide.trip.count950
  br i1 %exitcond951.not, label %._crit_edge882, label %.lr.ph881, !llvm.loop !27

._crit_edge882:                                   ; preds = %.lr.ph881
  %.not729 = icmp eq i32 %.1667, 0
  br i1 %.not729, label %._crit_edge882.thread, label %604

604:                                              ; preds = %._crit_edge882
  %605 = sext i32 %.1667 to i64
  %606 = getelementptr inbounds i32, ptr %33, i64 %605
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = getelementptr inbounds double, ptr %34, i64 %605
  store double %596, ptr %608, align 8, !tbaa !9
  %609 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv952
  %610 = load i32, ptr %609, align 4, !tbaa !5
  store i32 %610, ptr %606, align 4, !tbaa !5
  store double %.3, ptr %595, align 8, !tbaa !9
  store i32 %607, ptr %609, align 4, !tbaa !5
  br label %._crit_edge882.thread

._crit_edge882.thread:                            ; preds = %.lr.ph888, %._crit_edge882, %604
  %indvars.iv.next946 = add nuw nsw i64 %indvars.iv945, 1
  %exitcond956.not = icmp eq i64 %indvars.iv.next953, %wide.trip.count955
  br i1 %exitcond956.not, label %.loopexit, label %.lr.ph888, !llvm.loop !28

.loopexit:                                        ; preds = %._crit_edge882.thread, %593, %590, %589
  %spec.select749 = zext i1 %.0635.lcssa to i32
  store i32 %spec.select749, ptr %17, align 4, !tbaa !5
  br i1 %.not727, label %613, label %611

611:                                              ; preds = %.loopexit
  %612 = select i1 %.0635.lcssa, i32 3, i32 2
  store i32 %612, ptr %17, align 4, !tbaa !5
  br label %613

613:                                              ; preds = %.loopexit, %611, %69, %245, %96, %.critedge.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  ret void
}

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

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

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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

declare i32 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 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 nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #4

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

declare void @dlaebz_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !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,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass