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

; 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
@c__1 = external hidden global i32, align 4
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.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 [8 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
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b19 = external hidden global double, align 8
@c_b31 = external hidden global double, align 8
@c_b32 = external hidden global double, align 8
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1

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

142:                                              ; preds = %17
  %143 = load i32, ptr %43, align 4, !tbaa !9
  br label %146

144:                                              ; preds = %17
  %145 = load i32, ptr %44, align 4, !tbaa !9
  br label %146

146:                                              ; preds = %144, %142
  %147 = phi i32 [ %143, %142 ], [ %145, %144 ]
  store i32 %147, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %43, align 4, !tbaa !9
  %148 = load ptr, ptr %21, align 8, !tbaa !5
  %149 = load i32, ptr %148, align 4, !tbaa !9
  %150 = load i32, ptr %74, align 4, !tbaa !9
  %151 = add nsw i32 %149, %150
  %152 = sub nsw i32 %151, 1
  %153 = load i32, ptr %74, align 4, !tbaa !9
  %154 = sdiv i32 %152, %153
  store i32 %154, ptr %44, align 4, !tbaa !9
  %155 = load i32, ptr %43, align 4, !tbaa !9
  %156 = load i32, ptr %44, align 4, !tbaa !9
  %157 = icmp sge i32 %155, %156
  br i1 %157, label %158, label %160

158:                                              ; preds = %146
  %159 = load i32, ptr %43, align 4, !tbaa !9
  br label %162

160:                                              ; preds = %146
  %161 = load i32, ptr %44, align 4, !tbaa !9
  br label %162

162:                                              ; preds = %160, %158
  %163 = phi i32 [ %159, %158 ], [ %161, %160 ]
  store i32 %163, ptr %85, align 4, !tbaa !9
  store i32 1, ptr %43, align 4, !tbaa !9
  %164 = load ptr, ptr %22, align 8, !tbaa !5
  %165 = load i32, ptr %164, align 4, !tbaa !9
  %166 = load i32, ptr %74, align 4, !tbaa !9
  %167 = add nsw i32 %165, %166
  %168 = sub nsw i32 %167, 1
  %169 = load i32, ptr %74, align 4, !tbaa !9
  %170 = sdiv i32 %168, %169
  store i32 %170, ptr %44, align 4, !tbaa !9
  %171 = load i32, ptr %43, align 4, !tbaa !9
  %172 = load i32, ptr %44, align 4, !tbaa !9
  %173 = icmp sge i32 %171, %172
  br i1 %173, label %174, label %176

174:                                              ; preds = %162
  %175 = load i32, ptr %43, align 4, !tbaa !9
  br label %178

176:                                              ; preds = %162
  %177 = load i32, ptr %44, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %176, %174
  %179 = phi i32 [ %175, %174 ], [ %177, %176 ]
  store i32 %179, ptr %86, align 4, !tbaa !9
  %180 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %180, align 4, !tbaa !9
  %181 = load ptr, ptr %31, align 8, !tbaa !5
  %182 = load i32, ptr %181, align 4, !tbaa !9
  %183 = icmp eq i32 %182, -1
  br i1 %183, label %188, label %184

184:                                              ; preds = %178
  %185 = load ptr, ptr %33, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  %187 = icmp eq i32 %186, -1
  br label %188

188:                                              ; preds = %184, %178
  %189 = phi i1 [ true, %178 ], [ %187, %184 ]
  %190 = zext i1 %189 to i32
  store i32 %190, ptr %84, align 4, !tbaa !9
  %191 = load i32, ptr %85, align 4, !tbaa !9
  %192 = load i32, ptr %86, align 4, !tbaa !9
  %193 = add nsw i32 %191, %192
  %194 = add nsw i32 %193, 2
  %195 = load ptr, ptr %30, align 8, !tbaa !5
  %196 = getelementptr inbounds i32, ptr %195, i64 1
  store i32 %194, ptr %196, align 4, !tbaa !9
  %197 = load i32, ptr %84, align 4, !tbaa !9
  %198 = icmp ne i32 %197, 0
  br i1 %198, label %199, label %226

199:                                              ; preds = %188
  %200 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 2, ptr %200, align 4, !tbaa !9
  %201 = load i32, ptr %85, align 4, !tbaa !9
  %202 = load i32, ptr %86, align 4, !tbaa !9
  %203 = icmp sge i32 %201, %202
  br i1 %203, label %204, label %206

204:                                              ; preds = %199
  %205 = load i32, ptr %85, align 4, !tbaa !9
  br label %208

206:                                              ; preds = %199
  %207 = load i32, ptr %86, align 4, !tbaa !9
  br label %208

208:                                              ; preds = %206, %204
  %209 = phi i32 [ %205, %204 ], [ %207, %206 ]
  %210 = sitofp i32 %209 to double
  %211 = load ptr, ptr %32, align 8, !tbaa !5
  %212 = load i32, ptr %41, align 4, !tbaa !9
  %213 = add nsw i32 %212, 1
  %214 = sext i32 %213 to i64
  %215 = getelementptr inbounds double, ptr %211, i64 %214
  store double %210, ptr %215, align 8, !tbaa !11
  %216 = load i32, ptr %86, align 4, !tbaa !9
  %217 = shl i32 %216, 1
  %218 = load i32, ptr %85, align 4, !tbaa !9
  %219 = add nsw i32 %217, %218
  %220 = sitofp i32 %219 to double
  %221 = load ptr, ptr %32, align 8, !tbaa !5
  %222 = load i32, ptr %41, align 4, !tbaa !9
  %223 = add nsw i32 %222, 2
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds double, ptr %221, i64 %224
  store double %220, ptr %225, align 8, !tbaa !11
  br label %226

226:                                              ; preds = %208, %188
  %227 = load i32, ptr %81, align 4, !tbaa !9
  %228 = icmp ne i32 %227, 0
  br i1 %228, label %239, label %229

229:                                              ; preds = %226
  %230 = load ptr, ptr %18, align 8, !tbaa !5
  %231 = call i32 @lsame_(ptr noundef %230, ptr noundef @.str.3)
  %232 = icmp ne i32 %231, 0
  br i1 %232, label %239, label %233

233:                                              ; preds = %229
  %234 = load ptr, ptr %18, align 8, !tbaa !5
  %235 = call i32 @lsame_(ptr noundef %234, ptr noundef @.str.4)
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %239, label %237

237:                                              ; preds = %233
  %238 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %238, align 4, !tbaa !9
  br label %326

239:                                              ; preds = %233, %229, %226
  %240 = load i32, ptr %82, align 4, !tbaa !9
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %252, label %242

242:                                              ; preds = %239
  %243 = load ptr, ptr %19, align 8, !tbaa !5
  %244 = call i32 @lsame_(ptr noundef %243, ptr noundef @.str.3)
  %245 = icmp ne i32 %244, 0
  br i1 %245, label %252, label %246

246:                                              ; preds = %242
  %247 = load ptr, ptr %19, align 8, !tbaa !5
  %248 = call i32 @lsame_(ptr noundef %247, ptr noundef @.str.4)
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %252, label %250

250:                                              ; preds = %246
  %251 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -2, ptr %251, align 4, !tbaa !9
  br label %325

252:                                              ; preds = %246, %242, %239
  %253 = load ptr, ptr %20, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  %255 = icmp ne i32 %254, 1
  br i1 %255, label %256, label %262

256:                                              ; preds = %252
  %257 = load ptr, ptr %20, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = icmp ne i32 %258, -1
  br i1 %259, label %260, label %262

260:                                              ; preds = %256
  %261 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -3, ptr %261, align 4, !tbaa !9
  br label %324

262:                                              ; preds = %256, %252
  %263 = load ptr, ptr %21, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = icmp slt i32 %264, 0
  br i1 %265, label %266, label %268

266:                                              ; preds = %262
  %267 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -4, ptr %267, align 4, !tbaa !9
  br label %323

268:                                              ; preds = %262
  %269 = load ptr, ptr %22, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = icmp slt i32 %270, 0
  br i1 %271, label %272, label %274

272:                                              ; preds = %268
  %273 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %273, align 4, !tbaa !9
  br label %322

274:                                              ; preds = %268
  %275 = load ptr, ptr %24, align 8, !tbaa !5
  %276 = load i32, ptr %275, align 4, !tbaa !9
  %277 = load ptr, ptr %21, align 8, !tbaa !5
  %278 = load i32, ptr %277, align 4, !tbaa !9
  %279 = icmp sge i32 1, %278
  br i1 %279, label %280, label %281

280:                                              ; preds = %274
  br label %284

281:                                              ; preds = %274
  %282 = load ptr, ptr %21, align 8, !tbaa !5
  %283 = load i32, ptr %282, align 4, !tbaa !9
  br label %284

284:                                              ; preds = %281, %280
  %285 = phi i32 [ 1, %280 ], [ %283, %281 ]
  %286 = icmp slt i32 %276, %285
  br i1 %286, label %287, label %289

287:                                              ; preds = %284
  %288 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -7, ptr %288, align 4, !tbaa !9
  br label %321

289:                                              ; preds = %284
  %290 = load ptr, ptr %26, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  %292 = load ptr, ptr %22, align 8, !tbaa !5
  %293 = load i32, ptr %292, align 4, !tbaa !9
  %294 = icmp sge i32 1, %293
  br i1 %294, label %295, label %296

295:                                              ; preds = %289
  br label %299

296:                                              ; preds = %289
  %297 = load ptr, ptr %22, align 8, !tbaa !5
  %298 = load i32, ptr %297, align 4, !tbaa !9
  br label %299

299:                                              ; preds = %296, %295
  %300 = phi i32 [ 1, %295 ], [ %298, %296 ]
  %301 = icmp slt i32 %291, %300
  br i1 %301, label %302, label %304

302:                                              ; preds = %299
  %303 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -9, ptr %303, align 4, !tbaa !9
  br label %320

304:                                              ; preds = %299
  %305 = load ptr, ptr %28, align 8, !tbaa !5
  %306 = load i32, ptr %305, align 4, !tbaa !9
  %307 = load ptr, ptr %21, align 8, !tbaa !5
  %308 = load i32, ptr %307, align 4, !tbaa !9
  %309 = icmp sge i32 1, %308
  br i1 %309, label %310, label %311

310:                                              ; preds = %304
  br label %314

311:                                              ; preds = %304
  %312 = load ptr, ptr %21, align 8, !tbaa !5
  %313 = load i32, ptr %312, align 4, !tbaa !9
  br label %314

314:                                              ; preds = %311, %310
  %315 = phi i32 [ 1, %310 ], [ %313, %311 ]
  %316 = icmp slt i32 %306, %315
  br i1 %316, label %317, label %319

317:                                              ; preds = %314
  %318 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -11, ptr %318, align 4, !tbaa !9
  br label %319

319:                                              ; preds = %317, %314
  br label %320

320:                                              ; preds = %319, %302
  br label %321

321:                                              ; preds = %320, %287
  br label %322

322:                                              ; preds = %321, %272
  br label %323

323:                                              ; preds = %322, %266
  br label %324

324:                                              ; preds = %323, %260
  br label %325

325:                                              ; preds = %324, %250
  br label %326

326:                                              ; preds = %325, %237
  %327 = load ptr, ptr %34, align 8, !tbaa !5
  %328 = load i32, ptr %327, align 4, !tbaa !9
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %330, label %335

330:                                              ; preds = %326
  %331 = load ptr, ptr %34, align 8, !tbaa !5
  %332 = load i32, ptr %331, align 4, !tbaa !9
  %333 = sub nsw i32 0, %332
  store i32 %333, ptr %43, align 4, !tbaa !9
  %334 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %43, i32 noundef 7)
  store i32 1, ptr %89, align 4
  br label %4786

335:                                              ; preds = %326
  %336 = load i32, ptr %84, align 4, !tbaa !9
  %337 = icmp ne i32 %336, 0
  br i1 %337, label %338, label %339

338:                                              ; preds = %335
  store i32 1, ptr %89, align 4
  br label %4786

339:                                              ; preds = %335
  br label %340

340:                                              ; preds = %339
  %341 = load ptr, ptr %29, align 8, !tbaa !5
  store double 1.000000e+00, ptr %341, align 8, !tbaa !11
  %342 = load ptr, ptr %21, align 8, !tbaa !5
  %343 = load i32, ptr %342, align 4, !tbaa !9
  %344 = icmp eq i32 %343, 0
  br i1 %344, label %349, label %345

345:                                              ; preds = %340
  %346 = load ptr, ptr %22, align 8, !tbaa !5
  %347 = load i32, ptr %346, align 4, !tbaa !9
  %348 = icmp eq i32 %347, 0
  br i1 %348, label %349, label %350

349:                                              ; preds = %345, %340
  store i32 1, ptr %89, align 4
  br label %4786

350:                                              ; preds = %345
  %351 = load ptr, ptr %21, align 8, !tbaa !5
  %352 = load i32, ptr %351, align 4, !tbaa !9
  %353 = load ptr, ptr %22, align 8, !tbaa !5
  %354 = load i32, ptr %353, align 4, !tbaa !9
  %355 = icmp sge i32 %352, %354
  br i1 %355, label %356, label %359

356:                                              ; preds = %350
  %357 = load ptr, ptr %21, align 8, !tbaa !5
  %358 = load i32, ptr %357, align 4, !tbaa !9
  br label %362

359:                                              ; preds = %350
  %360 = load ptr, ptr %22, align 8, !tbaa !5
  %361 = load i32, ptr %360, align 4, !tbaa !9
  br label %362

362:                                              ; preds = %359, %356
  %363 = phi i32 [ %358, %356 ], [ %361, %359 ]
  %364 = sext i32 %363 to i64
  %365 = mul i64 %364, 8
  %366 = call noalias ptr @malloc(i64 noundef %365) #6
  store ptr %366, ptr %59, align 8, !tbaa !5
  %367 = load i32, ptr %85, align 4, !tbaa !9
  %368 = load i32, ptr %86, align 4, !tbaa !9
  %369 = icmp sle i32 %367, %368
  br i1 %369, label %370, label %372

370:                                              ; preds = %362
  %371 = load i32, ptr %85, align 4, !tbaa !9
  br label %374

372:                                              ; preds = %362
  %373 = load i32, ptr %86, align 4, !tbaa !9
  br label %374

374:                                              ; preds = %372, %370
  %375 = phi i32 [ %371, %370 ], [ %373, %372 ]
  %376 = icmp eq i32 %375, 1
  br i1 %376, label %397, label %377

377:                                              ; preds = %374
  %378 = load ptr, ptr %33, align 8, !tbaa !5
  %379 = load i32, ptr %378, align 4, !tbaa !9
  %380 = load i32, ptr %85, align 4, !tbaa !9
  %381 = load i32, ptr %86, align 4, !tbaa !9
  %382 = icmp sge i32 %380, %381
  br i1 %382, label %383, label %385

383:                                              ; preds = %377
  %384 = load i32, ptr %85, align 4, !tbaa !9
  br label %387

385:                                              ; preds = %377
  %386 = load i32, ptr %86, align 4, !tbaa !9
  br label %387

387:                                              ; preds = %385, %383
  %388 = phi i32 [ %384, %383 ], [ %386, %385 ]
  %389 = icmp slt i32 %379, %388
  br i1 %389, label %397, label %390

390:                                              ; preds = %387
  %391 = load ptr, ptr %31, align 8, !tbaa !5
  %392 = load i32, ptr %391, align 4, !tbaa !9
  %393 = load ptr, ptr %30, align 8, !tbaa !5
  %394 = getelementptr inbounds i32, ptr %393, i64 1
  %395 = load i32, ptr %394, align 4, !tbaa !9
  %396 = icmp slt i32 %392, %395
  br i1 %396, label %397, label %420

397:                                              ; preds = %390, %387, %374
  %398 = load ptr, ptr %18, align 8, !tbaa !5
  %399 = load ptr, ptr %19, align 8, !tbaa !5
  %400 = load ptr, ptr %20, align 8, !tbaa !5
  %401 = load ptr, ptr %21, align 8, !tbaa !5
  %402 = load ptr, ptr %22, align 8, !tbaa !5
  %403 = load ptr, ptr %23, align 8, !tbaa !5
  %404 = load i32, ptr %36, align 4, !tbaa !9
  %405 = sext i32 %404 to i64
  %406 = getelementptr inbounds double, ptr %403, i64 %405
  %407 = load ptr, ptr %24, align 8, !tbaa !5
  %408 = load ptr, ptr %25, align 8, !tbaa !5
  %409 = load i32, ptr %38, align 4, !tbaa !9
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds double, ptr %408, i64 %410
  %412 = load ptr, ptr %26, align 8, !tbaa !5
  %413 = load ptr, ptr %27, align 8, !tbaa !5
  %414 = load i32, ptr %40, align 4, !tbaa !9
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds double, ptr %413, i64 %415
  %417 = load ptr, ptr %28, align 8, !tbaa !5
  %418 = load ptr, ptr %29, align 8, !tbaa !5
  %419 = load ptr, ptr %34, align 8, !tbaa !5
  call void @dtrsyl_(ptr noundef %398, ptr noundef %399, ptr noundef %400, ptr noundef %401, ptr noundef %402, ptr noundef %406, ptr noundef %407, ptr noundef %411, ptr noundef %412, ptr noundef %416, ptr noundef %417, ptr noundef %418, ptr noundef %419)
  store i32 1, ptr %89, align 4
  br label %4786

420:                                              ; preds = %390
  %421 = call double @dlamch_(ptr noundef @.str.6)
  store double %421, ptr %83, align 8, !tbaa !11
  %422 = load double, ptr %83, align 8, !tbaa !11
  %423 = fdiv double 1.000000e+00, %422
  store double %423, ptr %80, align 8, !tbaa !11
  store i32 0, ptr %58, align 4, !tbaa !9
  %424 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %424, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %425

425:                                              ; preds = %439, %420
  %426 = load i32, ptr %61, align 4, !tbaa !9
  %427 = load i32, ptr %43, align 4, !tbaa !9
  %428 = icmp sle i32 %426, %427
  br i1 %428, label %429, label %442

429:                                              ; preds = %425
  %430 = load i32, ptr %61, align 4, !tbaa !9
  %431 = sub nsw i32 %430, 1
  %432 = load i32, ptr %74, align 4, !tbaa !9
  %433 = mul nsw i32 %431, %432
  %434 = add nsw i32 %433, 1
  %435 = load ptr, ptr %30, align 8, !tbaa !5
  %436 = load i32, ptr %61, align 4, !tbaa !9
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds i32, ptr %435, i64 %437
  store i32 %434, ptr %438, align 4, !tbaa !9
  br label %439

439:                                              ; preds = %429
  %440 = load i32, ptr %61, align 4, !tbaa !9
  %441 = add nsw i32 %440, 1
  store i32 %441, ptr %61, align 4, !tbaa !9
  br label %425, !llvm.loop !13

442:                                              ; preds = %425
  %443 = load ptr, ptr %21, align 8, !tbaa !5
  %444 = load i32, ptr %443, align 4, !tbaa !9
  %445 = add nsw i32 %444, 1
  %446 = load ptr, ptr %30, align 8, !tbaa !5
  %447 = load i32, ptr %85, align 4, !tbaa !9
  %448 = add nsw i32 %447, 1
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds i32, ptr %446, i64 %449
  store i32 %445, ptr %450, align 4, !tbaa !9
  %451 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %451, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %452

452:                                              ; preds = %533, %442
  %453 = load i32, ptr %63, align 4, !tbaa !9
  %454 = load i32, ptr %43, align 4, !tbaa !9
  %455 = icmp sle i32 %453, %454
  br i1 %455, label %456, label %536

456:                                              ; preds = %452
  %457 = load ptr, ptr %30, align 8, !tbaa !5
  %458 = load i32, ptr %63, align 4, !tbaa !9
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds i32, ptr %457, i64 %459
  %461 = load i32, ptr %460, align 4, !tbaa !9
  store i32 %461, ptr %72, align 4, !tbaa !9
  %462 = load ptr, ptr %30, align 8, !tbaa !5
  %463 = load i32, ptr %63, align 4, !tbaa !9
  %464 = add nsw i32 %463, 1
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds i32, ptr %462, i64 %465
  %467 = load i32, ptr %466, align 4, !tbaa !9
  %468 = sub nsw i32 %467, 1
  store i32 %468, ptr %73, align 4, !tbaa !9
  %469 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %469, ptr %44, align 4, !tbaa !9
  %470 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %470, ptr %64, align 4, !tbaa !9
  br label %471

471:                                              ; preds = %529, %456
  %472 = load i32, ptr %64, align 4, !tbaa !9
  %473 = load i32, ptr %44, align 4, !tbaa !9
  %474 = icmp sle i32 %472, %473
  br i1 %474, label %475, label %532

475:                                              ; preds = %471
  %476 = load i32, ptr %58, align 4, !tbaa !9
  %477 = icmp ne i32 %476, 0
  br i1 %477, label %478, label %479

478:                                              ; preds = %475
  store i32 0, ptr %58, align 4, !tbaa !9
  br label %529

479:                                              ; preds = %475
  %480 = load i32, ptr %64, align 4, !tbaa !9
  %481 = load ptr, ptr %21, align 8, !tbaa !5
  %482 = load i32, ptr %481, align 4, !tbaa !9
  %483 = icmp sge i32 %480, %482
  br i1 %483, label %484, label %485

484:                                              ; preds = %479
  br label %529

485:                                              ; preds = %479
  %486 = load ptr, ptr %23, align 8, !tbaa !5
  %487 = load i32, ptr %64, align 4, !tbaa !9
  %488 = load i32, ptr %64, align 4, !tbaa !9
  %489 = add nsw i32 %488, 1
  %490 = load i32, ptr %35, align 4, !tbaa !9
  %491 = mul nsw i32 %489, %490
  %492 = add nsw i32 %487, %491
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds double, ptr %486, i64 %493
  %495 = load double, ptr %494, align 8, !tbaa !11
  %496 = fcmp une double %495, 0.000000e+00
  br i1 %496, label %497, label %528

497:                                              ; preds = %485
  %498 = load ptr, ptr %23, align 8, !tbaa !5
  %499 = load i32, ptr %64, align 4, !tbaa !9
  %500 = add nsw i32 %499, 1
  %501 = load i32, ptr %64, align 4, !tbaa !9
  %502 = load i32, ptr %35, align 4, !tbaa !9
  %503 = mul nsw i32 %501, %502
  %504 = add nsw i32 %500, %503
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds double, ptr %498, i64 %505
  %507 = load double, ptr %506, align 8, !tbaa !11
  %508 = fcmp une double %507, 0.000000e+00
  br i1 %508, label %509, label %528

509:                                              ; preds = %497
  %510 = load i32, ptr %64, align 4, !tbaa !9
  %511 = add nsw i32 %510, 1
  %512 = load ptr, ptr %30, align 8, !tbaa !5
  %513 = load i32, ptr %63, align 4, !tbaa !9
  %514 = add nsw i32 %513, 1
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds i32, ptr %512, i64 %515
  %517 = load i32, ptr %516, align 4, !tbaa !9
  %518 = icmp eq i32 %511, %517
  br i1 %518, label %519, label %527

519:                                              ; preds = %509
  %520 = load ptr, ptr %30, align 8, !tbaa !5
  %521 = load i32, ptr %63, align 4, !tbaa !9
  %522 = add nsw i32 %521, 1
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds i32, ptr %520, i64 %523
  %525 = load i32, ptr %524, align 4, !tbaa !9
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr %524, align 4, !tbaa !9
  br label %529

527:                                              ; preds = %509
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %528

528:                                              ; preds = %527, %497, %485
  br label %529

529:                                              ; preds = %528, %519, %484, %478
  %530 = load i32, ptr %64, align 4, !tbaa !9
  %531 = add nsw i32 %530, 1
  store i32 %531, ptr %64, align 4, !tbaa !9
  br label %471, !llvm.loop !15

532:                                              ; preds = %471
  br label %533

533:                                              ; preds = %532
  %534 = load i32, ptr %63, align 4, !tbaa !9
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr %63, align 4, !tbaa !9
  br label %452, !llvm.loop !16

536:                                              ; preds = %452
  %537 = load ptr, ptr %21, align 8, !tbaa !5
  %538 = load i32, ptr %537, align 4, !tbaa !9
  %539 = add nsw i32 %538, 1
  %540 = load ptr, ptr %30, align 8, !tbaa !5
  %541 = load i32, ptr %85, align 4, !tbaa !9
  %542 = add nsw i32 %541, 1
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds i32, ptr %540, i64 %543
  store i32 %539, ptr %544, align 4, !tbaa !9
  %545 = load ptr, ptr %30, align 8, !tbaa !5
  %546 = load i32, ptr %85, align 4, !tbaa !9
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds i32, ptr %545, i64 %547
  %549 = load i32, ptr %548, align 4, !tbaa !9
  %550 = load ptr, ptr %30, align 8, !tbaa !5
  %551 = load i32, ptr %85, align 4, !tbaa !9
  %552 = add nsw i32 %551, 1
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds i32, ptr %550, i64 %553
  %555 = load i32, ptr %554, align 4, !tbaa !9
  %556 = icmp sge i32 %549, %555
  br i1 %556, label %557, label %570

557:                                              ; preds = %536
  %558 = load ptr, ptr %30, align 8, !tbaa !5
  %559 = load i32, ptr %85, align 4, !tbaa !9
  %560 = add nsw i32 %559, 1
  %561 = sext i32 %560 to i64
  %562 = getelementptr inbounds i32, ptr %558, i64 %561
  %563 = load i32, ptr %562, align 4, !tbaa !9
  %564 = load ptr, ptr %30, align 8, !tbaa !5
  %565 = load i32, ptr %85, align 4, !tbaa !9
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds i32, ptr %564, i64 %566
  store i32 %563, ptr %567, align 4, !tbaa !9
  %568 = load i32, ptr %85, align 4, !tbaa !9
  %569 = add nsw i32 %568, -1
  store i32 %569, ptr %85, align 4, !tbaa !9
  br label %570

570:                                              ; preds = %557, %536
  %571 = load i32, ptr %85, align 4, !tbaa !9
  %572 = add nsw i32 %571, 1
  store i32 %572, ptr %75, align 4, !tbaa !9
  store i32 0, ptr %58, align 4, !tbaa !9
  %573 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %573, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %574

574:                                              ; preds = %590, %570
  %575 = load i32, ptr %61, align 4, !tbaa !9
  %576 = load i32, ptr %43, align 4, !tbaa !9
  %577 = icmp sle i32 %575, %576
  br i1 %577, label %578, label %593

578:                                              ; preds = %574
  %579 = load i32, ptr %61, align 4, !tbaa !9
  %580 = sub nsw i32 %579, 1
  %581 = load i32, ptr %74, align 4, !tbaa !9
  %582 = mul nsw i32 %580, %581
  %583 = add nsw i32 %582, 1
  %584 = load ptr, ptr %30, align 8, !tbaa !5
  %585 = load i32, ptr %75, align 4, !tbaa !9
  %586 = load i32, ptr %61, align 4, !tbaa !9
  %587 = add nsw i32 %585, %586
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds i32, ptr %584, i64 %588
  store i32 %583, ptr %589, align 4, !tbaa !9
  br label %590

590:                                              ; preds = %578
  %591 = load i32, ptr %61, align 4, !tbaa !9
  %592 = add nsw i32 %591, 1
  store i32 %592, ptr %61, align 4, !tbaa !9
  br label %574, !llvm.loop !17

593:                                              ; preds = %574
  %594 = load ptr, ptr %22, align 8, !tbaa !5
  %595 = load i32, ptr %594, align 4, !tbaa !9
  %596 = add nsw i32 %595, 1
  %597 = load ptr, ptr %30, align 8, !tbaa !5
  %598 = load i32, ptr %75, align 4, !tbaa !9
  %599 = load i32, ptr %86, align 4, !tbaa !9
  %600 = add nsw i32 %598, %599
  %601 = add nsw i32 %600, 1
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds i32, ptr %597, i64 %602
  store i32 %596, ptr %603, align 4, !tbaa !9
  %604 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %604, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %605

605:                                              ; preds = %694, %593
  %606 = load i32, ptr %63, align 4, !tbaa !9
  %607 = load i32, ptr %43, align 4, !tbaa !9
  %608 = icmp sle i32 %606, %607
  br i1 %608, label %609, label %697

609:                                              ; preds = %605
  %610 = load ptr, ptr %30, align 8, !tbaa !5
  %611 = load i32, ptr %75, align 4, !tbaa !9
  %612 = load i32, ptr %63, align 4, !tbaa !9
  %613 = add nsw i32 %611, %612
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds i32, ptr %610, i64 %614
  %616 = load i32, ptr %615, align 4, !tbaa !9
  store i32 %616, ptr %72, align 4, !tbaa !9
  %617 = load ptr, ptr %30, align 8, !tbaa !5
  %618 = load i32, ptr %75, align 4, !tbaa !9
  %619 = load i32, ptr %63, align 4, !tbaa !9
  %620 = add nsw i32 %618, %619
  %621 = add nsw i32 %620, 1
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds i32, ptr %617, i64 %622
  %624 = load i32, ptr %623, align 4, !tbaa !9
  %625 = sub nsw i32 %624, 1
  store i32 %625, ptr %73, align 4, !tbaa !9
  %626 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %626, ptr %44, align 4, !tbaa !9
  %627 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %627, ptr %64, align 4, !tbaa !9
  br label %628

628:                                              ; preds = %690, %609
  %629 = load i32, ptr %64, align 4, !tbaa !9
  %630 = load i32, ptr %44, align 4, !tbaa !9
  %631 = icmp sle i32 %629, %630
  br i1 %631, label %632, label %693

632:                                              ; preds = %628
  %633 = load i32, ptr %58, align 4, !tbaa !9
  %634 = icmp ne i32 %633, 0
  br i1 %634, label %635, label %636

635:                                              ; preds = %632
  store i32 0, ptr %58, align 4, !tbaa !9
  br label %690

636:                                              ; preds = %632
  %637 = load i32, ptr %64, align 4, !tbaa !9
  %638 = load ptr, ptr %22, align 8, !tbaa !5
  %639 = load i32, ptr %638, align 4, !tbaa !9
  %640 = icmp sge i32 %637, %639
  br i1 %640, label %641, label %642

641:                                              ; preds = %636
  br label %690

642:                                              ; preds = %636
  %643 = load ptr, ptr %25, align 8, !tbaa !5
  %644 = load i32, ptr %64, align 4, !tbaa !9
  %645 = load i32, ptr %64, align 4, !tbaa !9
  %646 = add nsw i32 %645, 1
  %647 = load i32, ptr %37, align 4, !tbaa !9
  %648 = mul nsw i32 %646, %647
  %649 = add nsw i32 %644, %648
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds double, ptr %643, i64 %650
  %652 = load double, ptr %651, align 8, !tbaa !11
  %653 = fcmp une double %652, 0.000000e+00
  br i1 %653, label %654, label %689

654:                                              ; preds = %642
  %655 = load ptr, ptr %25, align 8, !tbaa !5
  %656 = load i32, ptr %64, align 4, !tbaa !9
  %657 = add nsw i32 %656, 1
  %658 = load i32, ptr %64, align 4, !tbaa !9
  %659 = load i32, ptr %37, align 4, !tbaa !9
  %660 = mul nsw i32 %658, %659
  %661 = add nsw i32 %657, %660
  %662 = sext i32 %661 to i64
  %663 = getelementptr inbounds double, ptr %655, i64 %662
  %664 = load double, ptr %663, align 8, !tbaa !11
  %665 = fcmp une double %664, 0.000000e+00
  br i1 %665, label %666, label %689

666:                                              ; preds = %654
  %667 = load i32, ptr %64, align 4, !tbaa !9
  %668 = add nsw i32 %667, 1
  %669 = load ptr, ptr %30, align 8, !tbaa !5
  %670 = load i32, ptr %75, align 4, !tbaa !9
  %671 = load i32, ptr %63, align 4, !tbaa !9
  %672 = add nsw i32 %670, %671
  %673 = add nsw i32 %672, 1
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds i32, ptr %669, i64 %674
  %676 = load i32, ptr %675, align 4, !tbaa !9
  %677 = icmp eq i32 %668, %676
  br i1 %677, label %678, label %688

678:                                              ; preds = %666
  %679 = load ptr, ptr %30, align 8, !tbaa !5
  %680 = load i32, ptr %75, align 4, !tbaa !9
  %681 = load i32, ptr %63, align 4, !tbaa !9
  %682 = add nsw i32 %680, %681
  %683 = add nsw i32 %682, 1
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds i32, ptr %679, i64 %684
  %686 = load i32, ptr %685, align 4, !tbaa !9
  %687 = add nsw i32 %686, 1
  store i32 %687, ptr %685, align 4, !tbaa !9
  br label %690

688:                                              ; preds = %666
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %689

689:                                              ; preds = %688, %654, %642
  br label %690

690:                                              ; preds = %689, %678, %641, %635
  %691 = load i32, ptr %64, align 4, !tbaa !9
  %692 = add nsw i32 %691, 1
  store i32 %692, ptr %64, align 4, !tbaa !9
  br label %628, !llvm.loop !18

693:                                              ; preds = %628
  br label %694

694:                                              ; preds = %693
  %695 = load i32, ptr %63, align 4, !tbaa !9
  %696 = add nsw i32 %695, 1
  store i32 %696, ptr %63, align 4, !tbaa !9
  br label %605, !llvm.loop !19

697:                                              ; preds = %605
  %698 = load ptr, ptr %22, align 8, !tbaa !5
  %699 = load i32, ptr %698, align 4, !tbaa !9
  %700 = add nsw i32 %699, 1
  %701 = load ptr, ptr %30, align 8, !tbaa !5
  %702 = load i32, ptr %75, align 4, !tbaa !9
  %703 = load i32, ptr %86, align 4, !tbaa !9
  %704 = add nsw i32 %702, %703
  %705 = add nsw i32 %704, 1
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds i32, ptr %701, i64 %706
  store i32 %700, ptr %707, align 4, !tbaa !9
  %708 = load ptr, ptr %30, align 8, !tbaa !5
  %709 = load i32, ptr %75, align 4, !tbaa !9
  %710 = load i32, ptr %86, align 4, !tbaa !9
  %711 = add nsw i32 %709, %710
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds i32, ptr %708, i64 %712
  %714 = load i32, ptr %713, align 4, !tbaa !9
  %715 = load ptr, ptr %30, align 8, !tbaa !5
  %716 = load i32, ptr %75, align 4, !tbaa !9
  %717 = load i32, ptr %86, align 4, !tbaa !9
  %718 = add nsw i32 %716, %717
  %719 = add nsw i32 %718, 1
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds i32, ptr %715, i64 %720
  %722 = load i32, ptr %721, align 4, !tbaa !9
  %723 = icmp sge i32 %714, %722
  br i1 %723, label %724, label %741

724:                                              ; preds = %697
  %725 = load ptr, ptr %30, align 8, !tbaa !5
  %726 = load i32, ptr %75, align 4, !tbaa !9
  %727 = load i32, ptr %86, align 4, !tbaa !9
  %728 = add nsw i32 %726, %727
  %729 = add nsw i32 %728, 1
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds i32, ptr %725, i64 %730
  %732 = load i32, ptr %731, align 4, !tbaa !9
  %733 = load ptr, ptr %30, align 8, !tbaa !5
  %734 = load i32, ptr %75, align 4, !tbaa !9
  %735 = load i32, ptr %86, align 4, !tbaa !9
  %736 = add nsw i32 %734, %735
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds i32, ptr %733, i64 %737
  store i32 %732, ptr %738, align 4, !tbaa !9
  %739 = load i32, ptr %86, align 4, !tbaa !9
  %740 = add nsw i32 %739, -1
  store i32 %740, ptr %86, align 4, !tbaa !9
  br label %741

741:                                              ; preds = %724, %697
  %742 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %742, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %743

743:                                              ; preds = %766, %741
  %744 = load i32, ptr %64, align 4, !tbaa !9
  %745 = load i32, ptr %43, align 4, !tbaa !9
  %746 = icmp sle i32 %744, %745
  br i1 %746, label %747, label %769

747:                                              ; preds = %743
  %748 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %748, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %749

749:                                              ; preds = %762, %747
  %750 = load i32, ptr %63, align 4, !tbaa !9
  %751 = load i32, ptr %44, align 4, !tbaa !9
  %752 = icmp sle i32 %750, %751
  br i1 %752, label %753, label %765

753:                                              ; preds = %749
  %754 = load ptr, ptr %32, align 8, !tbaa !5
  %755 = load i32, ptr %63, align 4, !tbaa !9
  %756 = load i32, ptr %64, align 4, !tbaa !9
  %757 = load i32, ptr %41, align 4, !tbaa !9
  %758 = mul nsw i32 %756, %757
  %759 = add nsw i32 %755, %758
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds double, ptr %754, i64 %760
  store double 1.000000e+00, ptr %761, align 8, !tbaa !11
  br label %762

762:                                              ; preds = %753
  %763 = load i32, ptr %63, align 4, !tbaa !9
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr %63, align 4, !tbaa !9
  br label %749, !llvm.loop !20

765:                                              ; preds = %749
  br label %766

766:                                              ; preds = %765
  %767 = load i32, ptr %64, align 4, !tbaa !9
  %768 = add nsw i32 %767, 1
  store i32 %768, ptr %64, align 4, !tbaa !9
  br label %743, !llvm.loop !21

769:                                              ; preds = %743
  store double 1.000000e+00, ptr %87, align 8, !tbaa !11
  %770 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %770, ptr %56, align 4, !tbaa !9
  %771 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %771, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %772

772:                                              ; preds = %869, %769
  %773 = load i32, ptr %63, align 4, !tbaa !9
  %774 = load i32, ptr %43, align 4, !tbaa !9
  %775 = icmp sle i32 %773, %774
  br i1 %775, label %776, label %872

776:                                              ; preds = %772
  %777 = load ptr, ptr %30, align 8, !tbaa !5
  %778 = load i32, ptr %63, align 4, !tbaa !9
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds i32, ptr %777, i64 %779
  %781 = load i32, ptr %780, align 4, !tbaa !9
  store i32 %781, ptr %70, align 4, !tbaa !9
  %782 = load ptr, ptr %30, align 8, !tbaa !5
  %783 = load i32, ptr %63, align 4, !tbaa !9
  %784 = add nsw i32 %783, 1
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds i32, ptr %782, i64 %785
  %787 = load i32, ptr %786, align 4, !tbaa !9
  store i32 %787, ptr %71, align 4, !tbaa !9
  %788 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %788, ptr %44, align 4, !tbaa !9
  %789 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %789, ptr %64, align 4, !tbaa !9
  br label %790

790:                                              ; preds = %865, %776
  %791 = load i32, ptr %64, align 4, !tbaa !9
  %792 = load i32, ptr %44, align 4, !tbaa !9
  %793 = icmp sle i32 %791, %792
  br i1 %793, label %794, label %868

794:                                              ; preds = %790
  %795 = load ptr, ptr %30, align 8, !tbaa !5
  %796 = load i32, ptr %64, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds i32, ptr %795, i64 %797
  %799 = load i32, ptr %798, align 4, !tbaa !9
  store i32 %799, ptr %72, align 4, !tbaa !9
  %800 = load ptr, ptr %30, align 8, !tbaa !5
  %801 = load i32, ptr %64, align 4, !tbaa !9
  %802 = add nsw i32 %801, 1
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds i32, ptr %800, i64 %803
  %805 = load i32, ptr %804, align 4, !tbaa !9
  store i32 %805, ptr %73, align 4, !tbaa !9
  %806 = load i32, ptr %81, align 4, !tbaa !9
  %807 = icmp ne i32 %806, 0
  br i1 %807, label %808, label %836

808:                                              ; preds = %794
  %809 = load i32, ptr %71, align 4, !tbaa !9
  %810 = load i32, ptr %70, align 4, !tbaa !9
  %811 = sub nsw i32 %809, %810
  store i32 %811, ptr %45, align 4, !tbaa !9
  %812 = load i32, ptr %73, align 4, !tbaa !9
  %813 = load i32, ptr %72, align 4, !tbaa !9
  %814 = sub nsw i32 %812, %813
  store i32 %814, ptr %46, align 4, !tbaa !9
  %815 = load ptr, ptr %23, align 8, !tbaa !5
  %816 = load i32, ptr %70, align 4, !tbaa !9
  %817 = load i32, ptr %72, align 4, !tbaa !9
  %818 = load i32, ptr %35, align 4, !tbaa !9
  %819 = mul nsw i32 %817, %818
  %820 = add nsw i32 %816, %819
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds double, ptr %815, i64 %821
  %823 = load ptr, ptr %24, align 8, !tbaa !5
  %824 = load ptr, ptr %59, align 8, !tbaa !5
  %825 = call double @dlange_(ptr noundef @.str.7, ptr noundef %45, ptr noundef %46, ptr noundef %822, ptr noundef %823, ptr noundef %824)
  %826 = load ptr, ptr %32, align 8, !tbaa !5
  %827 = load i32, ptr %63, align 4, !tbaa !9
  %828 = load i32, ptr %56, align 4, !tbaa !9
  %829 = load i32, ptr %64, align 4, !tbaa !9
  %830 = add nsw i32 %828, %829
  %831 = load i32, ptr %41, align 4, !tbaa !9
  %832 = mul nsw i32 %830, %831
  %833 = add nsw i32 %827, %832
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds double, ptr %826, i64 %834
  store double %825, ptr %835, align 8, !tbaa !11
  br label %864

836:                                              ; preds = %794
  %837 = load i32, ptr %71, align 4, !tbaa !9
  %838 = load i32, ptr %70, align 4, !tbaa !9
  %839 = sub nsw i32 %837, %838
  store i32 %839, ptr %45, align 4, !tbaa !9
  %840 = load i32, ptr %73, align 4, !tbaa !9
  %841 = load i32, ptr %72, align 4, !tbaa !9
  %842 = sub nsw i32 %840, %841
  store i32 %842, ptr %46, align 4, !tbaa !9
  %843 = load ptr, ptr %23, align 8, !tbaa !5
  %844 = load i32, ptr %70, align 4, !tbaa !9
  %845 = load i32, ptr %72, align 4, !tbaa !9
  %846 = load i32, ptr %35, align 4, !tbaa !9
  %847 = mul nsw i32 %845, %846
  %848 = add nsw i32 %844, %847
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds double, ptr %843, i64 %849
  %851 = load ptr, ptr %24, align 8, !tbaa !5
  %852 = load ptr, ptr %59, align 8, !tbaa !5
  %853 = call double @dlange_(ptr noundef @.str.8, ptr noundef %45, ptr noundef %46, ptr noundef %850, ptr noundef %851, ptr noundef %852)
  %854 = load ptr, ptr %32, align 8, !tbaa !5
  %855 = load i32, ptr %64, align 4, !tbaa !9
  %856 = load i32, ptr %56, align 4, !tbaa !9
  %857 = load i32, ptr %63, align 4, !tbaa !9
  %858 = add nsw i32 %856, %857
  %859 = load i32, ptr %41, align 4, !tbaa !9
  %860 = mul nsw i32 %858, %859
  %861 = add nsw i32 %855, %860
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds double, ptr %854, i64 %862
  store double %853, ptr %863, align 8, !tbaa !11
  br label %864

864:                                              ; preds = %836, %808
  br label %865

865:                                              ; preds = %864
  %866 = load i32, ptr %64, align 4, !tbaa !9
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr %64, align 4, !tbaa !9
  br label %790, !llvm.loop !22

868:                                              ; preds = %790
  br label %869

869:                                              ; preds = %868
  %870 = load i32, ptr %63, align 4, !tbaa !9
  %871 = add nsw i32 %870, 1
  store i32 %871, ptr %63, align 4, !tbaa !9
  br label %772, !llvm.loop !23

872:                                              ; preds = %772
  %873 = load i32, ptr %86, align 4, !tbaa !9
  %874 = load i32, ptr %85, align 4, !tbaa !9
  %875 = add nsw i32 %873, %874
  store i32 %875, ptr %57, align 4, !tbaa !9
  %876 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %876, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %877

877:                                              ; preds = %982, %872
  %878 = load i32, ptr %63, align 4, !tbaa !9
  %879 = load i32, ptr %43, align 4, !tbaa !9
  %880 = icmp sle i32 %878, %879
  br i1 %880, label %881, label %985

881:                                              ; preds = %877
  %882 = load ptr, ptr %30, align 8, !tbaa !5
  %883 = load i32, ptr %75, align 4, !tbaa !9
  %884 = load i32, ptr %63, align 4, !tbaa !9
  %885 = add nsw i32 %883, %884
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds i32, ptr %882, i64 %886
  %888 = load i32, ptr %887, align 4, !tbaa !9
  store i32 %888, ptr %70, align 4, !tbaa !9
  %889 = load ptr, ptr %30, align 8, !tbaa !5
  %890 = load i32, ptr %75, align 4, !tbaa !9
  %891 = load i32, ptr %63, align 4, !tbaa !9
  %892 = add nsw i32 %890, %891
  %893 = add nsw i32 %892, 1
  %894 = sext i32 %893 to i64
  %895 = getelementptr inbounds i32, ptr %889, i64 %894
  %896 = load i32, ptr %895, align 4, !tbaa !9
  store i32 %896, ptr %71, align 4, !tbaa !9
  %897 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %897, ptr %44, align 4, !tbaa !9
  %898 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %898, ptr %64, align 4, !tbaa !9
  br label %899

899:                                              ; preds = %978, %881
  %900 = load i32, ptr %64, align 4, !tbaa !9
  %901 = load i32, ptr %44, align 4, !tbaa !9
  %902 = icmp sle i32 %900, %901
  br i1 %902, label %903, label %981

903:                                              ; preds = %899
  %904 = load ptr, ptr %30, align 8, !tbaa !5
  %905 = load i32, ptr %75, align 4, !tbaa !9
  %906 = load i32, ptr %64, align 4, !tbaa !9
  %907 = add nsw i32 %905, %906
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds i32, ptr %904, i64 %908
  %910 = load i32, ptr %909, align 4, !tbaa !9
  store i32 %910, ptr %72, align 4, !tbaa !9
  %911 = load ptr, ptr %30, align 8, !tbaa !5
  %912 = load i32, ptr %75, align 4, !tbaa !9
  %913 = load i32, ptr %64, align 4, !tbaa !9
  %914 = add nsw i32 %912, %913
  %915 = add nsw i32 %914, 1
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds i32, ptr %911, i64 %916
  %918 = load i32, ptr %917, align 4, !tbaa !9
  store i32 %918, ptr %73, align 4, !tbaa !9
  %919 = load i32, ptr %82, align 4, !tbaa !9
  %920 = icmp ne i32 %919, 0
  br i1 %920, label %921, label %949

921:                                              ; preds = %903
  %922 = load i32, ptr %71, align 4, !tbaa !9
  %923 = load i32, ptr %70, align 4, !tbaa !9
  %924 = sub nsw i32 %922, %923
  store i32 %924, ptr %45, align 4, !tbaa !9
  %925 = load i32, ptr %73, align 4, !tbaa !9
  %926 = load i32, ptr %72, align 4, !tbaa !9
  %927 = sub nsw i32 %925, %926
  store i32 %927, ptr %46, align 4, !tbaa !9
  %928 = load ptr, ptr %25, align 8, !tbaa !5
  %929 = load i32, ptr %70, align 4, !tbaa !9
  %930 = load i32, ptr %72, align 4, !tbaa !9
  %931 = load i32, ptr %37, align 4, !tbaa !9
  %932 = mul nsw i32 %930, %931
  %933 = add nsw i32 %929, %932
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds double, ptr %928, i64 %934
  %936 = load ptr, ptr %26, align 8, !tbaa !5
  %937 = load ptr, ptr %59, align 8, !tbaa !5
  %938 = call double @dlange_(ptr noundef @.str.7, ptr noundef %45, ptr noundef %46, ptr noundef %935, ptr noundef %936, ptr noundef %937)
  %939 = load ptr, ptr %32, align 8, !tbaa !5
  %940 = load i32, ptr %63, align 4, !tbaa !9
  %941 = load i32, ptr %57, align 4, !tbaa !9
  %942 = load i32, ptr %64, align 4, !tbaa !9
  %943 = add nsw i32 %941, %942
  %944 = load i32, ptr %41, align 4, !tbaa !9
  %945 = mul nsw i32 %943, %944
  %946 = add nsw i32 %940, %945
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds double, ptr %939, i64 %947
  store double %938, ptr %948, align 8, !tbaa !11
  br label %977

949:                                              ; preds = %903
  %950 = load i32, ptr %71, align 4, !tbaa !9
  %951 = load i32, ptr %70, align 4, !tbaa !9
  %952 = sub nsw i32 %950, %951
  store i32 %952, ptr %45, align 4, !tbaa !9
  %953 = load i32, ptr %73, align 4, !tbaa !9
  %954 = load i32, ptr %72, align 4, !tbaa !9
  %955 = sub nsw i32 %953, %954
  store i32 %955, ptr %46, align 4, !tbaa !9
  %956 = load ptr, ptr %25, align 8, !tbaa !5
  %957 = load i32, ptr %70, align 4, !tbaa !9
  %958 = load i32, ptr %72, align 4, !tbaa !9
  %959 = load i32, ptr %37, align 4, !tbaa !9
  %960 = mul nsw i32 %958, %959
  %961 = add nsw i32 %957, %960
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds double, ptr %956, i64 %962
  %964 = load ptr, ptr %26, align 8, !tbaa !5
  %965 = load ptr, ptr %59, align 8, !tbaa !5
  %966 = call double @dlange_(ptr noundef @.str.8, ptr noundef %45, ptr noundef %46, ptr noundef %963, ptr noundef %964, ptr noundef %965)
  %967 = load ptr, ptr %32, align 8, !tbaa !5
  %968 = load i32, ptr %64, align 4, !tbaa !9
  %969 = load i32, ptr %57, align 4, !tbaa !9
  %970 = load i32, ptr %63, align 4, !tbaa !9
  %971 = add nsw i32 %969, %970
  %972 = load i32, ptr %41, align 4, !tbaa !9
  %973 = mul nsw i32 %971, %972
  %974 = add nsw i32 %968, %973
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds double, ptr %967, i64 %975
  store double %966, ptr %976, align 8, !tbaa !11
  br label %977

977:                                              ; preds = %949, %921
  br label %978

978:                                              ; preds = %977
  %979 = load i32, ptr %64, align 4, !tbaa !9
  %980 = add nsw i32 %979, 1
  store i32 %980, ptr %64, align 4, !tbaa !9
  br label %899, !llvm.loop !24

981:                                              ; preds = %899
  br label %982

982:                                              ; preds = %981
  %983 = load i32, ptr %63, align 4, !tbaa !9
  %984 = add nsw i32 %983, 1
  store i32 %984, ptr %63, align 4, !tbaa !9
  br label %877, !llvm.loop !25

985:                                              ; preds = %877
  %986 = load ptr, ptr %20, align 8, !tbaa !5
  %987 = load i32, ptr %986, align 4, !tbaa !9
  %988 = sitofp i32 %987 to double
  store double %988, ptr %88, align 8, !tbaa !11
  %989 = load i32, ptr %81, align 4, !tbaa !9
  %990 = icmp ne i32 %989, 0
  br i1 %990, label %991, label %1855

991:                                              ; preds = %985
  %992 = load i32, ptr %82, align 4, !tbaa !9
  %993 = icmp ne i32 %992, 0
  br i1 %993, label %994, label %1855

994:                                              ; preds = %991
  %995 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %995, ptr %63, align 4, !tbaa !9
  br label %996

996:                                              ; preds = %1851, %994
  %997 = load i32, ptr %63, align 4, !tbaa !9
  %998 = icmp sge i32 %997, 1
  br i1 %998, label %999, label %1854

999:                                              ; preds = %996
  %1000 = load ptr, ptr %30, align 8, !tbaa !5
  %1001 = load i32, ptr %63, align 4, !tbaa !9
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds i32, ptr %1000, i64 %1002
  %1004 = load i32, ptr %1003, align 4, !tbaa !9
  store i32 %1004, ptr %70, align 4, !tbaa !9
  %1005 = load ptr, ptr %30, align 8, !tbaa !5
  %1006 = load i32, ptr %63, align 4, !tbaa !9
  %1007 = add nsw i32 %1006, 1
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds i32, ptr %1005, i64 %1008
  %1010 = load i32, ptr %1009, align 4, !tbaa !9
  store i32 %1010, ptr %71, align 4, !tbaa !9
  %1011 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1011, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1012

1012:                                             ; preds = %1847, %999
  %1013 = load i32, ptr %64, align 4, !tbaa !9
  %1014 = load i32, ptr %43, align 4, !tbaa !9
  %1015 = icmp sle i32 %1013, %1014
  br i1 %1015, label %1016, label %1850

1016:                                             ; preds = %1012
  %1017 = load ptr, ptr %30, align 8, !tbaa !5
  %1018 = load i32, ptr %75, align 4, !tbaa !9
  %1019 = load i32, ptr %64, align 4, !tbaa !9
  %1020 = add nsw i32 %1018, %1019
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds i32, ptr %1017, i64 %1021
  %1023 = load i32, ptr %1022, align 4, !tbaa !9
  store i32 %1023, ptr %72, align 4, !tbaa !9
  %1024 = load ptr, ptr %30, align 8, !tbaa !5
  %1025 = load i32, ptr %75, align 4, !tbaa !9
  %1026 = load i32, ptr %64, align 4, !tbaa !9
  %1027 = add nsw i32 %1025, %1026
  %1028 = add nsw i32 %1027, 1
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds i32, ptr %1024, i64 %1029
  %1031 = load i32, ptr %1030, align 4, !tbaa !9
  store i32 %1031, ptr %73, align 4, !tbaa !9
  %1032 = load i32, ptr %71, align 4, !tbaa !9
  %1033 = load i32, ptr %70, align 4, !tbaa !9
  %1034 = sub nsw i32 %1032, %1033
  store i32 %1034, ptr %44, align 4, !tbaa !9
  %1035 = load i32, ptr %73, align 4, !tbaa !9
  %1036 = load i32, ptr %72, align 4, !tbaa !9
  %1037 = sub nsw i32 %1035, %1036
  store i32 %1037, ptr %45, align 4, !tbaa !9
  %1038 = load ptr, ptr %18, align 8, !tbaa !5
  %1039 = load ptr, ptr %19, align 8, !tbaa !5
  %1040 = load ptr, ptr %20, align 8, !tbaa !5
  %1041 = load ptr, ptr %23, align 8, !tbaa !5
  %1042 = load i32, ptr %70, align 4, !tbaa !9
  %1043 = load i32, ptr %70, align 4, !tbaa !9
  %1044 = load i32, ptr %35, align 4, !tbaa !9
  %1045 = mul nsw i32 %1043, %1044
  %1046 = add nsw i32 %1042, %1045
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds double, ptr %1041, i64 %1047
  %1049 = load ptr, ptr %24, align 8, !tbaa !5
  %1050 = load ptr, ptr %25, align 8, !tbaa !5
  %1051 = load i32, ptr %72, align 4, !tbaa !9
  %1052 = load i32, ptr %72, align 4, !tbaa !9
  %1053 = load i32, ptr %37, align 4, !tbaa !9
  %1054 = mul nsw i32 %1052, %1053
  %1055 = add nsw i32 %1051, %1054
  %1056 = sext i32 %1055 to i64
  %1057 = getelementptr inbounds double, ptr %1050, i64 %1056
  %1058 = load ptr, ptr %26, align 8, !tbaa !5
  %1059 = load ptr, ptr %27, align 8, !tbaa !5
  %1060 = load i32, ptr %70, align 4, !tbaa !9
  %1061 = load i32, ptr %72, align 4, !tbaa !9
  %1062 = load i32, ptr %39, align 4, !tbaa !9
  %1063 = mul nsw i32 %1061, %1062
  %1064 = add nsw i32 %1060, %1063
  %1065 = sext i32 %1064 to i64
  %1066 = getelementptr inbounds double, ptr %1059, i64 %1065
  %1067 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dtrsyl_(ptr noundef %1038, ptr noundef %1039, ptr noundef %1040, ptr noundef %44, ptr noundef %45, ptr noundef %1048, ptr noundef %1049, ptr noundef %1057, ptr noundef %1058, ptr noundef %1066, ptr noundef %1067, ptr noundef %78, ptr noundef %65)
  %1068 = load ptr, ptr %34, align 8, !tbaa !5
  %1069 = load i32, ptr %1068, align 4, !tbaa !9
  %1070 = load i32, ptr %65, align 4, !tbaa !9
  %1071 = icmp sge i32 %1069, %1070
  br i1 %1071, label %1072, label %1075

1072:                                             ; preds = %1016
  %1073 = load ptr, ptr %34, align 8, !tbaa !5
  %1074 = load i32, ptr %1073, align 4, !tbaa !9
  br label %1077

1075:                                             ; preds = %1016
  %1076 = load i32, ptr %65, align 4, !tbaa !9
  br label %1077

1077:                                             ; preds = %1075, %1072
  %1078 = phi i32 [ %1074, %1072 ], [ %1076, %1075 ]
  %1079 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %1078, ptr %1079, align 4, !tbaa !9
  %1080 = load double, ptr %78, align 8, !tbaa !11
  %1081 = load ptr, ptr %32, align 8, !tbaa !5
  %1082 = load i32, ptr %63, align 4, !tbaa !9
  %1083 = load i32, ptr %64, align 4, !tbaa !9
  %1084 = load i32, ptr %41, align 4, !tbaa !9
  %1085 = mul nsw i32 %1083, %1084
  %1086 = add nsw i32 %1082, %1085
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds double, ptr %1081, i64 %1087
  %1089 = load double, ptr %1088, align 8, !tbaa !11
  %1090 = fmul double %1080, %1089
  %1091 = fcmp oeq double %1090, 0.000000e+00
  br i1 %1091, label %1092, label %1156

1092:                                             ; preds = %1077
  %1093 = load double, ptr %78, align 8, !tbaa !11
  %1094 = fcmp oeq double %1093, 0.000000e+00
  br i1 %1094, label %1095, label %1096

1095:                                             ; preds = %1092
  store double 0.000000e+00, ptr %87, align 8, !tbaa !11
  br label %1103

1096:                                             ; preds = %1092
  %1097 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1097, ptr %44, align 4, !tbaa !9
  %1098 = load double, ptr @c_b19, align 8, !tbaa !11
  %1099 = load i32, ptr %44, align 4, !tbaa !9
  %1100 = call double @dpow_ui(double noundef %1098, i32 noundef %1099)
  %1101 = load double, ptr %87, align 8, !tbaa !11
  %1102 = fmul double %1101, %1100
  store double %1102, ptr %87, align 8, !tbaa !11
  br label %1103

1103:                                             ; preds = %1096, %1095
  %1104 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1104, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %1105

1105:                                             ; preds = %1152, %1103
  %1106 = load i32, ptr %76, align 4, !tbaa !9
  %1107 = load i32, ptr %44, align 4, !tbaa !9
  %1108 = icmp sle i32 %1106, %1107
  br i1 %1108, label %1109, label %1155

1109:                                             ; preds = %1105
  %1110 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %1110, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %1111

1111:                                             ; preds = %1148, %1109
  %1112 = load i32, ptr %77, align 4, !tbaa !9
  %1113 = load i32, ptr %45, align 4, !tbaa !9
  %1114 = icmp sle i32 %1112, %1113
  br i1 %1114, label %1115, label %1151

1115:                                             ; preds = %1111
  %1116 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1116, ptr %46, align 4, !tbaa !9
  %1117 = load double, ptr %80, align 8, !tbaa !11
  store double %1117, ptr %49, align 8, !tbaa !11
  %1118 = load ptr, ptr %32, align 8, !tbaa !5
  %1119 = load i32, ptr %77, align 4, !tbaa !9
  %1120 = load i32, ptr %76, align 4, !tbaa !9
  %1121 = load i32, ptr %41, align 4, !tbaa !9
  %1122 = mul nsw i32 %1120, %1121
  %1123 = add nsw i32 %1119, %1122
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds double, ptr %1118, i64 %1124
  %1126 = load double, ptr %1125, align 8, !tbaa !11
  %1127 = load double, ptr @c_b19, align 8, !tbaa !11
  %1128 = load i32, ptr %46, align 4, !tbaa !9
  %1129 = call double @dpow_ui(double noundef %1127, i32 noundef %1128)
  %1130 = fdiv double %1126, %1129
  store double %1130, ptr %50, align 8, !tbaa !11
  %1131 = load double, ptr %49, align 8, !tbaa !11
  %1132 = load double, ptr %50, align 8, !tbaa !11
  %1133 = fcmp ole double %1131, %1132
  br i1 %1133, label %1134, label %1136

1134:                                             ; preds = %1115
  %1135 = load double, ptr %49, align 8, !tbaa !11
  br label %1138

1136:                                             ; preds = %1115
  %1137 = load double, ptr %50, align 8, !tbaa !11
  br label %1138

1138:                                             ; preds = %1136, %1134
  %1139 = phi double [ %1135, %1134 ], [ %1137, %1136 ]
  %1140 = load ptr, ptr %32, align 8, !tbaa !5
  %1141 = load i32, ptr %77, align 4, !tbaa !9
  %1142 = load i32, ptr %76, align 4, !tbaa !9
  %1143 = load i32, ptr %41, align 4, !tbaa !9
  %1144 = mul nsw i32 %1142, %1143
  %1145 = add nsw i32 %1141, %1144
  %1146 = sext i32 %1145 to i64
  %1147 = getelementptr inbounds double, ptr %1140, i64 %1146
  store double %1139, ptr %1147, align 8, !tbaa !11
  br label %1148

1148:                                             ; preds = %1138
  %1149 = load i32, ptr %77, align 4, !tbaa !9
  %1150 = add nsw i32 %1149, 1
  store i32 %1150, ptr %77, align 4, !tbaa !9
  br label %1111, !llvm.loop !26

1151:                                             ; preds = %1111
  br label %1152

1152:                                             ; preds = %1151
  %1153 = load i32, ptr %76, align 4, !tbaa !9
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr %76, align 4, !tbaa !9
  br label %1105, !llvm.loop !27

1155:                                             ; preds = %1105
  br label %1156

1156:                                             ; preds = %1155, %1077
  %1157 = load double, ptr %78, align 8, !tbaa !11
  %1158 = load ptr, ptr %32, align 8, !tbaa !5
  %1159 = load i32, ptr %63, align 4, !tbaa !9
  %1160 = load i32, ptr %64, align 4, !tbaa !9
  %1161 = load i32, ptr %41, align 4, !tbaa !9
  %1162 = mul nsw i32 %1160, %1161
  %1163 = add nsw i32 %1159, %1162
  %1164 = sext i32 %1163 to i64
  %1165 = getelementptr inbounds double, ptr %1158, i64 %1164
  %1166 = load double, ptr %1165, align 8, !tbaa !11
  %1167 = fmul double %1157, %1166
  %1168 = load ptr, ptr %32, align 8, !tbaa !5
  %1169 = load i32, ptr %63, align 4, !tbaa !9
  %1170 = load i32, ptr %64, align 4, !tbaa !9
  %1171 = load i32, ptr %41, align 4, !tbaa !9
  %1172 = mul nsw i32 %1170, %1171
  %1173 = add nsw i32 %1169, %1172
  %1174 = sext i32 %1173 to i64
  %1175 = getelementptr inbounds double, ptr %1168, i64 %1174
  store double %1167, ptr %1175, align 8, !tbaa !11
  %1176 = load i32, ptr %71, align 4, !tbaa !9
  %1177 = load i32, ptr %70, align 4, !tbaa !9
  %1178 = sub nsw i32 %1176, %1177
  store i32 %1178, ptr %44, align 4, !tbaa !9
  %1179 = load i32, ptr %73, align 4, !tbaa !9
  %1180 = load i32, ptr %72, align 4, !tbaa !9
  %1181 = sub nsw i32 %1179, %1180
  store i32 %1181, ptr %45, align 4, !tbaa !9
  %1182 = load ptr, ptr %27, align 8, !tbaa !5
  %1183 = load i32, ptr %70, align 4, !tbaa !9
  %1184 = load i32, ptr %72, align 4, !tbaa !9
  %1185 = load i32, ptr %39, align 4, !tbaa !9
  %1186 = mul nsw i32 %1184, %1185
  %1187 = add nsw i32 %1183, %1186
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds double, ptr %1182, i64 %1188
  %1190 = load ptr, ptr %28, align 8, !tbaa !5
  %1191 = load ptr, ptr %59, align 8, !tbaa !5
  %1192 = call double @dlange_(ptr noundef @.str.7, ptr noundef %44, ptr noundef %45, ptr noundef %1189, ptr noundef %1190, ptr noundef %1191)
  store double %1192, ptr %60, align 8, !tbaa !11
  %1193 = load i32, ptr %63, align 4, !tbaa !9
  %1194 = sub nsw i32 %1193, 1
  store i32 %1194, ptr %61, align 4, !tbaa !9
  br label %1195

1195:                                             ; preds = %1512, %1156
  %1196 = load i32, ptr %61, align 4, !tbaa !9
  %1197 = icmp sge i32 %1196, 1
  br i1 %1197, label %1198, label %1515

1198:                                             ; preds = %1195
  %1199 = load ptr, ptr %30, align 8, !tbaa !5
  %1200 = load i32, ptr %61, align 4, !tbaa !9
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds i32, ptr %1199, i64 %1201
  %1203 = load i32, ptr %1202, align 4, !tbaa !9
  store i32 %1203, ptr %66, align 4, !tbaa !9
  %1204 = load ptr, ptr %30, align 8, !tbaa !5
  %1205 = load i32, ptr %61, align 4, !tbaa !9
  %1206 = add nsw i32 %1205, 1
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds i32, ptr %1204, i64 %1207
  %1209 = load i32, ptr %1208, align 4, !tbaa !9
  store i32 %1209, ptr %67, align 4, !tbaa !9
  %1210 = load i32, ptr %67, align 4, !tbaa !9
  %1211 = load i32, ptr %66, align 4, !tbaa !9
  %1212 = sub nsw i32 %1210, %1211
  store i32 %1212, ptr %44, align 4, !tbaa !9
  %1213 = load i32, ptr %73, align 4, !tbaa !9
  %1214 = load i32, ptr %72, align 4, !tbaa !9
  %1215 = sub nsw i32 %1213, %1214
  store i32 %1215, ptr %45, align 4, !tbaa !9
  %1216 = load ptr, ptr %27, align 8, !tbaa !5
  %1217 = load i32, ptr %66, align 4, !tbaa !9
  %1218 = load i32, ptr %72, align 4, !tbaa !9
  %1219 = load i32, ptr %39, align 4, !tbaa !9
  %1220 = mul nsw i32 %1218, %1219
  %1221 = add nsw i32 %1217, %1220
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds double, ptr %1216, i64 %1222
  %1224 = load ptr, ptr %28, align 8, !tbaa !5
  %1225 = load ptr, ptr %59, align 8, !tbaa !5
  %1226 = call double @dlange_(ptr noundef @.str.7, ptr noundef %44, ptr noundef %45, ptr noundef %1223, ptr noundef %1224, ptr noundef %1225)
  store double %1226, ptr %55, align 8, !tbaa !11
  %1227 = load ptr, ptr %32, align 8, !tbaa !5
  %1228 = load i32, ptr %61, align 4, !tbaa !9
  %1229 = load i32, ptr %64, align 4, !tbaa !9
  %1230 = load i32, ptr %41, align 4, !tbaa !9
  %1231 = mul nsw i32 %1229, %1230
  %1232 = add nsw i32 %1228, %1231
  %1233 = sext i32 %1232 to i64
  %1234 = getelementptr inbounds double, ptr %1227, i64 %1233
  %1235 = load double, ptr %1234, align 8, !tbaa !11
  store double %1235, ptr %49, align 8, !tbaa !11
  %1236 = load ptr, ptr %32, align 8, !tbaa !5
  %1237 = load i32, ptr %63, align 4, !tbaa !9
  %1238 = load i32, ptr %64, align 4, !tbaa !9
  %1239 = load i32, ptr %41, align 4, !tbaa !9
  %1240 = mul nsw i32 %1238, %1239
  %1241 = add nsw i32 %1237, %1240
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds double, ptr %1236, i64 %1242
  %1244 = load double, ptr %1243, align 8, !tbaa !11
  store double %1244, ptr %50, align 8, !tbaa !11
  %1245 = load double, ptr %49, align 8, !tbaa !11
  %1246 = load double, ptr %50, align 8, !tbaa !11
  %1247 = fcmp ole double %1245, %1246
  br i1 %1247, label %1248, label %1250

1248:                                             ; preds = %1198
  %1249 = load double, ptr %49, align 8, !tbaa !11
  br label %1252

1250:                                             ; preds = %1198
  %1251 = load double, ptr %50, align 8, !tbaa !11
  br label %1252

1252:                                             ; preds = %1250, %1248
  %1253 = phi double [ %1249, %1248 ], [ %1251, %1250 ]
  store double %1253, ptr %79, align 8, !tbaa !11
  %1254 = load double, ptr %79, align 8, !tbaa !11
  %1255 = load ptr, ptr %32, align 8, !tbaa !5
  %1256 = load i32, ptr %61, align 4, !tbaa !9
  %1257 = load i32, ptr %64, align 4, !tbaa !9
  %1258 = load i32, ptr %41, align 4, !tbaa !9
  %1259 = mul nsw i32 %1257, %1258
  %1260 = add nsw i32 %1256, %1259
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds double, ptr %1255, i64 %1261
  %1263 = load double, ptr %1262, align 8, !tbaa !11
  %1264 = fdiv double %1254, %1263
  %1265 = load double, ptr %55, align 8, !tbaa !11
  %1266 = fmul double %1265, %1264
  store double %1266, ptr %55, align 8, !tbaa !11
  %1267 = load double, ptr %79, align 8, !tbaa !11
  %1268 = load ptr, ptr %32, align 8, !tbaa !5
  %1269 = load i32, ptr %63, align 4, !tbaa !9
  %1270 = load i32, ptr %64, align 4, !tbaa !9
  %1271 = load i32, ptr %41, align 4, !tbaa !9
  %1272 = mul nsw i32 %1270, %1271
  %1273 = add nsw i32 %1269, %1272
  %1274 = sext i32 %1273 to i64
  %1275 = getelementptr inbounds double, ptr %1268, i64 %1274
  %1276 = load double, ptr %1275, align 8, !tbaa !11
  %1277 = fdiv double %1267, %1276
  %1278 = load double, ptr %60, align 8, !tbaa !11
  %1279 = fmul double %1278, %1277
  store double %1279, ptr %60, align 8, !tbaa !11
  %1280 = load ptr, ptr %32, align 8, !tbaa !5
  %1281 = load i32, ptr %61, align 4, !tbaa !9
  %1282 = load i32, ptr %56, align 4, !tbaa !9
  %1283 = load i32, ptr %63, align 4, !tbaa !9
  %1284 = add nsw i32 %1282, %1283
  %1285 = load i32, ptr %41, align 4, !tbaa !9
  %1286 = mul nsw i32 %1284, %1285
  %1287 = add nsw i32 %1281, %1286
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr inbounds double, ptr %1280, i64 %1288
  %1290 = load double, ptr %1289, align 8, !tbaa !11
  store double %1290, ptr %53, align 8, !tbaa !11
  %1291 = call double @dlarmm_(ptr noundef %53, ptr noundef %60, ptr noundef %55)
  store double %1291, ptr %78, align 8, !tbaa !11
  %1292 = load double, ptr %78, align 8, !tbaa !11
  %1293 = load double, ptr %79, align 8, !tbaa !11
  %1294 = fmul double %1292, %1293
  %1295 = fcmp oeq double %1294, 0.000000e+00
  br i1 %1295, label %1296, label %1367

1296:                                             ; preds = %1252
  %1297 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1297, ptr %44, align 4, !tbaa !9
  %1298 = load double, ptr @c_b19, align 8, !tbaa !11
  %1299 = load i32, ptr %44, align 4, !tbaa !9
  %1300 = call double @dpow_ui(double noundef %1298, i32 noundef %1299)
  %1301 = load double, ptr %87, align 8, !tbaa !11
  %1302 = fmul double %1301, %1300
  store double %1302, ptr %87, align 8, !tbaa !11
  %1303 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1303, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %1304

1304:                                             ; preds = %1351, %1296
  %1305 = load i32, ptr %76, align 4, !tbaa !9
  %1306 = load i32, ptr %44, align 4, !tbaa !9
  %1307 = icmp sle i32 %1305, %1306
  br i1 %1307, label %1308, label %1354

1308:                                             ; preds = %1304
  %1309 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %1309, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %1310

1310:                                             ; preds = %1347, %1308
  %1311 = load i32, ptr %77, align 4, !tbaa !9
  %1312 = load i32, ptr %45, align 4, !tbaa !9
  %1313 = icmp sle i32 %1311, %1312
  br i1 %1313, label %1314, label %1350

1314:                                             ; preds = %1310
  %1315 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1315, ptr %46, align 4, !tbaa !9
  %1316 = load double, ptr %80, align 8, !tbaa !11
  store double %1316, ptr %49, align 8, !tbaa !11
  %1317 = load ptr, ptr %32, align 8, !tbaa !5
  %1318 = load i32, ptr %77, align 4, !tbaa !9
  %1319 = load i32, ptr %76, align 4, !tbaa !9
  %1320 = load i32, ptr %41, align 4, !tbaa !9
  %1321 = mul nsw i32 %1319, %1320
  %1322 = add nsw i32 %1318, %1321
  %1323 = sext i32 %1322 to i64
  %1324 = getelementptr inbounds double, ptr %1317, i64 %1323
  %1325 = load double, ptr %1324, align 8, !tbaa !11
  %1326 = load double, ptr @c_b19, align 8, !tbaa !11
  %1327 = load i32, ptr %46, align 4, !tbaa !9
  %1328 = call double @dpow_ui(double noundef %1326, i32 noundef %1327)
  %1329 = fdiv double %1325, %1328
  store double %1329, ptr %50, align 8, !tbaa !11
  %1330 = load double, ptr %49, align 8, !tbaa !11
  %1331 = load double, ptr %50, align 8, !tbaa !11
  %1332 = fcmp ole double %1330, %1331
  br i1 %1332, label %1333, label %1335

1333:                                             ; preds = %1314
  %1334 = load double, ptr %49, align 8, !tbaa !11
  br label %1337

1335:                                             ; preds = %1314
  %1336 = load double, ptr %50, align 8, !tbaa !11
  br label %1337

1337:                                             ; preds = %1335, %1333
  %1338 = phi double [ %1334, %1333 ], [ %1336, %1335 ]
  %1339 = load ptr, ptr %32, align 8, !tbaa !5
  %1340 = load i32, ptr %77, align 4, !tbaa !9
  %1341 = load i32, ptr %76, align 4, !tbaa !9
  %1342 = load i32, ptr %41, align 4, !tbaa !9
  %1343 = mul nsw i32 %1341, %1342
  %1344 = add nsw i32 %1340, %1343
  %1345 = sext i32 %1344 to i64
  %1346 = getelementptr inbounds double, ptr %1339, i64 %1345
  store double %1338, ptr %1346, align 8, !tbaa !11
  br label %1347

1347:                                             ; preds = %1337
  %1348 = load i32, ptr %77, align 4, !tbaa !9
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr %77, align 4, !tbaa !9
  br label %1310, !llvm.loop !28

1350:                                             ; preds = %1310
  br label %1351

1351:                                             ; preds = %1350
  %1352 = load i32, ptr %76, align 4, !tbaa !9
  %1353 = add nsw i32 %1352, 1
  store i32 %1353, ptr %76, align 4, !tbaa !9
  br label %1304, !llvm.loop !29

1354:                                             ; preds = %1304
  %1355 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1355, ptr %44, align 4, !tbaa !9
  %1356 = load double, ptr @c_b19, align 8, !tbaa !11
  %1357 = load i32, ptr %44, align 4, !tbaa !9
  %1358 = call double @dpow_ui(double noundef %1356, i32 noundef %1357)
  %1359 = load double, ptr %79, align 8, !tbaa !11
  %1360 = fdiv double %1359, %1358
  store double %1360, ptr %79, align 8, !tbaa !11
  %1361 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1361, ptr %44, align 4, !tbaa !9
  %1362 = load double, ptr @c_b19, align 8, !tbaa !11
  %1363 = load i32, ptr %44, align 4, !tbaa !9
  %1364 = call double @dpow_ui(double noundef %1362, i32 noundef %1363)
  %1365 = load double, ptr %78, align 8, !tbaa !11
  %1366 = fdiv double %1365, %1364
  store double %1366, ptr %78, align 8, !tbaa !11
  br label %1367

1367:                                             ; preds = %1354, %1252
  %1368 = load double, ptr %78, align 8, !tbaa !11
  %1369 = load double, ptr %55, align 8, !tbaa !11
  %1370 = fmul double %1369, %1368
  store double %1370, ptr %55, align 8, !tbaa !11
  %1371 = load double, ptr %78, align 8, !tbaa !11
  %1372 = load double, ptr %60, align 8, !tbaa !11
  %1373 = fmul double %1372, %1371
  store double %1373, ptr %60, align 8, !tbaa !11
  %1374 = load double, ptr %79, align 8, !tbaa !11
  %1375 = load ptr, ptr %32, align 8, !tbaa !5
  %1376 = load i32, ptr %63, align 4, !tbaa !9
  %1377 = load i32, ptr %64, align 4, !tbaa !9
  %1378 = load i32, ptr %41, align 4, !tbaa !9
  %1379 = mul nsw i32 %1377, %1378
  %1380 = add nsw i32 %1376, %1379
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds double, ptr %1375, i64 %1381
  %1383 = load double, ptr %1382, align 8, !tbaa !11
  %1384 = fdiv double %1374, %1383
  %1385 = load double, ptr %78, align 8, !tbaa !11
  %1386 = fmul double %1384, %1385
  store double %1386, ptr %52, align 8, !tbaa !11
  %1387 = load double, ptr %52, align 8, !tbaa !11
  %1388 = fcmp une double %1387, 1.000000e+00
  br i1 %1388, label %1389, label %1413

1389:                                             ; preds = %1367
  %1390 = load i32, ptr %73, align 4, !tbaa !9
  %1391 = sub nsw i32 %1390, 1
  store i32 %1391, ptr %44, align 4, !tbaa !9
  %1392 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1392, ptr %76, align 4, !tbaa !9
  br label %1393

1393:                                             ; preds = %1409, %1389
  %1394 = load i32, ptr %76, align 4, !tbaa !9
  %1395 = load i32, ptr %44, align 4, !tbaa !9
  %1396 = icmp sle i32 %1394, %1395
  br i1 %1396, label %1397, label %1412

1397:                                             ; preds = %1393
  %1398 = load i32, ptr %71, align 4, !tbaa !9
  %1399 = load i32, ptr %70, align 4, !tbaa !9
  %1400 = sub nsw i32 %1398, %1399
  store i32 %1400, ptr %45, align 4, !tbaa !9
  %1401 = load ptr, ptr %27, align 8, !tbaa !5
  %1402 = load i32, ptr %70, align 4, !tbaa !9
  %1403 = load i32, ptr %76, align 4, !tbaa !9
  %1404 = load i32, ptr %39, align 4, !tbaa !9
  %1405 = mul nsw i32 %1403, %1404
  %1406 = add nsw i32 %1402, %1405
  %1407 = sext i32 %1406 to i64
  %1408 = getelementptr inbounds double, ptr %1401, i64 %1407
  call void @dscal_(ptr noundef %45, ptr noundef %52, ptr noundef %1408, ptr noundef @c__1)
  br label %1409

1409:                                             ; preds = %1397
  %1410 = load i32, ptr %76, align 4, !tbaa !9
  %1411 = add nsw i32 %1410, 1
  store i32 %1411, ptr %76, align 4, !tbaa !9
  br label %1393, !llvm.loop !30

1412:                                             ; preds = %1393
  br label %1413

1413:                                             ; preds = %1412, %1367
  %1414 = load double, ptr %79, align 8, !tbaa !11
  %1415 = load ptr, ptr %32, align 8, !tbaa !5
  %1416 = load i32, ptr %61, align 4, !tbaa !9
  %1417 = load i32, ptr %64, align 4, !tbaa !9
  %1418 = load i32, ptr %41, align 4, !tbaa !9
  %1419 = mul nsw i32 %1417, %1418
  %1420 = add nsw i32 %1416, %1419
  %1421 = sext i32 %1420 to i64
  %1422 = getelementptr inbounds double, ptr %1415, i64 %1421
  %1423 = load double, ptr %1422, align 8, !tbaa !11
  %1424 = fdiv double %1414, %1423
  %1425 = load double, ptr %78, align 8, !tbaa !11
  %1426 = fmul double %1424, %1425
  store double %1426, ptr %52, align 8, !tbaa !11
  %1427 = load double, ptr %52, align 8, !tbaa !11
  %1428 = fcmp une double %1427, 1.000000e+00
  br i1 %1428, label %1429, label %1453

1429:                                             ; preds = %1413
  %1430 = load i32, ptr %73, align 4, !tbaa !9
  %1431 = sub nsw i32 %1430, 1
  store i32 %1431, ptr %44, align 4, !tbaa !9
  %1432 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1432, ptr %77, align 4, !tbaa !9
  br label %1433

1433:                                             ; preds = %1449, %1429
  %1434 = load i32, ptr %77, align 4, !tbaa !9
  %1435 = load i32, ptr %44, align 4, !tbaa !9
  %1436 = icmp sle i32 %1434, %1435
  br i1 %1436, label %1437, label %1452

1437:                                             ; preds = %1433
  %1438 = load i32, ptr %67, align 4, !tbaa !9
  %1439 = load i32, ptr %66, align 4, !tbaa !9
  %1440 = sub nsw i32 %1438, %1439
  store i32 %1440, ptr %45, align 4, !tbaa !9
  %1441 = load ptr, ptr %27, align 8, !tbaa !5
  %1442 = load i32, ptr %66, align 4, !tbaa !9
  %1443 = load i32, ptr %77, align 4, !tbaa !9
  %1444 = load i32, ptr %39, align 4, !tbaa !9
  %1445 = mul nsw i32 %1443, %1444
  %1446 = add nsw i32 %1442, %1445
  %1447 = sext i32 %1446 to i64
  %1448 = getelementptr inbounds double, ptr %1441, i64 %1447
  call void @dscal_(ptr noundef %45, ptr noundef %52, ptr noundef %1448, ptr noundef @c__1)
  br label %1449

1449:                                             ; preds = %1437
  %1450 = load i32, ptr %77, align 4, !tbaa !9
  %1451 = add nsw i32 %1450, 1
  store i32 %1451, ptr %77, align 4, !tbaa !9
  br label %1433, !llvm.loop !31

1452:                                             ; preds = %1433
  br label %1453

1453:                                             ; preds = %1452, %1413
  %1454 = load double, ptr %79, align 8, !tbaa !11
  %1455 = load double, ptr %78, align 8, !tbaa !11
  %1456 = fmul double %1454, %1455
  %1457 = load ptr, ptr %32, align 8, !tbaa !5
  %1458 = load i32, ptr %63, align 4, !tbaa !9
  %1459 = load i32, ptr %64, align 4, !tbaa !9
  %1460 = load i32, ptr %41, align 4, !tbaa !9
  %1461 = mul nsw i32 %1459, %1460
  %1462 = add nsw i32 %1458, %1461
  %1463 = sext i32 %1462 to i64
  %1464 = getelementptr inbounds double, ptr %1457, i64 %1463
  store double %1456, ptr %1464, align 8, !tbaa !11
  %1465 = load double, ptr %79, align 8, !tbaa !11
  %1466 = load double, ptr %78, align 8, !tbaa !11
  %1467 = fmul double %1465, %1466
  %1468 = load ptr, ptr %32, align 8, !tbaa !5
  %1469 = load i32, ptr %61, align 4, !tbaa !9
  %1470 = load i32, ptr %64, align 4, !tbaa !9
  %1471 = load i32, ptr %41, align 4, !tbaa !9
  %1472 = mul nsw i32 %1470, %1471
  %1473 = add nsw i32 %1469, %1472
  %1474 = sext i32 %1473 to i64
  %1475 = getelementptr inbounds double, ptr %1468, i64 %1474
  store double %1467, ptr %1475, align 8, !tbaa !11
  %1476 = load i32, ptr %67, align 4, !tbaa !9
  %1477 = load i32, ptr %66, align 4, !tbaa !9
  %1478 = sub nsw i32 %1476, %1477
  store i32 %1478, ptr %44, align 4, !tbaa !9
  %1479 = load i32, ptr %73, align 4, !tbaa !9
  %1480 = load i32, ptr %72, align 4, !tbaa !9
  %1481 = sub nsw i32 %1479, %1480
  store i32 %1481, ptr %45, align 4, !tbaa !9
  %1482 = load i32, ptr %71, align 4, !tbaa !9
  %1483 = load i32, ptr %70, align 4, !tbaa !9
  %1484 = sub nsw i32 %1482, %1483
  store i32 %1484, ptr %46, align 4, !tbaa !9
  %1485 = load ptr, ptr %23, align 8, !tbaa !5
  %1486 = load i32, ptr %66, align 4, !tbaa !9
  %1487 = load i32, ptr %70, align 4, !tbaa !9
  %1488 = load i32, ptr %35, align 4, !tbaa !9
  %1489 = mul nsw i32 %1487, %1488
  %1490 = add nsw i32 %1486, %1489
  %1491 = sext i32 %1490 to i64
  %1492 = getelementptr inbounds double, ptr %1485, i64 %1491
  %1493 = load ptr, ptr %24, align 8, !tbaa !5
  %1494 = load ptr, ptr %27, align 8, !tbaa !5
  %1495 = load i32, ptr %70, align 4, !tbaa !9
  %1496 = load i32, ptr %72, align 4, !tbaa !9
  %1497 = load i32, ptr %39, align 4, !tbaa !9
  %1498 = mul nsw i32 %1496, %1497
  %1499 = add nsw i32 %1495, %1498
  %1500 = sext i32 %1499 to i64
  %1501 = getelementptr inbounds double, ptr %1494, i64 %1500
  %1502 = load ptr, ptr %28, align 8, !tbaa !5
  %1503 = load ptr, ptr %27, align 8, !tbaa !5
  %1504 = load i32, ptr %66, align 4, !tbaa !9
  %1505 = load i32, ptr %72, align 4, !tbaa !9
  %1506 = load i32, ptr %39, align 4, !tbaa !9
  %1507 = mul nsw i32 %1505, %1506
  %1508 = add nsw i32 %1504, %1507
  %1509 = sext i32 %1508 to i64
  %1510 = getelementptr inbounds double, ptr %1503, i64 %1509
  %1511 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %44, ptr noundef %45, ptr noundef %46, ptr noundef @c_b31, ptr noundef %1492, ptr noundef %1493, ptr noundef %1501, ptr noundef %1502, ptr noundef @c_b32, ptr noundef %1510, ptr noundef %1511)
  br label %1512

1512:                                             ; preds = %1453
  %1513 = load i32, ptr %61, align 4, !tbaa !9
  %1514 = add nsw i32 %1513, -1
  store i32 %1514, ptr %61, align 4, !tbaa !9
  br label %1195, !llvm.loop !32

1515:                                             ; preds = %1195
  %1516 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1516, ptr %44, align 4, !tbaa !9
  %1517 = load i32, ptr %64, align 4, !tbaa !9
  %1518 = add nsw i32 %1517, 1
  store i32 %1518, ptr %62, align 4, !tbaa !9
  br label %1519

1519:                                             ; preds = %1843, %1515
  %1520 = load i32, ptr %62, align 4, !tbaa !9
  %1521 = load i32, ptr %44, align 4, !tbaa !9
  %1522 = icmp sle i32 %1520, %1521
  br i1 %1522, label %1523, label %1846

1523:                                             ; preds = %1519
  %1524 = load ptr, ptr %30, align 8, !tbaa !5
  %1525 = load i32, ptr %75, align 4, !tbaa !9
  %1526 = load i32, ptr %62, align 4, !tbaa !9
  %1527 = add nsw i32 %1525, %1526
  %1528 = sext i32 %1527 to i64
  %1529 = getelementptr inbounds i32, ptr %1524, i64 %1528
  %1530 = load i32, ptr %1529, align 4, !tbaa !9
  store i32 %1530, ptr %68, align 4, !tbaa !9
  %1531 = load ptr, ptr %30, align 8, !tbaa !5
  %1532 = load i32, ptr %75, align 4, !tbaa !9
  %1533 = load i32, ptr %62, align 4, !tbaa !9
  %1534 = add nsw i32 %1532, %1533
  %1535 = add nsw i32 %1534, 1
  %1536 = sext i32 %1535 to i64
  %1537 = getelementptr inbounds i32, ptr %1531, i64 %1536
  %1538 = load i32, ptr %1537, align 4, !tbaa !9
  store i32 %1538, ptr %69, align 4, !tbaa !9
  %1539 = load i32, ptr %71, align 4, !tbaa !9
  %1540 = load i32, ptr %70, align 4, !tbaa !9
  %1541 = sub nsw i32 %1539, %1540
  store i32 %1541, ptr %45, align 4, !tbaa !9
  %1542 = load i32, ptr %69, align 4, !tbaa !9
  %1543 = load i32, ptr %68, align 4, !tbaa !9
  %1544 = sub nsw i32 %1542, %1543
  store i32 %1544, ptr %46, align 4, !tbaa !9
  %1545 = load ptr, ptr %27, align 8, !tbaa !5
  %1546 = load i32, ptr %70, align 4, !tbaa !9
  %1547 = load i32, ptr %68, align 4, !tbaa !9
  %1548 = load i32, ptr %39, align 4, !tbaa !9
  %1549 = mul nsw i32 %1547, %1548
  %1550 = add nsw i32 %1546, %1549
  %1551 = sext i32 %1550 to i64
  %1552 = getelementptr inbounds double, ptr %1545, i64 %1551
  %1553 = load ptr, ptr %28, align 8, !tbaa !5
  %1554 = load ptr, ptr %59, align 8, !tbaa !5
  %1555 = call double @dlange_(ptr noundef @.str.7, ptr noundef %45, ptr noundef %46, ptr noundef %1552, ptr noundef %1553, ptr noundef %1554)
  store double %1555, ptr %55, align 8, !tbaa !11
  %1556 = load ptr, ptr %32, align 8, !tbaa !5
  %1557 = load i32, ptr %63, align 4, !tbaa !9
  %1558 = load i32, ptr %62, align 4, !tbaa !9
  %1559 = load i32, ptr %41, align 4, !tbaa !9
  %1560 = mul nsw i32 %1558, %1559
  %1561 = add nsw i32 %1557, %1560
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds double, ptr %1556, i64 %1562
  %1564 = load double, ptr %1563, align 8, !tbaa !11
  store double %1564, ptr %49, align 8, !tbaa !11
  %1565 = load ptr, ptr %32, align 8, !tbaa !5
  %1566 = load i32, ptr %63, align 4, !tbaa !9
  %1567 = load i32, ptr %64, align 4, !tbaa !9
  %1568 = load i32, ptr %41, align 4, !tbaa !9
  %1569 = mul nsw i32 %1567, %1568
  %1570 = add nsw i32 %1566, %1569
  %1571 = sext i32 %1570 to i64
  %1572 = getelementptr inbounds double, ptr %1565, i64 %1571
  %1573 = load double, ptr %1572, align 8, !tbaa !11
  store double %1573, ptr %50, align 8, !tbaa !11
  %1574 = load double, ptr %49, align 8, !tbaa !11
  %1575 = load double, ptr %50, align 8, !tbaa !11
  %1576 = fcmp ole double %1574, %1575
  br i1 %1576, label %1577, label %1579

1577:                                             ; preds = %1523
  %1578 = load double, ptr %49, align 8, !tbaa !11
  br label %1581

1579:                                             ; preds = %1523
  %1580 = load double, ptr %50, align 8, !tbaa !11
  br label %1581

1581:                                             ; preds = %1579, %1577
  %1582 = phi double [ %1578, %1577 ], [ %1580, %1579 ]
  store double %1582, ptr %79, align 8, !tbaa !11
  %1583 = load double, ptr %79, align 8, !tbaa !11
  %1584 = load ptr, ptr %32, align 8, !tbaa !5
  %1585 = load i32, ptr %63, align 4, !tbaa !9
  %1586 = load i32, ptr %62, align 4, !tbaa !9
  %1587 = load i32, ptr %41, align 4, !tbaa !9
  %1588 = mul nsw i32 %1586, %1587
  %1589 = add nsw i32 %1585, %1588
  %1590 = sext i32 %1589 to i64
  %1591 = getelementptr inbounds double, ptr %1584, i64 %1590
  %1592 = load double, ptr %1591, align 8, !tbaa !11
  %1593 = fdiv double %1583, %1592
  %1594 = load double, ptr %55, align 8, !tbaa !11
  %1595 = fmul double %1594, %1593
  store double %1595, ptr %55, align 8, !tbaa !11
  %1596 = load double, ptr %79, align 8, !tbaa !11
  %1597 = load ptr, ptr %32, align 8, !tbaa !5
  %1598 = load i32, ptr %63, align 4, !tbaa !9
  %1599 = load i32, ptr %64, align 4, !tbaa !9
  %1600 = load i32, ptr %41, align 4, !tbaa !9
  %1601 = mul nsw i32 %1599, %1600
  %1602 = add nsw i32 %1598, %1601
  %1603 = sext i32 %1602 to i64
  %1604 = getelementptr inbounds double, ptr %1597, i64 %1603
  %1605 = load double, ptr %1604, align 8, !tbaa !11
  %1606 = fdiv double %1596, %1605
  %1607 = load double, ptr %60, align 8, !tbaa !11
  %1608 = fmul double %1607, %1606
  store double %1608, ptr %60, align 8, !tbaa !11
  %1609 = load ptr, ptr %32, align 8, !tbaa !5
  %1610 = load i32, ptr %64, align 4, !tbaa !9
  %1611 = load i32, ptr %57, align 4, !tbaa !9
  %1612 = load i32, ptr %62, align 4, !tbaa !9
  %1613 = add nsw i32 %1611, %1612
  %1614 = load i32, ptr %41, align 4, !tbaa !9
  %1615 = mul nsw i32 %1613, %1614
  %1616 = add nsw i32 %1610, %1615
  %1617 = sext i32 %1616 to i64
  %1618 = getelementptr inbounds double, ptr %1609, i64 %1617
  %1619 = load double, ptr %1618, align 8, !tbaa !11
  store double %1619, ptr %54, align 8, !tbaa !11
  %1620 = call double @dlarmm_(ptr noundef %54, ptr noundef %60, ptr noundef %55)
  store double %1620, ptr %78, align 8, !tbaa !11
  %1621 = load double, ptr %78, align 8, !tbaa !11
  %1622 = load double, ptr %79, align 8, !tbaa !11
  %1623 = fmul double %1621, %1622
  %1624 = fcmp oeq double %1623, 0.000000e+00
  br i1 %1624, label %1625, label %1696

1625:                                             ; preds = %1581
  %1626 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1626, ptr %45, align 4, !tbaa !9
  %1627 = load double, ptr @c_b19, align 8, !tbaa !11
  %1628 = load i32, ptr %45, align 4, !tbaa !9
  %1629 = call double @dpow_ui(double noundef %1627, i32 noundef %1628)
  %1630 = load double, ptr %87, align 8, !tbaa !11
  %1631 = fmul double %1630, %1629
  store double %1631, ptr %87, align 8, !tbaa !11
  %1632 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1632, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %1633

1633:                                             ; preds = %1680, %1625
  %1634 = load i32, ptr %76, align 4, !tbaa !9
  %1635 = load i32, ptr %45, align 4, !tbaa !9
  %1636 = icmp sle i32 %1634, %1635
  br i1 %1636, label %1637, label %1683

1637:                                             ; preds = %1633
  %1638 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %1638, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %1639

1639:                                             ; preds = %1676, %1637
  %1640 = load i32, ptr %77, align 4, !tbaa !9
  %1641 = load i32, ptr %46, align 4, !tbaa !9
  %1642 = icmp sle i32 %1640, %1641
  br i1 %1642, label %1643, label %1679

1643:                                             ; preds = %1639
  %1644 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1644, ptr %47, align 4, !tbaa !9
  %1645 = load double, ptr %80, align 8, !tbaa !11
  store double %1645, ptr %49, align 8, !tbaa !11
  %1646 = load ptr, ptr %32, align 8, !tbaa !5
  %1647 = load i32, ptr %77, align 4, !tbaa !9
  %1648 = load i32, ptr %76, align 4, !tbaa !9
  %1649 = load i32, ptr %41, align 4, !tbaa !9
  %1650 = mul nsw i32 %1648, %1649
  %1651 = add nsw i32 %1647, %1650
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds double, ptr %1646, i64 %1652
  %1654 = load double, ptr %1653, align 8, !tbaa !11
  %1655 = load double, ptr @c_b19, align 8, !tbaa !11
  %1656 = load i32, ptr %47, align 4, !tbaa !9
  %1657 = call double @dpow_ui(double noundef %1655, i32 noundef %1656)
  %1658 = fdiv double %1654, %1657
  store double %1658, ptr %50, align 8, !tbaa !11
  %1659 = load double, ptr %49, align 8, !tbaa !11
  %1660 = load double, ptr %50, align 8, !tbaa !11
  %1661 = fcmp ole double %1659, %1660
  br i1 %1661, label %1662, label %1664

1662:                                             ; preds = %1643
  %1663 = load double, ptr %49, align 8, !tbaa !11
  br label %1666

1664:                                             ; preds = %1643
  %1665 = load double, ptr %50, align 8, !tbaa !11
  br label %1666

1666:                                             ; preds = %1664, %1662
  %1667 = phi double [ %1663, %1662 ], [ %1665, %1664 ]
  %1668 = load ptr, ptr %32, align 8, !tbaa !5
  %1669 = load i32, ptr %77, align 4, !tbaa !9
  %1670 = load i32, ptr %76, align 4, !tbaa !9
  %1671 = load i32, ptr %41, align 4, !tbaa !9
  %1672 = mul nsw i32 %1670, %1671
  %1673 = add nsw i32 %1669, %1672
  %1674 = sext i32 %1673 to i64
  %1675 = getelementptr inbounds double, ptr %1668, i64 %1674
  store double %1667, ptr %1675, align 8, !tbaa !11
  br label %1676

1676:                                             ; preds = %1666
  %1677 = load i32, ptr %77, align 4, !tbaa !9
  %1678 = add nsw i32 %1677, 1
  store i32 %1678, ptr %77, align 4, !tbaa !9
  br label %1639, !llvm.loop !33

1679:                                             ; preds = %1639
  br label %1680

1680:                                             ; preds = %1679
  %1681 = load i32, ptr %76, align 4, !tbaa !9
  %1682 = add nsw i32 %1681, 1
  store i32 %1682, ptr %76, align 4, !tbaa !9
  br label %1633, !llvm.loop !34

1683:                                             ; preds = %1633
  %1684 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1684, ptr %45, align 4, !tbaa !9
  %1685 = load double, ptr @c_b19, align 8, !tbaa !11
  %1686 = load i32, ptr %45, align 4, !tbaa !9
  %1687 = call double @dpow_ui(double noundef %1685, i32 noundef %1686)
  %1688 = load double, ptr %79, align 8, !tbaa !11
  %1689 = fdiv double %1688, %1687
  store double %1689, ptr %79, align 8, !tbaa !11
  %1690 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1690, ptr %45, align 4, !tbaa !9
  %1691 = load double, ptr @c_b19, align 8, !tbaa !11
  %1692 = load i32, ptr %45, align 4, !tbaa !9
  %1693 = call double @dpow_ui(double noundef %1691, i32 noundef %1692)
  %1694 = load double, ptr %78, align 8, !tbaa !11
  %1695 = fdiv double %1694, %1693
  store double %1695, ptr %78, align 8, !tbaa !11
  br label %1696

1696:                                             ; preds = %1683, %1581
  %1697 = load double, ptr %78, align 8, !tbaa !11
  %1698 = load double, ptr %55, align 8, !tbaa !11
  %1699 = fmul double %1698, %1697
  store double %1699, ptr %55, align 8, !tbaa !11
  %1700 = load double, ptr %78, align 8, !tbaa !11
  %1701 = load double, ptr %60, align 8, !tbaa !11
  %1702 = fmul double %1701, %1700
  store double %1702, ptr %60, align 8, !tbaa !11
  %1703 = load double, ptr %79, align 8, !tbaa !11
  %1704 = load ptr, ptr %32, align 8, !tbaa !5
  %1705 = load i32, ptr %63, align 4, !tbaa !9
  %1706 = load i32, ptr %64, align 4, !tbaa !9
  %1707 = load i32, ptr %41, align 4, !tbaa !9
  %1708 = mul nsw i32 %1706, %1707
  %1709 = add nsw i32 %1705, %1708
  %1710 = sext i32 %1709 to i64
  %1711 = getelementptr inbounds double, ptr %1704, i64 %1710
  %1712 = load double, ptr %1711, align 8, !tbaa !11
  %1713 = fdiv double %1703, %1712
  %1714 = load double, ptr %78, align 8, !tbaa !11
  %1715 = fmul double %1713, %1714
  store double %1715, ptr %52, align 8, !tbaa !11
  %1716 = load double, ptr %52, align 8, !tbaa !11
  %1717 = fcmp une double %1716, 1.000000e+00
  br i1 %1717, label %1718, label %1742

1718:                                             ; preds = %1696
  %1719 = load i32, ptr %73, align 4, !tbaa !9
  %1720 = sub nsw i32 %1719, 1
  store i32 %1720, ptr %45, align 4, !tbaa !9
  %1721 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1721, ptr %77, align 4, !tbaa !9
  br label %1722

1722:                                             ; preds = %1738, %1718
  %1723 = load i32, ptr %77, align 4, !tbaa !9
  %1724 = load i32, ptr %45, align 4, !tbaa !9
  %1725 = icmp sle i32 %1723, %1724
  br i1 %1725, label %1726, label %1741

1726:                                             ; preds = %1722
  %1727 = load i32, ptr %71, align 4, !tbaa !9
  %1728 = load i32, ptr %70, align 4, !tbaa !9
  %1729 = sub nsw i32 %1727, %1728
  store i32 %1729, ptr %46, align 4, !tbaa !9
  %1730 = load ptr, ptr %27, align 8, !tbaa !5
  %1731 = load i32, ptr %70, align 4, !tbaa !9
  %1732 = load i32, ptr %77, align 4, !tbaa !9
  %1733 = load i32, ptr %39, align 4, !tbaa !9
  %1734 = mul nsw i32 %1732, %1733
  %1735 = add nsw i32 %1731, %1734
  %1736 = sext i32 %1735 to i64
  %1737 = getelementptr inbounds double, ptr %1730, i64 %1736
  call void @dscal_(ptr noundef %46, ptr noundef %52, ptr noundef %1737, ptr noundef @c__1)
  br label %1738

1738:                                             ; preds = %1726
  %1739 = load i32, ptr %77, align 4, !tbaa !9
  %1740 = add nsw i32 %1739, 1
  store i32 %1740, ptr %77, align 4, !tbaa !9
  br label %1722, !llvm.loop !35

1741:                                             ; preds = %1722
  br label %1742

1742:                                             ; preds = %1741, %1696
  %1743 = load double, ptr %79, align 8, !tbaa !11
  %1744 = load ptr, ptr %32, align 8, !tbaa !5
  %1745 = load i32, ptr %63, align 4, !tbaa !9
  %1746 = load i32, ptr %62, align 4, !tbaa !9
  %1747 = load i32, ptr %41, align 4, !tbaa !9
  %1748 = mul nsw i32 %1746, %1747
  %1749 = add nsw i32 %1745, %1748
  %1750 = sext i32 %1749 to i64
  %1751 = getelementptr inbounds double, ptr %1744, i64 %1750
  %1752 = load double, ptr %1751, align 8, !tbaa !11
  %1753 = fdiv double %1743, %1752
  %1754 = load double, ptr %78, align 8, !tbaa !11
  %1755 = fmul double %1753, %1754
  store double %1755, ptr %52, align 8, !tbaa !11
  %1756 = load double, ptr %52, align 8, !tbaa !11
  %1757 = fcmp une double %1756, 1.000000e+00
  br i1 %1757, label %1758, label %1782

1758:                                             ; preds = %1742
  %1759 = load i32, ptr %69, align 4, !tbaa !9
  %1760 = sub nsw i32 %1759, 1
  store i32 %1760, ptr %45, align 4, !tbaa !9
  %1761 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %1761, ptr %76, align 4, !tbaa !9
  br label %1762

1762:                                             ; preds = %1778, %1758
  %1763 = load i32, ptr %76, align 4, !tbaa !9
  %1764 = load i32, ptr %45, align 4, !tbaa !9
  %1765 = icmp sle i32 %1763, %1764
  br i1 %1765, label %1766, label %1781

1766:                                             ; preds = %1762
  %1767 = load i32, ptr %71, align 4, !tbaa !9
  %1768 = load i32, ptr %70, align 4, !tbaa !9
  %1769 = sub nsw i32 %1767, %1768
  store i32 %1769, ptr %46, align 4, !tbaa !9
  %1770 = load ptr, ptr %27, align 8, !tbaa !5
  %1771 = load i32, ptr %70, align 4, !tbaa !9
  %1772 = load i32, ptr %76, align 4, !tbaa !9
  %1773 = load i32, ptr %39, align 4, !tbaa !9
  %1774 = mul nsw i32 %1772, %1773
  %1775 = add nsw i32 %1771, %1774
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds double, ptr %1770, i64 %1776
  call void @dscal_(ptr noundef %46, ptr noundef %52, ptr noundef %1777, ptr noundef @c__1)
  br label %1778

1778:                                             ; preds = %1766
  %1779 = load i32, ptr %76, align 4, !tbaa !9
  %1780 = add nsw i32 %1779, 1
  store i32 %1780, ptr %76, align 4, !tbaa !9
  br label %1762, !llvm.loop !36

1781:                                             ; preds = %1762
  br label %1782

1782:                                             ; preds = %1781, %1742
  %1783 = load double, ptr %79, align 8, !tbaa !11
  %1784 = load double, ptr %78, align 8, !tbaa !11
  %1785 = fmul double %1783, %1784
  %1786 = load ptr, ptr %32, align 8, !tbaa !5
  %1787 = load i32, ptr %63, align 4, !tbaa !9
  %1788 = load i32, ptr %64, align 4, !tbaa !9
  %1789 = load i32, ptr %41, align 4, !tbaa !9
  %1790 = mul nsw i32 %1788, %1789
  %1791 = add nsw i32 %1787, %1790
  %1792 = sext i32 %1791 to i64
  %1793 = getelementptr inbounds double, ptr %1786, i64 %1792
  store double %1785, ptr %1793, align 8, !tbaa !11
  %1794 = load double, ptr %79, align 8, !tbaa !11
  %1795 = load double, ptr %78, align 8, !tbaa !11
  %1796 = fmul double %1794, %1795
  %1797 = load ptr, ptr %32, align 8, !tbaa !5
  %1798 = load i32, ptr %63, align 4, !tbaa !9
  %1799 = load i32, ptr %62, align 4, !tbaa !9
  %1800 = load i32, ptr %41, align 4, !tbaa !9
  %1801 = mul nsw i32 %1799, %1800
  %1802 = add nsw i32 %1798, %1801
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds double, ptr %1797, i64 %1803
  store double %1796, ptr %1804, align 8, !tbaa !11
  %1805 = load i32, ptr %71, align 4, !tbaa !9
  %1806 = load i32, ptr %70, align 4, !tbaa !9
  %1807 = sub nsw i32 %1805, %1806
  store i32 %1807, ptr %45, align 4, !tbaa !9
  %1808 = load i32, ptr %69, align 4, !tbaa !9
  %1809 = load i32, ptr %68, align 4, !tbaa !9
  %1810 = sub nsw i32 %1808, %1809
  store i32 %1810, ptr %46, align 4, !tbaa !9
  %1811 = load i32, ptr %73, align 4, !tbaa !9
  %1812 = load i32, ptr %72, align 4, !tbaa !9
  %1813 = sub nsw i32 %1811, %1812
  store i32 %1813, ptr %47, align 4, !tbaa !9
  %1814 = load double, ptr %88, align 8, !tbaa !11
  %1815 = fneg double %1814
  store double %1815, ptr %49, align 8, !tbaa !11
  %1816 = load ptr, ptr %27, align 8, !tbaa !5
  %1817 = load i32, ptr %70, align 4, !tbaa !9
  %1818 = load i32, ptr %72, align 4, !tbaa !9
  %1819 = load i32, ptr %39, align 4, !tbaa !9
  %1820 = mul nsw i32 %1818, %1819
  %1821 = add nsw i32 %1817, %1820
  %1822 = sext i32 %1821 to i64
  %1823 = getelementptr inbounds double, ptr %1816, i64 %1822
  %1824 = load ptr, ptr %28, align 8, !tbaa !5
  %1825 = load ptr, ptr %25, align 8, !tbaa !5
  %1826 = load i32, ptr %72, align 4, !tbaa !9
  %1827 = load i32, ptr %68, align 4, !tbaa !9
  %1828 = load i32, ptr %37, align 4, !tbaa !9
  %1829 = mul nsw i32 %1827, %1828
  %1830 = add nsw i32 %1826, %1829
  %1831 = sext i32 %1830 to i64
  %1832 = getelementptr inbounds double, ptr %1825, i64 %1831
  %1833 = load ptr, ptr %26, align 8, !tbaa !5
  %1834 = load ptr, ptr %27, align 8, !tbaa !5
  %1835 = load i32, ptr %70, align 4, !tbaa !9
  %1836 = load i32, ptr %68, align 4, !tbaa !9
  %1837 = load i32, ptr %39, align 4, !tbaa !9
  %1838 = mul nsw i32 %1836, %1837
  %1839 = add nsw i32 %1835, %1838
  %1840 = sext i32 %1839 to i64
  %1841 = getelementptr inbounds double, ptr %1834, i64 %1840
  %1842 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %45, ptr noundef %46, ptr noundef %47, ptr noundef %49, ptr noundef %1823, ptr noundef %1824, ptr noundef %1832, ptr noundef %1833, ptr noundef @c_b32, ptr noundef %1841, ptr noundef %1842)
  br label %1843

1843:                                             ; preds = %1782
  %1844 = load i32, ptr %62, align 4, !tbaa !9
  %1845 = add nsw i32 %1844, 1
  store i32 %1845, ptr %62, align 4, !tbaa !9
  br label %1519, !llvm.loop !37

1846:                                             ; preds = %1519
  br label %1847

1847:                                             ; preds = %1846
  %1848 = load i32, ptr %64, align 4, !tbaa !9
  %1849 = add nsw i32 %1848, 1
  store i32 %1849, ptr %64, align 4, !tbaa !9
  br label %1012, !llvm.loop !38

1850:                                             ; preds = %1012
  br label %1851

1851:                                             ; preds = %1850
  %1852 = load i32, ptr %63, align 4, !tbaa !9
  %1853 = add nsw i32 %1852, -1
  store i32 %1853, ptr %63, align 4, !tbaa !9
  br label %996, !llvm.loop !39

1854:                                             ; preds = %996
  br label %4462

1855:                                             ; preds = %991, %985
  %1856 = load i32, ptr %81, align 4, !tbaa !9
  %1857 = icmp ne i32 %1856, 0
  br i1 %1857, label %2725, label %1858

1858:                                             ; preds = %1855
  %1859 = load i32, ptr %82, align 4, !tbaa !9
  %1860 = icmp ne i32 %1859, 0
  br i1 %1860, label %1861, label %2725

1861:                                             ; preds = %1858
  %1862 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %1862, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %1863

1863:                                             ; preds = %2721, %1861
  %1864 = load i32, ptr %63, align 4, !tbaa !9
  %1865 = load i32, ptr %43, align 4, !tbaa !9
  %1866 = icmp sle i32 %1864, %1865
  br i1 %1866, label %1867, label %2724

1867:                                             ; preds = %1863
  %1868 = load ptr, ptr %30, align 8, !tbaa !5
  %1869 = load i32, ptr %63, align 4, !tbaa !9
  %1870 = sext i32 %1869 to i64
  %1871 = getelementptr inbounds i32, ptr %1868, i64 %1870
  %1872 = load i32, ptr %1871, align 4, !tbaa !9
  store i32 %1872, ptr %70, align 4, !tbaa !9
  %1873 = load ptr, ptr %30, align 8, !tbaa !5
  %1874 = load i32, ptr %63, align 4, !tbaa !9
  %1875 = add nsw i32 %1874, 1
  %1876 = sext i32 %1875 to i64
  %1877 = getelementptr inbounds i32, ptr %1873, i64 %1876
  %1878 = load i32, ptr %1877, align 4, !tbaa !9
  store i32 %1878, ptr %71, align 4, !tbaa !9
  %1879 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1879, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1880

1880:                                             ; preds = %2717, %1867
  %1881 = load i32, ptr %64, align 4, !tbaa !9
  %1882 = load i32, ptr %44, align 4, !tbaa !9
  %1883 = icmp sle i32 %1881, %1882
  br i1 %1883, label %1884, label %2720

1884:                                             ; preds = %1880
  %1885 = load ptr, ptr %30, align 8, !tbaa !5
  %1886 = load i32, ptr %75, align 4, !tbaa !9
  %1887 = load i32, ptr %64, align 4, !tbaa !9
  %1888 = add nsw i32 %1886, %1887
  %1889 = sext i32 %1888 to i64
  %1890 = getelementptr inbounds i32, ptr %1885, i64 %1889
  %1891 = load i32, ptr %1890, align 4, !tbaa !9
  store i32 %1891, ptr %72, align 4, !tbaa !9
  %1892 = load ptr, ptr %30, align 8, !tbaa !5
  %1893 = load i32, ptr %75, align 4, !tbaa !9
  %1894 = load i32, ptr %64, align 4, !tbaa !9
  %1895 = add nsw i32 %1893, %1894
  %1896 = add nsw i32 %1895, 1
  %1897 = sext i32 %1896 to i64
  %1898 = getelementptr inbounds i32, ptr %1892, i64 %1897
  %1899 = load i32, ptr %1898, align 4, !tbaa !9
  store i32 %1899, ptr %73, align 4, !tbaa !9
  %1900 = load i32, ptr %71, align 4, !tbaa !9
  %1901 = load i32, ptr %70, align 4, !tbaa !9
  %1902 = sub nsw i32 %1900, %1901
  store i32 %1902, ptr %45, align 4, !tbaa !9
  %1903 = load i32, ptr %73, align 4, !tbaa !9
  %1904 = load i32, ptr %72, align 4, !tbaa !9
  %1905 = sub nsw i32 %1903, %1904
  store i32 %1905, ptr %46, align 4, !tbaa !9
  %1906 = load ptr, ptr %18, align 8, !tbaa !5
  %1907 = load ptr, ptr %19, align 8, !tbaa !5
  %1908 = load ptr, ptr %20, align 8, !tbaa !5
  %1909 = load ptr, ptr %23, align 8, !tbaa !5
  %1910 = load i32, ptr %70, align 4, !tbaa !9
  %1911 = load i32, ptr %70, align 4, !tbaa !9
  %1912 = load i32, ptr %35, align 4, !tbaa !9
  %1913 = mul nsw i32 %1911, %1912
  %1914 = add nsw i32 %1910, %1913
  %1915 = sext i32 %1914 to i64
  %1916 = getelementptr inbounds double, ptr %1909, i64 %1915
  %1917 = load ptr, ptr %24, align 8, !tbaa !5
  %1918 = load ptr, ptr %25, align 8, !tbaa !5
  %1919 = load i32, ptr %72, align 4, !tbaa !9
  %1920 = load i32, ptr %72, align 4, !tbaa !9
  %1921 = load i32, ptr %37, align 4, !tbaa !9
  %1922 = mul nsw i32 %1920, %1921
  %1923 = add nsw i32 %1919, %1922
  %1924 = sext i32 %1923 to i64
  %1925 = getelementptr inbounds double, ptr %1918, i64 %1924
  %1926 = load ptr, ptr %26, align 8, !tbaa !5
  %1927 = load ptr, ptr %27, align 8, !tbaa !5
  %1928 = load i32, ptr %70, align 4, !tbaa !9
  %1929 = load i32, ptr %72, align 4, !tbaa !9
  %1930 = load i32, ptr %39, align 4, !tbaa !9
  %1931 = mul nsw i32 %1929, %1930
  %1932 = add nsw i32 %1928, %1931
  %1933 = sext i32 %1932 to i64
  %1934 = getelementptr inbounds double, ptr %1927, i64 %1933
  %1935 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dtrsyl_(ptr noundef %1906, ptr noundef %1907, ptr noundef %1908, ptr noundef %45, ptr noundef %46, ptr noundef %1916, ptr noundef %1917, ptr noundef %1925, ptr noundef %1926, ptr noundef %1934, ptr noundef %1935, ptr noundef %78, ptr noundef %65)
  %1936 = load ptr, ptr %34, align 8, !tbaa !5
  %1937 = load i32, ptr %1936, align 4, !tbaa !9
  %1938 = load i32, ptr %65, align 4, !tbaa !9
  %1939 = icmp sge i32 %1937, %1938
  br i1 %1939, label %1940, label %1943

1940:                                             ; preds = %1884
  %1941 = load ptr, ptr %34, align 8, !tbaa !5
  %1942 = load i32, ptr %1941, align 4, !tbaa !9
  br label %1945

1943:                                             ; preds = %1884
  %1944 = load i32, ptr %65, align 4, !tbaa !9
  br label %1945

1945:                                             ; preds = %1943, %1940
  %1946 = phi i32 [ %1942, %1940 ], [ %1944, %1943 ]
  %1947 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %1946, ptr %1947, align 4, !tbaa !9
  %1948 = load double, ptr %78, align 8, !tbaa !11
  %1949 = load ptr, ptr %32, align 8, !tbaa !5
  %1950 = load i32, ptr %63, align 4, !tbaa !9
  %1951 = load i32, ptr %64, align 4, !tbaa !9
  %1952 = load i32, ptr %41, align 4, !tbaa !9
  %1953 = mul nsw i32 %1951, %1952
  %1954 = add nsw i32 %1950, %1953
  %1955 = sext i32 %1954 to i64
  %1956 = getelementptr inbounds double, ptr %1949, i64 %1955
  %1957 = load double, ptr %1956, align 8, !tbaa !11
  %1958 = fmul double %1948, %1957
  %1959 = fcmp oeq double %1958, 0.000000e+00
  br i1 %1959, label %1960, label %2024

1960:                                             ; preds = %1945
  %1961 = load double, ptr %78, align 8, !tbaa !11
  %1962 = fcmp oeq double %1961, 0.000000e+00
  br i1 %1962, label %1963, label %1964

1963:                                             ; preds = %1960
  store double 0.000000e+00, ptr %87, align 8, !tbaa !11
  br label %1971

1964:                                             ; preds = %1960
  %1965 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1965, ptr %45, align 4, !tbaa !9
  %1966 = load double, ptr @c_b19, align 8, !tbaa !11
  %1967 = load i32, ptr %45, align 4, !tbaa !9
  %1968 = call double @dpow_ui(double noundef %1966, i32 noundef %1967)
  %1969 = load double, ptr %87, align 8, !tbaa !11
  %1970 = fmul double %1969, %1968
  store double %1970, ptr %87, align 8, !tbaa !11
  br label %1971

1971:                                             ; preds = %1964, %1963
  %1972 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1972, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %1973

1973:                                             ; preds = %2020, %1971
  %1974 = load i32, ptr %76, align 4, !tbaa !9
  %1975 = load i32, ptr %45, align 4, !tbaa !9
  %1976 = icmp sle i32 %1974, %1975
  br i1 %1976, label %1977, label %2023

1977:                                             ; preds = %1973
  %1978 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %1978, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %1979

1979:                                             ; preds = %2016, %1977
  %1980 = load i32, ptr %77, align 4, !tbaa !9
  %1981 = load i32, ptr %46, align 4, !tbaa !9
  %1982 = icmp sle i32 %1980, %1981
  br i1 %1982, label %1983, label %2019

1983:                                             ; preds = %1979
  %1984 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %1984, ptr %47, align 4, !tbaa !9
  %1985 = load double, ptr %80, align 8, !tbaa !11
  store double %1985, ptr %49, align 8, !tbaa !11
  %1986 = load ptr, ptr %32, align 8, !tbaa !5
  %1987 = load i32, ptr %77, align 4, !tbaa !9
  %1988 = load i32, ptr %76, align 4, !tbaa !9
  %1989 = load i32, ptr %41, align 4, !tbaa !9
  %1990 = mul nsw i32 %1988, %1989
  %1991 = add nsw i32 %1987, %1990
  %1992 = sext i32 %1991 to i64
  %1993 = getelementptr inbounds double, ptr %1986, i64 %1992
  %1994 = load double, ptr %1993, align 8, !tbaa !11
  %1995 = load double, ptr @c_b19, align 8, !tbaa !11
  %1996 = load i32, ptr %47, align 4, !tbaa !9
  %1997 = call double @dpow_ui(double noundef %1995, i32 noundef %1996)
  %1998 = fdiv double %1994, %1997
  store double %1998, ptr %50, align 8, !tbaa !11
  %1999 = load double, ptr %49, align 8, !tbaa !11
  %2000 = load double, ptr %50, align 8, !tbaa !11
  %2001 = fcmp ole double %1999, %2000
  br i1 %2001, label %2002, label %2004

2002:                                             ; preds = %1983
  %2003 = load double, ptr %49, align 8, !tbaa !11
  br label %2006

2004:                                             ; preds = %1983
  %2005 = load double, ptr %50, align 8, !tbaa !11
  br label %2006

2006:                                             ; preds = %2004, %2002
  %2007 = phi double [ %2003, %2002 ], [ %2005, %2004 ]
  %2008 = load ptr, ptr %32, align 8, !tbaa !5
  %2009 = load i32, ptr %77, align 4, !tbaa !9
  %2010 = load i32, ptr %76, align 4, !tbaa !9
  %2011 = load i32, ptr %41, align 4, !tbaa !9
  %2012 = mul nsw i32 %2010, %2011
  %2013 = add nsw i32 %2009, %2012
  %2014 = sext i32 %2013 to i64
  %2015 = getelementptr inbounds double, ptr %2008, i64 %2014
  store double %2007, ptr %2015, align 8, !tbaa !11
  br label %2016

2016:                                             ; preds = %2006
  %2017 = load i32, ptr %77, align 4, !tbaa !9
  %2018 = add nsw i32 %2017, 1
  store i32 %2018, ptr %77, align 4, !tbaa !9
  br label %1979, !llvm.loop !40

2019:                                             ; preds = %1979
  br label %2020

2020:                                             ; preds = %2019
  %2021 = load i32, ptr %76, align 4, !tbaa !9
  %2022 = add nsw i32 %2021, 1
  store i32 %2022, ptr %76, align 4, !tbaa !9
  br label %1973, !llvm.loop !41

2023:                                             ; preds = %1973
  br label %2024

2024:                                             ; preds = %2023, %1945
  %2025 = load double, ptr %78, align 8, !tbaa !11
  %2026 = load ptr, ptr %32, align 8, !tbaa !5
  %2027 = load i32, ptr %63, align 4, !tbaa !9
  %2028 = load i32, ptr %64, align 4, !tbaa !9
  %2029 = load i32, ptr %41, align 4, !tbaa !9
  %2030 = mul nsw i32 %2028, %2029
  %2031 = add nsw i32 %2027, %2030
  %2032 = sext i32 %2031 to i64
  %2033 = getelementptr inbounds double, ptr %2026, i64 %2032
  %2034 = load double, ptr %2033, align 8, !tbaa !11
  %2035 = fmul double %2025, %2034
  %2036 = load ptr, ptr %32, align 8, !tbaa !5
  %2037 = load i32, ptr %63, align 4, !tbaa !9
  %2038 = load i32, ptr %64, align 4, !tbaa !9
  %2039 = load i32, ptr %41, align 4, !tbaa !9
  %2040 = mul nsw i32 %2038, %2039
  %2041 = add nsw i32 %2037, %2040
  %2042 = sext i32 %2041 to i64
  %2043 = getelementptr inbounds double, ptr %2036, i64 %2042
  store double %2035, ptr %2043, align 8, !tbaa !11
  %2044 = load i32, ptr %71, align 4, !tbaa !9
  %2045 = load i32, ptr %70, align 4, !tbaa !9
  %2046 = sub nsw i32 %2044, %2045
  store i32 %2046, ptr %45, align 4, !tbaa !9
  %2047 = load i32, ptr %73, align 4, !tbaa !9
  %2048 = load i32, ptr %72, align 4, !tbaa !9
  %2049 = sub nsw i32 %2047, %2048
  store i32 %2049, ptr %46, align 4, !tbaa !9
  %2050 = load ptr, ptr %27, align 8, !tbaa !5
  %2051 = load i32, ptr %70, align 4, !tbaa !9
  %2052 = load i32, ptr %72, align 4, !tbaa !9
  %2053 = load i32, ptr %39, align 4, !tbaa !9
  %2054 = mul nsw i32 %2052, %2053
  %2055 = add nsw i32 %2051, %2054
  %2056 = sext i32 %2055 to i64
  %2057 = getelementptr inbounds double, ptr %2050, i64 %2056
  %2058 = load ptr, ptr %28, align 8, !tbaa !5
  %2059 = load ptr, ptr %59, align 8, !tbaa !5
  %2060 = call double @dlange_(ptr noundef @.str.7, ptr noundef %45, ptr noundef %46, ptr noundef %2057, ptr noundef %2058, ptr noundef %2059)
  store double %2060, ptr %60, align 8, !tbaa !11
  %2061 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %2061, ptr %45, align 4, !tbaa !9
  %2062 = load i32, ptr %63, align 4, !tbaa !9
  %2063 = add nsw i32 %2062, 1
  store i32 %2063, ptr %61, align 4, !tbaa !9
  br label %2064

2064:                                             ; preds = %2382, %2024
  %2065 = load i32, ptr %61, align 4, !tbaa !9
  %2066 = load i32, ptr %45, align 4, !tbaa !9
  %2067 = icmp sle i32 %2065, %2066
  br i1 %2067, label %2068, label %2385

2068:                                             ; preds = %2064
  %2069 = load ptr, ptr %30, align 8, !tbaa !5
  %2070 = load i32, ptr %61, align 4, !tbaa !9
  %2071 = sext i32 %2070 to i64
  %2072 = getelementptr inbounds i32, ptr %2069, i64 %2071
  %2073 = load i32, ptr %2072, align 4, !tbaa !9
  store i32 %2073, ptr %66, align 4, !tbaa !9
  %2074 = load ptr, ptr %30, align 8, !tbaa !5
  %2075 = load i32, ptr %61, align 4, !tbaa !9
  %2076 = add nsw i32 %2075, 1
  %2077 = sext i32 %2076 to i64
  %2078 = getelementptr inbounds i32, ptr %2074, i64 %2077
  %2079 = load i32, ptr %2078, align 4, !tbaa !9
  store i32 %2079, ptr %67, align 4, !tbaa !9
  %2080 = load i32, ptr %67, align 4, !tbaa !9
  %2081 = load i32, ptr %66, align 4, !tbaa !9
  %2082 = sub nsw i32 %2080, %2081
  store i32 %2082, ptr %46, align 4, !tbaa !9
  %2083 = load i32, ptr %73, align 4, !tbaa !9
  %2084 = load i32, ptr %72, align 4, !tbaa !9
  %2085 = sub nsw i32 %2083, %2084
  store i32 %2085, ptr %47, align 4, !tbaa !9
  %2086 = load ptr, ptr %27, align 8, !tbaa !5
  %2087 = load i32, ptr %66, align 4, !tbaa !9
  %2088 = load i32, ptr %72, align 4, !tbaa !9
  %2089 = load i32, ptr %39, align 4, !tbaa !9
  %2090 = mul nsw i32 %2088, %2089
  %2091 = add nsw i32 %2087, %2090
  %2092 = sext i32 %2091 to i64
  %2093 = getelementptr inbounds double, ptr %2086, i64 %2092
  %2094 = load ptr, ptr %28, align 8, !tbaa !5
  %2095 = load ptr, ptr %59, align 8, !tbaa !5
  %2096 = call double @dlange_(ptr noundef @.str.7, ptr noundef %46, ptr noundef %47, ptr noundef %2093, ptr noundef %2094, ptr noundef %2095)
  store double %2096, ptr %55, align 8, !tbaa !11
  %2097 = load ptr, ptr %32, align 8, !tbaa !5
  %2098 = load i32, ptr %61, align 4, !tbaa !9
  %2099 = load i32, ptr %64, align 4, !tbaa !9
  %2100 = load i32, ptr %41, align 4, !tbaa !9
  %2101 = mul nsw i32 %2099, %2100
  %2102 = add nsw i32 %2098, %2101
  %2103 = sext i32 %2102 to i64
  %2104 = getelementptr inbounds double, ptr %2097, i64 %2103
  %2105 = load double, ptr %2104, align 8, !tbaa !11
  store double %2105, ptr %49, align 8, !tbaa !11
  %2106 = load ptr, ptr %32, align 8, !tbaa !5
  %2107 = load i32, ptr %63, align 4, !tbaa !9
  %2108 = load i32, ptr %64, align 4, !tbaa !9
  %2109 = load i32, ptr %41, align 4, !tbaa !9
  %2110 = mul nsw i32 %2108, %2109
  %2111 = add nsw i32 %2107, %2110
  %2112 = sext i32 %2111 to i64
  %2113 = getelementptr inbounds double, ptr %2106, i64 %2112
  %2114 = load double, ptr %2113, align 8, !tbaa !11
  store double %2114, ptr %50, align 8, !tbaa !11
  %2115 = load double, ptr %49, align 8, !tbaa !11
  %2116 = load double, ptr %50, align 8, !tbaa !11
  %2117 = fcmp ole double %2115, %2116
  br i1 %2117, label %2118, label %2120

2118:                                             ; preds = %2068
  %2119 = load double, ptr %49, align 8, !tbaa !11
  br label %2122

2120:                                             ; preds = %2068
  %2121 = load double, ptr %50, align 8, !tbaa !11
  br label %2122

2122:                                             ; preds = %2120, %2118
  %2123 = phi double [ %2119, %2118 ], [ %2121, %2120 ]
  store double %2123, ptr %79, align 8, !tbaa !11
  %2124 = load double, ptr %79, align 8, !tbaa !11
  %2125 = load ptr, ptr %32, align 8, !tbaa !5
  %2126 = load i32, ptr %61, align 4, !tbaa !9
  %2127 = load i32, ptr %64, align 4, !tbaa !9
  %2128 = load i32, ptr %41, align 4, !tbaa !9
  %2129 = mul nsw i32 %2127, %2128
  %2130 = add nsw i32 %2126, %2129
  %2131 = sext i32 %2130 to i64
  %2132 = getelementptr inbounds double, ptr %2125, i64 %2131
  %2133 = load double, ptr %2132, align 8, !tbaa !11
  %2134 = fdiv double %2124, %2133
  %2135 = load double, ptr %55, align 8, !tbaa !11
  %2136 = fmul double %2135, %2134
  store double %2136, ptr %55, align 8, !tbaa !11
  %2137 = load double, ptr %79, align 8, !tbaa !11
  %2138 = load ptr, ptr %32, align 8, !tbaa !5
  %2139 = load i32, ptr %63, align 4, !tbaa !9
  %2140 = load i32, ptr %64, align 4, !tbaa !9
  %2141 = load i32, ptr %41, align 4, !tbaa !9
  %2142 = mul nsw i32 %2140, %2141
  %2143 = add nsw i32 %2139, %2142
  %2144 = sext i32 %2143 to i64
  %2145 = getelementptr inbounds double, ptr %2138, i64 %2144
  %2146 = load double, ptr %2145, align 8, !tbaa !11
  %2147 = fdiv double %2137, %2146
  %2148 = load double, ptr %60, align 8, !tbaa !11
  %2149 = fmul double %2148, %2147
  store double %2149, ptr %60, align 8, !tbaa !11
  %2150 = load ptr, ptr %32, align 8, !tbaa !5
  %2151 = load i32, ptr %61, align 4, !tbaa !9
  %2152 = load i32, ptr %56, align 4, !tbaa !9
  %2153 = load i32, ptr %63, align 4, !tbaa !9
  %2154 = add nsw i32 %2152, %2153
  %2155 = load i32, ptr %41, align 4, !tbaa !9
  %2156 = mul nsw i32 %2154, %2155
  %2157 = add nsw i32 %2151, %2156
  %2158 = sext i32 %2157 to i64
  %2159 = getelementptr inbounds double, ptr %2150, i64 %2158
  %2160 = load double, ptr %2159, align 8, !tbaa !11
  store double %2160, ptr %53, align 8, !tbaa !11
  %2161 = call double @dlarmm_(ptr noundef %53, ptr noundef %60, ptr noundef %55)
  store double %2161, ptr %78, align 8, !tbaa !11
  %2162 = load double, ptr %78, align 8, !tbaa !11
  %2163 = load double, ptr %79, align 8, !tbaa !11
  %2164 = fmul double %2162, %2163
  %2165 = fcmp oeq double %2164, 0.000000e+00
  br i1 %2165, label %2166, label %2237

2166:                                             ; preds = %2122
  %2167 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2167, ptr %46, align 4, !tbaa !9
  %2168 = load double, ptr @c_b19, align 8, !tbaa !11
  %2169 = load i32, ptr %46, align 4, !tbaa !9
  %2170 = call double @dpow_ui(double noundef %2168, i32 noundef %2169)
  %2171 = load double, ptr %87, align 8, !tbaa !11
  %2172 = fmul double %2171, %2170
  store double %2172, ptr %87, align 8, !tbaa !11
  %2173 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2173, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %2174

2174:                                             ; preds = %2221, %2166
  %2175 = load i32, ptr %76, align 4, !tbaa !9
  %2176 = load i32, ptr %46, align 4, !tbaa !9
  %2177 = icmp sle i32 %2175, %2176
  br i1 %2177, label %2178, label %2224

2178:                                             ; preds = %2174
  %2179 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %2179, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %2180

2180:                                             ; preds = %2217, %2178
  %2181 = load i32, ptr %77, align 4, !tbaa !9
  %2182 = load i32, ptr %47, align 4, !tbaa !9
  %2183 = icmp sle i32 %2181, %2182
  br i1 %2183, label %2184, label %2220

2184:                                             ; preds = %2180
  %2185 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2185, ptr %48, align 4, !tbaa !9
  %2186 = load double, ptr %80, align 8, !tbaa !11
  store double %2186, ptr %49, align 8, !tbaa !11
  %2187 = load ptr, ptr %32, align 8, !tbaa !5
  %2188 = load i32, ptr %77, align 4, !tbaa !9
  %2189 = load i32, ptr %76, align 4, !tbaa !9
  %2190 = load i32, ptr %41, align 4, !tbaa !9
  %2191 = mul nsw i32 %2189, %2190
  %2192 = add nsw i32 %2188, %2191
  %2193 = sext i32 %2192 to i64
  %2194 = getelementptr inbounds double, ptr %2187, i64 %2193
  %2195 = load double, ptr %2194, align 8, !tbaa !11
  %2196 = load double, ptr @c_b19, align 8, !tbaa !11
  %2197 = load i32, ptr %48, align 4, !tbaa !9
  %2198 = call double @dpow_ui(double noundef %2196, i32 noundef %2197)
  %2199 = fdiv double %2195, %2198
  store double %2199, ptr %50, align 8, !tbaa !11
  %2200 = load double, ptr %49, align 8, !tbaa !11
  %2201 = load double, ptr %50, align 8, !tbaa !11
  %2202 = fcmp ole double %2200, %2201
  br i1 %2202, label %2203, label %2205

2203:                                             ; preds = %2184
  %2204 = load double, ptr %49, align 8, !tbaa !11
  br label %2207

2205:                                             ; preds = %2184
  %2206 = load double, ptr %50, align 8, !tbaa !11
  br label %2207

2207:                                             ; preds = %2205, %2203
  %2208 = phi double [ %2204, %2203 ], [ %2206, %2205 ]
  %2209 = load ptr, ptr %32, align 8, !tbaa !5
  %2210 = load i32, ptr %77, align 4, !tbaa !9
  %2211 = load i32, ptr %76, align 4, !tbaa !9
  %2212 = load i32, ptr %41, align 4, !tbaa !9
  %2213 = mul nsw i32 %2211, %2212
  %2214 = add nsw i32 %2210, %2213
  %2215 = sext i32 %2214 to i64
  %2216 = getelementptr inbounds double, ptr %2209, i64 %2215
  store double %2208, ptr %2216, align 8, !tbaa !11
  br label %2217

2217:                                             ; preds = %2207
  %2218 = load i32, ptr %77, align 4, !tbaa !9
  %2219 = add nsw i32 %2218, 1
  store i32 %2219, ptr %77, align 4, !tbaa !9
  br label %2180, !llvm.loop !42

2220:                                             ; preds = %2180
  br label %2221

2221:                                             ; preds = %2220
  %2222 = load i32, ptr %76, align 4, !tbaa !9
  %2223 = add nsw i32 %2222, 1
  store i32 %2223, ptr %76, align 4, !tbaa !9
  br label %2174, !llvm.loop !43

2224:                                             ; preds = %2174
  %2225 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2225, ptr %46, align 4, !tbaa !9
  %2226 = load double, ptr @c_b19, align 8, !tbaa !11
  %2227 = load i32, ptr %46, align 4, !tbaa !9
  %2228 = call double @dpow_ui(double noundef %2226, i32 noundef %2227)
  %2229 = load double, ptr %79, align 8, !tbaa !11
  %2230 = fdiv double %2229, %2228
  store double %2230, ptr %79, align 8, !tbaa !11
  %2231 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2231, ptr %46, align 4, !tbaa !9
  %2232 = load double, ptr @c_b19, align 8, !tbaa !11
  %2233 = load i32, ptr %46, align 4, !tbaa !9
  %2234 = call double @dpow_ui(double noundef %2232, i32 noundef %2233)
  %2235 = load double, ptr %78, align 8, !tbaa !11
  %2236 = fdiv double %2235, %2234
  store double %2236, ptr %78, align 8, !tbaa !11
  br label %2237

2237:                                             ; preds = %2224, %2122
  %2238 = load double, ptr %78, align 8, !tbaa !11
  %2239 = load double, ptr %55, align 8, !tbaa !11
  %2240 = fmul double %2239, %2238
  store double %2240, ptr %55, align 8, !tbaa !11
  %2241 = load double, ptr %78, align 8, !tbaa !11
  %2242 = load double, ptr %60, align 8, !tbaa !11
  %2243 = fmul double %2242, %2241
  store double %2243, ptr %60, align 8, !tbaa !11
  %2244 = load double, ptr %79, align 8, !tbaa !11
  %2245 = load ptr, ptr %32, align 8, !tbaa !5
  %2246 = load i32, ptr %63, align 4, !tbaa !9
  %2247 = load i32, ptr %64, align 4, !tbaa !9
  %2248 = load i32, ptr %41, align 4, !tbaa !9
  %2249 = mul nsw i32 %2247, %2248
  %2250 = add nsw i32 %2246, %2249
  %2251 = sext i32 %2250 to i64
  %2252 = getelementptr inbounds double, ptr %2245, i64 %2251
  %2253 = load double, ptr %2252, align 8, !tbaa !11
  %2254 = fdiv double %2244, %2253
  %2255 = load double, ptr %78, align 8, !tbaa !11
  %2256 = fmul double %2254, %2255
  store double %2256, ptr %52, align 8, !tbaa !11
  %2257 = load double, ptr %52, align 8, !tbaa !11
  %2258 = fcmp une double %2257, 1.000000e+00
  br i1 %2258, label %2259, label %2283

2259:                                             ; preds = %2237
  %2260 = load i32, ptr %73, align 4, !tbaa !9
  %2261 = sub nsw i32 %2260, 1
  store i32 %2261, ptr %46, align 4, !tbaa !9
  %2262 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2262, ptr %77, align 4, !tbaa !9
  br label %2263

2263:                                             ; preds = %2279, %2259
  %2264 = load i32, ptr %77, align 4, !tbaa !9
  %2265 = load i32, ptr %46, align 4, !tbaa !9
  %2266 = icmp sle i32 %2264, %2265
  br i1 %2266, label %2267, label %2282

2267:                                             ; preds = %2263
  %2268 = load i32, ptr %71, align 4, !tbaa !9
  %2269 = load i32, ptr %70, align 4, !tbaa !9
  %2270 = sub nsw i32 %2268, %2269
  store i32 %2270, ptr %47, align 4, !tbaa !9
  %2271 = load ptr, ptr %27, align 8, !tbaa !5
  %2272 = load i32, ptr %70, align 4, !tbaa !9
  %2273 = load i32, ptr %77, align 4, !tbaa !9
  %2274 = load i32, ptr %39, align 4, !tbaa !9
  %2275 = mul nsw i32 %2273, %2274
  %2276 = add nsw i32 %2272, %2275
  %2277 = sext i32 %2276 to i64
  %2278 = getelementptr inbounds double, ptr %2271, i64 %2277
  call void @dscal_(ptr noundef %47, ptr noundef %52, ptr noundef %2278, ptr noundef @c__1)
  br label %2279

2279:                                             ; preds = %2267
  %2280 = load i32, ptr %77, align 4, !tbaa !9
  %2281 = add nsw i32 %2280, 1
  store i32 %2281, ptr %77, align 4, !tbaa !9
  br label %2263, !llvm.loop !44

2282:                                             ; preds = %2263
  br label %2283

2283:                                             ; preds = %2282, %2237
  %2284 = load double, ptr %79, align 8, !tbaa !11
  %2285 = load ptr, ptr %32, align 8, !tbaa !5
  %2286 = load i32, ptr %61, align 4, !tbaa !9
  %2287 = load i32, ptr %64, align 4, !tbaa !9
  %2288 = load i32, ptr %41, align 4, !tbaa !9
  %2289 = mul nsw i32 %2287, %2288
  %2290 = add nsw i32 %2286, %2289
  %2291 = sext i32 %2290 to i64
  %2292 = getelementptr inbounds double, ptr %2285, i64 %2291
  %2293 = load double, ptr %2292, align 8, !tbaa !11
  %2294 = fdiv double %2284, %2293
  %2295 = load double, ptr %78, align 8, !tbaa !11
  %2296 = fmul double %2294, %2295
  store double %2296, ptr %52, align 8, !tbaa !11
  %2297 = load double, ptr %52, align 8, !tbaa !11
  %2298 = fcmp une double %2297, 1.000000e+00
  br i1 %2298, label %2299, label %2323

2299:                                             ; preds = %2283
  %2300 = load i32, ptr %73, align 4, !tbaa !9
  %2301 = sub nsw i32 %2300, 1
  store i32 %2301, ptr %46, align 4, !tbaa !9
  %2302 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2302, ptr %77, align 4, !tbaa !9
  br label %2303

2303:                                             ; preds = %2319, %2299
  %2304 = load i32, ptr %77, align 4, !tbaa !9
  %2305 = load i32, ptr %46, align 4, !tbaa !9
  %2306 = icmp sle i32 %2304, %2305
  br i1 %2306, label %2307, label %2322

2307:                                             ; preds = %2303
  %2308 = load i32, ptr %67, align 4, !tbaa !9
  %2309 = load i32, ptr %66, align 4, !tbaa !9
  %2310 = sub nsw i32 %2308, %2309
  store i32 %2310, ptr %47, align 4, !tbaa !9
  %2311 = load ptr, ptr %27, align 8, !tbaa !5
  %2312 = load i32, ptr %66, align 4, !tbaa !9
  %2313 = load i32, ptr %77, align 4, !tbaa !9
  %2314 = load i32, ptr %39, align 4, !tbaa !9
  %2315 = mul nsw i32 %2313, %2314
  %2316 = add nsw i32 %2312, %2315
  %2317 = sext i32 %2316 to i64
  %2318 = getelementptr inbounds double, ptr %2311, i64 %2317
  call void @dscal_(ptr noundef %47, ptr noundef %52, ptr noundef %2318, ptr noundef @c__1)
  br label %2319

2319:                                             ; preds = %2307
  %2320 = load i32, ptr %77, align 4, !tbaa !9
  %2321 = add nsw i32 %2320, 1
  store i32 %2321, ptr %77, align 4, !tbaa !9
  br label %2303, !llvm.loop !45

2322:                                             ; preds = %2303
  br label %2323

2323:                                             ; preds = %2322, %2283
  %2324 = load double, ptr %79, align 8, !tbaa !11
  %2325 = load double, ptr %78, align 8, !tbaa !11
  %2326 = fmul double %2324, %2325
  %2327 = load ptr, ptr %32, align 8, !tbaa !5
  %2328 = load i32, ptr %63, align 4, !tbaa !9
  %2329 = load i32, ptr %64, align 4, !tbaa !9
  %2330 = load i32, ptr %41, align 4, !tbaa !9
  %2331 = mul nsw i32 %2329, %2330
  %2332 = add nsw i32 %2328, %2331
  %2333 = sext i32 %2332 to i64
  %2334 = getelementptr inbounds double, ptr %2327, i64 %2333
  store double %2326, ptr %2334, align 8, !tbaa !11
  %2335 = load double, ptr %79, align 8, !tbaa !11
  %2336 = load double, ptr %78, align 8, !tbaa !11
  %2337 = fmul double %2335, %2336
  %2338 = load ptr, ptr %32, align 8, !tbaa !5
  %2339 = load i32, ptr %61, align 4, !tbaa !9
  %2340 = load i32, ptr %64, align 4, !tbaa !9
  %2341 = load i32, ptr %41, align 4, !tbaa !9
  %2342 = mul nsw i32 %2340, %2341
  %2343 = add nsw i32 %2339, %2342
  %2344 = sext i32 %2343 to i64
  %2345 = getelementptr inbounds double, ptr %2338, i64 %2344
  store double %2337, ptr %2345, align 8, !tbaa !11
  %2346 = load i32, ptr %67, align 4, !tbaa !9
  %2347 = load i32, ptr %66, align 4, !tbaa !9
  %2348 = sub nsw i32 %2346, %2347
  store i32 %2348, ptr %46, align 4, !tbaa !9
  %2349 = load i32, ptr %73, align 4, !tbaa !9
  %2350 = load i32, ptr %72, align 4, !tbaa !9
  %2351 = sub nsw i32 %2349, %2350
  store i32 %2351, ptr %47, align 4, !tbaa !9
  %2352 = load i32, ptr %71, align 4, !tbaa !9
  %2353 = load i32, ptr %70, align 4, !tbaa !9
  %2354 = sub nsw i32 %2352, %2353
  store i32 %2354, ptr %48, align 4, !tbaa !9
  %2355 = load ptr, ptr %23, align 8, !tbaa !5
  %2356 = load i32, ptr %70, align 4, !tbaa !9
  %2357 = load i32, ptr %66, align 4, !tbaa !9
  %2358 = load i32, ptr %35, align 4, !tbaa !9
  %2359 = mul nsw i32 %2357, %2358
  %2360 = add nsw i32 %2356, %2359
  %2361 = sext i32 %2360 to i64
  %2362 = getelementptr inbounds double, ptr %2355, i64 %2361
  %2363 = load ptr, ptr %24, align 8, !tbaa !5
  %2364 = load ptr, ptr %27, align 8, !tbaa !5
  %2365 = load i32, ptr %70, align 4, !tbaa !9
  %2366 = load i32, ptr %72, align 4, !tbaa !9
  %2367 = load i32, ptr %39, align 4, !tbaa !9
  %2368 = mul nsw i32 %2366, %2367
  %2369 = add nsw i32 %2365, %2368
  %2370 = sext i32 %2369 to i64
  %2371 = getelementptr inbounds double, ptr %2364, i64 %2370
  %2372 = load ptr, ptr %28, align 8, !tbaa !5
  %2373 = load ptr, ptr %27, align 8, !tbaa !5
  %2374 = load i32, ptr %66, align 4, !tbaa !9
  %2375 = load i32, ptr %72, align 4, !tbaa !9
  %2376 = load i32, ptr %39, align 4, !tbaa !9
  %2377 = mul nsw i32 %2375, %2376
  %2378 = add nsw i32 %2374, %2377
  %2379 = sext i32 %2378 to i64
  %2380 = getelementptr inbounds double, ptr %2373, i64 %2379
  %2381 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %46, ptr noundef %47, ptr noundef %48, ptr noundef @c_b31, ptr noundef %2362, ptr noundef %2363, ptr noundef %2371, ptr noundef %2372, ptr noundef @c_b32, ptr noundef %2380, ptr noundef %2381)
  br label %2382

2382:                                             ; preds = %2323
  %2383 = load i32, ptr %61, align 4, !tbaa !9
  %2384 = add nsw i32 %2383, 1
  store i32 %2384, ptr %61, align 4, !tbaa !9
  br label %2064, !llvm.loop !46

2385:                                             ; preds = %2064
  %2386 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2386, ptr %45, align 4, !tbaa !9
  %2387 = load i32, ptr %64, align 4, !tbaa !9
  %2388 = add nsw i32 %2387, 1
  store i32 %2388, ptr %62, align 4, !tbaa !9
  br label %2389

2389:                                             ; preds = %2713, %2385
  %2390 = load i32, ptr %62, align 4, !tbaa !9
  %2391 = load i32, ptr %45, align 4, !tbaa !9
  %2392 = icmp sle i32 %2390, %2391
  br i1 %2392, label %2393, label %2716

2393:                                             ; preds = %2389
  %2394 = load ptr, ptr %30, align 8, !tbaa !5
  %2395 = load i32, ptr %75, align 4, !tbaa !9
  %2396 = load i32, ptr %62, align 4, !tbaa !9
  %2397 = add nsw i32 %2395, %2396
  %2398 = sext i32 %2397 to i64
  %2399 = getelementptr inbounds i32, ptr %2394, i64 %2398
  %2400 = load i32, ptr %2399, align 4, !tbaa !9
  store i32 %2400, ptr %68, align 4, !tbaa !9
  %2401 = load ptr, ptr %30, align 8, !tbaa !5
  %2402 = load i32, ptr %75, align 4, !tbaa !9
  %2403 = load i32, ptr %62, align 4, !tbaa !9
  %2404 = add nsw i32 %2402, %2403
  %2405 = add nsw i32 %2404, 1
  %2406 = sext i32 %2405 to i64
  %2407 = getelementptr inbounds i32, ptr %2401, i64 %2406
  %2408 = load i32, ptr %2407, align 4, !tbaa !9
  store i32 %2408, ptr %69, align 4, !tbaa !9
  %2409 = load i32, ptr %71, align 4, !tbaa !9
  %2410 = load i32, ptr %70, align 4, !tbaa !9
  %2411 = sub nsw i32 %2409, %2410
  store i32 %2411, ptr %46, align 4, !tbaa !9
  %2412 = load i32, ptr %69, align 4, !tbaa !9
  %2413 = load i32, ptr %68, align 4, !tbaa !9
  %2414 = sub nsw i32 %2412, %2413
  store i32 %2414, ptr %47, align 4, !tbaa !9
  %2415 = load ptr, ptr %27, align 8, !tbaa !5
  %2416 = load i32, ptr %70, align 4, !tbaa !9
  %2417 = load i32, ptr %68, align 4, !tbaa !9
  %2418 = load i32, ptr %39, align 4, !tbaa !9
  %2419 = mul nsw i32 %2417, %2418
  %2420 = add nsw i32 %2416, %2419
  %2421 = sext i32 %2420 to i64
  %2422 = getelementptr inbounds double, ptr %2415, i64 %2421
  %2423 = load ptr, ptr %28, align 8, !tbaa !5
  %2424 = load ptr, ptr %59, align 8, !tbaa !5
  %2425 = call double @dlange_(ptr noundef @.str.7, ptr noundef %46, ptr noundef %47, ptr noundef %2422, ptr noundef %2423, ptr noundef %2424)
  store double %2425, ptr %55, align 8, !tbaa !11
  %2426 = load ptr, ptr %32, align 8, !tbaa !5
  %2427 = load i32, ptr %63, align 4, !tbaa !9
  %2428 = load i32, ptr %62, align 4, !tbaa !9
  %2429 = load i32, ptr %41, align 4, !tbaa !9
  %2430 = mul nsw i32 %2428, %2429
  %2431 = add nsw i32 %2427, %2430
  %2432 = sext i32 %2431 to i64
  %2433 = getelementptr inbounds double, ptr %2426, i64 %2432
  %2434 = load double, ptr %2433, align 8, !tbaa !11
  store double %2434, ptr %49, align 8, !tbaa !11
  %2435 = load ptr, ptr %32, align 8, !tbaa !5
  %2436 = load i32, ptr %63, align 4, !tbaa !9
  %2437 = load i32, ptr %64, align 4, !tbaa !9
  %2438 = load i32, ptr %41, align 4, !tbaa !9
  %2439 = mul nsw i32 %2437, %2438
  %2440 = add nsw i32 %2436, %2439
  %2441 = sext i32 %2440 to i64
  %2442 = getelementptr inbounds double, ptr %2435, i64 %2441
  %2443 = load double, ptr %2442, align 8, !tbaa !11
  store double %2443, ptr %50, align 8, !tbaa !11
  %2444 = load double, ptr %49, align 8, !tbaa !11
  %2445 = load double, ptr %50, align 8, !tbaa !11
  %2446 = fcmp ole double %2444, %2445
  br i1 %2446, label %2447, label %2449

2447:                                             ; preds = %2393
  %2448 = load double, ptr %49, align 8, !tbaa !11
  br label %2451

2449:                                             ; preds = %2393
  %2450 = load double, ptr %50, align 8, !tbaa !11
  br label %2451

2451:                                             ; preds = %2449, %2447
  %2452 = phi double [ %2448, %2447 ], [ %2450, %2449 ]
  store double %2452, ptr %79, align 8, !tbaa !11
  %2453 = load double, ptr %79, align 8, !tbaa !11
  %2454 = load ptr, ptr %32, align 8, !tbaa !5
  %2455 = load i32, ptr %63, align 4, !tbaa !9
  %2456 = load i32, ptr %62, align 4, !tbaa !9
  %2457 = load i32, ptr %41, align 4, !tbaa !9
  %2458 = mul nsw i32 %2456, %2457
  %2459 = add nsw i32 %2455, %2458
  %2460 = sext i32 %2459 to i64
  %2461 = getelementptr inbounds double, ptr %2454, i64 %2460
  %2462 = load double, ptr %2461, align 8, !tbaa !11
  %2463 = fdiv double %2453, %2462
  %2464 = load double, ptr %55, align 8, !tbaa !11
  %2465 = fmul double %2464, %2463
  store double %2465, ptr %55, align 8, !tbaa !11
  %2466 = load double, ptr %79, align 8, !tbaa !11
  %2467 = load ptr, ptr %32, align 8, !tbaa !5
  %2468 = load i32, ptr %63, align 4, !tbaa !9
  %2469 = load i32, ptr %64, align 4, !tbaa !9
  %2470 = load i32, ptr %41, align 4, !tbaa !9
  %2471 = mul nsw i32 %2469, %2470
  %2472 = add nsw i32 %2468, %2471
  %2473 = sext i32 %2472 to i64
  %2474 = getelementptr inbounds double, ptr %2467, i64 %2473
  %2475 = load double, ptr %2474, align 8, !tbaa !11
  %2476 = fdiv double %2466, %2475
  %2477 = load double, ptr %60, align 8, !tbaa !11
  %2478 = fmul double %2477, %2476
  store double %2478, ptr %60, align 8, !tbaa !11
  %2479 = load ptr, ptr %32, align 8, !tbaa !5
  %2480 = load i32, ptr %64, align 4, !tbaa !9
  %2481 = load i32, ptr %57, align 4, !tbaa !9
  %2482 = load i32, ptr %62, align 4, !tbaa !9
  %2483 = add nsw i32 %2481, %2482
  %2484 = load i32, ptr %41, align 4, !tbaa !9
  %2485 = mul nsw i32 %2483, %2484
  %2486 = add nsw i32 %2480, %2485
  %2487 = sext i32 %2486 to i64
  %2488 = getelementptr inbounds double, ptr %2479, i64 %2487
  %2489 = load double, ptr %2488, align 8, !tbaa !11
  store double %2489, ptr %54, align 8, !tbaa !11
  %2490 = call double @dlarmm_(ptr noundef %54, ptr noundef %60, ptr noundef %55)
  store double %2490, ptr %78, align 8, !tbaa !11
  %2491 = load double, ptr %78, align 8, !tbaa !11
  %2492 = load double, ptr %79, align 8, !tbaa !11
  %2493 = fmul double %2491, %2492
  %2494 = fcmp oeq double %2493, 0.000000e+00
  br i1 %2494, label %2495, label %2566

2495:                                             ; preds = %2451
  %2496 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2496, ptr %46, align 4, !tbaa !9
  %2497 = load double, ptr @c_b19, align 8, !tbaa !11
  %2498 = load i32, ptr %46, align 4, !tbaa !9
  %2499 = call double @dpow_ui(double noundef %2497, i32 noundef %2498)
  %2500 = load double, ptr %87, align 8, !tbaa !11
  %2501 = fmul double %2500, %2499
  store double %2501, ptr %87, align 8, !tbaa !11
  %2502 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2502, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %2503

2503:                                             ; preds = %2550, %2495
  %2504 = load i32, ptr %76, align 4, !tbaa !9
  %2505 = load i32, ptr %46, align 4, !tbaa !9
  %2506 = icmp sle i32 %2504, %2505
  br i1 %2506, label %2507, label %2553

2507:                                             ; preds = %2503
  %2508 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %2508, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %2509

2509:                                             ; preds = %2546, %2507
  %2510 = load i32, ptr %77, align 4, !tbaa !9
  %2511 = load i32, ptr %47, align 4, !tbaa !9
  %2512 = icmp sle i32 %2510, %2511
  br i1 %2512, label %2513, label %2549

2513:                                             ; preds = %2509
  %2514 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2514, ptr %48, align 4, !tbaa !9
  %2515 = load double, ptr %80, align 8, !tbaa !11
  store double %2515, ptr %49, align 8, !tbaa !11
  %2516 = load ptr, ptr %32, align 8, !tbaa !5
  %2517 = load i32, ptr %77, align 4, !tbaa !9
  %2518 = load i32, ptr %76, align 4, !tbaa !9
  %2519 = load i32, ptr %41, align 4, !tbaa !9
  %2520 = mul nsw i32 %2518, %2519
  %2521 = add nsw i32 %2517, %2520
  %2522 = sext i32 %2521 to i64
  %2523 = getelementptr inbounds double, ptr %2516, i64 %2522
  %2524 = load double, ptr %2523, align 8, !tbaa !11
  %2525 = load double, ptr @c_b19, align 8, !tbaa !11
  %2526 = load i32, ptr %48, align 4, !tbaa !9
  %2527 = call double @dpow_ui(double noundef %2525, i32 noundef %2526)
  %2528 = fdiv double %2524, %2527
  store double %2528, ptr %50, align 8, !tbaa !11
  %2529 = load double, ptr %49, align 8, !tbaa !11
  %2530 = load double, ptr %50, align 8, !tbaa !11
  %2531 = fcmp ole double %2529, %2530
  br i1 %2531, label %2532, label %2534

2532:                                             ; preds = %2513
  %2533 = load double, ptr %49, align 8, !tbaa !11
  br label %2536

2534:                                             ; preds = %2513
  %2535 = load double, ptr %50, align 8, !tbaa !11
  br label %2536

2536:                                             ; preds = %2534, %2532
  %2537 = phi double [ %2533, %2532 ], [ %2535, %2534 ]
  %2538 = load ptr, ptr %32, align 8, !tbaa !5
  %2539 = load i32, ptr %77, align 4, !tbaa !9
  %2540 = load i32, ptr %76, align 4, !tbaa !9
  %2541 = load i32, ptr %41, align 4, !tbaa !9
  %2542 = mul nsw i32 %2540, %2541
  %2543 = add nsw i32 %2539, %2542
  %2544 = sext i32 %2543 to i64
  %2545 = getelementptr inbounds double, ptr %2538, i64 %2544
  store double %2537, ptr %2545, align 8, !tbaa !11
  br label %2546

2546:                                             ; preds = %2536
  %2547 = load i32, ptr %77, align 4, !tbaa !9
  %2548 = add nsw i32 %2547, 1
  store i32 %2548, ptr %77, align 4, !tbaa !9
  br label %2509, !llvm.loop !47

2549:                                             ; preds = %2509
  br label %2550

2550:                                             ; preds = %2549
  %2551 = load i32, ptr %76, align 4, !tbaa !9
  %2552 = add nsw i32 %2551, 1
  store i32 %2552, ptr %76, align 4, !tbaa !9
  br label %2503, !llvm.loop !48

2553:                                             ; preds = %2503
  %2554 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2554, ptr %46, align 4, !tbaa !9
  %2555 = load double, ptr @c_b19, align 8, !tbaa !11
  %2556 = load i32, ptr %46, align 4, !tbaa !9
  %2557 = call double @dpow_ui(double noundef %2555, i32 noundef %2556)
  %2558 = load double, ptr %79, align 8, !tbaa !11
  %2559 = fdiv double %2558, %2557
  store double %2559, ptr %79, align 8, !tbaa !11
  %2560 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2560, ptr %46, align 4, !tbaa !9
  %2561 = load double, ptr @c_b19, align 8, !tbaa !11
  %2562 = load i32, ptr %46, align 4, !tbaa !9
  %2563 = call double @dpow_ui(double noundef %2561, i32 noundef %2562)
  %2564 = load double, ptr %78, align 8, !tbaa !11
  %2565 = fdiv double %2564, %2563
  store double %2565, ptr %78, align 8, !tbaa !11
  br label %2566

2566:                                             ; preds = %2553, %2451
  %2567 = load double, ptr %78, align 8, !tbaa !11
  %2568 = load double, ptr %55, align 8, !tbaa !11
  %2569 = fmul double %2568, %2567
  store double %2569, ptr %55, align 8, !tbaa !11
  %2570 = load double, ptr %78, align 8, !tbaa !11
  %2571 = load double, ptr %60, align 8, !tbaa !11
  %2572 = fmul double %2571, %2570
  store double %2572, ptr %60, align 8, !tbaa !11
  %2573 = load double, ptr %79, align 8, !tbaa !11
  %2574 = load ptr, ptr %32, align 8, !tbaa !5
  %2575 = load i32, ptr %63, align 4, !tbaa !9
  %2576 = load i32, ptr %64, align 4, !tbaa !9
  %2577 = load i32, ptr %41, align 4, !tbaa !9
  %2578 = mul nsw i32 %2576, %2577
  %2579 = add nsw i32 %2575, %2578
  %2580 = sext i32 %2579 to i64
  %2581 = getelementptr inbounds double, ptr %2574, i64 %2580
  %2582 = load double, ptr %2581, align 8, !tbaa !11
  %2583 = fdiv double %2573, %2582
  %2584 = load double, ptr %78, align 8, !tbaa !11
  %2585 = fmul double %2583, %2584
  store double %2585, ptr %52, align 8, !tbaa !11
  %2586 = load double, ptr %52, align 8, !tbaa !11
  %2587 = fcmp une double %2586, 1.000000e+00
  br i1 %2587, label %2588, label %2612

2588:                                             ; preds = %2566
  %2589 = load i32, ptr %73, align 4, !tbaa !9
  %2590 = sub nsw i32 %2589, 1
  store i32 %2590, ptr %46, align 4, !tbaa !9
  %2591 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2591, ptr %77, align 4, !tbaa !9
  br label %2592

2592:                                             ; preds = %2608, %2588
  %2593 = load i32, ptr %77, align 4, !tbaa !9
  %2594 = load i32, ptr %46, align 4, !tbaa !9
  %2595 = icmp sle i32 %2593, %2594
  br i1 %2595, label %2596, label %2611

2596:                                             ; preds = %2592
  %2597 = load i32, ptr %71, align 4, !tbaa !9
  %2598 = load i32, ptr %70, align 4, !tbaa !9
  %2599 = sub nsw i32 %2597, %2598
  store i32 %2599, ptr %47, align 4, !tbaa !9
  %2600 = load ptr, ptr %27, align 8, !tbaa !5
  %2601 = load i32, ptr %70, align 4, !tbaa !9
  %2602 = load i32, ptr %77, align 4, !tbaa !9
  %2603 = load i32, ptr %39, align 4, !tbaa !9
  %2604 = mul nsw i32 %2602, %2603
  %2605 = add nsw i32 %2601, %2604
  %2606 = sext i32 %2605 to i64
  %2607 = getelementptr inbounds double, ptr %2600, i64 %2606
  call void @dscal_(ptr noundef %47, ptr noundef %52, ptr noundef %2607, ptr noundef @c__1)
  br label %2608

2608:                                             ; preds = %2596
  %2609 = load i32, ptr %77, align 4, !tbaa !9
  %2610 = add nsw i32 %2609, 1
  store i32 %2610, ptr %77, align 4, !tbaa !9
  br label %2592, !llvm.loop !49

2611:                                             ; preds = %2592
  br label %2612

2612:                                             ; preds = %2611, %2566
  %2613 = load double, ptr %79, align 8, !tbaa !11
  %2614 = load ptr, ptr %32, align 8, !tbaa !5
  %2615 = load i32, ptr %63, align 4, !tbaa !9
  %2616 = load i32, ptr %62, align 4, !tbaa !9
  %2617 = load i32, ptr %41, align 4, !tbaa !9
  %2618 = mul nsw i32 %2616, %2617
  %2619 = add nsw i32 %2615, %2618
  %2620 = sext i32 %2619 to i64
  %2621 = getelementptr inbounds double, ptr %2614, i64 %2620
  %2622 = load double, ptr %2621, align 8, !tbaa !11
  %2623 = fdiv double %2613, %2622
  %2624 = load double, ptr %78, align 8, !tbaa !11
  %2625 = fmul double %2623, %2624
  store double %2625, ptr %52, align 8, !tbaa !11
  %2626 = load double, ptr %52, align 8, !tbaa !11
  %2627 = fcmp une double %2626, 1.000000e+00
  br i1 %2627, label %2628, label %2652

2628:                                             ; preds = %2612
  %2629 = load i32, ptr %69, align 4, !tbaa !9
  %2630 = sub nsw i32 %2629, 1
  store i32 %2630, ptr %46, align 4, !tbaa !9
  %2631 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %2631, ptr %76, align 4, !tbaa !9
  br label %2632

2632:                                             ; preds = %2648, %2628
  %2633 = load i32, ptr %76, align 4, !tbaa !9
  %2634 = load i32, ptr %46, align 4, !tbaa !9
  %2635 = icmp sle i32 %2633, %2634
  br i1 %2635, label %2636, label %2651

2636:                                             ; preds = %2632
  %2637 = load i32, ptr %71, align 4, !tbaa !9
  %2638 = load i32, ptr %70, align 4, !tbaa !9
  %2639 = sub nsw i32 %2637, %2638
  store i32 %2639, ptr %47, align 4, !tbaa !9
  %2640 = load ptr, ptr %27, align 8, !tbaa !5
  %2641 = load i32, ptr %70, align 4, !tbaa !9
  %2642 = load i32, ptr %76, align 4, !tbaa !9
  %2643 = load i32, ptr %39, align 4, !tbaa !9
  %2644 = mul nsw i32 %2642, %2643
  %2645 = add nsw i32 %2641, %2644
  %2646 = sext i32 %2645 to i64
  %2647 = getelementptr inbounds double, ptr %2640, i64 %2646
  call void @dscal_(ptr noundef %47, ptr noundef %52, ptr noundef %2647, ptr noundef @c__1)
  br label %2648

2648:                                             ; preds = %2636
  %2649 = load i32, ptr %76, align 4, !tbaa !9
  %2650 = add nsw i32 %2649, 1
  store i32 %2650, ptr %76, align 4, !tbaa !9
  br label %2632, !llvm.loop !50

2651:                                             ; preds = %2632
  br label %2652

2652:                                             ; preds = %2651, %2612
  %2653 = load double, ptr %79, align 8, !tbaa !11
  %2654 = load double, ptr %78, align 8, !tbaa !11
  %2655 = fmul double %2653, %2654
  %2656 = load ptr, ptr %32, align 8, !tbaa !5
  %2657 = load i32, ptr %63, align 4, !tbaa !9
  %2658 = load i32, ptr %64, align 4, !tbaa !9
  %2659 = load i32, ptr %41, align 4, !tbaa !9
  %2660 = mul nsw i32 %2658, %2659
  %2661 = add nsw i32 %2657, %2660
  %2662 = sext i32 %2661 to i64
  %2663 = getelementptr inbounds double, ptr %2656, i64 %2662
  store double %2655, ptr %2663, align 8, !tbaa !11
  %2664 = load double, ptr %79, align 8, !tbaa !11
  %2665 = load double, ptr %78, align 8, !tbaa !11
  %2666 = fmul double %2664, %2665
  %2667 = load ptr, ptr %32, align 8, !tbaa !5
  %2668 = load i32, ptr %63, align 4, !tbaa !9
  %2669 = load i32, ptr %62, align 4, !tbaa !9
  %2670 = load i32, ptr %41, align 4, !tbaa !9
  %2671 = mul nsw i32 %2669, %2670
  %2672 = add nsw i32 %2668, %2671
  %2673 = sext i32 %2672 to i64
  %2674 = getelementptr inbounds double, ptr %2667, i64 %2673
  store double %2666, ptr %2674, align 8, !tbaa !11
  %2675 = load i32, ptr %71, align 4, !tbaa !9
  %2676 = load i32, ptr %70, align 4, !tbaa !9
  %2677 = sub nsw i32 %2675, %2676
  store i32 %2677, ptr %46, align 4, !tbaa !9
  %2678 = load i32, ptr %69, align 4, !tbaa !9
  %2679 = load i32, ptr %68, align 4, !tbaa !9
  %2680 = sub nsw i32 %2678, %2679
  store i32 %2680, ptr %47, align 4, !tbaa !9
  %2681 = load i32, ptr %73, align 4, !tbaa !9
  %2682 = load i32, ptr %72, align 4, !tbaa !9
  %2683 = sub nsw i32 %2681, %2682
  store i32 %2683, ptr %48, align 4, !tbaa !9
  %2684 = load double, ptr %88, align 8, !tbaa !11
  %2685 = fneg double %2684
  store double %2685, ptr %49, align 8, !tbaa !11
  %2686 = load ptr, ptr %27, align 8, !tbaa !5
  %2687 = load i32, ptr %70, align 4, !tbaa !9
  %2688 = load i32, ptr %72, align 4, !tbaa !9
  %2689 = load i32, ptr %39, align 4, !tbaa !9
  %2690 = mul nsw i32 %2688, %2689
  %2691 = add nsw i32 %2687, %2690
  %2692 = sext i32 %2691 to i64
  %2693 = getelementptr inbounds double, ptr %2686, i64 %2692
  %2694 = load ptr, ptr %28, align 8, !tbaa !5
  %2695 = load ptr, ptr %25, align 8, !tbaa !5
  %2696 = load i32, ptr %72, align 4, !tbaa !9
  %2697 = load i32, ptr %68, align 4, !tbaa !9
  %2698 = load i32, ptr %37, align 4, !tbaa !9
  %2699 = mul nsw i32 %2697, %2698
  %2700 = add nsw i32 %2696, %2699
  %2701 = sext i32 %2700 to i64
  %2702 = getelementptr inbounds double, ptr %2695, i64 %2701
  %2703 = load ptr, ptr %26, align 8, !tbaa !5
  %2704 = load ptr, ptr %27, align 8, !tbaa !5
  %2705 = load i32, ptr %70, align 4, !tbaa !9
  %2706 = load i32, ptr %68, align 4, !tbaa !9
  %2707 = load i32, ptr %39, align 4, !tbaa !9
  %2708 = mul nsw i32 %2706, %2707
  %2709 = add nsw i32 %2705, %2708
  %2710 = sext i32 %2709 to i64
  %2711 = getelementptr inbounds double, ptr %2704, i64 %2710
  %2712 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %46, ptr noundef %47, ptr noundef %48, ptr noundef %49, ptr noundef %2693, ptr noundef %2694, ptr noundef %2702, ptr noundef %2703, ptr noundef @c_b32, ptr noundef %2711, ptr noundef %2712)
  br label %2713

2713:                                             ; preds = %2652
  %2714 = load i32, ptr %62, align 4, !tbaa !9
  %2715 = add nsw i32 %2714, 1
  store i32 %2715, ptr %62, align 4, !tbaa !9
  br label %2389, !llvm.loop !51

2716:                                             ; preds = %2389
  br label %2717

2717:                                             ; preds = %2716
  %2718 = load i32, ptr %64, align 4, !tbaa !9
  %2719 = add nsw i32 %2718, 1
  store i32 %2719, ptr %64, align 4, !tbaa !9
  br label %1880, !llvm.loop !52

2720:                                             ; preds = %1880
  br label %2721

2721:                                             ; preds = %2720
  %2722 = load i32, ptr %63, align 4, !tbaa !9
  %2723 = add nsw i32 %2722, 1
  store i32 %2723, ptr %63, align 4, !tbaa !9
  br label %1863, !llvm.loop !53

2724:                                             ; preds = %1863
  br label %4461

2725:                                             ; preds = %1858, %1855
  %2726 = load i32, ptr %81, align 4, !tbaa !9
  %2727 = icmp ne i32 %2726, 0
  br i1 %2727, label %3593, label %2728

2728:                                             ; preds = %2725
  %2729 = load i32, ptr %82, align 4, !tbaa !9
  %2730 = icmp ne i32 %2729, 0
  br i1 %2730, label %3593, label %2731

2731:                                             ; preds = %2728
  %2732 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %2732, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %2733

2733:                                             ; preds = %3589, %2731
  %2734 = load i32, ptr %63, align 4, !tbaa !9
  %2735 = load i32, ptr %43, align 4, !tbaa !9
  %2736 = icmp sle i32 %2734, %2735
  br i1 %2736, label %2737, label %3592

2737:                                             ; preds = %2733
  %2738 = load ptr, ptr %30, align 8, !tbaa !5
  %2739 = load i32, ptr %63, align 4, !tbaa !9
  %2740 = sext i32 %2739 to i64
  %2741 = getelementptr inbounds i32, ptr %2738, i64 %2740
  %2742 = load i32, ptr %2741, align 4, !tbaa !9
  store i32 %2742, ptr %70, align 4, !tbaa !9
  %2743 = load ptr, ptr %30, align 8, !tbaa !5
  %2744 = load i32, ptr %63, align 4, !tbaa !9
  %2745 = add nsw i32 %2744, 1
  %2746 = sext i32 %2745 to i64
  %2747 = getelementptr inbounds i32, ptr %2743, i64 %2746
  %2748 = load i32, ptr %2747, align 4, !tbaa !9
  store i32 %2748, ptr %71, align 4, !tbaa !9
  %2749 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2749, ptr %64, align 4, !tbaa !9
  br label %2750

2750:                                             ; preds = %3585, %2737
  %2751 = load i32, ptr %64, align 4, !tbaa !9
  %2752 = icmp sge i32 %2751, 1
  br i1 %2752, label %2753, label %3588

2753:                                             ; preds = %2750
  %2754 = load ptr, ptr %30, align 8, !tbaa !5
  %2755 = load i32, ptr %75, align 4, !tbaa !9
  %2756 = load i32, ptr %64, align 4, !tbaa !9
  %2757 = add nsw i32 %2755, %2756
  %2758 = sext i32 %2757 to i64
  %2759 = getelementptr inbounds i32, ptr %2754, i64 %2758
  %2760 = load i32, ptr %2759, align 4, !tbaa !9
  store i32 %2760, ptr %72, align 4, !tbaa !9
  %2761 = load ptr, ptr %30, align 8, !tbaa !5
  %2762 = load i32, ptr %75, align 4, !tbaa !9
  %2763 = load i32, ptr %64, align 4, !tbaa !9
  %2764 = add nsw i32 %2762, %2763
  %2765 = add nsw i32 %2764, 1
  %2766 = sext i32 %2765 to i64
  %2767 = getelementptr inbounds i32, ptr %2761, i64 %2766
  %2768 = load i32, ptr %2767, align 4, !tbaa !9
  store i32 %2768, ptr %73, align 4, !tbaa !9
  %2769 = load i32, ptr %71, align 4, !tbaa !9
  %2770 = load i32, ptr %70, align 4, !tbaa !9
  %2771 = sub nsw i32 %2769, %2770
  store i32 %2771, ptr %44, align 4, !tbaa !9
  %2772 = load i32, ptr %73, align 4, !tbaa !9
  %2773 = load i32, ptr %72, align 4, !tbaa !9
  %2774 = sub nsw i32 %2772, %2773
  store i32 %2774, ptr %45, align 4, !tbaa !9
  %2775 = load ptr, ptr %18, align 8, !tbaa !5
  %2776 = load ptr, ptr %19, align 8, !tbaa !5
  %2777 = load ptr, ptr %20, align 8, !tbaa !5
  %2778 = load ptr, ptr %23, align 8, !tbaa !5
  %2779 = load i32, ptr %70, align 4, !tbaa !9
  %2780 = load i32, ptr %70, align 4, !tbaa !9
  %2781 = load i32, ptr %35, align 4, !tbaa !9
  %2782 = mul nsw i32 %2780, %2781
  %2783 = add nsw i32 %2779, %2782
  %2784 = sext i32 %2783 to i64
  %2785 = getelementptr inbounds double, ptr %2778, i64 %2784
  %2786 = load ptr, ptr %24, align 8, !tbaa !5
  %2787 = load ptr, ptr %25, align 8, !tbaa !5
  %2788 = load i32, ptr %72, align 4, !tbaa !9
  %2789 = load i32, ptr %72, align 4, !tbaa !9
  %2790 = load i32, ptr %37, align 4, !tbaa !9
  %2791 = mul nsw i32 %2789, %2790
  %2792 = add nsw i32 %2788, %2791
  %2793 = sext i32 %2792 to i64
  %2794 = getelementptr inbounds double, ptr %2787, i64 %2793
  %2795 = load ptr, ptr %26, align 8, !tbaa !5
  %2796 = load ptr, ptr %27, align 8, !tbaa !5
  %2797 = load i32, ptr %70, align 4, !tbaa !9
  %2798 = load i32, ptr %72, align 4, !tbaa !9
  %2799 = load i32, ptr %39, align 4, !tbaa !9
  %2800 = mul nsw i32 %2798, %2799
  %2801 = add nsw i32 %2797, %2800
  %2802 = sext i32 %2801 to i64
  %2803 = getelementptr inbounds double, ptr %2796, i64 %2802
  %2804 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dtrsyl_(ptr noundef %2775, ptr noundef %2776, ptr noundef %2777, ptr noundef %44, ptr noundef %45, ptr noundef %2785, ptr noundef %2786, ptr noundef %2794, ptr noundef %2795, ptr noundef %2803, ptr noundef %2804, ptr noundef %78, ptr noundef %65)
  %2805 = load ptr, ptr %34, align 8, !tbaa !5
  %2806 = load i32, ptr %2805, align 4, !tbaa !9
  %2807 = load i32, ptr %65, align 4, !tbaa !9
  %2808 = icmp sge i32 %2806, %2807
  br i1 %2808, label %2809, label %2812

2809:                                             ; preds = %2753
  %2810 = load ptr, ptr %34, align 8, !tbaa !5
  %2811 = load i32, ptr %2810, align 4, !tbaa !9
  br label %2814

2812:                                             ; preds = %2753
  %2813 = load i32, ptr %65, align 4, !tbaa !9
  br label %2814

2814:                                             ; preds = %2812, %2809
  %2815 = phi i32 [ %2811, %2809 ], [ %2813, %2812 ]
  %2816 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %2815, ptr %2816, align 4, !tbaa !9
  %2817 = load double, ptr %78, align 8, !tbaa !11
  %2818 = load ptr, ptr %32, align 8, !tbaa !5
  %2819 = load i32, ptr %63, align 4, !tbaa !9
  %2820 = load i32, ptr %64, align 4, !tbaa !9
  %2821 = load i32, ptr %41, align 4, !tbaa !9
  %2822 = mul nsw i32 %2820, %2821
  %2823 = add nsw i32 %2819, %2822
  %2824 = sext i32 %2823 to i64
  %2825 = getelementptr inbounds double, ptr %2818, i64 %2824
  %2826 = load double, ptr %2825, align 8, !tbaa !11
  %2827 = fmul double %2817, %2826
  %2828 = load ptr, ptr %32, align 8, !tbaa !5
  %2829 = load i32, ptr %63, align 4, !tbaa !9
  %2830 = load i32, ptr %64, align 4, !tbaa !9
  %2831 = load i32, ptr %41, align 4, !tbaa !9
  %2832 = mul nsw i32 %2830, %2831
  %2833 = add nsw i32 %2829, %2832
  %2834 = sext i32 %2833 to i64
  %2835 = getelementptr inbounds double, ptr %2828, i64 %2834
  store double %2827, ptr %2835, align 8, !tbaa !11
  %2836 = load double, ptr %78, align 8, !tbaa !11
  %2837 = load ptr, ptr %32, align 8, !tbaa !5
  %2838 = load i32, ptr %63, align 4, !tbaa !9
  %2839 = load i32, ptr %64, align 4, !tbaa !9
  %2840 = load i32, ptr %41, align 4, !tbaa !9
  %2841 = mul nsw i32 %2839, %2840
  %2842 = add nsw i32 %2838, %2841
  %2843 = sext i32 %2842 to i64
  %2844 = getelementptr inbounds double, ptr %2837, i64 %2843
  %2845 = load double, ptr %2844, align 8, !tbaa !11
  %2846 = fmul double %2836, %2845
  %2847 = fcmp oeq double %2846, 0.000000e+00
  br i1 %2847, label %2848, label %2912

2848:                                             ; preds = %2814
  %2849 = load double, ptr %78, align 8, !tbaa !11
  %2850 = fcmp oeq double %2849, 0.000000e+00
  br i1 %2850, label %2851, label %2852

2851:                                             ; preds = %2848
  store double 0.000000e+00, ptr %87, align 8, !tbaa !11
  br label %2859

2852:                                             ; preds = %2848
  %2853 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2853, ptr %44, align 4, !tbaa !9
  %2854 = load double, ptr @c_b19, align 8, !tbaa !11
  %2855 = load i32, ptr %44, align 4, !tbaa !9
  %2856 = call double @dpow_ui(double noundef %2854, i32 noundef %2855)
  %2857 = load double, ptr %87, align 8, !tbaa !11
  %2858 = fmul double %2857, %2856
  store double %2858, ptr %87, align 8, !tbaa !11
  br label %2859

2859:                                             ; preds = %2852, %2851
  %2860 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2860, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %2861

2861:                                             ; preds = %2908, %2859
  %2862 = load i32, ptr %76, align 4, !tbaa !9
  %2863 = load i32, ptr %44, align 4, !tbaa !9
  %2864 = icmp sle i32 %2862, %2863
  br i1 %2864, label %2865, label %2911

2865:                                             ; preds = %2861
  %2866 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %2866, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %2867

2867:                                             ; preds = %2904, %2865
  %2868 = load i32, ptr %77, align 4, !tbaa !9
  %2869 = load i32, ptr %45, align 4, !tbaa !9
  %2870 = icmp sle i32 %2868, %2869
  br i1 %2870, label %2871, label %2907

2871:                                             ; preds = %2867
  %2872 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %2872, ptr %46, align 4, !tbaa !9
  %2873 = load double, ptr %80, align 8, !tbaa !11
  store double %2873, ptr %49, align 8, !tbaa !11
  %2874 = load ptr, ptr %32, align 8, !tbaa !5
  %2875 = load i32, ptr %77, align 4, !tbaa !9
  %2876 = load i32, ptr %76, align 4, !tbaa !9
  %2877 = load i32, ptr %41, align 4, !tbaa !9
  %2878 = mul nsw i32 %2876, %2877
  %2879 = add nsw i32 %2875, %2878
  %2880 = sext i32 %2879 to i64
  %2881 = getelementptr inbounds double, ptr %2874, i64 %2880
  %2882 = load double, ptr %2881, align 8, !tbaa !11
  %2883 = load double, ptr @c_b19, align 8, !tbaa !11
  %2884 = load i32, ptr %46, align 4, !tbaa !9
  %2885 = call double @dpow_ui(double noundef %2883, i32 noundef %2884)
  %2886 = fdiv double %2882, %2885
  store double %2886, ptr %50, align 8, !tbaa !11
  %2887 = load double, ptr %49, align 8, !tbaa !11
  %2888 = load double, ptr %50, align 8, !tbaa !11
  %2889 = fcmp ole double %2887, %2888
  br i1 %2889, label %2890, label %2892

2890:                                             ; preds = %2871
  %2891 = load double, ptr %49, align 8, !tbaa !11
  br label %2894

2892:                                             ; preds = %2871
  %2893 = load double, ptr %50, align 8, !tbaa !11
  br label %2894

2894:                                             ; preds = %2892, %2890
  %2895 = phi double [ %2891, %2890 ], [ %2893, %2892 ]
  %2896 = load ptr, ptr %32, align 8, !tbaa !5
  %2897 = load i32, ptr %77, align 4, !tbaa !9
  %2898 = load i32, ptr %76, align 4, !tbaa !9
  %2899 = load i32, ptr %41, align 4, !tbaa !9
  %2900 = mul nsw i32 %2898, %2899
  %2901 = add nsw i32 %2897, %2900
  %2902 = sext i32 %2901 to i64
  %2903 = getelementptr inbounds double, ptr %2896, i64 %2902
  store double %2895, ptr %2903, align 8, !tbaa !11
  br label %2904

2904:                                             ; preds = %2894
  %2905 = load i32, ptr %77, align 4, !tbaa !9
  %2906 = add nsw i32 %2905, 1
  store i32 %2906, ptr %77, align 4, !tbaa !9
  br label %2867, !llvm.loop !54

2907:                                             ; preds = %2867
  br label %2908

2908:                                             ; preds = %2907
  %2909 = load i32, ptr %76, align 4, !tbaa !9
  %2910 = add nsw i32 %2909, 1
  store i32 %2910, ptr %76, align 4, !tbaa !9
  br label %2861, !llvm.loop !55

2911:                                             ; preds = %2861
  br label %2912

2912:                                             ; preds = %2911, %2814
  %2913 = load i32, ptr %71, align 4, !tbaa !9
  %2914 = load i32, ptr %70, align 4, !tbaa !9
  %2915 = sub nsw i32 %2913, %2914
  store i32 %2915, ptr %44, align 4, !tbaa !9
  %2916 = load i32, ptr %73, align 4, !tbaa !9
  %2917 = load i32, ptr %72, align 4, !tbaa !9
  %2918 = sub nsw i32 %2916, %2917
  store i32 %2918, ptr %45, align 4, !tbaa !9
  %2919 = load ptr, ptr %27, align 8, !tbaa !5
  %2920 = load i32, ptr %70, align 4, !tbaa !9
  %2921 = load i32, ptr %72, align 4, !tbaa !9
  %2922 = load i32, ptr %39, align 4, !tbaa !9
  %2923 = mul nsw i32 %2921, %2922
  %2924 = add nsw i32 %2920, %2923
  %2925 = sext i32 %2924 to i64
  %2926 = getelementptr inbounds double, ptr %2919, i64 %2925
  %2927 = load ptr, ptr %28, align 8, !tbaa !5
  %2928 = load ptr, ptr %59, align 8, !tbaa !5
  %2929 = call double @dlange_(ptr noundef @.str.7, ptr noundef %44, ptr noundef %45, ptr noundef %2926, ptr noundef %2927, ptr noundef %2928)
  store double %2929, ptr %60, align 8, !tbaa !11
  %2930 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %2930, ptr %44, align 4, !tbaa !9
  %2931 = load i32, ptr %63, align 4, !tbaa !9
  %2932 = add nsw i32 %2931, 1
  store i32 %2932, ptr %61, align 4, !tbaa !9
  br label %2933

2933:                                             ; preds = %3251, %2912
  %2934 = load i32, ptr %61, align 4, !tbaa !9
  %2935 = load i32, ptr %44, align 4, !tbaa !9
  %2936 = icmp sle i32 %2934, %2935
  br i1 %2936, label %2937, label %3254

2937:                                             ; preds = %2933
  %2938 = load ptr, ptr %30, align 8, !tbaa !5
  %2939 = load i32, ptr %61, align 4, !tbaa !9
  %2940 = sext i32 %2939 to i64
  %2941 = getelementptr inbounds i32, ptr %2938, i64 %2940
  %2942 = load i32, ptr %2941, align 4, !tbaa !9
  store i32 %2942, ptr %66, align 4, !tbaa !9
  %2943 = load ptr, ptr %30, align 8, !tbaa !5
  %2944 = load i32, ptr %61, align 4, !tbaa !9
  %2945 = add nsw i32 %2944, 1
  %2946 = sext i32 %2945 to i64
  %2947 = getelementptr inbounds i32, ptr %2943, i64 %2946
  %2948 = load i32, ptr %2947, align 4, !tbaa !9
  store i32 %2948, ptr %67, align 4, !tbaa !9
  %2949 = load i32, ptr %67, align 4, !tbaa !9
  %2950 = load i32, ptr %66, align 4, !tbaa !9
  %2951 = sub nsw i32 %2949, %2950
  store i32 %2951, ptr %45, align 4, !tbaa !9
  %2952 = load i32, ptr %73, align 4, !tbaa !9
  %2953 = load i32, ptr %72, align 4, !tbaa !9
  %2954 = sub nsw i32 %2952, %2953
  store i32 %2954, ptr %46, align 4, !tbaa !9
  %2955 = load ptr, ptr %27, align 8, !tbaa !5
  %2956 = load i32, ptr %66, align 4, !tbaa !9
  %2957 = load i32, ptr %72, align 4, !tbaa !9
  %2958 = load i32, ptr %39, align 4, !tbaa !9
  %2959 = mul nsw i32 %2957, %2958
  %2960 = add nsw i32 %2956, %2959
  %2961 = sext i32 %2960 to i64
  %2962 = getelementptr inbounds double, ptr %2955, i64 %2961
  %2963 = load ptr, ptr %28, align 8, !tbaa !5
  %2964 = load ptr, ptr %59, align 8, !tbaa !5
  %2965 = call double @dlange_(ptr noundef @.str.7, ptr noundef %45, ptr noundef %46, ptr noundef %2962, ptr noundef %2963, ptr noundef %2964)
  store double %2965, ptr %55, align 8, !tbaa !11
  %2966 = load ptr, ptr %32, align 8, !tbaa !5
  %2967 = load i32, ptr %61, align 4, !tbaa !9
  %2968 = load i32, ptr %64, align 4, !tbaa !9
  %2969 = load i32, ptr %41, align 4, !tbaa !9
  %2970 = mul nsw i32 %2968, %2969
  %2971 = add nsw i32 %2967, %2970
  %2972 = sext i32 %2971 to i64
  %2973 = getelementptr inbounds double, ptr %2966, i64 %2972
  %2974 = load double, ptr %2973, align 8, !tbaa !11
  store double %2974, ptr %49, align 8, !tbaa !11
  %2975 = load ptr, ptr %32, align 8, !tbaa !5
  %2976 = load i32, ptr %63, align 4, !tbaa !9
  %2977 = load i32, ptr %64, align 4, !tbaa !9
  %2978 = load i32, ptr %41, align 4, !tbaa !9
  %2979 = mul nsw i32 %2977, %2978
  %2980 = add nsw i32 %2976, %2979
  %2981 = sext i32 %2980 to i64
  %2982 = getelementptr inbounds double, ptr %2975, i64 %2981
  %2983 = load double, ptr %2982, align 8, !tbaa !11
  store double %2983, ptr %50, align 8, !tbaa !11
  %2984 = load double, ptr %49, align 8, !tbaa !11
  %2985 = load double, ptr %50, align 8, !tbaa !11
  %2986 = fcmp ole double %2984, %2985
  br i1 %2986, label %2987, label %2989

2987:                                             ; preds = %2937
  %2988 = load double, ptr %49, align 8, !tbaa !11
  br label %2991

2989:                                             ; preds = %2937
  %2990 = load double, ptr %50, align 8, !tbaa !11
  br label %2991

2991:                                             ; preds = %2989, %2987
  %2992 = phi double [ %2988, %2987 ], [ %2990, %2989 ]
  store double %2992, ptr %79, align 8, !tbaa !11
  %2993 = load double, ptr %79, align 8, !tbaa !11
  %2994 = load ptr, ptr %32, align 8, !tbaa !5
  %2995 = load i32, ptr %61, align 4, !tbaa !9
  %2996 = load i32, ptr %64, align 4, !tbaa !9
  %2997 = load i32, ptr %41, align 4, !tbaa !9
  %2998 = mul nsw i32 %2996, %2997
  %2999 = add nsw i32 %2995, %2998
  %3000 = sext i32 %2999 to i64
  %3001 = getelementptr inbounds double, ptr %2994, i64 %3000
  %3002 = load double, ptr %3001, align 8, !tbaa !11
  %3003 = fdiv double %2993, %3002
  %3004 = load double, ptr %55, align 8, !tbaa !11
  %3005 = fmul double %3004, %3003
  store double %3005, ptr %55, align 8, !tbaa !11
  %3006 = load double, ptr %79, align 8, !tbaa !11
  %3007 = load ptr, ptr %32, align 8, !tbaa !5
  %3008 = load i32, ptr %63, align 4, !tbaa !9
  %3009 = load i32, ptr %64, align 4, !tbaa !9
  %3010 = load i32, ptr %41, align 4, !tbaa !9
  %3011 = mul nsw i32 %3009, %3010
  %3012 = add nsw i32 %3008, %3011
  %3013 = sext i32 %3012 to i64
  %3014 = getelementptr inbounds double, ptr %3007, i64 %3013
  %3015 = load double, ptr %3014, align 8, !tbaa !11
  %3016 = fdiv double %3006, %3015
  %3017 = load double, ptr %60, align 8, !tbaa !11
  %3018 = fmul double %3017, %3016
  store double %3018, ptr %60, align 8, !tbaa !11
  %3019 = load ptr, ptr %32, align 8, !tbaa !5
  %3020 = load i32, ptr %61, align 4, !tbaa !9
  %3021 = load i32, ptr %56, align 4, !tbaa !9
  %3022 = load i32, ptr %63, align 4, !tbaa !9
  %3023 = add nsw i32 %3021, %3022
  %3024 = load i32, ptr %41, align 4, !tbaa !9
  %3025 = mul nsw i32 %3023, %3024
  %3026 = add nsw i32 %3020, %3025
  %3027 = sext i32 %3026 to i64
  %3028 = getelementptr inbounds double, ptr %3019, i64 %3027
  %3029 = load double, ptr %3028, align 8, !tbaa !11
  store double %3029, ptr %53, align 8, !tbaa !11
  %3030 = call double @dlarmm_(ptr noundef %53, ptr noundef %60, ptr noundef %55)
  store double %3030, ptr %78, align 8, !tbaa !11
  %3031 = load double, ptr %78, align 8, !tbaa !11
  %3032 = load double, ptr %79, align 8, !tbaa !11
  %3033 = fmul double %3031, %3032
  %3034 = fcmp oeq double %3033, 0.000000e+00
  br i1 %3034, label %3035, label %3106

3035:                                             ; preds = %2991
  %3036 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3036, ptr %45, align 4, !tbaa !9
  %3037 = load double, ptr @c_b19, align 8, !tbaa !11
  %3038 = load i32, ptr %45, align 4, !tbaa !9
  %3039 = call double @dpow_ui(double noundef %3037, i32 noundef %3038)
  %3040 = load double, ptr %87, align 8, !tbaa !11
  %3041 = fmul double %3040, %3039
  store double %3041, ptr %87, align 8, !tbaa !11
  %3042 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3042, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %3043

3043:                                             ; preds = %3090, %3035
  %3044 = load i32, ptr %76, align 4, !tbaa !9
  %3045 = load i32, ptr %45, align 4, !tbaa !9
  %3046 = icmp sle i32 %3044, %3045
  br i1 %3046, label %3047, label %3093

3047:                                             ; preds = %3043
  %3048 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %3048, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %3049

3049:                                             ; preds = %3086, %3047
  %3050 = load i32, ptr %77, align 4, !tbaa !9
  %3051 = load i32, ptr %46, align 4, !tbaa !9
  %3052 = icmp sle i32 %3050, %3051
  br i1 %3052, label %3053, label %3089

3053:                                             ; preds = %3049
  %3054 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3054, ptr %47, align 4, !tbaa !9
  %3055 = load double, ptr %80, align 8, !tbaa !11
  store double %3055, ptr %49, align 8, !tbaa !11
  %3056 = load ptr, ptr %32, align 8, !tbaa !5
  %3057 = load i32, ptr %77, align 4, !tbaa !9
  %3058 = load i32, ptr %76, align 4, !tbaa !9
  %3059 = load i32, ptr %41, align 4, !tbaa !9
  %3060 = mul nsw i32 %3058, %3059
  %3061 = add nsw i32 %3057, %3060
  %3062 = sext i32 %3061 to i64
  %3063 = getelementptr inbounds double, ptr %3056, i64 %3062
  %3064 = load double, ptr %3063, align 8, !tbaa !11
  %3065 = load double, ptr @c_b19, align 8, !tbaa !11
  %3066 = load i32, ptr %47, align 4, !tbaa !9
  %3067 = call double @dpow_ui(double noundef %3065, i32 noundef %3066)
  %3068 = fdiv double %3064, %3067
  store double %3068, ptr %50, align 8, !tbaa !11
  %3069 = load double, ptr %49, align 8, !tbaa !11
  %3070 = load double, ptr %50, align 8, !tbaa !11
  %3071 = fcmp ole double %3069, %3070
  br i1 %3071, label %3072, label %3074

3072:                                             ; preds = %3053
  %3073 = load double, ptr %49, align 8, !tbaa !11
  br label %3076

3074:                                             ; preds = %3053
  %3075 = load double, ptr %50, align 8, !tbaa !11
  br label %3076

3076:                                             ; preds = %3074, %3072
  %3077 = phi double [ %3073, %3072 ], [ %3075, %3074 ]
  %3078 = load ptr, ptr %32, align 8, !tbaa !5
  %3079 = load i32, ptr %77, align 4, !tbaa !9
  %3080 = load i32, ptr %76, align 4, !tbaa !9
  %3081 = load i32, ptr %41, align 4, !tbaa !9
  %3082 = mul nsw i32 %3080, %3081
  %3083 = add nsw i32 %3079, %3082
  %3084 = sext i32 %3083 to i64
  %3085 = getelementptr inbounds double, ptr %3078, i64 %3084
  store double %3077, ptr %3085, align 8, !tbaa !11
  br label %3086

3086:                                             ; preds = %3076
  %3087 = load i32, ptr %77, align 4, !tbaa !9
  %3088 = add nsw i32 %3087, 1
  store i32 %3088, ptr %77, align 4, !tbaa !9
  br label %3049, !llvm.loop !56

3089:                                             ; preds = %3049
  br label %3090

3090:                                             ; preds = %3089
  %3091 = load i32, ptr %76, align 4, !tbaa !9
  %3092 = add nsw i32 %3091, 1
  store i32 %3092, ptr %76, align 4, !tbaa !9
  br label %3043, !llvm.loop !57

3093:                                             ; preds = %3043
  %3094 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3094, ptr %45, align 4, !tbaa !9
  %3095 = load double, ptr @c_b19, align 8, !tbaa !11
  %3096 = load i32, ptr %45, align 4, !tbaa !9
  %3097 = call double @dpow_ui(double noundef %3095, i32 noundef %3096)
  %3098 = load double, ptr %79, align 8, !tbaa !11
  %3099 = fdiv double %3098, %3097
  store double %3099, ptr %79, align 8, !tbaa !11
  %3100 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3100, ptr %45, align 4, !tbaa !9
  %3101 = load double, ptr @c_b19, align 8, !tbaa !11
  %3102 = load i32, ptr %45, align 4, !tbaa !9
  %3103 = call double @dpow_ui(double noundef %3101, i32 noundef %3102)
  %3104 = load double, ptr %78, align 8, !tbaa !11
  %3105 = fdiv double %3104, %3103
  store double %3105, ptr %78, align 8, !tbaa !11
  br label %3106

3106:                                             ; preds = %3093, %2991
  %3107 = load double, ptr %78, align 8, !tbaa !11
  %3108 = load double, ptr %55, align 8, !tbaa !11
  %3109 = fmul double %3108, %3107
  store double %3109, ptr %55, align 8, !tbaa !11
  %3110 = load double, ptr %78, align 8, !tbaa !11
  %3111 = load double, ptr %60, align 8, !tbaa !11
  %3112 = fmul double %3111, %3110
  store double %3112, ptr %60, align 8, !tbaa !11
  %3113 = load double, ptr %79, align 8, !tbaa !11
  %3114 = load ptr, ptr %32, align 8, !tbaa !5
  %3115 = load i32, ptr %63, align 4, !tbaa !9
  %3116 = load i32, ptr %64, align 4, !tbaa !9
  %3117 = load i32, ptr %41, align 4, !tbaa !9
  %3118 = mul nsw i32 %3116, %3117
  %3119 = add nsw i32 %3115, %3118
  %3120 = sext i32 %3119 to i64
  %3121 = getelementptr inbounds double, ptr %3114, i64 %3120
  %3122 = load double, ptr %3121, align 8, !tbaa !11
  %3123 = fdiv double %3113, %3122
  %3124 = load double, ptr %78, align 8, !tbaa !11
  %3125 = fmul double %3123, %3124
  store double %3125, ptr %52, align 8, !tbaa !11
  %3126 = load double, ptr %52, align 8, !tbaa !11
  %3127 = fcmp une double %3126, 1.000000e+00
  br i1 %3127, label %3128, label %3152

3128:                                             ; preds = %3106
  %3129 = load i32, ptr %73, align 4, !tbaa !9
  %3130 = sub nsw i32 %3129, 1
  store i32 %3130, ptr %45, align 4, !tbaa !9
  %3131 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3131, ptr %77, align 4, !tbaa !9
  br label %3132

3132:                                             ; preds = %3148, %3128
  %3133 = load i32, ptr %77, align 4, !tbaa !9
  %3134 = load i32, ptr %45, align 4, !tbaa !9
  %3135 = icmp sle i32 %3133, %3134
  br i1 %3135, label %3136, label %3151

3136:                                             ; preds = %3132
  %3137 = load i32, ptr %71, align 4, !tbaa !9
  %3138 = load i32, ptr %70, align 4, !tbaa !9
  %3139 = sub nsw i32 %3137, %3138
  store i32 %3139, ptr %46, align 4, !tbaa !9
  %3140 = load ptr, ptr %27, align 8, !tbaa !5
  %3141 = load i32, ptr %70, align 4, !tbaa !9
  %3142 = load i32, ptr %77, align 4, !tbaa !9
  %3143 = load i32, ptr %39, align 4, !tbaa !9
  %3144 = mul nsw i32 %3142, %3143
  %3145 = add nsw i32 %3141, %3144
  %3146 = sext i32 %3145 to i64
  %3147 = getelementptr inbounds double, ptr %3140, i64 %3146
  call void @dscal_(ptr noundef %46, ptr noundef %52, ptr noundef %3147, ptr noundef @c__1)
  br label %3148

3148:                                             ; preds = %3136
  %3149 = load i32, ptr %77, align 4, !tbaa !9
  %3150 = add nsw i32 %3149, 1
  store i32 %3150, ptr %77, align 4, !tbaa !9
  br label %3132, !llvm.loop !58

3151:                                             ; preds = %3132
  br label %3152

3152:                                             ; preds = %3151, %3106
  %3153 = load double, ptr %79, align 8, !tbaa !11
  %3154 = load ptr, ptr %32, align 8, !tbaa !5
  %3155 = load i32, ptr %61, align 4, !tbaa !9
  %3156 = load i32, ptr %64, align 4, !tbaa !9
  %3157 = load i32, ptr %41, align 4, !tbaa !9
  %3158 = mul nsw i32 %3156, %3157
  %3159 = add nsw i32 %3155, %3158
  %3160 = sext i32 %3159 to i64
  %3161 = getelementptr inbounds double, ptr %3154, i64 %3160
  %3162 = load double, ptr %3161, align 8, !tbaa !11
  %3163 = fdiv double %3153, %3162
  %3164 = load double, ptr %78, align 8, !tbaa !11
  %3165 = fmul double %3163, %3164
  store double %3165, ptr %52, align 8, !tbaa !11
  %3166 = load double, ptr %52, align 8, !tbaa !11
  %3167 = fcmp une double %3166, 1.000000e+00
  br i1 %3167, label %3168, label %3192

3168:                                             ; preds = %3152
  %3169 = load i32, ptr %73, align 4, !tbaa !9
  %3170 = sub nsw i32 %3169, 1
  store i32 %3170, ptr %45, align 4, !tbaa !9
  %3171 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3171, ptr %77, align 4, !tbaa !9
  br label %3172

3172:                                             ; preds = %3188, %3168
  %3173 = load i32, ptr %77, align 4, !tbaa !9
  %3174 = load i32, ptr %45, align 4, !tbaa !9
  %3175 = icmp sle i32 %3173, %3174
  br i1 %3175, label %3176, label %3191

3176:                                             ; preds = %3172
  %3177 = load i32, ptr %67, align 4, !tbaa !9
  %3178 = load i32, ptr %66, align 4, !tbaa !9
  %3179 = sub nsw i32 %3177, %3178
  store i32 %3179, ptr %46, align 4, !tbaa !9
  %3180 = load ptr, ptr %27, align 8, !tbaa !5
  %3181 = load i32, ptr %66, align 4, !tbaa !9
  %3182 = load i32, ptr %77, align 4, !tbaa !9
  %3183 = load i32, ptr %39, align 4, !tbaa !9
  %3184 = mul nsw i32 %3182, %3183
  %3185 = add nsw i32 %3181, %3184
  %3186 = sext i32 %3185 to i64
  %3187 = getelementptr inbounds double, ptr %3180, i64 %3186
  call void @dscal_(ptr noundef %46, ptr noundef %52, ptr noundef %3187, ptr noundef @c__1)
  br label %3188

3188:                                             ; preds = %3176
  %3189 = load i32, ptr %77, align 4, !tbaa !9
  %3190 = add nsw i32 %3189, 1
  store i32 %3190, ptr %77, align 4, !tbaa !9
  br label %3172, !llvm.loop !59

3191:                                             ; preds = %3172
  br label %3192

3192:                                             ; preds = %3191, %3152
  %3193 = load double, ptr %79, align 8, !tbaa !11
  %3194 = load double, ptr %78, align 8, !tbaa !11
  %3195 = fmul double %3193, %3194
  %3196 = load ptr, ptr %32, align 8, !tbaa !5
  %3197 = load i32, ptr %63, align 4, !tbaa !9
  %3198 = load i32, ptr %64, align 4, !tbaa !9
  %3199 = load i32, ptr %41, align 4, !tbaa !9
  %3200 = mul nsw i32 %3198, %3199
  %3201 = add nsw i32 %3197, %3200
  %3202 = sext i32 %3201 to i64
  %3203 = getelementptr inbounds double, ptr %3196, i64 %3202
  store double %3195, ptr %3203, align 8, !tbaa !11
  %3204 = load double, ptr %79, align 8, !tbaa !11
  %3205 = load double, ptr %78, align 8, !tbaa !11
  %3206 = fmul double %3204, %3205
  %3207 = load ptr, ptr %32, align 8, !tbaa !5
  %3208 = load i32, ptr %61, align 4, !tbaa !9
  %3209 = load i32, ptr %64, align 4, !tbaa !9
  %3210 = load i32, ptr %41, align 4, !tbaa !9
  %3211 = mul nsw i32 %3209, %3210
  %3212 = add nsw i32 %3208, %3211
  %3213 = sext i32 %3212 to i64
  %3214 = getelementptr inbounds double, ptr %3207, i64 %3213
  store double %3206, ptr %3214, align 8, !tbaa !11
  %3215 = load i32, ptr %67, align 4, !tbaa !9
  %3216 = load i32, ptr %66, align 4, !tbaa !9
  %3217 = sub nsw i32 %3215, %3216
  store i32 %3217, ptr %45, align 4, !tbaa !9
  %3218 = load i32, ptr %73, align 4, !tbaa !9
  %3219 = load i32, ptr %72, align 4, !tbaa !9
  %3220 = sub nsw i32 %3218, %3219
  store i32 %3220, ptr %46, align 4, !tbaa !9
  %3221 = load i32, ptr %71, align 4, !tbaa !9
  %3222 = load i32, ptr %70, align 4, !tbaa !9
  %3223 = sub nsw i32 %3221, %3222
  store i32 %3223, ptr %47, align 4, !tbaa !9
  %3224 = load ptr, ptr %23, align 8, !tbaa !5
  %3225 = load i32, ptr %70, align 4, !tbaa !9
  %3226 = load i32, ptr %66, align 4, !tbaa !9
  %3227 = load i32, ptr %35, align 4, !tbaa !9
  %3228 = mul nsw i32 %3226, %3227
  %3229 = add nsw i32 %3225, %3228
  %3230 = sext i32 %3229 to i64
  %3231 = getelementptr inbounds double, ptr %3224, i64 %3230
  %3232 = load ptr, ptr %24, align 8, !tbaa !5
  %3233 = load ptr, ptr %27, align 8, !tbaa !5
  %3234 = load i32, ptr %70, align 4, !tbaa !9
  %3235 = load i32, ptr %72, align 4, !tbaa !9
  %3236 = load i32, ptr %39, align 4, !tbaa !9
  %3237 = mul nsw i32 %3235, %3236
  %3238 = add nsw i32 %3234, %3237
  %3239 = sext i32 %3238 to i64
  %3240 = getelementptr inbounds double, ptr %3233, i64 %3239
  %3241 = load ptr, ptr %28, align 8, !tbaa !5
  %3242 = load ptr, ptr %27, align 8, !tbaa !5
  %3243 = load i32, ptr %66, align 4, !tbaa !9
  %3244 = load i32, ptr %72, align 4, !tbaa !9
  %3245 = load i32, ptr %39, align 4, !tbaa !9
  %3246 = mul nsw i32 %3244, %3245
  %3247 = add nsw i32 %3243, %3246
  %3248 = sext i32 %3247 to i64
  %3249 = getelementptr inbounds double, ptr %3242, i64 %3248
  %3250 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %45, ptr noundef %46, ptr noundef %47, ptr noundef @c_b31, ptr noundef %3231, ptr noundef %3232, ptr noundef %3240, ptr noundef %3241, ptr noundef @c_b32, ptr noundef %3249, ptr noundef %3250)
  br label %3251

3251:                                             ; preds = %3192
  %3252 = load i32, ptr %61, align 4, !tbaa !9
  %3253 = add nsw i32 %3252, 1
  store i32 %3253, ptr %61, align 4, !tbaa !9
  br label %2933, !llvm.loop !60

3254:                                             ; preds = %2933
  %3255 = load i32, ptr %64, align 4, !tbaa !9
  %3256 = sub nsw i32 %3255, 1
  store i32 %3256, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %3257

3257:                                             ; preds = %3581, %3254
  %3258 = load i32, ptr %62, align 4, !tbaa !9
  %3259 = load i32, ptr %44, align 4, !tbaa !9
  %3260 = icmp sle i32 %3258, %3259
  br i1 %3260, label %3261, label %3584

3261:                                             ; preds = %3257
  %3262 = load ptr, ptr %30, align 8, !tbaa !5
  %3263 = load i32, ptr %75, align 4, !tbaa !9
  %3264 = load i32, ptr %62, align 4, !tbaa !9
  %3265 = add nsw i32 %3263, %3264
  %3266 = sext i32 %3265 to i64
  %3267 = getelementptr inbounds i32, ptr %3262, i64 %3266
  %3268 = load i32, ptr %3267, align 4, !tbaa !9
  store i32 %3268, ptr %68, align 4, !tbaa !9
  %3269 = load ptr, ptr %30, align 8, !tbaa !5
  %3270 = load i32, ptr %75, align 4, !tbaa !9
  %3271 = load i32, ptr %62, align 4, !tbaa !9
  %3272 = add nsw i32 %3270, %3271
  %3273 = add nsw i32 %3272, 1
  %3274 = sext i32 %3273 to i64
  %3275 = getelementptr inbounds i32, ptr %3269, i64 %3274
  %3276 = load i32, ptr %3275, align 4, !tbaa !9
  store i32 %3276, ptr %69, align 4, !tbaa !9
  %3277 = load i32, ptr %71, align 4, !tbaa !9
  %3278 = load i32, ptr %70, align 4, !tbaa !9
  %3279 = sub nsw i32 %3277, %3278
  store i32 %3279, ptr %45, align 4, !tbaa !9
  %3280 = load i32, ptr %69, align 4, !tbaa !9
  %3281 = load i32, ptr %68, align 4, !tbaa !9
  %3282 = sub nsw i32 %3280, %3281
  store i32 %3282, ptr %46, align 4, !tbaa !9
  %3283 = load ptr, ptr %27, align 8, !tbaa !5
  %3284 = load i32, ptr %70, align 4, !tbaa !9
  %3285 = load i32, ptr %68, align 4, !tbaa !9
  %3286 = load i32, ptr %39, align 4, !tbaa !9
  %3287 = mul nsw i32 %3285, %3286
  %3288 = add nsw i32 %3284, %3287
  %3289 = sext i32 %3288 to i64
  %3290 = getelementptr inbounds double, ptr %3283, i64 %3289
  %3291 = load ptr, ptr %28, align 8, !tbaa !5
  %3292 = load ptr, ptr %59, align 8, !tbaa !5
  %3293 = call double @dlange_(ptr noundef @.str.7, ptr noundef %45, ptr noundef %46, ptr noundef %3290, ptr noundef %3291, ptr noundef %3292)
  store double %3293, ptr %55, align 8, !tbaa !11
  %3294 = load ptr, ptr %32, align 8, !tbaa !5
  %3295 = load i32, ptr %63, align 4, !tbaa !9
  %3296 = load i32, ptr %62, align 4, !tbaa !9
  %3297 = load i32, ptr %41, align 4, !tbaa !9
  %3298 = mul nsw i32 %3296, %3297
  %3299 = add nsw i32 %3295, %3298
  %3300 = sext i32 %3299 to i64
  %3301 = getelementptr inbounds double, ptr %3294, i64 %3300
  %3302 = load double, ptr %3301, align 8, !tbaa !11
  store double %3302, ptr %49, align 8, !tbaa !11
  %3303 = load ptr, ptr %32, align 8, !tbaa !5
  %3304 = load i32, ptr %63, align 4, !tbaa !9
  %3305 = load i32, ptr %64, align 4, !tbaa !9
  %3306 = load i32, ptr %41, align 4, !tbaa !9
  %3307 = mul nsw i32 %3305, %3306
  %3308 = add nsw i32 %3304, %3307
  %3309 = sext i32 %3308 to i64
  %3310 = getelementptr inbounds double, ptr %3303, i64 %3309
  %3311 = load double, ptr %3310, align 8, !tbaa !11
  store double %3311, ptr %50, align 8, !tbaa !11
  %3312 = load double, ptr %49, align 8, !tbaa !11
  %3313 = load double, ptr %50, align 8, !tbaa !11
  %3314 = fcmp ole double %3312, %3313
  br i1 %3314, label %3315, label %3317

3315:                                             ; preds = %3261
  %3316 = load double, ptr %49, align 8, !tbaa !11
  br label %3319

3317:                                             ; preds = %3261
  %3318 = load double, ptr %50, align 8, !tbaa !11
  br label %3319

3319:                                             ; preds = %3317, %3315
  %3320 = phi double [ %3316, %3315 ], [ %3318, %3317 ]
  store double %3320, ptr %79, align 8, !tbaa !11
  %3321 = load double, ptr %79, align 8, !tbaa !11
  %3322 = load ptr, ptr %32, align 8, !tbaa !5
  %3323 = load i32, ptr %63, align 4, !tbaa !9
  %3324 = load i32, ptr %62, align 4, !tbaa !9
  %3325 = load i32, ptr %41, align 4, !tbaa !9
  %3326 = mul nsw i32 %3324, %3325
  %3327 = add nsw i32 %3323, %3326
  %3328 = sext i32 %3327 to i64
  %3329 = getelementptr inbounds double, ptr %3322, i64 %3328
  %3330 = load double, ptr %3329, align 8, !tbaa !11
  %3331 = fdiv double %3321, %3330
  %3332 = load double, ptr %55, align 8, !tbaa !11
  %3333 = fmul double %3332, %3331
  store double %3333, ptr %55, align 8, !tbaa !11
  %3334 = load double, ptr %79, align 8, !tbaa !11
  %3335 = load ptr, ptr %32, align 8, !tbaa !5
  %3336 = load i32, ptr %63, align 4, !tbaa !9
  %3337 = load i32, ptr %64, align 4, !tbaa !9
  %3338 = load i32, ptr %41, align 4, !tbaa !9
  %3339 = mul nsw i32 %3337, %3338
  %3340 = add nsw i32 %3336, %3339
  %3341 = sext i32 %3340 to i64
  %3342 = getelementptr inbounds double, ptr %3335, i64 %3341
  %3343 = load double, ptr %3342, align 8, !tbaa !11
  %3344 = fdiv double %3334, %3343
  %3345 = load double, ptr %60, align 8, !tbaa !11
  %3346 = fmul double %3345, %3344
  store double %3346, ptr %60, align 8, !tbaa !11
  %3347 = load ptr, ptr %32, align 8, !tbaa !5
  %3348 = load i32, ptr %64, align 4, !tbaa !9
  %3349 = load i32, ptr %57, align 4, !tbaa !9
  %3350 = load i32, ptr %62, align 4, !tbaa !9
  %3351 = add nsw i32 %3349, %3350
  %3352 = load i32, ptr %41, align 4, !tbaa !9
  %3353 = mul nsw i32 %3351, %3352
  %3354 = add nsw i32 %3348, %3353
  %3355 = sext i32 %3354 to i64
  %3356 = getelementptr inbounds double, ptr %3347, i64 %3355
  %3357 = load double, ptr %3356, align 8, !tbaa !11
  store double %3357, ptr %54, align 8, !tbaa !11
  %3358 = call double @dlarmm_(ptr noundef %54, ptr noundef %60, ptr noundef %55)
  store double %3358, ptr %78, align 8, !tbaa !11
  %3359 = load double, ptr %78, align 8, !tbaa !11
  %3360 = load double, ptr %79, align 8, !tbaa !11
  %3361 = fmul double %3359, %3360
  %3362 = fcmp oeq double %3361, 0.000000e+00
  br i1 %3362, label %3363, label %3434

3363:                                             ; preds = %3319
  %3364 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3364, ptr %45, align 4, !tbaa !9
  %3365 = load double, ptr @c_b19, align 8, !tbaa !11
  %3366 = load i32, ptr %45, align 4, !tbaa !9
  %3367 = call double @dpow_ui(double noundef %3365, i32 noundef %3366)
  %3368 = load double, ptr %87, align 8, !tbaa !11
  %3369 = fmul double %3368, %3367
  store double %3369, ptr %87, align 8, !tbaa !11
  %3370 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3370, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %3371

3371:                                             ; preds = %3418, %3363
  %3372 = load i32, ptr %76, align 4, !tbaa !9
  %3373 = load i32, ptr %45, align 4, !tbaa !9
  %3374 = icmp sle i32 %3372, %3373
  br i1 %3374, label %3375, label %3421

3375:                                             ; preds = %3371
  %3376 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %3376, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %3377

3377:                                             ; preds = %3414, %3375
  %3378 = load i32, ptr %77, align 4, !tbaa !9
  %3379 = load i32, ptr %46, align 4, !tbaa !9
  %3380 = icmp sle i32 %3378, %3379
  br i1 %3380, label %3381, label %3417

3381:                                             ; preds = %3377
  %3382 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3382, ptr %47, align 4, !tbaa !9
  %3383 = load double, ptr %80, align 8, !tbaa !11
  store double %3383, ptr %49, align 8, !tbaa !11
  %3384 = load ptr, ptr %32, align 8, !tbaa !5
  %3385 = load i32, ptr %77, align 4, !tbaa !9
  %3386 = load i32, ptr %76, align 4, !tbaa !9
  %3387 = load i32, ptr %41, align 4, !tbaa !9
  %3388 = mul nsw i32 %3386, %3387
  %3389 = add nsw i32 %3385, %3388
  %3390 = sext i32 %3389 to i64
  %3391 = getelementptr inbounds double, ptr %3384, i64 %3390
  %3392 = load double, ptr %3391, align 8, !tbaa !11
  %3393 = load double, ptr @c_b19, align 8, !tbaa !11
  %3394 = load i32, ptr %47, align 4, !tbaa !9
  %3395 = call double @dpow_ui(double noundef %3393, i32 noundef %3394)
  %3396 = fdiv double %3392, %3395
  store double %3396, ptr %50, align 8, !tbaa !11
  %3397 = load double, ptr %49, align 8, !tbaa !11
  %3398 = load double, ptr %50, align 8, !tbaa !11
  %3399 = fcmp ole double %3397, %3398
  br i1 %3399, label %3400, label %3402

3400:                                             ; preds = %3381
  %3401 = load double, ptr %49, align 8, !tbaa !11
  br label %3404

3402:                                             ; preds = %3381
  %3403 = load double, ptr %50, align 8, !tbaa !11
  br label %3404

3404:                                             ; preds = %3402, %3400
  %3405 = phi double [ %3401, %3400 ], [ %3403, %3402 ]
  %3406 = load ptr, ptr %32, align 8, !tbaa !5
  %3407 = load i32, ptr %77, align 4, !tbaa !9
  %3408 = load i32, ptr %76, align 4, !tbaa !9
  %3409 = load i32, ptr %41, align 4, !tbaa !9
  %3410 = mul nsw i32 %3408, %3409
  %3411 = add nsw i32 %3407, %3410
  %3412 = sext i32 %3411 to i64
  %3413 = getelementptr inbounds double, ptr %3406, i64 %3412
  store double %3405, ptr %3413, align 8, !tbaa !11
  br label %3414

3414:                                             ; preds = %3404
  %3415 = load i32, ptr %77, align 4, !tbaa !9
  %3416 = add nsw i32 %3415, 1
  store i32 %3416, ptr %77, align 4, !tbaa !9
  br label %3377, !llvm.loop !61

3417:                                             ; preds = %3377
  br label %3418

3418:                                             ; preds = %3417
  %3419 = load i32, ptr %76, align 4, !tbaa !9
  %3420 = add nsw i32 %3419, 1
  store i32 %3420, ptr %76, align 4, !tbaa !9
  br label %3371, !llvm.loop !62

3421:                                             ; preds = %3371
  %3422 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3422, ptr %45, align 4, !tbaa !9
  %3423 = load double, ptr @c_b19, align 8, !tbaa !11
  %3424 = load i32, ptr %45, align 4, !tbaa !9
  %3425 = call double @dpow_ui(double noundef %3423, i32 noundef %3424)
  %3426 = load double, ptr %79, align 8, !tbaa !11
  %3427 = fdiv double %3426, %3425
  store double %3427, ptr %79, align 8, !tbaa !11
  %3428 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3428, ptr %45, align 4, !tbaa !9
  %3429 = load double, ptr @c_b19, align 8, !tbaa !11
  %3430 = load i32, ptr %45, align 4, !tbaa !9
  %3431 = call double @dpow_ui(double noundef %3429, i32 noundef %3430)
  %3432 = load double, ptr %78, align 8, !tbaa !11
  %3433 = fdiv double %3432, %3431
  store double %3433, ptr %78, align 8, !tbaa !11
  br label %3434

3434:                                             ; preds = %3421, %3319
  %3435 = load double, ptr %78, align 8, !tbaa !11
  %3436 = load double, ptr %55, align 8, !tbaa !11
  %3437 = fmul double %3436, %3435
  store double %3437, ptr %55, align 8, !tbaa !11
  %3438 = load double, ptr %78, align 8, !tbaa !11
  %3439 = load double, ptr %60, align 8, !tbaa !11
  %3440 = fmul double %3439, %3438
  store double %3440, ptr %60, align 8, !tbaa !11
  %3441 = load double, ptr %79, align 8, !tbaa !11
  %3442 = load ptr, ptr %32, align 8, !tbaa !5
  %3443 = load i32, ptr %63, align 4, !tbaa !9
  %3444 = load i32, ptr %64, align 4, !tbaa !9
  %3445 = load i32, ptr %41, align 4, !tbaa !9
  %3446 = mul nsw i32 %3444, %3445
  %3447 = add nsw i32 %3443, %3446
  %3448 = sext i32 %3447 to i64
  %3449 = getelementptr inbounds double, ptr %3442, i64 %3448
  %3450 = load double, ptr %3449, align 8, !tbaa !11
  %3451 = fdiv double %3441, %3450
  %3452 = load double, ptr %78, align 8, !tbaa !11
  %3453 = fmul double %3451, %3452
  store double %3453, ptr %52, align 8, !tbaa !11
  %3454 = load double, ptr %52, align 8, !tbaa !11
  %3455 = fcmp une double %3454, 1.000000e+00
  br i1 %3455, label %3456, label %3480

3456:                                             ; preds = %3434
  %3457 = load i32, ptr %73, align 4, !tbaa !9
  %3458 = sub nsw i32 %3457, 1
  store i32 %3458, ptr %45, align 4, !tbaa !9
  %3459 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3459, ptr %77, align 4, !tbaa !9
  br label %3460

3460:                                             ; preds = %3476, %3456
  %3461 = load i32, ptr %77, align 4, !tbaa !9
  %3462 = load i32, ptr %45, align 4, !tbaa !9
  %3463 = icmp sle i32 %3461, %3462
  br i1 %3463, label %3464, label %3479

3464:                                             ; preds = %3460
  %3465 = load i32, ptr %71, align 4, !tbaa !9
  %3466 = load i32, ptr %70, align 4, !tbaa !9
  %3467 = sub nsw i32 %3465, %3466
  store i32 %3467, ptr %46, align 4, !tbaa !9
  %3468 = load ptr, ptr %27, align 8, !tbaa !5
  %3469 = load i32, ptr %70, align 4, !tbaa !9
  %3470 = load i32, ptr %77, align 4, !tbaa !9
  %3471 = load i32, ptr %39, align 4, !tbaa !9
  %3472 = mul nsw i32 %3470, %3471
  %3473 = add nsw i32 %3469, %3472
  %3474 = sext i32 %3473 to i64
  %3475 = getelementptr inbounds double, ptr %3468, i64 %3474
  call void @dscal_(ptr noundef %46, ptr noundef %52, ptr noundef %3475, ptr noundef @c__1)
  br label %3476

3476:                                             ; preds = %3464
  %3477 = load i32, ptr %77, align 4, !tbaa !9
  %3478 = add nsw i32 %3477, 1
  store i32 %3478, ptr %77, align 4, !tbaa !9
  br label %3460, !llvm.loop !63

3479:                                             ; preds = %3460
  br label %3480

3480:                                             ; preds = %3479, %3434
  %3481 = load double, ptr %79, align 8, !tbaa !11
  %3482 = load ptr, ptr %32, align 8, !tbaa !5
  %3483 = load i32, ptr %63, align 4, !tbaa !9
  %3484 = load i32, ptr %62, align 4, !tbaa !9
  %3485 = load i32, ptr %41, align 4, !tbaa !9
  %3486 = mul nsw i32 %3484, %3485
  %3487 = add nsw i32 %3483, %3486
  %3488 = sext i32 %3487 to i64
  %3489 = getelementptr inbounds double, ptr %3482, i64 %3488
  %3490 = load double, ptr %3489, align 8, !tbaa !11
  %3491 = fdiv double %3481, %3490
  %3492 = load double, ptr %78, align 8, !tbaa !11
  %3493 = fmul double %3491, %3492
  store double %3493, ptr %52, align 8, !tbaa !11
  %3494 = load double, ptr %52, align 8, !tbaa !11
  %3495 = fcmp une double %3494, 1.000000e+00
  br i1 %3495, label %3496, label %3520

3496:                                             ; preds = %3480
  %3497 = load i32, ptr %69, align 4, !tbaa !9
  %3498 = sub nsw i32 %3497, 1
  store i32 %3498, ptr %45, align 4, !tbaa !9
  %3499 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %3499, ptr %76, align 4, !tbaa !9
  br label %3500

3500:                                             ; preds = %3516, %3496
  %3501 = load i32, ptr %76, align 4, !tbaa !9
  %3502 = load i32, ptr %45, align 4, !tbaa !9
  %3503 = icmp sle i32 %3501, %3502
  br i1 %3503, label %3504, label %3519

3504:                                             ; preds = %3500
  %3505 = load i32, ptr %71, align 4, !tbaa !9
  %3506 = load i32, ptr %70, align 4, !tbaa !9
  %3507 = sub nsw i32 %3505, %3506
  store i32 %3507, ptr %46, align 4, !tbaa !9
  %3508 = load ptr, ptr %27, align 8, !tbaa !5
  %3509 = load i32, ptr %70, align 4, !tbaa !9
  %3510 = load i32, ptr %76, align 4, !tbaa !9
  %3511 = load i32, ptr %39, align 4, !tbaa !9
  %3512 = mul nsw i32 %3510, %3511
  %3513 = add nsw i32 %3509, %3512
  %3514 = sext i32 %3513 to i64
  %3515 = getelementptr inbounds double, ptr %3508, i64 %3514
  call void @dscal_(ptr noundef %46, ptr noundef %52, ptr noundef %3515, ptr noundef @c__1)
  br label %3516

3516:                                             ; preds = %3504
  %3517 = load i32, ptr %76, align 4, !tbaa !9
  %3518 = add nsw i32 %3517, 1
  store i32 %3518, ptr %76, align 4, !tbaa !9
  br label %3500, !llvm.loop !64

3519:                                             ; preds = %3500
  br label %3520

3520:                                             ; preds = %3519, %3480
  %3521 = load double, ptr %79, align 8, !tbaa !11
  %3522 = load double, ptr %78, align 8, !tbaa !11
  %3523 = fmul double %3521, %3522
  %3524 = load ptr, ptr %32, align 8, !tbaa !5
  %3525 = load i32, ptr %63, align 4, !tbaa !9
  %3526 = load i32, ptr %64, align 4, !tbaa !9
  %3527 = load i32, ptr %41, align 4, !tbaa !9
  %3528 = mul nsw i32 %3526, %3527
  %3529 = add nsw i32 %3525, %3528
  %3530 = sext i32 %3529 to i64
  %3531 = getelementptr inbounds double, ptr %3524, i64 %3530
  store double %3523, ptr %3531, align 8, !tbaa !11
  %3532 = load double, ptr %79, align 8, !tbaa !11
  %3533 = load double, ptr %78, align 8, !tbaa !11
  %3534 = fmul double %3532, %3533
  %3535 = load ptr, ptr %32, align 8, !tbaa !5
  %3536 = load i32, ptr %63, align 4, !tbaa !9
  %3537 = load i32, ptr %62, align 4, !tbaa !9
  %3538 = load i32, ptr %41, align 4, !tbaa !9
  %3539 = mul nsw i32 %3537, %3538
  %3540 = add nsw i32 %3536, %3539
  %3541 = sext i32 %3540 to i64
  %3542 = getelementptr inbounds double, ptr %3535, i64 %3541
  store double %3534, ptr %3542, align 8, !tbaa !11
  %3543 = load i32, ptr %71, align 4, !tbaa !9
  %3544 = load i32, ptr %70, align 4, !tbaa !9
  %3545 = sub nsw i32 %3543, %3544
  store i32 %3545, ptr %45, align 4, !tbaa !9
  %3546 = load i32, ptr %69, align 4, !tbaa !9
  %3547 = load i32, ptr %68, align 4, !tbaa !9
  %3548 = sub nsw i32 %3546, %3547
  store i32 %3548, ptr %46, align 4, !tbaa !9
  %3549 = load i32, ptr %73, align 4, !tbaa !9
  %3550 = load i32, ptr %72, align 4, !tbaa !9
  %3551 = sub nsw i32 %3549, %3550
  store i32 %3551, ptr %47, align 4, !tbaa !9
  %3552 = load double, ptr %88, align 8, !tbaa !11
  %3553 = fneg double %3552
  store double %3553, ptr %49, align 8, !tbaa !11
  %3554 = load ptr, ptr %27, align 8, !tbaa !5
  %3555 = load i32, ptr %70, align 4, !tbaa !9
  %3556 = load i32, ptr %72, align 4, !tbaa !9
  %3557 = load i32, ptr %39, align 4, !tbaa !9
  %3558 = mul nsw i32 %3556, %3557
  %3559 = add nsw i32 %3555, %3558
  %3560 = sext i32 %3559 to i64
  %3561 = getelementptr inbounds double, ptr %3554, i64 %3560
  %3562 = load ptr, ptr %28, align 8, !tbaa !5
  %3563 = load ptr, ptr %25, align 8, !tbaa !5
  %3564 = load i32, ptr %68, align 4, !tbaa !9
  %3565 = load i32, ptr %72, align 4, !tbaa !9
  %3566 = load i32, ptr %37, align 4, !tbaa !9
  %3567 = mul nsw i32 %3565, %3566
  %3568 = add nsw i32 %3564, %3567
  %3569 = sext i32 %3568 to i64
  %3570 = getelementptr inbounds double, ptr %3563, i64 %3569
  %3571 = load ptr, ptr %26, align 8, !tbaa !5
  %3572 = load ptr, ptr %27, align 8, !tbaa !5
  %3573 = load i32, ptr %70, align 4, !tbaa !9
  %3574 = load i32, ptr %68, align 4, !tbaa !9
  %3575 = load i32, ptr %39, align 4, !tbaa !9
  %3576 = mul nsw i32 %3574, %3575
  %3577 = add nsw i32 %3573, %3576
  %3578 = sext i32 %3577 to i64
  %3579 = getelementptr inbounds double, ptr %3572, i64 %3578
  %3580 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str, ptr noundef @.str.3, ptr noundef %45, ptr noundef %46, ptr noundef %47, ptr noundef %49, ptr noundef %3561, ptr noundef %3562, ptr noundef %3570, ptr noundef %3571, ptr noundef @c_b32, ptr noundef %3579, ptr noundef %3580)
  br label %3581

3581:                                             ; preds = %3520
  %3582 = load i32, ptr %62, align 4, !tbaa !9
  %3583 = add nsw i32 %3582, 1
  store i32 %3583, ptr %62, align 4, !tbaa !9
  br label %3257, !llvm.loop !65

3584:                                             ; preds = %3257
  br label %3585

3585:                                             ; preds = %3584
  %3586 = load i32, ptr %64, align 4, !tbaa !9
  %3587 = add nsw i32 %3586, -1
  store i32 %3587, ptr %64, align 4, !tbaa !9
  br label %2750, !llvm.loop !66

3588:                                             ; preds = %2750
  br label %3589

3589:                                             ; preds = %3588
  %3590 = load i32, ptr %63, align 4, !tbaa !9
  %3591 = add nsw i32 %3590, 1
  store i32 %3591, ptr %63, align 4, !tbaa !9
  br label %2733, !llvm.loop !67

3592:                                             ; preds = %2733
  br label %4460

3593:                                             ; preds = %2728, %2725
  %3594 = load i32, ptr %81, align 4, !tbaa !9
  %3595 = icmp ne i32 %3594, 0
  br i1 %3595, label %3596, label %4459

3596:                                             ; preds = %3593
  %3597 = load i32, ptr %82, align 4, !tbaa !9
  %3598 = icmp ne i32 %3597, 0
  br i1 %3598, label %4459, label %3599

3599:                                             ; preds = %3596
  %3600 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %3600, ptr %63, align 4, !tbaa !9
  br label %3601

3601:                                             ; preds = %4455, %3599
  %3602 = load i32, ptr %63, align 4, !tbaa !9
  %3603 = icmp sge i32 %3602, 1
  br i1 %3603, label %3604, label %4458

3604:                                             ; preds = %3601
  %3605 = load ptr, ptr %30, align 8, !tbaa !5
  %3606 = load i32, ptr %63, align 4, !tbaa !9
  %3607 = sext i32 %3606 to i64
  %3608 = getelementptr inbounds i32, ptr %3605, i64 %3607
  %3609 = load i32, ptr %3608, align 4, !tbaa !9
  store i32 %3609, ptr %70, align 4, !tbaa !9
  %3610 = load ptr, ptr %30, align 8, !tbaa !5
  %3611 = load i32, ptr %63, align 4, !tbaa !9
  %3612 = add nsw i32 %3611, 1
  %3613 = sext i32 %3612 to i64
  %3614 = getelementptr inbounds i32, ptr %3610, i64 %3613
  %3615 = load i32, ptr %3614, align 4, !tbaa !9
  store i32 %3615, ptr %71, align 4, !tbaa !9
  %3616 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3616, ptr %64, align 4, !tbaa !9
  br label %3617

3617:                                             ; preds = %4451, %3604
  %3618 = load i32, ptr %64, align 4, !tbaa !9
  %3619 = icmp sge i32 %3618, 1
  br i1 %3619, label %3620, label %4454

3620:                                             ; preds = %3617
  %3621 = load ptr, ptr %30, align 8, !tbaa !5
  %3622 = load i32, ptr %75, align 4, !tbaa !9
  %3623 = load i32, ptr %64, align 4, !tbaa !9
  %3624 = add nsw i32 %3622, %3623
  %3625 = sext i32 %3624 to i64
  %3626 = getelementptr inbounds i32, ptr %3621, i64 %3625
  %3627 = load i32, ptr %3626, align 4, !tbaa !9
  store i32 %3627, ptr %72, align 4, !tbaa !9
  %3628 = load ptr, ptr %30, align 8, !tbaa !5
  %3629 = load i32, ptr %75, align 4, !tbaa !9
  %3630 = load i32, ptr %64, align 4, !tbaa !9
  %3631 = add nsw i32 %3629, %3630
  %3632 = add nsw i32 %3631, 1
  %3633 = sext i32 %3632 to i64
  %3634 = getelementptr inbounds i32, ptr %3628, i64 %3633
  %3635 = load i32, ptr %3634, align 4, !tbaa !9
  store i32 %3635, ptr %73, align 4, !tbaa !9
  %3636 = load i32, ptr %71, align 4, !tbaa !9
  %3637 = load i32, ptr %70, align 4, !tbaa !9
  %3638 = sub nsw i32 %3636, %3637
  store i32 %3638, ptr %43, align 4, !tbaa !9
  %3639 = load i32, ptr %73, align 4, !tbaa !9
  %3640 = load i32, ptr %72, align 4, !tbaa !9
  %3641 = sub nsw i32 %3639, %3640
  store i32 %3641, ptr %44, align 4, !tbaa !9
  %3642 = load ptr, ptr %18, align 8, !tbaa !5
  %3643 = load ptr, ptr %19, align 8, !tbaa !5
  %3644 = load ptr, ptr %20, align 8, !tbaa !5
  %3645 = load ptr, ptr %23, align 8, !tbaa !5
  %3646 = load i32, ptr %70, align 4, !tbaa !9
  %3647 = load i32, ptr %70, align 4, !tbaa !9
  %3648 = load i32, ptr %35, align 4, !tbaa !9
  %3649 = mul nsw i32 %3647, %3648
  %3650 = add nsw i32 %3646, %3649
  %3651 = sext i32 %3650 to i64
  %3652 = getelementptr inbounds double, ptr %3645, i64 %3651
  %3653 = load ptr, ptr %24, align 8, !tbaa !5
  %3654 = load ptr, ptr %25, align 8, !tbaa !5
  %3655 = load i32, ptr %72, align 4, !tbaa !9
  %3656 = load i32, ptr %72, align 4, !tbaa !9
  %3657 = load i32, ptr %37, align 4, !tbaa !9
  %3658 = mul nsw i32 %3656, %3657
  %3659 = add nsw i32 %3655, %3658
  %3660 = sext i32 %3659 to i64
  %3661 = getelementptr inbounds double, ptr %3654, i64 %3660
  %3662 = load ptr, ptr %26, align 8, !tbaa !5
  %3663 = load ptr, ptr %27, align 8, !tbaa !5
  %3664 = load i32, ptr %70, align 4, !tbaa !9
  %3665 = load i32, ptr %72, align 4, !tbaa !9
  %3666 = load i32, ptr %39, align 4, !tbaa !9
  %3667 = mul nsw i32 %3665, %3666
  %3668 = add nsw i32 %3664, %3667
  %3669 = sext i32 %3668 to i64
  %3670 = getelementptr inbounds double, ptr %3663, i64 %3669
  %3671 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dtrsyl_(ptr noundef %3642, ptr noundef %3643, ptr noundef %3644, ptr noundef %43, ptr noundef %44, ptr noundef %3652, ptr noundef %3653, ptr noundef %3661, ptr noundef %3662, ptr noundef %3670, ptr noundef %3671, ptr noundef %78, ptr noundef %65)
  %3672 = load ptr, ptr %34, align 8, !tbaa !5
  %3673 = load i32, ptr %3672, align 4, !tbaa !9
  %3674 = load i32, ptr %65, align 4, !tbaa !9
  %3675 = icmp sge i32 %3673, %3674
  br i1 %3675, label %3676, label %3679

3676:                                             ; preds = %3620
  %3677 = load ptr, ptr %34, align 8, !tbaa !5
  %3678 = load i32, ptr %3677, align 4, !tbaa !9
  br label %3681

3679:                                             ; preds = %3620
  %3680 = load i32, ptr %65, align 4, !tbaa !9
  br label %3681

3681:                                             ; preds = %3679, %3676
  %3682 = phi i32 [ %3678, %3676 ], [ %3680, %3679 ]
  %3683 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %3682, ptr %3683, align 4, !tbaa !9
  %3684 = load double, ptr %78, align 8, !tbaa !11
  %3685 = load ptr, ptr %32, align 8, !tbaa !5
  %3686 = load i32, ptr %63, align 4, !tbaa !9
  %3687 = load i32, ptr %64, align 4, !tbaa !9
  %3688 = load i32, ptr %41, align 4, !tbaa !9
  %3689 = mul nsw i32 %3687, %3688
  %3690 = add nsw i32 %3686, %3689
  %3691 = sext i32 %3690 to i64
  %3692 = getelementptr inbounds double, ptr %3685, i64 %3691
  %3693 = load double, ptr %3692, align 8, !tbaa !11
  %3694 = fmul double %3684, %3693
  %3695 = fcmp oeq double %3694, 0.000000e+00
  br i1 %3695, label %3696, label %3760

3696:                                             ; preds = %3681
  %3697 = load double, ptr %78, align 8, !tbaa !11
  %3698 = fcmp oeq double %3697, 0.000000e+00
  br i1 %3698, label %3699, label %3700

3699:                                             ; preds = %3696
  store double 0.000000e+00, ptr %87, align 8, !tbaa !11
  br label %3707

3700:                                             ; preds = %3696
  %3701 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3701, ptr %43, align 4, !tbaa !9
  %3702 = load double, ptr @c_b19, align 8, !tbaa !11
  %3703 = load i32, ptr %43, align 4, !tbaa !9
  %3704 = call double @dpow_ui(double noundef %3702, i32 noundef %3703)
  %3705 = load double, ptr %87, align 8, !tbaa !11
  %3706 = fmul double %3705, %3704
  store double %3706, ptr %87, align 8, !tbaa !11
  br label %3707

3707:                                             ; preds = %3700, %3699
  %3708 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3708, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %3709

3709:                                             ; preds = %3756, %3707
  %3710 = load i32, ptr %76, align 4, !tbaa !9
  %3711 = load i32, ptr %43, align 4, !tbaa !9
  %3712 = icmp sle i32 %3710, %3711
  br i1 %3712, label %3713, label %3759

3713:                                             ; preds = %3709
  %3714 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %3714, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %3715

3715:                                             ; preds = %3752, %3713
  %3716 = load i32, ptr %77, align 4, !tbaa !9
  %3717 = load i32, ptr %44, align 4, !tbaa !9
  %3718 = icmp sle i32 %3716, %3717
  br i1 %3718, label %3719, label %3755

3719:                                             ; preds = %3715
  %3720 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3720, ptr %45, align 4, !tbaa !9
  %3721 = load double, ptr %80, align 8, !tbaa !11
  store double %3721, ptr %49, align 8, !tbaa !11
  %3722 = load ptr, ptr %32, align 8, !tbaa !5
  %3723 = load i32, ptr %77, align 4, !tbaa !9
  %3724 = load i32, ptr %76, align 4, !tbaa !9
  %3725 = load i32, ptr %41, align 4, !tbaa !9
  %3726 = mul nsw i32 %3724, %3725
  %3727 = add nsw i32 %3723, %3726
  %3728 = sext i32 %3727 to i64
  %3729 = getelementptr inbounds double, ptr %3722, i64 %3728
  %3730 = load double, ptr %3729, align 8, !tbaa !11
  %3731 = load double, ptr @c_b19, align 8, !tbaa !11
  %3732 = load i32, ptr %45, align 4, !tbaa !9
  %3733 = call double @dpow_ui(double noundef %3731, i32 noundef %3732)
  %3734 = fdiv double %3730, %3733
  store double %3734, ptr %50, align 8, !tbaa !11
  %3735 = load double, ptr %49, align 8, !tbaa !11
  %3736 = load double, ptr %50, align 8, !tbaa !11
  %3737 = fcmp ole double %3735, %3736
  br i1 %3737, label %3738, label %3740

3738:                                             ; preds = %3719
  %3739 = load double, ptr %49, align 8, !tbaa !11
  br label %3742

3740:                                             ; preds = %3719
  %3741 = load double, ptr %50, align 8, !tbaa !11
  br label %3742

3742:                                             ; preds = %3740, %3738
  %3743 = phi double [ %3739, %3738 ], [ %3741, %3740 ]
  %3744 = load ptr, ptr %32, align 8, !tbaa !5
  %3745 = load i32, ptr %77, align 4, !tbaa !9
  %3746 = load i32, ptr %76, align 4, !tbaa !9
  %3747 = load i32, ptr %41, align 4, !tbaa !9
  %3748 = mul nsw i32 %3746, %3747
  %3749 = add nsw i32 %3745, %3748
  %3750 = sext i32 %3749 to i64
  %3751 = getelementptr inbounds double, ptr %3744, i64 %3750
  store double %3743, ptr %3751, align 8, !tbaa !11
  br label %3752

3752:                                             ; preds = %3742
  %3753 = load i32, ptr %77, align 4, !tbaa !9
  %3754 = add nsw i32 %3753, 1
  store i32 %3754, ptr %77, align 4, !tbaa !9
  br label %3715, !llvm.loop !68

3755:                                             ; preds = %3715
  br label %3756

3756:                                             ; preds = %3755
  %3757 = load i32, ptr %76, align 4, !tbaa !9
  %3758 = add nsw i32 %3757, 1
  store i32 %3758, ptr %76, align 4, !tbaa !9
  br label %3709, !llvm.loop !69

3759:                                             ; preds = %3709
  br label %3760

3760:                                             ; preds = %3759, %3681
  %3761 = load double, ptr %78, align 8, !tbaa !11
  %3762 = load ptr, ptr %32, align 8, !tbaa !5
  %3763 = load i32, ptr %63, align 4, !tbaa !9
  %3764 = load i32, ptr %64, align 4, !tbaa !9
  %3765 = load i32, ptr %41, align 4, !tbaa !9
  %3766 = mul nsw i32 %3764, %3765
  %3767 = add nsw i32 %3763, %3766
  %3768 = sext i32 %3767 to i64
  %3769 = getelementptr inbounds double, ptr %3762, i64 %3768
  %3770 = load double, ptr %3769, align 8, !tbaa !11
  %3771 = fmul double %3761, %3770
  %3772 = load ptr, ptr %32, align 8, !tbaa !5
  %3773 = load i32, ptr %63, align 4, !tbaa !9
  %3774 = load i32, ptr %64, align 4, !tbaa !9
  %3775 = load i32, ptr %41, align 4, !tbaa !9
  %3776 = mul nsw i32 %3774, %3775
  %3777 = add nsw i32 %3773, %3776
  %3778 = sext i32 %3777 to i64
  %3779 = getelementptr inbounds double, ptr %3772, i64 %3778
  store double %3771, ptr %3779, align 8, !tbaa !11
  %3780 = load i32, ptr %71, align 4, !tbaa !9
  %3781 = load i32, ptr %70, align 4, !tbaa !9
  %3782 = sub nsw i32 %3780, %3781
  store i32 %3782, ptr %43, align 4, !tbaa !9
  %3783 = load i32, ptr %73, align 4, !tbaa !9
  %3784 = load i32, ptr %72, align 4, !tbaa !9
  %3785 = sub nsw i32 %3783, %3784
  store i32 %3785, ptr %44, align 4, !tbaa !9
  %3786 = load ptr, ptr %27, align 8, !tbaa !5
  %3787 = load i32, ptr %70, align 4, !tbaa !9
  %3788 = load i32, ptr %72, align 4, !tbaa !9
  %3789 = load i32, ptr %39, align 4, !tbaa !9
  %3790 = mul nsw i32 %3788, %3789
  %3791 = add nsw i32 %3787, %3790
  %3792 = sext i32 %3791 to i64
  %3793 = getelementptr inbounds double, ptr %3786, i64 %3792
  %3794 = load ptr, ptr %28, align 8, !tbaa !5
  %3795 = load ptr, ptr %59, align 8, !tbaa !5
  %3796 = call double @dlange_(ptr noundef @.str.7, ptr noundef %43, ptr noundef %44, ptr noundef %3793, ptr noundef %3794, ptr noundef %3795)
  store double %3796, ptr %60, align 8, !tbaa !11
  %3797 = load i32, ptr %63, align 4, !tbaa !9
  %3798 = sub nsw i32 %3797, 1
  store i32 %3798, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %3799

3799:                                             ; preds = %4117, %3760
  %3800 = load i32, ptr %61, align 4, !tbaa !9
  %3801 = load i32, ptr %43, align 4, !tbaa !9
  %3802 = icmp sle i32 %3800, %3801
  br i1 %3802, label %3803, label %4120

3803:                                             ; preds = %3799
  %3804 = load ptr, ptr %30, align 8, !tbaa !5
  %3805 = load i32, ptr %61, align 4, !tbaa !9
  %3806 = sext i32 %3805 to i64
  %3807 = getelementptr inbounds i32, ptr %3804, i64 %3806
  %3808 = load i32, ptr %3807, align 4, !tbaa !9
  store i32 %3808, ptr %66, align 4, !tbaa !9
  %3809 = load ptr, ptr %30, align 8, !tbaa !5
  %3810 = load i32, ptr %61, align 4, !tbaa !9
  %3811 = add nsw i32 %3810, 1
  %3812 = sext i32 %3811 to i64
  %3813 = getelementptr inbounds i32, ptr %3809, i64 %3812
  %3814 = load i32, ptr %3813, align 4, !tbaa !9
  store i32 %3814, ptr %67, align 4, !tbaa !9
  %3815 = load i32, ptr %67, align 4, !tbaa !9
  %3816 = load i32, ptr %66, align 4, !tbaa !9
  %3817 = sub nsw i32 %3815, %3816
  store i32 %3817, ptr %44, align 4, !tbaa !9
  %3818 = load i32, ptr %73, align 4, !tbaa !9
  %3819 = load i32, ptr %72, align 4, !tbaa !9
  %3820 = sub nsw i32 %3818, %3819
  store i32 %3820, ptr %45, align 4, !tbaa !9
  %3821 = load ptr, ptr %27, align 8, !tbaa !5
  %3822 = load i32, ptr %66, align 4, !tbaa !9
  %3823 = load i32, ptr %72, align 4, !tbaa !9
  %3824 = load i32, ptr %39, align 4, !tbaa !9
  %3825 = mul nsw i32 %3823, %3824
  %3826 = add nsw i32 %3822, %3825
  %3827 = sext i32 %3826 to i64
  %3828 = getelementptr inbounds double, ptr %3821, i64 %3827
  %3829 = load ptr, ptr %28, align 8, !tbaa !5
  %3830 = load ptr, ptr %59, align 8, !tbaa !5
  %3831 = call double @dlange_(ptr noundef @.str.7, ptr noundef %44, ptr noundef %45, ptr noundef %3828, ptr noundef %3829, ptr noundef %3830)
  store double %3831, ptr %55, align 8, !tbaa !11
  %3832 = load ptr, ptr %32, align 8, !tbaa !5
  %3833 = load i32, ptr %61, align 4, !tbaa !9
  %3834 = load i32, ptr %64, align 4, !tbaa !9
  %3835 = load i32, ptr %41, align 4, !tbaa !9
  %3836 = mul nsw i32 %3834, %3835
  %3837 = add nsw i32 %3833, %3836
  %3838 = sext i32 %3837 to i64
  %3839 = getelementptr inbounds double, ptr %3832, i64 %3838
  %3840 = load double, ptr %3839, align 8, !tbaa !11
  store double %3840, ptr %49, align 8, !tbaa !11
  %3841 = load ptr, ptr %32, align 8, !tbaa !5
  %3842 = load i32, ptr %63, align 4, !tbaa !9
  %3843 = load i32, ptr %64, align 4, !tbaa !9
  %3844 = load i32, ptr %41, align 4, !tbaa !9
  %3845 = mul nsw i32 %3843, %3844
  %3846 = add nsw i32 %3842, %3845
  %3847 = sext i32 %3846 to i64
  %3848 = getelementptr inbounds double, ptr %3841, i64 %3847
  %3849 = load double, ptr %3848, align 8, !tbaa !11
  store double %3849, ptr %50, align 8, !tbaa !11
  %3850 = load double, ptr %49, align 8, !tbaa !11
  %3851 = load double, ptr %50, align 8, !tbaa !11
  %3852 = fcmp ole double %3850, %3851
  br i1 %3852, label %3853, label %3855

3853:                                             ; preds = %3803
  %3854 = load double, ptr %49, align 8, !tbaa !11
  br label %3857

3855:                                             ; preds = %3803
  %3856 = load double, ptr %50, align 8, !tbaa !11
  br label %3857

3857:                                             ; preds = %3855, %3853
  %3858 = phi double [ %3854, %3853 ], [ %3856, %3855 ]
  store double %3858, ptr %79, align 8, !tbaa !11
  %3859 = load double, ptr %79, align 8, !tbaa !11
  %3860 = load ptr, ptr %32, align 8, !tbaa !5
  %3861 = load i32, ptr %61, align 4, !tbaa !9
  %3862 = load i32, ptr %64, align 4, !tbaa !9
  %3863 = load i32, ptr %41, align 4, !tbaa !9
  %3864 = mul nsw i32 %3862, %3863
  %3865 = add nsw i32 %3861, %3864
  %3866 = sext i32 %3865 to i64
  %3867 = getelementptr inbounds double, ptr %3860, i64 %3866
  %3868 = load double, ptr %3867, align 8, !tbaa !11
  %3869 = fdiv double %3859, %3868
  %3870 = load double, ptr %55, align 8, !tbaa !11
  %3871 = fmul double %3870, %3869
  store double %3871, ptr %55, align 8, !tbaa !11
  %3872 = load double, ptr %79, align 8, !tbaa !11
  %3873 = load ptr, ptr %32, align 8, !tbaa !5
  %3874 = load i32, ptr %63, align 4, !tbaa !9
  %3875 = load i32, ptr %64, align 4, !tbaa !9
  %3876 = load i32, ptr %41, align 4, !tbaa !9
  %3877 = mul nsw i32 %3875, %3876
  %3878 = add nsw i32 %3874, %3877
  %3879 = sext i32 %3878 to i64
  %3880 = getelementptr inbounds double, ptr %3873, i64 %3879
  %3881 = load double, ptr %3880, align 8, !tbaa !11
  %3882 = fdiv double %3872, %3881
  %3883 = load double, ptr %60, align 8, !tbaa !11
  %3884 = fmul double %3883, %3882
  store double %3884, ptr %60, align 8, !tbaa !11
  %3885 = load ptr, ptr %32, align 8, !tbaa !5
  %3886 = load i32, ptr %61, align 4, !tbaa !9
  %3887 = load i32, ptr %56, align 4, !tbaa !9
  %3888 = load i32, ptr %63, align 4, !tbaa !9
  %3889 = add nsw i32 %3887, %3888
  %3890 = load i32, ptr %41, align 4, !tbaa !9
  %3891 = mul nsw i32 %3889, %3890
  %3892 = add nsw i32 %3886, %3891
  %3893 = sext i32 %3892 to i64
  %3894 = getelementptr inbounds double, ptr %3885, i64 %3893
  %3895 = load double, ptr %3894, align 8, !tbaa !11
  store double %3895, ptr %53, align 8, !tbaa !11
  %3896 = call double @dlarmm_(ptr noundef %53, ptr noundef %60, ptr noundef %55)
  store double %3896, ptr %78, align 8, !tbaa !11
  %3897 = load double, ptr %78, align 8, !tbaa !11
  %3898 = load double, ptr %79, align 8, !tbaa !11
  %3899 = fmul double %3897, %3898
  %3900 = fcmp oeq double %3899, 0.000000e+00
  br i1 %3900, label %3901, label %3972

3901:                                             ; preds = %3857
  %3902 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3902, ptr %44, align 4, !tbaa !9
  %3903 = load double, ptr @c_b19, align 8, !tbaa !11
  %3904 = load i32, ptr %44, align 4, !tbaa !9
  %3905 = call double @dpow_ui(double noundef %3903, i32 noundef %3904)
  %3906 = load double, ptr %87, align 8, !tbaa !11
  %3907 = fmul double %3906, %3905
  store double %3907, ptr %87, align 8, !tbaa !11
  %3908 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3908, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %3909

3909:                                             ; preds = %3956, %3901
  %3910 = load i32, ptr %76, align 4, !tbaa !9
  %3911 = load i32, ptr %44, align 4, !tbaa !9
  %3912 = icmp sle i32 %3910, %3911
  br i1 %3912, label %3913, label %3959

3913:                                             ; preds = %3909
  %3914 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %3914, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %3915

3915:                                             ; preds = %3952, %3913
  %3916 = load i32, ptr %77, align 4, !tbaa !9
  %3917 = load i32, ptr %45, align 4, !tbaa !9
  %3918 = icmp sle i32 %3916, %3917
  br i1 %3918, label %3919, label %3955

3919:                                             ; preds = %3915
  %3920 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3920, ptr %46, align 4, !tbaa !9
  %3921 = load double, ptr %80, align 8, !tbaa !11
  store double %3921, ptr %49, align 8, !tbaa !11
  %3922 = load ptr, ptr %32, align 8, !tbaa !5
  %3923 = load i32, ptr %77, align 4, !tbaa !9
  %3924 = load i32, ptr %76, align 4, !tbaa !9
  %3925 = load i32, ptr %41, align 4, !tbaa !9
  %3926 = mul nsw i32 %3924, %3925
  %3927 = add nsw i32 %3923, %3926
  %3928 = sext i32 %3927 to i64
  %3929 = getelementptr inbounds double, ptr %3922, i64 %3928
  %3930 = load double, ptr %3929, align 8, !tbaa !11
  %3931 = load double, ptr @c_b19, align 8, !tbaa !11
  %3932 = load i32, ptr %46, align 4, !tbaa !9
  %3933 = call double @dpow_ui(double noundef %3931, i32 noundef %3932)
  %3934 = fdiv double %3930, %3933
  store double %3934, ptr %50, align 8, !tbaa !11
  %3935 = load double, ptr %49, align 8, !tbaa !11
  %3936 = load double, ptr %50, align 8, !tbaa !11
  %3937 = fcmp ole double %3935, %3936
  br i1 %3937, label %3938, label %3940

3938:                                             ; preds = %3919
  %3939 = load double, ptr %49, align 8, !tbaa !11
  br label %3942

3940:                                             ; preds = %3919
  %3941 = load double, ptr %50, align 8, !tbaa !11
  br label %3942

3942:                                             ; preds = %3940, %3938
  %3943 = phi double [ %3939, %3938 ], [ %3941, %3940 ]
  %3944 = load ptr, ptr %32, align 8, !tbaa !5
  %3945 = load i32, ptr %77, align 4, !tbaa !9
  %3946 = load i32, ptr %76, align 4, !tbaa !9
  %3947 = load i32, ptr %41, align 4, !tbaa !9
  %3948 = mul nsw i32 %3946, %3947
  %3949 = add nsw i32 %3945, %3948
  %3950 = sext i32 %3949 to i64
  %3951 = getelementptr inbounds double, ptr %3944, i64 %3950
  store double %3943, ptr %3951, align 8, !tbaa !11
  br label %3952

3952:                                             ; preds = %3942
  %3953 = load i32, ptr %77, align 4, !tbaa !9
  %3954 = add nsw i32 %3953, 1
  store i32 %3954, ptr %77, align 4, !tbaa !9
  br label %3915, !llvm.loop !70

3955:                                             ; preds = %3915
  br label %3956

3956:                                             ; preds = %3955
  %3957 = load i32, ptr %76, align 4, !tbaa !9
  %3958 = add nsw i32 %3957, 1
  store i32 %3958, ptr %76, align 4, !tbaa !9
  br label %3909, !llvm.loop !71

3959:                                             ; preds = %3909
  %3960 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3960, ptr %44, align 4, !tbaa !9
  %3961 = load double, ptr @c_b19, align 8, !tbaa !11
  %3962 = load i32, ptr %44, align 4, !tbaa !9
  %3963 = call double @dpow_ui(double noundef %3961, i32 noundef %3962)
  %3964 = load double, ptr %79, align 8, !tbaa !11
  %3965 = fdiv double %3964, %3963
  store double %3965, ptr %79, align 8, !tbaa !11
  %3966 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %3966, ptr %44, align 4, !tbaa !9
  %3967 = load double, ptr @c_b19, align 8, !tbaa !11
  %3968 = load i32, ptr %44, align 4, !tbaa !9
  %3969 = call double @dpow_ui(double noundef %3967, i32 noundef %3968)
  %3970 = load double, ptr %78, align 8, !tbaa !11
  %3971 = fdiv double %3970, %3969
  store double %3971, ptr %78, align 8, !tbaa !11
  br label %3972

3972:                                             ; preds = %3959, %3857
  %3973 = load double, ptr %78, align 8, !tbaa !11
  %3974 = load double, ptr %55, align 8, !tbaa !11
  %3975 = fmul double %3974, %3973
  store double %3975, ptr %55, align 8, !tbaa !11
  %3976 = load double, ptr %78, align 8, !tbaa !11
  %3977 = load double, ptr %60, align 8, !tbaa !11
  %3978 = fmul double %3977, %3976
  store double %3978, ptr %60, align 8, !tbaa !11
  %3979 = load double, ptr %79, align 8, !tbaa !11
  %3980 = load ptr, ptr %32, align 8, !tbaa !5
  %3981 = load i32, ptr %63, align 4, !tbaa !9
  %3982 = load i32, ptr %64, align 4, !tbaa !9
  %3983 = load i32, ptr %41, align 4, !tbaa !9
  %3984 = mul nsw i32 %3982, %3983
  %3985 = add nsw i32 %3981, %3984
  %3986 = sext i32 %3985 to i64
  %3987 = getelementptr inbounds double, ptr %3980, i64 %3986
  %3988 = load double, ptr %3987, align 8, !tbaa !11
  %3989 = fdiv double %3979, %3988
  %3990 = load double, ptr %78, align 8, !tbaa !11
  %3991 = fmul double %3989, %3990
  store double %3991, ptr %52, align 8, !tbaa !11
  %3992 = load double, ptr %52, align 8, !tbaa !11
  %3993 = fcmp une double %3992, 1.000000e+00
  br i1 %3993, label %3994, label %4018

3994:                                             ; preds = %3972
  %3995 = load i32, ptr %73, align 4, !tbaa !9
  %3996 = sub nsw i32 %3995, 1
  store i32 %3996, ptr %44, align 4, !tbaa !9
  %3997 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3997, ptr %77, align 4, !tbaa !9
  br label %3998

3998:                                             ; preds = %4014, %3994
  %3999 = load i32, ptr %77, align 4, !tbaa !9
  %4000 = load i32, ptr %44, align 4, !tbaa !9
  %4001 = icmp sle i32 %3999, %4000
  br i1 %4001, label %4002, label %4017

4002:                                             ; preds = %3998
  %4003 = load i32, ptr %71, align 4, !tbaa !9
  %4004 = load i32, ptr %70, align 4, !tbaa !9
  %4005 = sub nsw i32 %4003, %4004
  store i32 %4005, ptr %45, align 4, !tbaa !9
  %4006 = load ptr, ptr %27, align 8, !tbaa !5
  %4007 = load i32, ptr %70, align 4, !tbaa !9
  %4008 = load i32, ptr %77, align 4, !tbaa !9
  %4009 = load i32, ptr %39, align 4, !tbaa !9
  %4010 = mul nsw i32 %4008, %4009
  %4011 = add nsw i32 %4007, %4010
  %4012 = sext i32 %4011 to i64
  %4013 = getelementptr inbounds double, ptr %4006, i64 %4012
  call void @dscal_(ptr noundef %45, ptr noundef %52, ptr noundef %4013, ptr noundef @c__1)
  br label %4014

4014:                                             ; preds = %4002
  %4015 = load i32, ptr %77, align 4, !tbaa !9
  %4016 = add nsw i32 %4015, 1
  store i32 %4016, ptr %77, align 4, !tbaa !9
  br label %3998, !llvm.loop !72

4017:                                             ; preds = %3998
  br label %4018

4018:                                             ; preds = %4017, %3972
  %4019 = load double, ptr %79, align 8, !tbaa !11
  %4020 = load ptr, ptr %32, align 8, !tbaa !5
  %4021 = load i32, ptr %61, align 4, !tbaa !9
  %4022 = load i32, ptr %64, align 4, !tbaa !9
  %4023 = load i32, ptr %41, align 4, !tbaa !9
  %4024 = mul nsw i32 %4022, %4023
  %4025 = add nsw i32 %4021, %4024
  %4026 = sext i32 %4025 to i64
  %4027 = getelementptr inbounds double, ptr %4020, i64 %4026
  %4028 = load double, ptr %4027, align 8, !tbaa !11
  %4029 = fdiv double %4019, %4028
  %4030 = load double, ptr %78, align 8, !tbaa !11
  %4031 = fmul double %4029, %4030
  store double %4031, ptr %52, align 8, !tbaa !11
  %4032 = load double, ptr %52, align 8, !tbaa !11
  %4033 = fcmp une double %4032, 1.000000e+00
  br i1 %4033, label %4034, label %4058

4034:                                             ; preds = %4018
  %4035 = load i32, ptr %73, align 4, !tbaa !9
  %4036 = sub nsw i32 %4035, 1
  store i32 %4036, ptr %44, align 4, !tbaa !9
  %4037 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %4037, ptr %77, align 4, !tbaa !9
  br label %4038

4038:                                             ; preds = %4054, %4034
  %4039 = load i32, ptr %77, align 4, !tbaa !9
  %4040 = load i32, ptr %44, align 4, !tbaa !9
  %4041 = icmp sle i32 %4039, %4040
  br i1 %4041, label %4042, label %4057

4042:                                             ; preds = %4038
  %4043 = load i32, ptr %67, align 4, !tbaa !9
  %4044 = load i32, ptr %66, align 4, !tbaa !9
  %4045 = sub nsw i32 %4043, %4044
  store i32 %4045, ptr %45, align 4, !tbaa !9
  %4046 = load ptr, ptr %27, align 8, !tbaa !5
  %4047 = load i32, ptr %66, align 4, !tbaa !9
  %4048 = load i32, ptr %77, align 4, !tbaa !9
  %4049 = load i32, ptr %39, align 4, !tbaa !9
  %4050 = mul nsw i32 %4048, %4049
  %4051 = add nsw i32 %4047, %4050
  %4052 = sext i32 %4051 to i64
  %4053 = getelementptr inbounds double, ptr %4046, i64 %4052
  call void @dscal_(ptr noundef %45, ptr noundef %52, ptr noundef %4053, ptr noundef @c__1)
  br label %4054

4054:                                             ; preds = %4042
  %4055 = load i32, ptr %77, align 4, !tbaa !9
  %4056 = add nsw i32 %4055, 1
  store i32 %4056, ptr %77, align 4, !tbaa !9
  br label %4038, !llvm.loop !73

4057:                                             ; preds = %4038
  br label %4058

4058:                                             ; preds = %4057, %4018
  %4059 = load double, ptr %79, align 8, !tbaa !11
  %4060 = load double, ptr %78, align 8, !tbaa !11
  %4061 = fmul double %4059, %4060
  %4062 = load ptr, ptr %32, align 8, !tbaa !5
  %4063 = load i32, ptr %63, align 4, !tbaa !9
  %4064 = load i32, ptr %64, align 4, !tbaa !9
  %4065 = load i32, ptr %41, align 4, !tbaa !9
  %4066 = mul nsw i32 %4064, %4065
  %4067 = add nsw i32 %4063, %4066
  %4068 = sext i32 %4067 to i64
  %4069 = getelementptr inbounds double, ptr %4062, i64 %4068
  store double %4061, ptr %4069, align 8, !tbaa !11
  %4070 = load double, ptr %79, align 8, !tbaa !11
  %4071 = load double, ptr %78, align 8, !tbaa !11
  %4072 = fmul double %4070, %4071
  %4073 = load ptr, ptr %32, align 8, !tbaa !5
  %4074 = load i32, ptr %61, align 4, !tbaa !9
  %4075 = load i32, ptr %64, align 4, !tbaa !9
  %4076 = load i32, ptr %41, align 4, !tbaa !9
  %4077 = mul nsw i32 %4075, %4076
  %4078 = add nsw i32 %4074, %4077
  %4079 = sext i32 %4078 to i64
  %4080 = getelementptr inbounds double, ptr %4073, i64 %4079
  store double %4072, ptr %4080, align 8, !tbaa !11
  %4081 = load i32, ptr %67, align 4, !tbaa !9
  %4082 = load i32, ptr %66, align 4, !tbaa !9
  %4083 = sub nsw i32 %4081, %4082
  store i32 %4083, ptr %44, align 4, !tbaa !9
  %4084 = load i32, ptr %73, align 4, !tbaa !9
  %4085 = load i32, ptr %72, align 4, !tbaa !9
  %4086 = sub nsw i32 %4084, %4085
  store i32 %4086, ptr %45, align 4, !tbaa !9
  %4087 = load i32, ptr %71, align 4, !tbaa !9
  %4088 = load i32, ptr %70, align 4, !tbaa !9
  %4089 = sub nsw i32 %4087, %4088
  store i32 %4089, ptr %46, align 4, !tbaa !9
  %4090 = load ptr, ptr %23, align 8, !tbaa !5
  %4091 = load i32, ptr %66, align 4, !tbaa !9
  %4092 = load i32, ptr %70, align 4, !tbaa !9
  %4093 = load i32, ptr %35, align 4, !tbaa !9
  %4094 = mul nsw i32 %4092, %4093
  %4095 = add nsw i32 %4091, %4094
  %4096 = sext i32 %4095 to i64
  %4097 = getelementptr inbounds double, ptr %4090, i64 %4096
  %4098 = load ptr, ptr %24, align 8, !tbaa !5
  %4099 = load ptr, ptr %27, align 8, !tbaa !5
  %4100 = load i32, ptr %70, align 4, !tbaa !9
  %4101 = load i32, ptr %72, align 4, !tbaa !9
  %4102 = load i32, ptr %39, align 4, !tbaa !9
  %4103 = mul nsw i32 %4101, %4102
  %4104 = add nsw i32 %4100, %4103
  %4105 = sext i32 %4104 to i64
  %4106 = getelementptr inbounds double, ptr %4099, i64 %4105
  %4107 = load ptr, ptr %28, align 8, !tbaa !5
  %4108 = load ptr, ptr %27, align 8, !tbaa !5
  %4109 = load i32, ptr %66, align 4, !tbaa !9
  %4110 = load i32, ptr %72, align 4, !tbaa !9
  %4111 = load i32, ptr %39, align 4, !tbaa !9
  %4112 = mul nsw i32 %4110, %4111
  %4113 = add nsw i32 %4109, %4112
  %4114 = sext i32 %4113 to i64
  %4115 = getelementptr inbounds double, ptr %4108, i64 %4114
  %4116 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %44, ptr noundef %45, ptr noundef %46, ptr noundef @c_b31, ptr noundef %4097, ptr noundef %4098, ptr noundef %4106, ptr noundef %4107, ptr noundef @c_b32, ptr noundef %4115, ptr noundef %4116)
  br label %4117

4117:                                             ; preds = %4058
  %4118 = load i32, ptr %61, align 4, !tbaa !9
  %4119 = add nsw i32 %4118, 1
  store i32 %4119, ptr %61, align 4, !tbaa !9
  br label %3799, !llvm.loop !74

4120:                                             ; preds = %3799
  %4121 = load i32, ptr %64, align 4, !tbaa !9
  %4122 = sub nsw i32 %4121, 1
  store i32 %4122, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %4123

4123:                                             ; preds = %4447, %4120
  %4124 = load i32, ptr %62, align 4, !tbaa !9
  %4125 = load i32, ptr %43, align 4, !tbaa !9
  %4126 = icmp sle i32 %4124, %4125
  br i1 %4126, label %4127, label %4450

4127:                                             ; preds = %4123
  %4128 = load ptr, ptr %30, align 8, !tbaa !5
  %4129 = load i32, ptr %75, align 4, !tbaa !9
  %4130 = load i32, ptr %62, align 4, !tbaa !9
  %4131 = add nsw i32 %4129, %4130
  %4132 = sext i32 %4131 to i64
  %4133 = getelementptr inbounds i32, ptr %4128, i64 %4132
  %4134 = load i32, ptr %4133, align 4, !tbaa !9
  store i32 %4134, ptr %68, align 4, !tbaa !9
  %4135 = load ptr, ptr %30, align 8, !tbaa !5
  %4136 = load i32, ptr %75, align 4, !tbaa !9
  %4137 = load i32, ptr %62, align 4, !tbaa !9
  %4138 = add nsw i32 %4136, %4137
  %4139 = add nsw i32 %4138, 1
  %4140 = sext i32 %4139 to i64
  %4141 = getelementptr inbounds i32, ptr %4135, i64 %4140
  %4142 = load i32, ptr %4141, align 4, !tbaa !9
  store i32 %4142, ptr %69, align 4, !tbaa !9
  %4143 = load i32, ptr %71, align 4, !tbaa !9
  %4144 = load i32, ptr %70, align 4, !tbaa !9
  %4145 = sub nsw i32 %4143, %4144
  store i32 %4145, ptr %44, align 4, !tbaa !9
  %4146 = load i32, ptr %69, align 4, !tbaa !9
  %4147 = load i32, ptr %68, align 4, !tbaa !9
  %4148 = sub nsw i32 %4146, %4147
  store i32 %4148, ptr %45, align 4, !tbaa !9
  %4149 = load ptr, ptr %27, align 8, !tbaa !5
  %4150 = load i32, ptr %70, align 4, !tbaa !9
  %4151 = load i32, ptr %68, align 4, !tbaa !9
  %4152 = load i32, ptr %39, align 4, !tbaa !9
  %4153 = mul nsw i32 %4151, %4152
  %4154 = add nsw i32 %4150, %4153
  %4155 = sext i32 %4154 to i64
  %4156 = getelementptr inbounds double, ptr %4149, i64 %4155
  %4157 = load ptr, ptr %28, align 8, !tbaa !5
  %4158 = load ptr, ptr %59, align 8, !tbaa !5
  %4159 = call double @dlange_(ptr noundef @.str.7, ptr noundef %44, ptr noundef %45, ptr noundef %4156, ptr noundef %4157, ptr noundef %4158)
  store double %4159, ptr %55, align 8, !tbaa !11
  %4160 = load ptr, ptr %32, align 8, !tbaa !5
  %4161 = load i32, ptr %63, align 4, !tbaa !9
  %4162 = load i32, ptr %62, align 4, !tbaa !9
  %4163 = load i32, ptr %41, align 4, !tbaa !9
  %4164 = mul nsw i32 %4162, %4163
  %4165 = add nsw i32 %4161, %4164
  %4166 = sext i32 %4165 to i64
  %4167 = getelementptr inbounds double, ptr %4160, i64 %4166
  %4168 = load double, ptr %4167, align 8, !tbaa !11
  store double %4168, ptr %49, align 8, !tbaa !11
  %4169 = load ptr, ptr %32, align 8, !tbaa !5
  %4170 = load i32, ptr %63, align 4, !tbaa !9
  %4171 = load i32, ptr %64, align 4, !tbaa !9
  %4172 = load i32, ptr %41, align 4, !tbaa !9
  %4173 = mul nsw i32 %4171, %4172
  %4174 = add nsw i32 %4170, %4173
  %4175 = sext i32 %4174 to i64
  %4176 = getelementptr inbounds double, ptr %4169, i64 %4175
  %4177 = load double, ptr %4176, align 8, !tbaa !11
  store double %4177, ptr %50, align 8, !tbaa !11
  %4178 = load double, ptr %49, align 8, !tbaa !11
  %4179 = load double, ptr %50, align 8, !tbaa !11
  %4180 = fcmp ole double %4178, %4179
  br i1 %4180, label %4181, label %4183

4181:                                             ; preds = %4127
  %4182 = load double, ptr %49, align 8, !tbaa !11
  br label %4185

4183:                                             ; preds = %4127
  %4184 = load double, ptr %50, align 8, !tbaa !11
  br label %4185

4185:                                             ; preds = %4183, %4181
  %4186 = phi double [ %4182, %4181 ], [ %4184, %4183 ]
  store double %4186, ptr %79, align 8, !tbaa !11
  %4187 = load double, ptr %79, align 8, !tbaa !11
  %4188 = load ptr, ptr %32, align 8, !tbaa !5
  %4189 = load i32, ptr %63, align 4, !tbaa !9
  %4190 = load i32, ptr %62, align 4, !tbaa !9
  %4191 = load i32, ptr %41, align 4, !tbaa !9
  %4192 = mul nsw i32 %4190, %4191
  %4193 = add nsw i32 %4189, %4192
  %4194 = sext i32 %4193 to i64
  %4195 = getelementptr inbounds double, ptr %4188, i64 %4194
  %4196 = load double, ptr %4195, align 8, !tbaa !11
  %4197 = fdiv double %4187, %4196
  %4198 = load double, ptr %55, align 8, !tbaa !11
  %4199 = fmul double %4198, %4197
  store double %4199, ptr %55, align 8, !tbaa !11
  %4200 = load double, ptr %79, align 8, !tbaa !11
  %4201 = load ptr, ptr %32, align 8, !tbaa !5
  %4202 = load i32, ptr %63, align 4, !tbaa !9
  %4203 = load i32, ptr %64, align 4, !tbaa !9
  %4204 = load i32, ptr %41, align 4, !tbaa !9
  %4205 = mul nsw i32 %4203, %4204
  %4206 = add nsw i32 %4202, %4205
  %4207 = sext i32 %4206 to i64
  %4208 = getelementptr inbounds double, ptr %4201, i64 %4207
  %4209 = load double, ptr %4208, align 8, !tbaa !11
  %4210 = fdiv double %4200, %4209
  %4211 = load double, ptr %60, align 8, !tbaa !11
  %4212 = fmul double %4211, %4210
  store double %4212, ptr %60, align 8, !tbaa !11
  %4213 = load ptr, ptr %32, align 8, !tbaa !5
  %4214 = load i32, ptr %64, align 4, !tbaa !9
  %4215 = load i32, ptr %57, align 4, !tbaa !9
  %4216 = load i32, ptr %62, align 4, !tbaa !9
  %4217 = add nsw i32 %4215, %4216
  %4218 = load i32, ptr %41, align 4, !tbaa !9
  %4219 = mul nsw i32 %4217, %4218
  %4220 = add nsw i32 %4214, %4219
  %4221 = sext i32 %4220 to i64
  %4222 = getelementptr inbounds double, ptr %4213, i64 %4221
  %4223 = load double, ptr %4222, align 8, !tbaa !11
  store double %4223, ptr %54, align 8, !tbaa !11
  %4224 = call double @dlarmm_(ptr noundef %54, ptr noundef %60, ptr noundef %55)
  store double %4224, ptr %78, align 8, !tbaa !11
  %4225 = load double, ptr %78, align 8, !tbaa !11
  %4226 = load double, ptr %79, align 8, !tbaa !11
  %4227 = fmul double %4225, %4226
  %4228 = fcmp oeq double %4227, 0.000000e+00
  br i1 %4228, label %4229, label %4300

4229:                                             ; preds = %4185
  %4230 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %4230, ptr %44, align 4, !tbaa !9
  %4231 = load double, ptr @c_b19, align 8, !tbaa !11
  %4232 = load i32, ptr %44, align 4, !tbaa !9
  %4233 = call double @dpow_ui(double noundef %4231, i32 noundef %4232)
  %4234 = load double, ptr %87, align 8, !tbaa !11
  %4235 = fmul double %4234, %4233
  store double %4235, ptr %87, align 8, !tbaa !11
  %4236 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4236, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %4237

4237:                                             ; preds = %4284, %4229
  %4238 = load i32, ptr %76, align 4, !tbaa !9
  %4239 = load i32, ptr %44, align 4, !tbaa !9
  %4240 = icmp sle i32 %4238, %4239
  br i1 %4240, label %4241, label %4287

4241:                                             ; preds = %4237
  %4242 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %4242, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %4243

4243:                                             ; preds = %4280, %4241
  %4244 = load i32, ptr %77, align 4, !tbaa !9
  %4245 = load i32, ptr %45, align 4, !tbaa !9
  %4246 = icmp sle i32 %4244, %4245
  br i1 %4246, label %4247, label %4283

4247:                                             ; preds = %4243
  %4248 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %4248, ptr %46, align 4, !tbaa !9
  %4249 = load double, ptr %80, align 8, !tbaa !11
  store double %4249, ptr %49, align 8, !tbaa !11
  %4250 = load ptr, ptr %32, align 8, !tbaa !5
  %4251 = load i32, ptr %77, align 4, !tbaa !9
  %4252 = load i32, ptr %76, align 4, !tbaa !9
  %4253 = load i32, ptr %41, align 4, !tbaa !9
  %4254 = mul nsw i32 %4252, %4253
  %4255 = add nsw i32 %4251, %4254
  %4256 = sext i32 %4255 to i64
  %4257 = getelementptr inbounds double, ptr %4250, i64 %4256
  %4258 = load double, ptr %4257, align 8, !tbaa !11
  %4259 = load double, ptr @c_b19, align 8, !tbaa !11
  %4260 = load i32, ptr %46, align 4, !tbaa !9
  %4261 = call double @dpow_ui(double noundef %4259, i32 noundef %4260)
  %4262 = fdiv double %4258, %4261
  store double %4262, ptr %50, align 8, !tbaa !11
  %4263 = load double, ptr %49, align 8, !tbaa !11
  %4264 = load double, ptr %50, align 8, !tbaa !11
  %4265 = fcmp ole double %4263, %4264
  br i1 %4265, label %4266, label %4268

4266:                                             ; preds = %4247
  %4267 = load double, ptr %49, align 8, !tbaa !11
  br label %4270

4268:                                             ; preds = %4247
  %4269 = load double, ptr %50, align 8, !tbaa !11
  br label %4270

4270:                                             ; preds = %4268, %4266
  %4271 = phi double [ %4267, %4266 ], [ %4269, %4268 ]
  %4272 = load ptr, ptr %32, align 8, !tbaa !5
  %4273 = load i32, ptr %77, align 4, !tbaa !9
  %4274 = load i32, ptr %76, align 4, !tbaa !9
  %4275 = load i32, ptr %41, align 4, !tbaa !9
  %4276 = mul nsw i32 %4274, %4275
  %4277 = add nsw i32 %4273, %4276
  %4278 = sext i32 %4277 to i64
  %4279 = getelementptr inbounds double, ptr %4272, i64 %4278
  store double %4271, ptr %4279, align 8, !tbaa !11
  br label %4280

4280:                                             ; preds = %4270
  %4281 = load i32, ptr %77, align 4, !tbaa !9
  %4282 = add nsw i32 %4281, 1
  store i32 %4282, ptr %77, align 4, !tbaa !9
  br label %4243, !llvm.loop !75

4283:                                             ; preds = %4243
  br label %4284

4284:                                             ; preds = %4283
  %4285 = load i32, ptr %76, align 4, !tbaa !9
  %4286 = add nsw i32 %4285, 1
  store i32 %4286, ptr %76, align 4, !tbaa !9
  br label %4237, !llvm.loop !76

4287:                                             ; preds = %4237
  %4288 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %4288, ptr %44, align 4, !tbaa !9
  %4289 = load double, ptr @c_b19, align 8, !tbaa !11
  %4290 = load i32, ptr %44, align 4, !tbaa !9
  %4291 = call double @dpow_ui(double noundef %4289, i32 noundef %4290)
  %4292 = load double, ptr %79, align 8, !tbaa !11
  %4293 = fdiv double %4292, %4291
  store double %4293, ptr %79, align 8, !tbaa !11
  %4294 = call i32 @my_expfunc(ptr noundef %78)
  store i32 %4294, ptr %44, align 4, !tbaa !9
  %4295 = load double, ptr @c_b19, align 8, !tbaa !11
  %4296 = load i32, ptr %44, align 4, !tbaa !9
  %4297 = call double @dpow_ui(double noundef %4295, i32 noundef %4296)
  %4298 = load double, ptr %78, align 8, !tbaa !11
  %4299 = fdiv double %4298, %4297
  store double %4299, ptr %78, align 8, !tbaa !11
  br label %4300

4300:                                             ; preds = %4287, %4185
  %4301 = load double, ptr %78, align 8, !tbaa !11
  %4302 = load double, ptr %55, align 8, !tbaa !11
  %4303 = fmul double %4302, %4301
  store double %4303, ptr %55, align 8, !tbaa !11
  %4304 = load double, ptr %78, align 8, !tbaa !11
  %4305 = load double, ptr %60, align 8, !tbaa !11
  %4306 = fmul double %4305, %4304
  store double %4306, ptr %60, align 8, !tbaa !11
  %4307 = load double, ptr %79, align 8, !tbaa !11
  %4308 = load ptr, ptr %32, align 8, !tbaa !5
  %4309 = load i32, ptr %63, align 4, !tbaa !9
  %4310 = load i32, ptr %64, align 4, !tbaa !9
  %4311 = load i32, ptr %41, align 4, !tbaa !9
  %4312 = mul nsw i32 %4310, %4311
  %4313 = add nsw i32 %4309, %4312
  %4314 = sext i32 %4313 to i64
  %4315 = getelementptr inbounds double, ptr %4308, i64 %4314
  %4316 = load double, ptr %4315, align 8, !tbaa !11
  %4317 = fdiv double %4307, %4316
  %4318 = load double, ptr %78, align 8, !tbaa !11
  %4319 = fmul double %4317, %4318
  store double %4319, ptr %52, align 8, !tbaa !11
  %4320 = load double, ptr %52, align 8, !tbaa !11
  %4321 = fcmp une double %4320, 1.000000e+00
  br i1 %4321, label %4322, label %4346

4322:                                             ; preds = %4300
  %4323 = load i32, ptr %73, align 4, !tbaa !9
  %4324 = sub nsw i32 %4323, 1
  store i32 %4324, ptr %44, align 4, !tbaa !9
  %4325 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %4325, ptr %76, align 4, !tbaa !9
  br label %4326

4326:                                             ; preds = %4342, %4322
  %4327 = load i32, ptr %76, align 4, !tbaa !9
  %4328 = load i32, ptr %44, align 4, !tbaa !9
  %4329 = icmp sle i32 %4327, %4328
  br i1 %4329, label %4330, label %4345

4330:                                             ; preds = %4326
  %4331 = load i32, ptr %71, align 4, !tbaa !9
  %4332 = load i32, ptr %70, align 4, !tbaa !9
  %4333 = sub nsw i32 %4331, %4332
  store i32 %4333, ptr %45, align 4, !tbaa !9
  %4334 = load ptr, ptr %27, align 8, !tbaa !5
  %4335 = load i32, ptr %70, align 4, !tbaa !9
  %4336 = load i32, ptr %76, align 4, !tbaa !9
  %4337 = load i32, ptr %39, align 4, !tbaa !9
  %4338 = mul nsw i32 %4336, %4337
  %4339 = add nsw i32 %4335, %4338
  %4340 = sext i32 %4339 to i64
  %4341 = getelementptr inbounds double, ptr %4334, i64 %4340
  call void @dscal_(ptr noundef %45, ptr noundef %52, ptr noundef %4341, ptr noundef @c__1)
  br label %4342

4342:                                             ; preds = %4330
  %4343 = load i32, ptr %76, align 4, !tbaa !9
  %4344 = add nsw i32 %4343, 1
  store i32 %4344, ptr %76, align 4, !tbaa !9
  br label %4326, !llvm.loop !77

4345:                                             ; preds = %4326
  br label %4346

4346:                                             ; preds = %4345, %4300
  %4347 = load double, ptr %79, align 8, !tbaa !11
  %4348 = load ptr, ptr %32, align 8, !tbaa !5
  %4349 = load i32, ptr %63, align 4, !tbaa !9
  %4350 = load i32, ptr %62, align 4, !tbaa !9
  %4351 = load i32, ptr %41, align 4, !tbaa !9
  %4352 = mul nsw i32 %4350, %4351
  %4353 = add nsw i32 %4349, %4352
  %4354 = sext i32 %4353 to i64
  %4355 = getelementptr inbounds double, ptr %4348, i64 %4354
  %4356 = load double, ptr %4355, align 8, !tbaa !11
  %4357 = fdiv double %4347, %4356
  %4358 = load double, ptr %78, align 8, !tbaa !11
  %4359 = fmul double %4357, %4358
  store double %4359, ptr %52, align 8, !tbaa !11
  %4360 = load double, ptr %52, align 8, !tbaa !11
  %4361 = fcmp une double %4360, 1.000000e+00
  br i1 %4361, label %4362, label %4386

4362:                                             ; preds = %4346
  %4363 = load i32, ptr %69, align 4, !tbaa !9
  %4364 = sub nsw i32 %4363, 1
  store i32 %4364, ptr %44, align 4, !tbaa !9
  %4365 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %4365, ptr %76, align 4, !tbaa !9
  br label %4366

4366:                                             ; preds = %4382, %4362
  %4367 = load i32, ptr %76, align 4, !tbaa !9
  %4368 = load i32, ptr %44, align 4, !tbaa !9
  %4369 = icmp sle i32 %4367, %4368
  br i1 %4369, label %4370, label %4385

4370:                                             ; preds = %4366
  %4371 = load i32, ptr %71, align 4, !tbaa !9
  %4372 = load i32, ptr %70, align 4, !tbaa !9
  %4373 = sub nsw i32 %4371, %4372
  store i32 %4373, ptr %45, align 4, !tbaa !9
  %4374 = load ptr, ptr %27, align 8, !tbaa !5
  %4375 = load i32, ptr %70, align 4, !tbaa !9
  %4376 = load i32, ptr %76, align 4, !tbaa !9
  %4377 = load i32, ptr %39, align 4, !tbaa !9
  %4378 = mul nsw i32 %4376, %4377
  %4379 = add nsw i32 %4375, %4378
  %4380 = sext i32 %4379 to i64
  %4381 = getelementptr inbounds double, ptr %4374, i64 %4380
  call void @dscal_(ptr noundef %45, ptr noundef %52, ptr noundef %4381, ptr noundef @c__1)
  br label %4382

4382:                                             ; preds = %4370
  %4383 = load i32, ptr %76, align 4, !tbaa !9
  %4384 = add nsw i32 %4383, 1
  store i32 %4384, ptr %76, align 4, !tbaa !9
  br label %4366, !llvm.loop !78

4385:                                             ; preds = %4366
  br label %4386

4386:                                             ; preds = %4385, %4346
  %4387 = load double, ptr %79, align 8, !tbaa !11
  %4388 = load double, ptr %78, align 8, !tbaa !11
  %4389 = fmul double %4387, %4388
  %4390 = load ptr, ptr %32, align 8, !tbaa !5
  %4391 = load i32, ptr %63, align 4, !tbaa !9
  %4392 = load i32, ptr %64, align 4, !tbaa !9
  %4393 = load i32, ptr %41, align 4, !tbaa !9
  %4394 = mul nsw i32 %4392, %4393
  %4395 = add nsw i32 %4391, %4394
  %4396 = sext i32 %4395 to i64
  %4397 = getelementptr inbounds double, ptr %4390, i64 %4396
  store double %4389, ptr %4397, align 8, !tbaa !11
  %4398 = load double, ptr %79, align 8, !tbaa !11
  %4399 = load double, ptr %78, align 8, !tbaa !11
  %4400 = fmul double %4398, %4399
  %4401 = load ptr, ptr %32, align 8, !tbaa !5
  %4402 = load i32, ptr %63, align 4, !tbaa !9
  %4403 = load i32, ptr %62, align 4, !tbaa !9
  %4404 = load i32, ptr %41, align 4, !tbaa !9
  %4405 = mul nsw i32 %4403, %4404
  %4406 = add nsw i32 %4402, %4405
  %4407 = sext i32 %4406 to i64
  %4408 = getelementptr inbounds double, ptr %4401, i64 %4407
  store double %4400, ptr %4408, align 8, !tbaa !11
  %4409 = load i32, ptr %71, align 4, !tbaa !9
  %4410 = load i32, ptr %70, align 4, !tbaa !9
  %4411 = sub nsw i32 %4409, %4410
  store i32 %4411, ptr %44, align 4, !tbaa !9
  %4412 = load i32, ptr %69, align 4, !tbaa !9
  %4413 = load i32, ptr %68, align 4, !tbaa !9
  %4414 = sub nsw i32 %4412, %4413
  store i32 %4414, ptr %45, align 4, !tbaa !9
  %4415 = load i32, ptr %73, align 4, !tbaa !9
  %4416 = load i32, ptr %72, align 4, !tbaa !9
  %4417 = sub nsw i32 %4415, %4416
  store i32 %4417, ptr %46, align 4, !tbaa !9
  %4418 = load double, ptr %88, align 8, !tbaa !11
  %4419 = fneg double %4418
  store double %4419, ptr %49, align 8, !tbaa !11
  %4420 = load ptr, ptr %27, align 8, !tbaa !5
  %4421 = load i32, ptr %70, align 4, !tbaa !9
  %4422 = load i32, ptr %72, align 4, !tbaa !9
  %4423 = load i32, ptr %39, align 4, !tbaa !9
  %4424 = mul nsw i32 %4422, %4423
  %4425 = add nsw i32 %4421, %4424
  %4426 = sext i32 %4425 to i64
  %4427 = getelementptr inbounds double, ptr %4420, i64 %4426
  %4428 = load ptr, ptr %28, align 8, !tbaa !5
  %4429 = load ptr, ptr %25, align 8, !tbaa !5
  %4430 = load i32, ptr %68, align 4, !tbaa !9
  %4431 = load i32, ptr %72, align 4, !tbaa !9
  %4432 = load i32, ptr %37, align 4, !tbaa !9
  %4433 = mul nsw i32 %4431, %4432
  %4434 = add nsw i32 %4430, %4433
  %4435 = sext i32 %4434 to i64
  %4436 = getelementptr inbounds double, ptr %4429, i64 %4435
  %4437 = load ptr, ptr %26, align 8, !tbaa !5
  %4438 = load ptr, ptr %27, align 8, !tbaa !5
  %4439 = load i32, ptr %70, align 4, !tbaa !9
  %4440 = load i32, ptr %68, align 4, !tbaa !9
  %4441 = load i32, ptr %39, align 4, !tbaa !9
  %4442 = mul nsw i32 %4440, %4441
  %4443 = add nsw i32 %4439, %4442
  %4444 = sext i32 %4443 to i64
  %4445 = getelementptr inbounds double, ptr %4438, i64 %4444
  %4446 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str, ptr noundef @.str.3, ptr noundef %44, ptr noundef %45, ptr noundef %46, ptr noundef %49, ptr noundef %4427, ptr noundef %4428, ptr noundef %4436, ptr noundef %4437, ptr noundef @c_b32, ptr noundef %4445, ptr noundef %4446)
  br label %4447

4447:                                             ; preds = %4386
  %4448 = load i32, ptr %62, align 4, !tbaa !9
  %4449 = add nsw i32 %4448, 1
  store i32 %4449, ptr %62, align 4, !tbaa !9
  br label %4123, !llvm.loop !79

4450:                                             ; preds = %4123
  br label %4451

4451:                                             ; preds = %4450
  %4452 = load i32, ptr %64, align 4, !tbaa !9
  %4453 = add nsw i32 %4452, -1
  store i32 %4453, ptr %64, align 4, !tbaa !9
  br label %3617, !llvm.loop !80

4454:                                             ; preds = %3617
  br label %4455

4455:                                             ; preds = %4454
  %4456 = load i32, ptr %63, align 4, !tbaa !9
  %4457 = add nsw i32 %4456, -1
  store i32 %4457, ptr %63, align 4, !tbaa !9
  br label %3601, !llvm.loop !81

4458:                                             ; preds = %3601
  br label %4459

4459:                                             ; preds = %4458, %3596, %3593
  br label %4460

4460:                                             ; preds = %4459, %3592
  br label %4461

4461:                                             ; preds = %4460, %2724
  br label %4462

4462:                                             ; preds = %4461, %1854
  %4463 = load ptr, ptr %59, align 8, !tbaa !5
  call void @free(ptr noundef %4463) #5
  %4464 = load ptr, ptr %32, align 8, !tbaa !5
  %4465 = load i32, ptr %41, align 4, !tbaa !9
  %4466 = add nsw i32 %4465, 1
  %4467 = sext i32 %4466 to i64
  %4468 = getelementptr inbounds double, ptr %4464, i64 %4467
  %4469 = load double, ptr %4468, align 8, !tbaa !11
  %4470 = load ptr, ptr %29, align 8, !tbaa !5
  store double %4469, ptr %4470, align 8, !tbaa !11
  %4471 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %4471, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %4472

4472:                                             ; preds = %4508, %4462
  %4473 = load i32, ptr %63, align 4, !tbaa !9
  %4474 = load i32, ptr %43, align 4, !tbaa !9
  %4475 = icmp sle i32 %4473, %4474
  br i1 %4475, label %4476, label %4511

4476:                                             ; preds = %4472
  %4477 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4477, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %4478

4478:                                             ; preds = %4504, %4476
  %4479 = load i32, ptr %64, align 4, !tbaa !9
  %4480 = load i32, ptr %44, align 4, !tbaa !9
  %4481 = icmp sle i32 %4479, %4480
  br i1 %4481, label %4482, label %4507

4482:                                             ; preds = %4478
  %4483 = load ptr, ptr %29, align 8, !tbaa !5
  %4484 = load double, ptr %4483, align 8, !tbaa !11
  store double %4484, ptr %49, align 8, !tbaa !11
  %4485 = load ptr, ptr %32, align 8, !tbaa !5
  %4486 = load i32, ptr %63, align 4, !tbaa !9
  %4487 = load i32, ptr %64, align 4, !tbaa !9
  %4488 = load i32, ptr %41, align 4, !tbaa !9
  %4489 = mul nsw i32 %4487, %4488
  %4490 = add nsw i32 %4486, %4489
  %4491 = sext i32 %4490 to i64
  %4492 = getelementptr inbounds double, ptr %4485, i64 %4491
  %4493 = load double, ptr %4492, align 8, !tbaa !11
  store double %4493, ptr %50, align 8, !tbaa !11
  %4494 = load double, ptr %49, align 8, !tbaa !11
  %4495 = load double, ptr %50, align 8, !tbaa !11
  %4496 = fcmp ole double %4494, %4495
  br i1 %4496, label %4497, label %4499

4497:                                             ; preds = %4482
  %4498 = load double, ptr %49, align 8, !tbaa !11
  br label %4501

4499:                                             ; preds = %4482
  %4500 = load double, ptr %50, align 8, !tbaa !11
  br label %4501

4501:                                             ; preds = %4499, %4497
  %4502 = phi double [ %4498, %4497 ], [ %4500, %4499 ]
  %4503 = load ptr, ptr %29, align 8, !tbaa !5
  store double %4502, ptr %4503, align 8, !tbaa !11
  br label %4504

4504:                                             ; preds = %4501
  %4505 = load i32, ptr %64, align 4, !tbaa !9
  %4506 = add nsw i32 %4505, 1
  store i32 %4506, ptr %64, align 4, !tbaa !9
  br label %4478, !llvm.loop !82

4507:                                             ; preds = %4478
  br label %4508

4508:                                             ; preds = %4507
  %4509 = load i32, ptr %63, align 4, !tbaa !9
  %4510 = add nsw i32 %4509, 1
  store i32 %4510, ptr %63, align 4, !tbaa !9
  br label %4472, !llvm.loop !83

4511:                                             ; preds = %4472
  %4512 = load ptr, ptr %29, align 8, !tbaa !5
  %4513 = load double, ptr %4512, align 8, !tbaa !11
  %4514 = fcmp oeq double %4513, 0.000000e+00
  br i1 %4514, label %4515, label %4547

4515:                                             ; preds = %4511
  %4516 = load i32, ptr %85, align 4, !tbaa !9
  %4517 = load i32, ptr %86, align 4, !tbaa !9
  %4518 = add nsw i32 %4516, %4517
  %4519 = add nsw i32 %4518, 2
  %4520 = load ptr, ptr %30, align 8, !tbaa !5
  %4521 = getelementptr inbounds i32, ptr %4520, i64 1
  store i32 %4519, ptr %4521, align 4, !tbaa !9
  %4522 = load i32, ptr %85, align 4, !tbaa !9
  %4523 = load i32, ptr %86, align 4, !tbaa !9
  %4524 = icmp sge i32 %4522, %4523
  br i1 %4524, label %4525, label %4527

4525:                                             ; preds = %4515
  %4526 = load i32, ptr %85, align 4, !tbaa !9
  br label %4529

4527:                                             ; preds = %4515
  %4528 = load i32, ptr %86, align 4, !tbaa !9
  br label %4529

4529:                                             ; preds = %4527, %4525
  %4530 = phi i32 [ %4526, %4525 ], [ %4528, %4527 ]
  %4531 = sitofp i32 %4530 to double
  %4532 = load ptr, ptr %32, align 8, !tbaa !5
  %4533 = load i32, ptr %41, align 4, !tbaa !9
  %4534 = add nsw i32 %4533, 1
  %4535 = sext i32 %4534 to i64
  %4536 = getelementptr inbounds double, ptr %4532, i64 %4535
  store double %4531, ptr %4536, align 8, !tbaa !11
  %4537 = load i32, ptr %86, align 4, !tbaa !9
  %4538 = shl i32 %4537, 1
  %4539 = load i32, ptr %85, align 4, !tbaa !9
  %4540 = add nsw i32 %4538, %4539
  %4541 = sitofp i32 %4540 to double
  %4542 = load ptr, ptr %32, align 8, !tbaa !5
  %4543 = load i32, ptr %41, align 4, !tbaa !9
  %4544 = add nsw i32 %4543, 2
  %4545 = sext i32 %4544 to i64
  %4546 = getelementptr inbounds double, ptr %4542, i64 %4545
  store double %4541, ptr %4546, align 8, !tbaa !11
  store i32 1, ptr %89, align 4
  br label %4786

4547:                                             ; preds = %4511
  %4548 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %4548, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %4549

4549:                                             ; preds = %4629, %4547
  %4550 = load i32, ptr %63, align 4, !tbaa !9
  %4551 = load i32, ptr %43, align 4, !tbaa !9
  %4552 = icmp sle i32 %4550, %4551
  br i1 %4552, label %4553, label %4632

4553:                                             ; preds = %4549
  %4554 = load ptr, ptr %30, align 8, !tbaa !5
  %4555 = load i32, ptr %63, align 4, !tbaa !9
  %4556 = sext i32 %4555 to i64
  %4557 = getelementptr inbounds i32, ptr %4554, i64 %4556
  %4558 = load i32, ptr %4557, align 4, !tbaa !9
  store i32 %4558, ptr %70, align 4, !tbaa !9
  %4559 = load ptr, ptr %30, align 8, !tbaa !5
  %4560 = load i32, ptr %63, align 4, !tbaa !9
  %4561 = add nsw i32 %4560, 1
  %4562 = sext i32 %4561 to i64
  %4563 = getelementptr inbounds i32, ptr %4559, i64 %4562
  %4564 = load i32, ptr %4563, align 4, !tbaa !9
  store i32 %4564, ptr %71, align 4, !tbaa !9
  %4565 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4565, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %4566

4566:                                             ; preds = %4625, %4553
  %4567 = load i32, ptr %64, align 4, !tbaa !9
  %4568 = load i32, ptr %44, align 4, !tbaa !9
  %4569 = icmp sle i32 %4567, %4568
  br i1 %4569, label %4570, label %4628

4570:                                             ; preds = %4566
  %4571 = load ptr, ptr %30, align 8, !tbaa !5
  %4572 = load i32, ptr %75, align 4, !tbaa !9
  %4573 = load i32, ptr %64, align 4, !tbaa !9
  %4574 = add nsw i32 %4572, %4573
  %4575 = sext i32 %4574 to i64
  %4576 = getelementptr inbounds i32, ptr %4571, i64 %4575
  %4577 = load i32, ptr %4576, align 4, !tbaa !9
  store i32 %4577, ptr %72, align 4, !tbaa !9
  %4578 = load ptr, ptr %30, align 8, !tbaa !5
  %4579 = load i32, ptr %75, align 4, !tbaa !9
  %4580 = load i32, ptr %64, align 4, !tbaa !9
  %4581 = add nsw i32 %4579, %4580
  %4582 = add nsw i32 %4581, 1
  %4583 = sext i32 %4582 to i64
  %4584 = getelementptr inbounds i32, ptr %4578, i64 %4583
  %4585 = load i32, ptr %4584, align 4, !tbaa !9
  store i32 %4585, ptr %73, align 4, !tbaa !9
  %4586 = load ptr, ptr %29, align 8, !tbaa !5
  %4587 = load double, ptr %4586, align 8, !tbaa !11
  %4588 = load ptr, ptr %32, align 8, !tbaa !5
  %4589 = load i32, ptr %63, align 4, !tbaa !9
  %4590 = load i32, ptr %64, align 4, !tbaa !9
  %4591 = load i32, ptr %41, align 4, !tbaa !9
  %4592 = mul nsw i32 %4590, %4591
  %4593 = add nsw i32 %4589, %4592
  %4594 = sext i32 %4593 to i64
  %4595 = getelementptr inbounds double, ptr %4588, i64 %4594
  %4596 = load double, ptr %4595, align 8, !tbaa !11
  %4597 = fdiv double %4587, %4596
  store double %4597, ptr %52, align 8, !tbaa !11
  %4598 = load double, ptr %52, align 8, !tbaa !11
  %4599 = fcmp une double %4598, 1.000000e+00
  br i1 %4599, label %4600, label %4624

4600:                                             ; preds = %4570
  %4601 = load i32, ptr %73, align 4, !tbaa !9
  %4602 = sub nsw i32 %4601, 1
  store i32 %4602, ptr %45, align 4, !tbaa !9
  %4603 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %4603, ptr %77, align 4, !tbaa !9
  br label %4604

4604:                                             ; preds = %4620, %4600
  %4605 = load i32, ptr %77, align 4, !tbaa !9
  %4606 = load i32, ptr %45, align 4, !tbaa !9
  %4607 = icmp sle i32 %4605, %4606
  br i1 %4607, label %4608, label %4623

4608:                                             ; preds = %4604
  %4609 = load i32, ptr %71, align 4, !tbaa !9
  %4610 = load i32, ptr %70, align 4, !tbaa !9
  %4611 = sub nsw i32 %4609, %4610
  store i32 %4611, ptr %46, align 4, !tbaa !9
  %4612 = load ptr, ptr %27, align 8, !tbaa !5
  %4613 = load i32, ptr %70, align 4, !tbaa !9
  %4614 = load i32, ptr %77, align 4, !tbaa !9
  %4615 = load i32, ptr %39, align 4, !tbaa !9
  %4616 = mul nsw i32 %4614, %4615
  %4617 = add nsw i32 %4613, %4616
  %4618 = sext i32 %4617 to i64
  %4619 = getelementptr inbounds double, ptr %4612, i64 %4618
  call void @dscal_(ptr noundef %46, ptr noundef %52, ptr noundef %4619, ptr noundef @c__1)
  br label %4620

4620:                                             ; preds = %4608
  %4621 = load i32, ptr %77, align 4, !tbaa !9
  %4622 = add nsw i32 %4621, 1
  store i32 %4622, ptr %77, align 4, !tbaa !9
  br label %4604, !llvm.loop !84

4623:                                             ; preds = %4604
  br label %4624

4624:                                             ; preds = %4623, %4570
  br label %4625

4625:                                             ; preds = %4624
  %4626 = load i32, ptr %64, align 4, !tbaa !9
  %4627 = add nsw i32 %4626, 1
  store i32 %4627, ptr %64, align 4, !tbaa !9
  br label %4566, !llvm.loop !85

4628:                                             ; preds = %4566
  br label %4629

4629:                                             ; preds = %4628
  %4630 = load i32, ptr %63, align 4, !tbaa !9
  %4631 = add nsw i32 %4630, 1
  store i32 %4631, ptr %63, align 4, !tbaa !9
  br label %4549, !llvm.loop !86

4632:                                             ; preds = %4549
  %4633 = load double, ptr %87, align 8, !tbaa !11
  %4634 = fcmp une double %4633, 1.000000e+00
  br i1 %4634, label %4635, label %4661

4635:                                             ; preds = %4632
  %4636 = load double, ptr %87, align 8, !tbaa !11
  %4637 = fcmp ogt double %4636, 0.000000e+00
  br i1 %4637, label %4638, label %4661

4638:                                             ; preds = %4635
  %4639 = load ptr, ptr %29, align 8, !tbaa !5
  %4640 = load double, ptr %4639, align 8, !tbaa !11
  %4641 = load double, ptr %83, align 8, !tbaa !11
  %4642 = fdiv double %4640, %4641
  store double %4642, ptr %49, align 8, !tbaa !11
  %4643 = load double, ptr %87, align 8, !tbaa !11
  %4644 = fdiv double 1.000000e+00, %4643
  store double %4644, ptr %50, align 8, !tbaa !11
  %4645 = load double, ptr %49, align 8, !tbaa !11
  %4646 = load double, ptr %50, align 8, !tbaa !11
  %4647 = fcmp ole double %4645, %4646
  br i1 %4647, label %4648, label %4650

4648:                                             ; preds = %4638
  %4649 = load double, ptr %49, align 8, !tbaa !11
  br label %4652

4650:                                             ; preds = %4638
  %4651 = load double, ptr %50, align 8, !tbaa !11
  br label %4652

4652:                                             ; preds = %4650, %4648
  %4653 = phi double [ %4649, %4648 ], [ %4651, %4650 ]
  store double %4653, ptr %78, align 8, !tbaa !11
  %4654 = load double, ptr %78, align 8, !tbaa !11
  %4655 = load double, ptr %87, align 8, !tbaa !11
  %4656 = fmul double %4655, %4654
  store double %4656, ptr %87, align 8, !tbaa !11
  %4657 = load double, ptr %78, align 8, !tbaa !11
  %4658 = load ptr, ptr %29, align 8, !tbaa !5
  %4659 = load double, ptr %4658, align 8, !tbaa !11
  %4660 = fdiv double %4659, %4657
  store double %4660, ptr %4658, align 8, !tbaa !11
  br label %4661

4661:                                             ; preds = %4652, %4635, %4632
  %4662 = load double, ptr %87, align 8, !tbaa !11
  %4663 = fcmp une double %4662, 1.000000e+00
  br i1 %4663, label %4664, label %4750

4664:                                             ; preds = %4661
  %4665 = load double, ptr %87, align 8, !tbaa !11
  %4666 = fcmp ogt double %4665, 0.000000e+00
  br i1 %4666, label %4667, label %4750

4667:                                             ; preds = %4664
  %4668 = load ptr, ptr %27, align 8, !tbaa !5
  %4669 = load i32, ptr %39, align 4, !tbaa !9
  %4670 = add nsw i32 %4669, 1
  %4671 = sext i32 %4670 to i64
  %4672 = getelementptr inbounds double, ptr %4668, i64 %4671
  %4673 = load double, ptr %4672, align 8, !tbaa !11
  store double %4673, ptr %52, align 8, !tbaa !11
  %4674 = load ptr, ptr %21, align 8, !tbaa !5
  %4675 = load i32, ptr %4674, align 4, !tbaa !9
  store i32 %4675, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %4676

4676:                                             ; preds = %4720, %4667
  %4677 = load i32, ptr %63, align 4, !tbaa !9
  %4678 = load i32, ptr %43, align 4, !tbaa !9
  %4679 = icmp sle i32 %4677, %4678
  br i1 %4679, label %4680, label %4723

4680:                                             ; preds = %4676
  %4681 = load ptr, ptr %22, align 8, !tbaa !5
  %4682 = load i32, ptr %4681, align 4, !tbaa !9
  store i32 %4682, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %4683

4683:                                             ; preds = %4716, %4680
  %4684 = load i32, ptr %64, align 4, !tbaa !9
  %4685 = load i32, ptr %44, align 4, !tbaa !9
  %4686 = icmp sle i32 %4684, %4685
  br i1 %4686, label %4687, label %4719

4687:                                             ; preds = %4683
  %4688 = load double, ptr %52, align 8, !tbaa !11
  store double %4688, ptr %50, align 8, !tbaa !11
  %4689 = load ptr, ptr %27, align 8, !tbaa !5
  %4690 = load i32, ptr %63, align 4, !tbaa !9
  %4691 = load i32, ptr %64, align 4, !tbaa !9
  %4692 = load i32, ptr %39, align 4, !tbaa !9
  %4693 = mul nsw i32 %4691, %4692
  %4694 = add nsw i32 %4690, %4693
  %4695 = sext i32 %4694 to i64
  %4696 = getelementptr inbounds double, ptr %4689, i64 %4695
  %4697 = load double, ptr %4696, align 8, !tbaa !11
  store double %4697, ptr %49, align 8, !tbaa !11
  %4698 = load double, ptr %49, align 8, !tbaa !11
  %4699 = fcmp oge double %4698, 0.000000e+00
  br i1 %4699, label %4700, label %4702

4700:                                             ; preds = %4687
  %4701 = load double, ptr %49, align 8, !tbaa !11
  br label %4705

4702:                                             ; preds = %4687
  %4703 = load double, ptr %49, align 8, !tbaa !11
  %4704 = fneg double %4703
  br label %4705

4705:                                             ; preds = %4702, %4700
  %4706 = phi double [ %4701, %4700 ], [ %4704, %4702 ]
  store double %4706, ptr %51, align 8, !tbaa !11
  %4707 = load double, ptr %50, align 8, !tbaa !11
  %4708 = load double, ptr %51, align 8, !tbaa !11
  %4709 = fcmp oge double %4707, %4708
  br i1 %4709, label %4710, label %4712

4710:                                             ; preds = %4705
  %4711 = load double, ptr %50, align 8, !tbaa !11
  br label %4714

4712:                                             ; preds = %4705
  %4713 = load double, ptr %51, align 8, !tbaa !11
  br label %4714

4714:                                             ; preds = %4712, %4710
  %4715 = phi double [ %4711, %4710 ], [ %4713, %4712 ]
  store double %4715, ptr %52, align 8, !tbaa !11
  br label %4716

4716:                                             ; preds = %4714
  %4717 = load i32, ptr %64, align 4, !tbaa !9
  %4718 = add nsw i32 %4717, 1
  store i32 %4718, ptr %64, align 4, !tbaa !9
  br label %4683, !llvm.loop !87

4719:                                             ; preds = %4683
  br label %4720

4720:                                             ; preds = %4719
  %4721 = load i32, ptr %63, align 4, !tbaa !9
  %4722 = add nsw i32 %4721, 1
  store i32 %4722, ptr %63, align 4, !tbaa !9
  br label %4676, !llvm.loop !88

4723:                                             ; preds = %4676
  %4724 = load double, ptr %80, align 8, !tbaa !11
  %4725 = load double, ptr %52, align 8, !tbaa !11
  %4726 = fdiv double %4724, %4725
  store double %4726, ptr %49, align 8, !tbaa !11
  %4727 = load double, ptr %87, align 8, !tbaa !11
  %4728 = fdiv double 1.000000e+00, %4727
  store double %4728, ptr %50, align 8, !tbaa !11
  %4729 = load double, ptr %49, align 8, !tbaa !11
  %4730 = load double, ptr %50, align 8, !tbaa !11
  %4731 = fcmp ole double %4729, %4730
  br i1 %4731, label %4732, label %4734

4732:                                             ; preds = %4723
  %4733 = load double, ptr %49, align 8, !tbaa !11
  br label %4736

4734:                                             ; preds = %4723
  %4735 = load double, ptr %50, align 8, !tbaa !11
  br label %4736

4736:                                             ; preds = %4734, %4732
  %4737 = phi double [ %4733, %4732 ], [ %4735, %4734 ]
  store double %4737, ptr %78, align 8, !tbaa !11
  %4738 = load double, ptr %78, align 8, !tbaa !11
  %4739 = load double, ptr %87, align 8, !tbaa !11
  %4740 = fmul double %4739, %4738
  store double %4740, ptr %87, align 8, !tbaa !11
  %4741 = load ptr, ptr %21, align 8, !tbaa !5
  %4742 = load ptr, ptr %22, align 8, !tbaa !5
  %4743 = load ptr, ptr %27, align 8, !tbaa !5
  %4744 = load i32, ptr %40, align 4, !tbaa !9
  %4745 = sext i32 %4744 to i64
  %4746 = getelementptr inbounds double, ptr %4743, i64 %4745
  %4747 = load ptr, ptr %28, align 8, !tbaa !5
  %4748 = load ptr, ptr %30, align 8, !tbaa !5
  %4749 = getelementptr inbounds i32, ptr %4748, i64 1
  call void @dlascl_(ptr noundef @.str.9, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_b32, ptr noundef %78, ptr noundef %4741, ptr noundef %4742, ptr noundef %4746, ptr noundef %4747, ptr noundef %4749)
  br label %4750

4750:                                             ; preds = %4736, %4664, %4661
  %4751 = load double, ptr %87, align 8, !tbaa !11
  %4752 = load ptr, ptr %29, align 8, !tbaa !5
  %4753 = load double, ptr %4752, align 8, !tbaa !11
  %4754 = fmul double %4753, %4751
  store double %4754, ptr %4752, align 8, !tbaa !11
  %4755 = load i32, ptr %85, align 4, !tbaa !9
  %4756 = load i32, ptr %86, align 4, !tbaa !9
  %4757 = add nsw i32 %4755, %4756
  %4758 = add nsw i32 %4757, 2
  %4759 = load ptr, ptr %30, align 8, !tbaa !5
  %4760 = getelementptr inbounds i32, ptr %4759, i64 1
  store i32 %4758, ptr %4760, align 4, !tbaa !9
  %4761 = load i32, ptr %85, align 4, !tbaa !9
  %4762 = load i32, ptr %86, align 4, !tbaa !9
  %4763 = icmp sge i32 %4761, %4762
  br i1 %4763, label %4764, label %4766

4764:                                             ; preds = %4750
  %4765 = load i32, ptr %85, align 4, !tbaa !9
  br label %4768

4766:                                             ; preds = %4750
  %4767 = load i32, ptr %86, align 4, !tbaa !9
  br label %4768

4768:                                             ; preds = %4766, %4764
  %4769 = phi i32 [ %4765, %4764 ], [ %4767, %4766 ]
  %4770 = sitofp i32 %4769 to double
  %4771 = load ptr, ptr %32, align 8, !tbaa !5
  %4772 = load i32, ptr %41, align 4, !tbaa !9
  %4773 = add nsw i32 %4772, 1
  %4774 = sext i32 %4773 to i64
  %4775 = getelementptr inbounds double, ptr %4771, i64 %4774
  store double %4770, ptr %4775, align 8, !tbaa !11
  %4776 = load i32, ptr %86, align 4, !tbaa !9
  %4777 = shl i32 %4776, 1
  %4778 = load i32, ptr %85, align 4, !tbaa !9
  %4779 = add nsw i32 %4777, %4778
  %4780 = sitofp i32 %4779 to double
  %4781 = load ptr, ptr %32, align 8, !tbaa !5
  %4782 = load i32, ptr %41, align 4, !tbaa !9
  %4783 = add nsw i32 %4782, 2
  %4784 = sext i32 %4783 to i64
  %4785 = getelementptr inbounds double, ptr %4781, i64 %4784
  store double %4780, ptr %4785, align 8, !tbaa !11
  store i32 1, ptr %89, align 4
  br label %4786

4786:                                             ; preds = %4768, %4529, %397, %349, %338, %330
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #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 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

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

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #3

declare void @dtrsyl_(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

declare double @dlamch_(ptr noundef) #2

declare double @dlange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @my_expfunc(ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden double @dpow_ui(double noundef, i32 noundef) #0

declare double @dlarmm_(ptr noundef, ptr noundef, ptr noundef) #2

declare void @dscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @dgemm_(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: nounwind
declare void @free(ptr noundef) #4

declare void @dlascl_(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 = { nounwind allocsize(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 #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 }
attributes #6 = { nounwind allocsize(0) }

!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}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = distinct !{!56, !14}
!57 = distinct !{!57, !14}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = distinct !{!61, !14}
!62 = distinct !{!62, !14}
!63 = distinct !{!63, !14}
!64 = distinct !{!64, !14}
!65 = distinct !{!65, !14}
!66 = distinct !{!66, !14}
!67 = distinct !{!67, !14}
!68 = distinct !{!68, !14}
!69 = distinct !{!69, !14}
!70 = distinct !{!70, !14}
!71 = distinct !{!71, !14}
!72 = distinct !{!72, !14}
!73 = distinct !{!73, !14}
!74 = distinct !{!74, !14}
!75 = distinct !{!75, !14}
!76 = distinct !{!76, !14}
!77 = distinct !{!77, !14}
!78 = distinct !{!78, !14}
!79 = distinct !{!79, !14}
!80 = distinct !{!80, !14}
!81 = distinct !{!81, !14}
!82 = distinct !{!82, !14}
!83 = distinct !{!83, !14}
!84 = distinct !{!84, !14}
!85 = distinct !{!85, !14}
!86 = distinct !{!86, !14}
!87 = distinct !{!87, !14}
!88 = distinct !{!88, !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
@c__1 = external hidden global i32, align 4
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.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 [8 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
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b19 = external hidden local_unnamed_addr global double, align 8
@c_b31 = external hidden global double, align 8
@c_b32 = external hidden global double, align 8
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @dtrsyl3_(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 nocapture noundef readonly %13, ptr noundef %14, ptr nocapture noundef %15, ptr noundef %16) local_unnamed_addr #0 {
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca i32, align 4
  %31 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  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 4, 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 8, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #6
  %32 = load i32, ptr %6, align 4, !tbaa !5
  %narrow1991 = xor i32 %32, -1
  %33 = sext i32 %narrow1991 to i64
  %34 = getelementptr inbounds double, ptr %5, i64 %33
  %35 = load i32, ptr %8, align 4, !tbaa !5
  %narrow1992 = xor i32 %35, -1
  %36 = sext i32 %narrow1992 to i64
  %37 = getelementptr inbounds double, ptr %7, i64 %36
  %38 = load i32, ptr %10, align 4, !tbaa !5
  %narrow1993 = xor i32 %38, -1
  %39 = sext i32 %narrow1993 to i64
  %40 = getelementptr inbounds double, ptr %9, i64 %39
  %41 = getelementptr inbounds i8, ptr %12, i64 -4
  %42 = load i32, ptr %15, align 4, !tbaa !5
  %narrow = xor i32 %42, -1
  %43 = sext i32 %narrow to i64
  %44 = getelementptr inbounds double, ptr %14, i64 %43
  %45 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %46 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #6
  %47 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef %3, ptr noundef %4, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 0) #6
  %48 = tail call i32 @llvm.smax.i32(i32 %47, i32 8)
  %49 = load i32, ptr %3, align 4, !tbaa !5
  %50 = add nsw i32 %48, -1
  %51 = add i32 %50, %49
  %52 = sdiv i32 %51, %48
  %53 = tail call i32 @llvm.smax.i32(i32 %52, i32 1)
  store i32 1, ptr %18, align 4, !tbaa !5
  %54 = load i32, ptr %4, align 4, !tbaa !5
  %55 = add i32 %50, %54
  %56 = sdiv i32 %55, %48
  store i32 %56, ptr %19, align 4, !tbaa !5
  %57 = tail call i32 @llvm.smax.i32(i32 %56, i32 1)
  store i32 0, ptr %16, align 4, !tbaa !5
  %58 = load i32, ptr %13, align 4, !tbaa !5
  %59 = icmp eq i32 %58, -1
  br i1 %59, label %.thread, label %62

.thread:                                          ; preds = %17
  %60 = add nuw nsw i32 %53, 2
  %61 = add nuw nsw i32 %60, %57
  store i32 %61, ptr %12, align 4, !tbaa !5
  br label %67

62:                                               ; preds = %17
  %63 = load i32, ptr %15, align 4, !tbaa !5
  %64 = icmp eq i32 %63, -1
  %65 = add nuw nsw i32 %53, 2
  %66 = add nuw nsw i32 %65, %57
  store i32 %66, ptr %12, align 4, !tbaa !5
  br i1 %64, label %67, label %76

67:                                               ; preds = %.thread, %62
  store i32 2, ptr %15, align 4, !tbaa !5
  %68 = tail call i32 @llvm.umax.i32(i32 %53, i32 %57)
  %69 = uitofp nneg i32 %68 to double
  store double %69, ptr %14, align 8, !tbaa !9
  %70 = shl nuw nsw i32 %57, 1
  %71 = add nuw nsw i32 %70, %53
  %72 = uitofp nneg i32 %71 to double
  %73 = sext i32 %42 to i64
  %74 = getelementptr double, ptr %44, i64 %73
  %75 = getelementptr i8, ptr %74, i64 16
  store double %72, ptr %75, align 8, !tbaa !9
  br label %76

76:                                               ; preds = %67, %62
  %77 = phi i1 [ true, %67 ], [ false, %62 ]
  %78 = icmp ne i32 %45, 0
  br i1 %78, label %83, label %79

79:                                               ; preds = %76
  %80 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #6
  %.not = icmp eq i32 %80, 0
  br i1 %.not, label %81, label %83

81:                                               ; preds = %79
  %82 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not1898 = icmp eq i32 %82, 0
  br i1 %.not1898, label %.thread2000.sink.split, label %83

83:                                               ; preds = %81, %79, %76
  %.not1899 = icmp eq i32 %46, 0
  br i1 %.not1899, label %84, label %88

84:                                               ; preds = %83
  %85 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %.not1900 = icmp eq i32 %85, 0
  br i1 %.not1900, label %86, label %88

86:                                               ; preds = %84
  %87 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  %.not1901 = icmp eq i32 %87, 0
  br i1 %.not1901, label %.thread2000.sink.split, label %88

88:                                               ; preds = %86, %84, %83
  %89 = load i32, ptr %2, align 4, !tbaa !5
  switch i32 %89, label %.thread2000.sink.split [
    i32 1, label %90
    i32 -1, label %90
  ]

90:                                               ; preds = %88, %88
  %91 = load i32, ptr %3, align 4, !tbaa !5
  %92 = icmp slt i32 %91, 0
  br i1 %92, label %.thread2000.sink.split, label %93

93:                                               ; preds = %90
  %94 = load i32, ptr %4, align 4, !tbaa !5
  %95 = icmp slt i32 %94, 0
  br i1 %95, label %.thread2000.sink.split, label %96

96:                                               ; preds = %93
  %97 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %91, i32 1)
  %98 = icmp slt i32 %97, %spec.select
  br i1 %98, label %.thread2000.sink.split, label %99

99:                                               ; preds = %96
  %100 = load i32, ptr %8, align 4, !tbaa !5
  %spec.select1994 = tail call i32 @llvm.umax.i32(i32 %94, i32 1)
  %101 = icmp slt i32 %100, %spec.select1994
  br i1 %101, label %.thread2000.sink.split, label %102

102:                                              ; preds = %99
  %103 = load i32, ptr %10, align 4, !tbaa !5
  %104 = icmp slt i32 %103, %spec.select
  br i1 %104, label %.thread2000.sink.split, label %105

105:                                              ; preds = %102
  %.pr = load i32, ptr %16, align 4, !tbaa !5
  %.not1904 = icmp eq i32 %.pr, 0
  br i1 %.not1904, label %109, label %.thread2000

.thread2000.sink.split:                           ; preds = %102, %99, %96, %93, %90, %88, %86, %81
  %.sink = phi i32 [ -1, %81 ], [ -2, %86 ], [ -3, %88 ], [ -4, %90 ], [ -5, %93 ], [ -7, %96 ], [ -9, %99 ], [ -11, %102 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  br label %.thread2000

.thread2000:                                      ; preds = %.thread2000.sink.split, %105
  %106 = phi i32 [ %.pr, %105 ], [ %.sink, %.thread2000.sink.split ]
  %107 = sub nsw i32 0, %106
  store i32 %107, ptr %18, align 4, !tbaa !5
  %108 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %18, i32 noundef 7) #6
  br label %1483

109:                                              ; preds = %105
  br i1 %77, label %1483, label %110

110:                                              ; preds = %109
  store double 1.000000e+00, ptr %11, align 8, !tbaa !9
  %111 = icmp eq i32 %91, 0
  %112 = icmp eq i32 %94, 0
  %or.cond2887 = or i1 %111, %112
  br i1 %or.cond2887, label %1483, label %113

113:                                              ; preds = %110
  %114 = tail call i32 @llvm.umax.i32(i32 %91, i32 %94)
  %115 = zext nneg i32 %114 to i64
  %116 = shl nuw nsw i64 %115, 3
  %117 = tail call noalias ptr @malloc(i64 noundef %116) #7
  %118 = tail call i32 @llvm.umin.i32(i32 %53, i32 %57)
  %119 = icmp eq i32 %118, 1
  br i1 %119, label %128, label %120

120:                                              ; preds = %113
  %121 = load i32, ptr %15, align 4, !tbaa !5
  %122 = tail call i32 @llvm.umax.i32(i32 %53, i32 %57)
  %123 = icmp slt i32 %121, %122
  br i1 %123, label %128, label %124

124:                                              ; preds = %120
  %125 = load i32, ptr %13, align 4, !tbaa !5
  %126 = load i32, ptr %12, align 4, !tbaa !5
  %127 = icmp slt i32 %125, %126
  br i1 %127, label %128, label %129

128:                                              ; preds = %124, %120, %113
  tail call void @dtrsyl_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %16) #6
  br label %1483

129:                                              ; preds = %124
  %130 = tail call double @dlamch_(ptr noundef nonnull @.str.6) #6
  %131 = add nuw nsw i32 %53, 1
  %wide.trip.count = zext nneg i32 %131 to i64
  %132 = zext nneg i32 %53 to i64
  %min.iters.check = icmp slt i32 %52, 8
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %129
  %n.vec = and i64 %132, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <4 x i32> poison, i32 %48, i64 0
  %broadcast.splat = shufflevector <4 x i32> %broadcast.splatinsert, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.ind = phi <4 x i32> [ <i32 1, i32 2, i32 3, i32 4>, %vector.ph ], [ %vec.ind.next, %vector.body ]
  %133 = getelementptr i32, ptr %12, i64 %index
  %134 = add <4 x i32> %vec.ind, <i32 -1, i32 -1, i32 -1, i32 -1>
  %135 = add <4 x i32> %vec.ind, <i32 3, i32 3, i32 3, i32 3>
  %136 = mul <4 x i32> %134, %broadcast.splat
  %137 = mul <4 x i32> %135, %broadcast.splat
  %138 = add <4 x i32> %136, <i32 1, i32 1, i32 1, i32 1>
  %139 = add <4 x i32> %137, <i32 1, i32 1, i32 1, i32 1>
  %140 = getelementptr inbounds i8, ptr %133, i64 16
  store <4 x i32> %138, ptr %133, align 4, !tbaa !5
  store <4 x i32> %139, ptr %140, align 4, !tbaa !5
  %index.next = add nuw i64 %index, 8
  %vec.ind.next = add <4 x i32> %vec.ind, <i32 8, i32 8, i32 8, i32 8>
  %141 = icmp eq i64 %index.next, %n.vec
  br i1 %141, label %middle.block, label %vector.body, !llvm.loop !11

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %132
  br i1 %cmp.n, label %.loopexit2931, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %129
  %indvars.iv.ph = phi i64 [ 1, %129 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %scalar.ph ], [ %indvars.iv.ph, %scalar.ph.preheader ]
  %142 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv
  %143 = trunc i64 %indvars.iv to i32
  %144 = add i32 %143, -1
  %145 = mul i32 %144, %48
  %146 = add i32 %145, 1
  store i32 %146, ptr %142, align 4, !tbaa !5
  %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 %.loopexit2931, label %scalar.ph, !llvm.loop !15

.loopexit2931:                                    ; preds = %scalar.ph, %middle.block
  %147 = load i32, ptr %3, align 4, !tbaa !5
  %148 = add nsw i32 %147, 1
  %149 = zext nneg i32 %53 to i64
  %150 = getelementptr inbounds i32, ptr %41, i64 %149
  %151 = getelementptr inbounds i8, ptr %150, i64 4
  store i32 %148, ptr %151, align 4, !tbaa !5
  %152 = sext i32 %32 to i64
  %.pre = load i32, ptr %12, align 4, !tbaa !5
  br label %154

.loopexit2035:                                    ; preds = %184, %154
  %153 = phi i32 [ %157, %154 ], [ %186, %184 ]
  %.11840.lcssa = phi i32 [ %.018392041, %154 ], [ %.21841, %184 ]
  %exitcond2427.not = icmp eq i64 %indvars.iv.next2424, %wide.trip.count
  br i1 %exitcond2427.not, label %187, label %154, !llvm.loop !16

154:                                              ; preds = %.loopexit2931, %.loopexit2035
  %155 = phi i32 [ %.pre, %.loopexit2931 ], [ %153, %.loopexit2035 ]
  %indvars.iv2423 = phi i64 [ 1, %.loopexit2931 ], [ %indvars.iv.next2424, %.loopexit2035 ]
  %.018392041 = phi i32 [ 0, %.loopexit2931 ], [ %.11840.lcssa, %.loopexit2035 ]
  %indvars.iv.next2424 = add nuw nsw i64 %indvars.iv2423, 1
  %156 = getelementptr i32, ptr %12, i64 %indvars.iv2423
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %.not1988.not2037 = icmp slt i32 %155, %157
  br i1 %.not1988.not2037, label %.lr.ph.preheader, label %.loopexit2035

.lr.ph.preheader:                                 ; preds = %154
  %158 = sext i32 %155 to i64
  %wide.trip.count2421 = sext i32 %157 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %184
  %159 = phi i32 [ %157, %.lr.ph.preheader ], [ %185, %184 ]
  %160 = phi i32 [ %157, %.lr.ph.preheader ], [ %186, %184 ]
  %indvars.iv2418 = phi i64 [ %158, %.lr.ph.preheader ], [ %indvars.iv.next2419, %184 ]
  %.118402039 = phi i32 [ %.018392041, %.lr.ph.preheader ], [ %.21841, %184 ]
  %indvars2420 = trunc i64 %indvars.iv2418 to i32
  %.not1989 = icmp eq i32 %.118402039, 0
  br i1 %.not1989, label %161, label %184

161:                                              ; preds = %.lr.ph
  %162 = load i32, ptr %3, align 4, !tbaa !5
  %163 = sext i32 %162 to i64
  %.not1990 = icmp slt i64 %indvars.iv2418, %163
  br i1 %.not1990, label %164, label %184

164:                                              ; preds = %161
  %165 = add nsw i64 %indvars.iv2418, 1
  %166 = add nsw i32 %indvars2420, 1
  %167 = mul nsw i32 %166, %32
  %168 = sext i32 %167 to i64
  %169 = getelementptr double, ptr %34, i64 %indvars.iv2418
  %170 = getelementptr double, ptr %169, i64 %168
  %171 = load double, ptr %170, align 8, !tbaa !9
  %172 = fcmp une double %171, 0.000000e+00
  br i1 %172, label %173, label %184

173:                                              ; preds = %164
  %174 = mul nsw i64 %indvars.iv2418, %152
  %175 = getelementptr double, ptr %34, i64 %165
  %176 = getelementptr double, ptr %175, i64 %174
  %177 = load double, ptr %176, align 8, !tbaa !9
  %178 = fcmp une double %177, 0.000000e+00
  br i1 %178, label %179, label %184

179:                                              ; preds = %173
  %180 = trunc nsw i64 %165 to i32
  %181 = icmp eq i32 %159, %180
  br i1 %181, label %182, label %184

182:                                              ; preds = %179
  %183 = add nsw i32 %159, 1
  store i32 %183, ptr %156, align 4, !tbaa !5
  br label %184

184:                                              ; preds = %179, %.lr.ph, %164, %173, %161, %182
  %185 = phi i32 [ %159, %161 ], [ %183, %182 ], [ %159, %173 ], [ %159, %164 ], [ %159, %.lr.ph ], [ %159, %179 ]
  %186 = phi i32 [ %160, %161 ], [ %183, %182 ], [ %160, %173 ], [ %160, %164 ], [ %160, %.lr.ph ], [ %159, %179 ]
  %.21841 = phi i32 [ 0, %161 ], [ 0, %182 ], [ 0, %173 ], [ 0, %164 ], [ 0, %.lr.ph ], [ 1, %179 ]
  %indvars.iv.next2419 = add nsw i64 %indvars.iv2418, 1
  %exitcond2422.not = icmp eq i64 %indvars.iv.next2419, %wide.trip.count2421
  br i1 %exitcond2422.not, label %.loopexit2035, label %.lr.ph, !llvm.loop !17

187:                                              ; preds = %.loopexit2035
  %188 = fdiv double 1.000000e+00, %130
  %189 = load i32, ptr %3, align 4, !tbaa !5
  %190 = add nsw i32 %189, 1
  store i32 %190, ptr %151, align 4, !tbaa !5
  %191 = load i32, ptr %150, align 4, !tbaa !5
  %.not1910.not = icmp sgt i32 %191, %189
  br i1 %.not1910.not, label %192, label %194

192:                                              ; preds = %187
  store i32 %190, ptr %150, align 4, !tbaa !5
  %193 = add nsw i32 %53, -1
  br label %194

194:                                              ; preds = %192, %187
  %.pre-phi = phi i32 [ %53, %192 ], [ %131, %187 ]
  %.01789 = phi i32 [ %193, %192 ], [ %53, %187 ]
  store i32 %57, ptr %18, align 4, !tbaa !5
  %195 = zext i32 %.pre-phi to i64
  %196 = add nuw nsw i32 %57, 1
  %wide.trip.count2431 = zext nneg i32 %196 to i64
  %invariant.gep = getelementptr inbounds i32, ptr %41, i64 %195
  %197 = zext nneg i32 %57 to i64
  %min.iters.check2900 = icmp slt i32 %56, 8
  br i1 %min.iters.check2900, label %scalar.ph2899.preheader, label %vector.ph2901

vector.ph2901:                                    ; preds = %194
  %n.vec2903 = and i64 %197, 2147483640
  %ind.end2904 = or disjoint i64 %n.vec2903, 1
  %broadcast.splatinsert2913 = insertelement <4 x i32> poison, i32 %48, i64 0
  %broadcast.splat2914 = shufflevector <4 x i32> %broadcast.splatinsert2913, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body2906

vector.body2906:                                  ; preds = %vector.body2906, %vector.ph2901
  %index2907 = phi i64 [ 0, %vector.ph2901 ], [ %index.next2915, %vector.body2906 ]
  %vec.ind2908 = phi <4 x i32> [ <i32 1, i32 2, i32 3, i32 4>, %vector.ph2901 ], [ %vec.ind.next2911, %vector.body2906 ]
  %offset.idx2912 = or disjoint i64 %index2907, 1
  %198 = getelementptr inbounds i32, ptr %invariant.gep, i64 %offset.idx2912
  %199 = add <4 x i32> %vec.ind2908, <i32 -1, i32 -1, i32 -1, i32 -1>
  %200 = add <4 x i32> %vec.ind2908, <i32 3, i32 3, i32 3, i32 3>
  %201 = mul <4 x i32> %199, %broadcast.splat2914
  %202 = mul <4 x i32> %200, %broadcast.splat2914
  %203 = add <4 x i32> %201, <i32 1, i32 1, i32 1, i32 1>
  %204 = add <4 x i32> %202, <i32 1, i32 1, i32 1, i32 1>
  %205 = getelementptr inbounds i8, ptr %198, i64 16
  store <4 x i32> %203, ptr %198, align 4, !tbaa !5
  store <4 x i32> %204, ptr %205, align 4, !tbaa !5
  %index.next2915 = add nuw i64 %index2907, 8
  %vec.ind.next2911 = add <4 x i32> %vec.ind2908, <i32 8, i32 8, i32 8, i32 8>
  %206 = icmp eq i64 %index.next2915, %n.vec2903
  br i1 %206, label %middle.block2898, label %vector.body2906, !llvm.loop !18

middle.block2898:                                 ; preds = %vector.body2906
  %cmp.n2916 = icmp eq i64 %n.vec2903, %197
  br i1 %cmp.n2916, label %.loopexit2930, label %scalar.ph2899.preheader

scalar.ph2899.preheader:                          ; preds = %middle.block2898, %194
  %indvars.iv2428.ph = phi i64 [ 1, %194 ], [ %ind.end2904, %middle.block2898 ]
  br label %scalar.ph2899

scalar.ph2899:                                    ; preds = %scalar.ph2899.preheader, %scalar.ph2899
  %indvars.iv2428 = phi i64 [ %indvars.iv.next2429, %scalar.ph2899 ], [ %indvars.iv2428.ph, %scalar.ph2899.preheader ]
  %gep = getelementptr inbounds i32, ptr %invariant.gep, i64 %indvars.iv2428
  %207 = trunc i64 %indvars.iv2428 to i32
  %208 = add i32 %207, -1
  %209 = mul i32 %208, %48
  %210 = add i32 %209, 1
  store i32 %210, ptr %gep, align 4, !tbaa !5
  %indvars.iv.next2429 = add nuw nsw i64 %indvars.iv2428, 1
  %exitcond2432.not = icmp eq i64 %indvars.iv.next2429, %wide.trip.count2431
  br i1 %exitcond2432.not, label %.loopexit2930, label %scalar.ph2899, !llvm.loop !19

.loopexit2930:                                    ; preds = %scalar.ph2899, %middle.block2898
  %211 = load i32, ptr %4, align 4, !tbaa !5
  %212 = add nsw i32 %211, 1
  %213 = add nuw nsw i32 %.pre-phi, %57
  %214 = zext nneg i32 %213 to i64
  %215 = getelementptr i32, ptr %41, i64 %214
  %216 = getelementptr i8, ptr %215, i64 4
  store i32 %212, ptr %216, align 4, !tbaa !5
  %217 = sext i32 %35 to i64
  %invariant.gep2747 = getelementptr inbounds i32, ptr %41, i64 %195
  br label %218

218:                                              ; preds = %.loopexit2930, %._crit_edge
  %indvars.iv2438 = phi i64 [ 1, %.loopexit2930 ], [ %indvars.iv.next2439, %._crit_edge ]
  %.318422050 = phi i32 [ 0, %.loopexit2930 ], [ %.41843.lcssa, %._crit_edge ]
  %gep2748 = getelementptr inbounds i32, ptr %invariant.gep2747, i64 %indvars.iv2438
  %219 = load i32, ptr %gep2748, align 4, !tbaa !5
  %220 = getelementptr i8, ptr %gep2748, i64 4
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %.not1985.not2044 = icmp slt i32 %219, %221
  br i1 %.not1985.not2044, label %.lr.ph2047.preheader, label %._crit_edge

.lr.ph2047.preheader:                             ; preds = %218
  %222 = sext i32 %219 to i64
  %wide.trip.count2436 = sext i32 %221 to i64
  br label %.lr.ph2047

.lr.ph2047:                                       ; preds = %.lr.ph2047.preheader, %247
  %223 = phi i32 [ %221, %.lr.ph2047.preheader ], [ %248, %247 ]
  %indvars.iv2433 = phi i64 [ %222, %.lr.ph2047.preheader ], [ %indvars.iv.next2434, %247 ]
  %.418432046 = phi i32 [ %.318422050, %.lr.ph2047.preheader ], [ %.51844, %247 ]
  %indvars2435 = trunc i64 %indvars.iv2433 to i32
  %.not1986 = icmp eq i32 %.418432046, 0
  br i1 %.not1986, label %224, label %247

224:                                              ; preds = %.lr.ph2047
  %225 = load i32, ptr %4, align 4, !tbaa !5
  %226 = sext i32 %225 to i64
  %.not1987 = icmp slt i64 %indvars.iv2433, %226
  br i1 %.not1987, label %227, label %247

227:                                              ; preds = %224
  %228 = add nsw i64 %indvars.iv2433, 1
  %229 = add nsw i32 %indvars2435, 1
  %230 = mul nsw i32 %229, %35
  %231 = sext i32 %230 to i64
  %232 = getelementptr double, ptr %37, i64 %indvars.iv2433
  %233 = getelementptr double, ptr %232, i64 %231
  %234 = load double, ptr %233, align 8, !tbaa !9
  %235 = fcmp une double %234, 0.000000e+00
  br i1 %235, label %236, label %247

236:                                              ; preds = %227
  %237 = mul nsw i64 %indvars.iv2433, %217
  %238 = getelementptr double, ptr %37, i64 %228
  %239 = getelementptr double, ptr %238, i64 %237
  %240 = load double, ptr %239, align 8, !tbaa !9
  %241 = fcmp une double %240, 0.000000e+00
  br i1 %241, label %242, label %247

242:                                              ; preds = %236
  %243 = trunc nsw i64 %228 to i32
  %244 = icmp eq i32 %223, %243
  br i1 %244, label %245, label %247

245:                                              ; preds = %242
  %246 = add nsw i32 %223, 1
  store i32 %246, ptr %220, align 4, !tbaa !5
  br label %247

247:                                              ; preds = %242, %.lr.ph2047, %227, %236, %224, %245
  %248 = phi i32 [ %223, %224 ], [ %246, %245 ], [ %223, %236 ], [ %223, %227 ], [ %223, %.lr.ph2047 ], [ %223, %242 ]
  %.51844 = phi i32 [ 0, %224 ], [ 0, %245 ], [ 0, %236 ], [ 0, %227 ], [ 0, %.lr.ph2047 ], [ 1, %242 ]
  %indvars.iv.next2434 = add nsw i64 %indvars.iv2433, 1
  %exitcond2437.not = icmp eq i64 %indvars.iv.next2434, %wide.trip.count2436
  br i1 %exitcond2437.not, label %._crit_edge, label %.lr.ph2047, !llvm.loop !20

._crit_edge:                                      ; preds = %247, %218
  %.41843.lcssa = phi i32 [ %.318422050, %218 ], [ %.51844, %247 ]
  %indvars.iv.next2439 = add nuw nsw i64 %indvars.iv2438, 1
  %exitcond2442.not = icmp eq i64 %indvars.iv.next2439, %wide.trip.count2431
  br i1 %exitcond2442.not, label %249, label %218, !llvm.loop !21

249:                                              ; preds = %._crit_edge
  %250 = add nsw i32 %221, -1
  store i32 %250, ptr %19, align 4, !tbaa !5
  %251 = load i32, ptr %4, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr %216, align 4, !tbaa !5
  %253 = load i32, ptr %215, align 4, !tbaa !5
  %.not1913.not = icmp sgt i32 %253, %251
  br i1 %.not1913.not, label %254, label %.lr.ph2060

254:                                              ; preds = %249
  store i32 %252, ptr %215, align 4, !tbaa !5
  %255 = add nsw i32 %57, -1
  %.not19142057 = icmp slt i32 %56, 2
  br i1 %.not19142057, label %._crit_edge2061, label %.lr.ph2060

.lr.ph2060:                                       ; preds = %249, %254
  %.017882711 = phi i32 [ %255, %254 ], [ %57, %249 ]
  store i32 %.01789, ptr %19, align 4, !tbaa !5
  %.not19842052 = icmp slt i32 %.01789, 1
  br i1 %.not19842052, label %._crit_edge2070.thread, label %.lr.ph2055.preheader

._crit_edge2070.thread:                           ; preds = %.lr.ph2060
  %256 = add nuw nsw i32 %.017882711, %.01789
  store i32 %.017882711, ptr %18, align 4, !tbaa !5
  br label %.lr.ph2080

.lr.ph2055.preheader:                             ; preds = %.lr.ph2060
  %257 = sext i32 %42 to i64
  %258 = add nuw nsw i32 %.017882711, 1
  %wide.trip.count2451 = zext nneg i32 %258 to i64
  %wide.trip.count2446 = zext nneg i32 %.pre-phi to i64
  %259 = add nsw i64 %195, -1
  %min.iters.check2919 = icmp ult i32 %.pre-phi, 5
  %n.vec2922 = and i64 %259, -4
  %ind.end2923 = or disjoint i64 %n.vec2922, 1
  %cmp.n2929 = icmp eq i64 %259, %n.vec2922
  br label %.lr.ph2055

.lr.ph2055:                                       ; preds = %.lr.ph2055.preheader, %._crit_edge2056
  %indvars.iv2448 = phi i64 [ 1, %.lr.ph2055.preheader ], [ %indvars.iv.next2449, %._crit_edge2056 ]
  %260 = mul nsw i64 %indvars.iv2448, %257
  %invariant.gep2749 = getelementptr double, ptr %44, i64 %260
  br i1 %min.iters.check2919, label %scalar.ph2918.preheader, label %vector.body2925

vector.body2925:                                  ; preds = %.lr.ph2055, %vector.body2925
  %index2926 = phi i64 [ %index.next2928, %vector.body2925 ], [ 0, %.lr.ph2055 ]
  %offset.idx2927 = or disjoint i64 %index2926, 1
  %261 = getelementptr double, ptr %invariant.gep2749, i64 %offset.idx2927
  %262 = getelementptr i8, ptr %261, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %261, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %262, align 8, !tbaa !9
  %index.next2928 = add nuw i64 %index2926, 4
  %263 = icmp eq i64 %index.next2928, %n.vec2922
  br i1 %263, label %middle.block2917, label %vector.body2925, !llvm.loop !22

middle.block2917:                                 ; preds = %vector.body2925
  br i1 %cmp.n2929, label %._crit_edge2056, label %scalar.ph2918.preheader

scalar.ph2918.preheader:                          ; preds = %middle.block2917, %.lr.ph2055
  %indvars.iv2443.ph = phi i64 [ 1, %.lr.ph2055 ], [ %ind.end2923, %middle.block2917 ]
  br label %scalar.ph2918

scalar.ph2918:                                    ; preds = %scalar.ph2918.preheader, %scalar.ph2918
  %indvars.iv2443 = phi i64 [ %indvars.iv.next2444, %scalar.ph2918 ], [ %indvars.iv2443.ph, %scalar.ph2918.preheader ]
  %gep2750 = getelementptr double, ptr %invariant.gep2749, i64 %indvars.iv2443
  store double 1.000000e+00, ptr %gep2750, align 8, !tbaa !9
  %indvars.iv.next2444 = add nuw nsw i64 %indvars.iv2443, 1
  %exitcond2447.not = icmp eq i64 %indvars.iv.next2444, %wide.trip.count2446
  br i1 %exitcond2447.not, label %._crit_edge2056, label %scalar.ph2918, !llvm.loop !23

._crit_edge2056:                                  ; preds = %scalar.ph2918, %middle.block2917
  %indvars.iv.next2449 = add nuw nsw i64 %indvars.iv2448, 1
  %exitcond2452.not = icmp eq i64 %indvars.iv.next2449, %wide.trip.count2451
  br i1 %exitcond2452.not, label %._crit_edge2061, label %.lr.ph2055, !llvm.loop !24

._crit_edge2061:                                  ; preds = %._crit_edge2056, %254
  %.not191420572714 = phi i1 [ true, %254 ], [ false, %._crit_edge2056 ]
  %.017882712 = phi i32 [ %255, %254 ], [ %.017882711, %._crit_edge2056 ]
  store i32 %.01789, ptr %18, align 4, !tbaa !5
  %.not19152066 = icmp slt i32 %.01789, 1
  br i1 %.not19152066, label %._crit_edge2070, label %.lr.ph2069.preheader

.lr.ph2069.preheader:                             ; preds = %._crit_edge2061
  %264 = zext nneg i32 %.017882712 to i64
  %265 = sext i32 %42 to i64
  %266 = zext nneg i32 %.01789 to i64
  br label %.lr.ph2069

.loopexit2034:                                    ; preds = %.lr.ph2065.split, %.lr.ph2065.split.us, %.lr.ph2069
  %267 = load i32, ptr %18, align 4, !tbaa !5
  %268 = sext i32 %267 to i64
  %.not1915.not = icmp slt i64 %indvars.iv2453, %268
  br i1 %.not1915.not, label %.lr.ph2069, label %._crit_edge2070, !llvm.loop !25

.lr.ph2069:                                       ; preds = %.lr.ph2069.preheader, %.loopexit2034
  %indvars.iv2453 = phi i64 [ 1, %.lr.ph2069.preheader ], [ %indvars.iv.next2454, %.loopexit2034 ]
  %269 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2453
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %indvars.iv.next2454 = add nuw nsw i64 %indvars.iv2453, 1
  %271 = getelementptr i32, ptr %12, i64 %indvars.iv2453
  %272 = load i32, ptr %271, align 4, !tbaa !5
  store i32 %.01789, ptr %19, align 4, !tbaa !5
  %.not19832062 = icmp ugt i64 %indvars.iv2453, %266
  br i1 %.not19832062, label %.loopexit2034, label %.lr.ph2065

.lr.ph2065:                                       ; preds = %.lr.ph2069
  %273 = sub nsw i32 %272, %270
  br i1 %78, label %.lr.ph2065.split.us.preheader, label %.lr.ph2065.split.preheader

.lr.ph2065.split.preheader:                       ; preds = %.lr.ph2065
  %274 = add nuw nsw i64 %indvars.iv2453, %264
  %275 = mul nsw i64 %274, %265
  %invariant.gep2751 = getelementptr double, ptr %44, i64 %275
  br label %.lr.ph2065.split

.lr.ph2065.split.us.preheader:                    ; preds = %.lr.ph2065
  %invariant.gep2753 = getelementptr double, ptr %44, i64 %indvars.iv2453
  br label %.lr.ph2065.split.us

.lr.ph2065.split.us:                              ; preds = %.lr.ph2065.split.us.preheader, %.lr.ph2065.split.us
  %indvars.iv2458 = phi i64 [ %indvars.iv2453, %.lr.ph2065.split.us.preheader ], [ %indvars.iv.next2459, %.lr.ph2065.split.us ]
  %276 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2458
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %indvars.iv.next2459 = add nuw nsw i64 %indvars.iv2458, 1
  %278 = getelementptr i32, ptr %12, i64 %indvars.iv2458
  %279 = load i32, ptr %278, align 4, !tbaa !5
  store i32 %273, ptr %20, align 4, !tbaa !5
  %280 = sub nsw i32 %279, %277
  store i32 %280, ptr %21, align 4, !tbaa !5
  %281 = mul nsw i32 %277, %32
  %282 = add nsw i32 %281, %270
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds double, ptr %34, i64 %283
  %285 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %284, ptr noundef nonnull %6, ptr noundef %117) #6
  %286 = add nuw nsw i64 %indvars.iv2458, %264
  %287 = mul nsw i64 %286, %265
  %gep2754 = getelementptr double, ptr %invariant.gep2753, i64 %287
  store double %285, ptr %gep2754, align 8, !tbaa !9
  %288 = load i32, ptr %19, align 4, !tbaa !5
  %289 = sext i32 %288 to i64
  %.not1983.us.not = icmp slt i64 %indvars.iv2458, %289
  br i1 %.not1983.us.not, label %.lr.ph2065.split.us, label %.loopexit2034, !llvm.loop !26

.lr.ph2065.split:                                 ; preds = %.lr.ph2065.split.preheader, %.lr.ph2065.split
  %indvars.iv2455 = phi i64 [ %indvars.iv2453, %.lr.ph2065.split.preheader ], [ %indvars.iv.next2456, %.lr.ph2065.split ]
  %290 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2455
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %indvars.iv.next2456 = add nuw nsw i64 %indvars.iv2455, 1
  %292 = getelementptr i32, ptr %12, i64 %indvars.iv2455
  %293 = load i32, ptr %292, align 4, !tbaa !5
  store i32 %273, ptr %20, align 4, !tbaa !5
  %294 = sub nsw i32 %293, %291
  store i32 %294, ptr %21, align 4, !tbaa !5
  %295 = mul nsw i32 %291, %32
  %296 = add nsw i32 %295, %270
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds double, ptr %34, i64 %297
  %299 = call double @dlange_(ptr noundef nonnull @.str.8, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %298, ptr noundef nonnull %6, ptr noundef %117) #6
  %gep2752 = getelementptr double, ptr %invariant.gep2751, i64 %indvars.iv2455
  store double %299, ptr %gep2752, align 8, !tbaa !9
  %300 = load i32, ptr %19, align 4, !tbaa !5
  %301 = sext i32 %300 to i64
  %.not1983.not = icmp slt i64 %indvars.iv2455, %301
  br i1 %.not1983.not, label %.lr.ph2065.split, label %.loopexit2034, !llvm.loop !26

._crit_edge2070:                                  ; preds = %.loopexit2034, %._crit_edge2061
  %.not191520662720 = phi i1 [ true, %._crit_edge2061 ], [ %.not19152066, %.loopexit2034 ]
  %302 = add nuw nsw i32 %.017882712, %.01789
  store i32 %.017882712, ptr %18, align 4, !tbaa !5
  br i1 %.not191420572714, label %._crit_edge2081, label %.lr.ph2080

.lr.ph2080:                                       ; preds = %._crit_edge2070.thread, %._crit_edge2070
  %303 = phi i32 [ %256, %._crit_edge2070.thread ], [ %302, %._crit_edge2070 ]
  %.01788271227192726 = phi i32 [ %.017882711, %._crit_edge2070.thread ], [ %.017882712, %._crit_edge2070 ]
  %.not1915206627202724 = phi i1 [ true, %._crit_edge2070.thread ], [ %.not191520662720, %._crit_edge2070 ]
  %304 = zext nneg i32 %303 to i64
  %305 = sext i32 %42 to i64
  %306 = zext nneg i32 %.01788271227192726 to i64
  %invariant.gep2763 = getelementptr inbounds i32, ptr %41, i64 %195
  %invariant.gep2755 = getelementptr inbounds i32, ptr %41, i64 %195
  %invariant.gep2759 = getelementptr inbounds i32, ptr %41, i64 %195
  br label %307

307:                                              ; preds = %.lr.ph2080, %._crit_edge2075
  %indvars.iv2462 = phi i64 [ 1, %.lr.ph2080 ], [ %indvars.iv.next2463, %._crit_edge2075 ]
  %gep2764 = getelementptr inbounds i32, ptr %invariant.gep2763, i64 %indvars.iv2462
  %308 = load i32, ptr %gep2764, align 4, !tbaa !5
  %309 = getelementptr i8, ptr %gep2764, i64 4
  %310 = load i32, ptr %309, align 4, !tbaa !5
  store i32 %.01788271227192726, ptr %19, align 4, !tbaa !5
  %.not19812071 = icmp ugt i64 %indvars.iv2462, %306
  br i1 %.not19812071, label %._crit_edge2075, label %.lr.ph2074

.lr.ph2074:                                       ; preds = %307
  %311 = sub nsw i32 %310, %308
  br i1 %.not1899, label %.lr.ph2074.split.us.preheader, label %.lr.ph2074.split.preheader

.lr.ph2074.split.preheader:                       ; preds = %.lr.ph2074
  %invariant.gep2757 = getelementptr double, ptr %44, i64 %indvars.iv2462
  br label %.lr.ph2074.split

.lr.ph2074.split.us.preheader:                    ; preds = %.lr.ph2074
  %312 = add nuw nsw i64 %indvars.iv2462, %304
  %313 = mul nsw i64 %312, %305
  %invariant.gep2761 = getelementptr double, ptr %44, i64 %313
  br label %.lr.ph2074.split.us

.lr.ph2074.split.us:                              ; preds = %.lr.ph2074.split.us.preheader, %.lr.ph2074.split.us
  %indvars.iv2467 = phi i64 [ %indvars.iv2462, %.lr.ph2074.split.us.preheader ], [ %indvars.iv.next2468, %.lr.ph2074.split.us ]
  %gep2760 = getelementptr inbounds i32, ptr %invariant.gep2759, i64 %indvars.iv2467
  %314 = load i32, ptr %gep2760, align 4, !tbaa !5
  %315 = getelementptr i8, ptr %gep2760, i64 4
  %316 = load i32, ptr %315, align 4, !tbaa !5
  store i32 %311, ptr %20, align 4, !tbaa !5
  %317 = sub nsw i32 %316, %314
  store i32 %317, ptr %21, align 4, !tbaa !5
  %318 = mul nsw i32 %314, %35
  %319 = add nsw i32 %318, %308
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds double, ptr %37, i64 %320
  %322 = call double @dlange_(ptr noundef nonnull @.str.8, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %321, ptr noundef nonnull %8, ptr noundef %117) #6
  %gep2762 = getelementptr double, ptr %invariant.gep2761, i64 %indvars.iv2467
  store double %322, ptr %gep2762, align 8, !tbaa !9
  %indvars.iv.next2468 = add nuw nsw i64 %indvars.iv2467, 1
  %323 = load i32, ptr %19, align 4, !tbaa !5
  %324 = sext i32 %323 to i64
  %.not1981.us.not = icmp slt i64 %indvars.iv2467, %324
  br i1 %.not1981.us.not, label %.lr.ph2074.split.us, label %._crit_edge2075, !llvm.loop !27

.lr.ph2074.split:                                 ; preds = %.lr.ph2074.split.preheader, %.lr.ph2074.split
  %indvars.iv2464 = phi i64 [ %indvars.iv2462, %.lr.ph2074.split.preheader ], [ %indvars.iv.next2465, %.lr.ph2074.split ]
  %gep2756 = getelementptr inbounds i32, ptr %invariant.gep2755, i64 %indvars.iv2464
  %325 = load i32, ptr %gep2756, align 4, !tbaa !5
  %326 = getelementptr i8, ptr %gep2756, i64 4
  %327 = load i32, ptr %326, align 4, !tbaa !5
  store i32 %311, ptr %20, align 4, !tbaa !5
  %328 = sub nsw i32 %327, %325
  store i32 %328, ptr %21, align 4, !tbaa !5
  %329 = mul nsw i32 %325, %35
  %330 = add nsw i32 %329, %308
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds double, ptr %37, i64 %331
  %333 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %332, ptr noundef nonnull %8, ptr noundef %117) #6
  %334 = add nuw nsw i64 %indvars.iv2464, %304
  %335 = mul nsw i64 %334, %305
  %gep2758 = getelementptr double, ptr %invariant.gep2757, i64 %335
  store double %333, ptr %gep2758, align 8, !tbaa !9
  %indvars.iv.next2465 = add nuw nsw i64 %indvars.iv2464, 1
  %336 = load i32, ptr %19, align 4, !tbaa !5
  %337 = sext i32 %336 to i64
  %.not1981.not = icmp slt i64 %indvars.iv2464, %337
  br i1 %.not1981.not, label %.lr.ph2074.split, label %._crit_edge2075, !llvm.loop !27

._crit_edge2075:                                  ; preds = %.lr.ph2074.split, %.lr.ph2074.split.us, %307
  %indvars.iv.next2463 = add nuw nsw i64 %indvars.iv2462, 1
  %338 = load i32, ptr %18, align 4, !tbaa !5
  %339 = sext i32 %338 to i64
  %.not1916.not = icmp slt i64 %indvars.iv2462, %339
  br i1 %.not1916.not, label %307, label %._crit_edge2081, !llvm.loop !28

._crit_edge2081:                                  ; preds = %._crit_edge2075, %._crit_edge2070
  %340 = phi i32 [ %302, %._crit_edge2070 ], [ %303, %._crit_edge2075 ]
  %.not19142057271427182729 = phi i1 [ true, %._crit_edge2070 ], [ false, %._crit_edge2075 ]
  %.01788271227192727 = phi i32 [ %.017882712, %._crit_edge2070 ], [ %.01788271227192726, %._crit_edge2075 ]
  %.not1915206627202725 = phi i1 [ %.not191520662720, %._crit_edge2070 ], [ %.not1915206627202724, %._crit_edge2075 ]
  %341 = load i32, ptr %2, align 4, !tbaa !5
  %342 = sitofp i32 %341 to double
  %343 = icmp ne i32 %46, 0
  %or.cond = select i1 %78, i1 %343, i1 false
  br i1 %or.cond, label %.preheader, label %596

.preheader:                                       ; preds = %._crit_edge2081
  %344 = icmp sgt i32 %.01789, 0
  br i1 %344, label %.lr.ph2358, label %.loopexit2009

.lr.ph2358:                                       ; preds = %.preheader
  %345 = add i32 %35, 1
  %346 = fneg double %342
  %347 = sext i32 %42 to i64
  %348 = sext i32 %38 to i64
  %349 = zext nneg i32 %.01789 to i64
  %350 = zext nneg i32 %340 to i64
  %351 = zext nneg i32 %.01788271227192727 to i64
  %352 = zext nneg i32 %.01788271227192727 to i64
  %invariant.gep2873 = getelementptr inbounds i32, ptr %41, i64 %195
  %invariant.gep2867 = getelementptr i32, ptr %41, i64 %195
  br label %353

353:                                              ; preds = %.lr.ph2358, %._crit_edge2354
  %indvars.iv2621 = phi i64 [ %349, %.lr.ph2358 ], [ %indvars.iv.next2622, %._crit_edge2354 ]
  %.02357 = phi double [ 1.000000e+00, %.lr.ph2358 ], [ %.1.lcssa, %._crit_edge2354 ]
  %354 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2621
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = getelementptr inbounds i8, ptr %354, i64 4
  %357 = load i32, ptr %356, align 4, !tbaa !5
  store i32 %.01788271227192727, ptr %18, align 4, !tbaa !5
  br i1 %.not19142057271427182729, label %._crit_edge2354, label %.lr.ph2353

.lr.ph2353:                                       ; preds = %353
  %358 = sub nsw i32 %357, %355
  %359 = mul nsw i32 %355, %32
  %360 = add nsw i32 %359, %355
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds double, ptr %34, i64 %361
  %363 = icmp ugt i64 %indvars.iv2621, 1
  %364 = add nsw i64 %indvars.iv2621, %352
  %365 = mul nsw i64 %364, %347
  %366 = sext i32 %355 to i64
  %invariant.gep2875 = getelementptr double, ptr %44, i64 %indvars.iv2621
  %invariant.gep2859 = getelementptr double, ptr %44, i64 %365
  %invariant.gep2853 = getelementptr double, ptr %40, i64 %366
  %invariant.gep2869 = getelementptr double, ptr %44, i64 %indvars.iv2621
  %invariant.gep2863 = getelementptr double, ptr %40, i64 %366
  %invariant.gep2865 = getelementptr double, ptr %40, i64 %366
  br label %369

.loopexit2007:                                    ; preds = %.loopexit2003, %._crit_edge2323
  %.6.lcssa = phi double [ %.4.lcssa, %._crit_edge2323 ], [ %.7, %.loopexit2003 ]
  %367 = load i32, ptr %18, align 4, !tbaa !5
  %368 = sext i32 %367 to i64
  %.not1968.not = icmp slt i64 %indvars.iv2643, %368
  %indvars.iv.next2639 = add nuw i32 %indvars.iv2638, 1
  br i1 %.not1968.not, label %369, label %._crit_edge2354, !llvm.loop !29

369:                                              ; preds = %.lr.ph2353, %.loopexit2007
  %indvars.iv2643 = phi i64 [ 1, %.lr.ph2353 ], [ %indvars.iv.next2644, %.loopexit2007 ]
  %indvars.iv2638 = phi i32 [ 2, %.lr.ph2353 ], [ %indvars.iv.next2639, %.loopexit2007 ]
  %.12351 = phi double [ %.02357, %.lr.ph2353 ], [ %.6.lcssa, %.loopexit2007 ]
  %370 = sext i32 %indvars.iv2638 to i64
  %gep2874 = getelementptr inbounds i32, ptr %invariant.gep2873, i64 %indvars.iv2643
  %371 = load i32, ptr %gep2874, align 4, !tbaa !5
  %372 = getelementptr i8, ptr %gep2874, i64 4
  %373 = load i32, ptr %372, align 4, !tbaa !5
  store i32 %358, ptr %19, align 4, !tbaa !5
  %374 = sub nsw i32 %373, %371
  store i32 %374, ptr %20, align 4, !tbaa !5
  %375 = mul i32 %371, %345
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds double, ptr %37, i64 %376
  %378 = mul nsw i32 %371, %38
  %379 = add nsw i32 %378, %355
  %380 = sext i32 %379 to i64
  %381 = getelementptr inbounds double, ptr %40, i64 %380
  call void @dtrsyl_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %362, ptr noundef nonnull %6, ptr noundef %377, ptr noundef nonnull %8, ptr noundef %381, ptr noundef nonnull %10, ptr noundef nonnull %31, ptr noundef nonnull %30) #6
  %382 = load i32, ptr %16, align 4, !tbaa !5
  %383 = load i32, ptr %30, align 4, !tbaa !5
  %.1996 = call i32 @llvm.smax.i32(i32 %382, i32 %383)
  store i32 %.1996, ptr %16, align 4, !tbaa !5
  %384 = load double, ptr %31, align 8, !tbaa !9
  %385 = mul nsw i64 %indvars.iv2643, %347
  %gep2876 = getelementptr double, ptr %invariant.gep2875, i64 %385
  %386 = load double, ptr %gep2876, align 8, !tbaa !9
  %387 = fmul double %384, %386
  %388 = fcmp oeq double %387, 0.000000e+00
  br i1 %388, label %389, label %.loopexit2008

389:                                              ; preds = %369
  %390 = fcmp oeq double %384, 0.000000e+00
  br i1 %390, label %.lr.ph2298.preheader, label %391

391:                                              ; preds = %389
  %392 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %392, ptr %19, align 4, !tbaa !5
  %393 = load double, ptr @c_b19, align 8, !tbaa !9
  %394 = call double @dpow_ui(double noundef %393, i32 noundef %392)
  %395 = fmul double %.12351, %394
  br label %.lr.ph2298.preheader

.lr.ph2298.preheader:                             ; preds = %391, %389
  %.2 = phi double [ %395, %391 ], [ 0.000000e+00, %389 ]
  store i32 %.01788271227192727, ptr %19, align 4, !tbaa !5
  br label %.lr.ph2293

.lr.ph2293:                                       ; preds = %._crit_edge2294, %.lr.ph2298.preheader
  %indvars.iv2606 = phi i64 [ 1, %.lr.ph2298.preheader ], [ %indvars.iv.next2607, %._crit_edge2294 ]
  store i32 %.01789, ptr %20, align 4, !tbaa !5
  %396 = mul nsw i64 %indvars.iv2606, %347
  %invariant.gep2849 = getelementptr double, ptr %44, i64 %396
  br label %397

397:                                              ; preds = %.lr.ph2293, %397
  %indvars.iv2603 = phi i64 [ 1, %.lr.ph2293 ], [ %indvars.iv.next2604, %397 ]
  %398 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %398, ptr %21, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2850 = getelementptr double, ptr %invariant.gep2849, i64 %indvars.iv2603
  %399 = load double, ptr %gep2850, align 8, !tbaa !9
  %400 = load double, ptr @c_b19, align 8, !tbaa !9
  %401 = call double @dpow_ui(double noundef %400, i32 noundef %398)
  %402 = fdiv double %399, %401
  %403 = load double, ptr %24, align 8
  %404 = fcmp ole double %403, %402
  %405 = select i1 %404, double %403, double %402
  store double %405, ptr %gep2850, align 8, !tbaa !9
  %indvars.iv.next2604 = add nuw nsw i64 %indvars.iv2603, 1
  %406 = load i32, ptr %20, align 4, !tbaa !5
  %407 = sext i32 %406 to i64
  %.not1980.not = icmp slt i64 %indvars.iv2603, %407
  br i1 %.not1980.not, label %397, label %._crit_edge2294, !llvm.loop !30

._crit_edge2294:                                  ; preds = %397
  %.pre2698 = load i32, ptr %19, align 4, !tbaa !5
  %indvars.iv.next2607 = add nuw nsw i64 %indvars.iv2606, 1
  %408 = sext i32 %.pre2698 to i64
  %.not1970.not = icmp slt i64 %indvars.iv2606, %408
  br i1 %.not1970.not, label %.lr.ph2293, label %.loopexit2008, !llvm.loop !31

.loopexit2008:                                    ; preds = %._crit_edge2294, %369
  %.3 = phi double [ %.12351, %369 ], [ %.2, %._crit_edge2294 ]
  %409 = load double, ptr %31, align 8, !tbaa !9
  %410 = load double, ptr %gep2876, align 8, !tbaa !9
  %411 = fmul double %409, %410
  store double %411, ptr %gep2876, align 8, !tbaa !9
  store i32 %358, ptr %19, align 4, !tbaa !5
  store i32 %374, ptr %20, align 4, !tbaa !5
  %412 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %381, ptr noundef nonnull %10, ptr noundef %117) #6
  store double %412, ptr %29, align 8, !tbaa !9
  br i1 %363, label %.lr.ph2322, label %._crit_edge2323

.lr.ph2322:                                       ; preds = %.loopexit2008
  %413 = add nsw i32 %373, -1
  %414 = sext i32 %371 to i64
  %invariant.gep2857 = getelementptr double, ptr %44, i64 %385
  %.not19772309.not = icmp slt i32 %371, %373
  %.not19782313.not = icmp slt i32 %371, %373
  br label %415

415:                                              ; preds = %.lr.ph2322, %.loopexit2005
  %indvars.iv2623 = phi i64 [ %indvars.iv2621, %.lr.ph2322 ], [ %indvars.iv.next2624, %.loopexit2005 ]
  %.42319 = phi double [ %.3, %.lr.ph2322 ], [ %.5, %.loopexit2005 ]
  %indvars.iv.next2624 = add nsw i64 %indvars.iv2623, -1
  %416 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv.next2624
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2623
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = sub nsw i32 %419, %417
  store i32 %420, ptr %19, align 4, !tbaa !5
  store i32 %374, ptr %20, align 4, !tbaa !5
  %421 = add nsw i32 %417, %378
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds double, ptr %40, i64 %422
  %424 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %423, ptr noundef nonnull %10, ptr noundef %117) #6
  %gep2858 = getelementptr double, ptr %invariant.gep2857, i64 %indvars.iv.next2624
  %425 = load double, ptr %gep2858, align 8, !tbaa !9
  store double %425, ptr %24, align 8, !tbaa !9
  %426 = load double, ptr %gep2876, align 8, !tbaa !9
  %427 = fcmp ole double %425, %426
  %428 = select i1 %427, double %425, double %426
  %429 = fdiv double %428, %425
  %430 = fmul double %424, %429
  store double %430, ptr %28, align 8, !tbaa !9
  %431 = fdiv double %428, %426
  %432 = load double, ptr %29, align 8, !tbaa !9
  %433 = fmul double %432, %431
  store double %433, ptr %29, align 8, !tbaa !9
  %gep2860 = getelementptr double, ptr %invariant.gep2859, i64 %indvars.iv.next2624
  %434 = load double, ptr %gep2860, align 8, !tbaa !9
  store double %434, ptr %26, align 8, !tbaa !9
  %435 = call double @dlarmm_(ptr noundef nonnull %26, ptr noundef nonnull %29, ptr noundef nonnull %28) #6
  store double %435, ptr %31, align 8, !tbaa !9
  %436 = fmul double %428, %435
  %437 = fcmp oeq double %436, 0.000000e+00
  %438 = insertelement <2 x double> poison, double %428, i64 0
  %439 = insertelement <2 x double> %438, double %435, i64 1
  br i1 %437, label %.lr.ph2307.preheader, label %469

.lr.ph2307.preheader:                             ; preds = %415
  %440 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %440, ptr %19, align 4, !tbaa !5
  %441 = load double, ptr @c_b19, align 8, !tbaa !9
  %442 = call double @dpow_ui(double noundef %441, i32 noundef %440)
  %443 = fmul double %.42319, %442
  store i32 %.01788271227192727, ptr %19, align 4, !tbaa !5
  br label %.lr.ph2302

.lr.ph2302:                                       ; preds = %._crit_edge2303, %.lr.ph2307.preheader
  %indvars.iv2612 = phi i64 [ 1, %.lr.ph2307.preheader ], [ %indvars.iv.next2613, %._crit_edge2303 ]
  store i32 %.01789, ptr %20, align 4, !tbaa !5
  %444 = mul nsw i64 %indvars.iv2612, %347
  %invariant.gep2851 = getelementptr double, ptr %44, i64 %444
  br label %445

445:                                              ; preds = %.lr.ph2302, %445
  %indvars.iv2609 = phi i64 [ 1, %.lr.ph2302 ], [ %indvars.iv.next2610, %445 ]
  %446 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %446, ptr %21, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2852 = getelementptr double, ptr %invariant.gep2851, i64 %indvars.iv2609
  %447 = load double, ptr %gep2852, align 8, !tbaa !9
  %448 = load double, ptr @c_b19, align 8, !tbaa !9
  %449 = call double @dpow_ui(double noundef %448, i32 noundef %446)
  %450 = fdiv double %447, %449
  %451 = load double, ptr %24, align 8
  %452 = fcmp ole double %451, %450
  %453 = select i1 %452, double %451, double %450
  store double %453, ptr %gep2852, align 8, !tbaa !9
  %indvars.iv.next2610 = add nuw nsw i64 %indvars.iv2609, 1
  %454 = load i32, ptr %20, align 4, !tbaa !5
  %455 = sext i32 %454 to i64
  %.not1979.not = icmp slt i64 %indvars.iv2609, %455
  br i1 %.not1979.not, label %445, label %._crit_edge2303, !llvm.loop !32

._crit_edge2303:                                  ; preds = %445
  %.pre2699 = load i32, ptr %19, align 4, !tbaa !5
  %indvars.iv.next2613 = add nuw nsw i64 %indvars.iv2612, 1
  %456 = sext i32 %.pre2699 to i64
  %.not1976.not = icmp slt i64 %indvars.iv2612, %456
  br i1 %.not1976.not, label %.lr.ph2302, label %._crit_edge2308, !llvm.loop !33

._crit_edge2308:                                  ; preds = %._crit_edge2303
  %457 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %457, ptr %19, align 4, !tbaa !5
  %458 = load double, ptr @c_b19, align 8, !tbaa !9
  %459 = call double @dpow_ui(double noundef %458, i32 noundef %457)
  %460 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %460, ptr %19, align 4, !tbaa !5
  %461 = load double, ptr @c_b19, align 8, !tbaa !9
  %462 = call double @dpow_ui(double noundef %461, i32 noundef %460)
  %463 = load double, ptr %31, align 8, !tbaa !9
  %464 = insertelement <2 x double> %439, double %463, i64 1
  %465 = insertelement <2 x double> poison, double %459, i64 0
  %466 = insertelement <2 x double> %465, double %462, i64 1
  %467 = fdiv <2 x double> %464, %466
  %468 = extractelement <2 x double> %467, i64 1
  store double %468, ptr %31, align 8, !tbaa !9
  br label %469

469:                                              ; preds = %._crit_edge2308, %415
  %.5 = phi double [ %443, %._crit_edge2308 ], [ %.42319, %415 ]
  %470 = phi <2 x double> [ %467, %._crit_edge2308 ], [ %439, %415 ]
  %471 = load double, ptr %28, align 8, !tbaa !9
  %472 = extractelement <2 x double> %470, i64 1
  %473 = fmul double %472, %471
  store double %473, ptr %28, align 8, !tbaa !9
  %474 = load double, ptr %29, align 8, !tbaa !9
  %475 = fmul double %472, %474
  store double %475, ptr %29, align 8, !tbaa !9
  %476 = load double, ptr %gep2876, align 8, !tbaa !9
  %477 = extractelement <2 x double> %470, i64 0
  %478 = fdiv double %477, %476
  %479 = fmul double %472, %478
  store double %479, ptr %25, align 8, !tbaa !9
  %480 = fcmp une double %479, 1.000000e+00
  br i1 %480, label %481, label %.loopexit2006

481:                                              ; preds = %469
  store i32 %413, ptr %19, align 4, !tbaa !5
  br i1 %.not19772309.not, label %.lr.ph2312, label %.loopexit2006

.lr.ph2312:                                       ; preds = %481, %.lr.ph2312
  %indvars.iv2615 = phi i64 [ %indvars.iv.next2616, %.lr.ph2312 ], [ %414, %481 ]
  store i32 %358, ptr %20, align 4, !tbaa !5
  %482 = mul nsw i64 %indvars.iv2615, %348
  %gep2854 = getelementptr double, ptr %invariant.gep2853, i64 %482
  call void @dscal_(ptr noundef nonnull %20, ptr noundef nonnull %25, ptr noundef %gep2854, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2616 = add nsw i64 %indvars.iv2615, 1
  %483 = load i32, ptr %19, align 4, !tbaa !5
  %484 = sext i32 %483 to i64
  %.not1977.not = icmp slt i64 %indvars.iv2615, %484
  br i1 %.not1977.not, label %.lr.ph2312, label %.loopexit2006.loopexit, !llvm.loop !34

.loopexit2006.loopexit:                           ; preds = %.lr.ph2312
  %.pre2700 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2006

.loopexit2006:                                    ; preds = %.loopexit2006.loopexit, %481, %469
  %485 = phi double [ %.pre2700, %.loopexit2006.loopexit ], [ %472, %481 ], [ %472, %469 ]
  %486 = load double, ptr %gep2858, align 8, !tbaa !9
  %487 = fdiv double %477, %486
  %488 = fmul double %487, %485
  store double %488, ptr %25, align 8, !tbaa !9
  %489 = fcmp une double %488, 1.000000e+00
  br i1 %489, label %490, label %.loopexit2005

490:                                              ; preds = %.loopexit2006
  store i32 %413, ptr %19, align 4, !tbaa !5
  br i1 %.not19782313.not, label %.lr.ph2316.preheader, label %.loopexit2005

.lr.ph2316.preheader:                             ; preds = %490
  %491 = sext i32 %417 to i64
  %invariant.gep2855 = getelementptr double, ptr %40, i64 %491
  br label %.lr.ph2316

.lr.ph2316:                                       ; preds = %.lr.ph2316.preheader, %.lr.ph2316
  %indvars.iv2618 = phi i64 [ %414, %.lr.ph2316.preheader ], [ %indvars.iv.next2619, %.lr.ph2316 ]
  store i32 %420, ptr %20, align 4, !tbaa !5
  %492 = mul nsw i64 %indvars.iv2618, %348
  %gep2856 = getelementptr double, ptr %invariant.gep2855, i64 %492
  call void @dscal_(ptr noundef nonnull %20, ptr noundef nonnull %25, ptr noundef %gep2856, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2619 = add nsw i64 %indvars.iv2618, 1
  %493 = load i32, ptr %19, align 4, !tbaa !5
  %494 = sext i32 %493 to i64
  %.not1978.not = icmp slt i64 %indvars.iv2618, %494
  br i1 %.not1978.not, label %.lr.ph2316, label %.loopexit2005.loopexit, !llvm.loop !35

.loopexit2005.loopexit:                           ; preds = %.lr.ph2316
  %.pre2701 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2005

.loopexit2005:                                    ; preds = %.loopexit2005.loopexit, %490, %.loopexit2006
  %495 = phi double [ %.pre2701, %.loopexit2005.loopexit ], [ %485, %490 ], [ %485, %.loopexit2006 ]
  %496 = fmul double %477, %495
  store double %496, ptr %gep2876, align 8, !tbaa !9
  store double %496, ptr %gep2858, align 8, !tbaa !9
  store i32 %420, ptr %19, align 4, !tbaa !5
  store i32 %374, ptr %20, align 4, !tbaa !5
  store i32 %358, ptr %21, align 4, !tbaa !5
  %497 = add nsw i32 %417, %359
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds double, ptr %34, i64 %498
  call void @dgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull @c_b31, ptr noundef %499, ptr noundef nonnull %6, ptr noundef %381, ptr noundef nonnull %10, ptr noundef nonnull @c_b32, ptr noundef %423, ptr noundef nonnull %10) #6
  %500 = icmp sgt i64 %indvars.iv2623, 2
  br i1 %500, label %415, label %._crit_edge2323, !llvm.loop !36

._crit_edge2323:                                  ; preds = %.loopexit2005, %.loopexit2008
  %.4.lcssa = phi double [ %.3, %.loopexit2008 ], [ %.5, %.loopexit2005 ]
  store i32 %.01788271227192727, ptr %19, align 4, !tbaa !5
  %indvars.iv.next2644 = add nuw nsw i64 %indvars.iv2643, 1
  %.not19712343.not = icmp ult i64 %indvars.iv2643, %351
  br i1 %.not19712343.not, label %.lr.ph2347, label %.loopexit2007

.lr.ph2347:                                       ; preds = %._crit_edge2323
  %501 = add nsw i32 %373, -1
  %502 = sext i32 %371 to i64
  %invariant.gep2871 = getelementptr double, ptr %44, i64 %indvars.iv2643
  %.not19732335.not = icmp slt i32 %371, %373
  br label %503

503:                                              ; preds = %.lr.ph2347, %.loopexit2003
  %indvars.iv2640 = phi i64 [ %370, %.lr.ph2347 ], [ %indvars.iv.next2641, %.loopexit2003 ]
  %.62345 = phi double [ %.4.lcssa, %.lr.ph2347 ], [ %.7, %.loopexit2003 ]
  %gep2868 = getelementptr i32, ptr %invariant.gep2867, i64 %indvars.iv2640
  %504 = load i32, ptr %gep2868, align 4, !tbaa !5
  %505 = getelementptr i8, ptr %gep2868, i64 4
  %506 = load i32, ptr %505, align 4, !tbaa !5
  store i32 %358, ptr %20, align 4, !tbaa !5
  %507 = sub nsw i32 %506, %504
  store i32 %507, ptr %21, align 4, !tbaa !5
  %508 = mul nsw i32 %504, %38
  %509 = add nsw i32 %508, %355
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds double, ptr %40, i64 %510
  %512 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %511, ptr noundef nonnull %10, ptr noundef %117) #6
  %513 = mul nsw i64 %indvars.iv2640, %347
  %gep2870 = getelementptr double, ptr %invariant.gep2869, i64 %513
  %514 = load double, ptr %gep2870, align 8, !tbaa !9
  store double %514, ptr %24, align 8, !tbaa !9
  %515 = load double, ptr %gep2876, align 8, !tbaa !9
  %516 = fcmp ole double %514, %515
  %517 = select i1 %516, double %514, double %515
  %518 = fdiv double %517, %514
  %519 = fmul double %512, %518
  store double %519, ptr %28, align 8, !tbaa !9
  %520 = fdiv double %517, %515
  %521 = load double, ptr %29, align 8, !tbaa !9
  %522 = fmul double %521, %520
  store double %522, ptr %29, align 8, !tbaa !9
  %523 = add nuw nsw i64 %indvars.iv2640, %350
  %524 = mul nsw i64 %523, %347
  %gep2872 = getelementptr double, ptr %invariant.gep2871, i64 %524
  %525 = load double, ptr %gep2872, align 8, !tbaa !9
  store double %525, ptr %27, align 8, !tbaa !9
  %526 = call double @dlarmm_(ptr noundef nonnull %27, ptr noundef nonnull %29, ptr noundef nonnull %28) #6
  store double %526, ptr %31, align 8, !tbaa !9
  %527 = fmul double %517, %526
  %528 = fcmp oeq double %527, 0.000000e+00
  %529 = insertelement <2 x double> poison, double %517, i64 0
  %530 = insertelement <2 x double> %529, double %526, i64 1
  br i1 %528, label %.lr.ph2333.preheader, label %560

.lr.ph2333.preheader:                             ; preds = %503
  %531 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %531, ptr %20, align 4, !tbaa !5
  %532 = load double, ptr @c_b19, align 8, !tbaa !9
  %533 = call double @dpow_ui(double noundef %532, i32 noundef %531)
  %534 = fmul double %.62345, %533
  store i32 %.01788271227192727, ptr %20, align 4, !tbaa !5
  br label %.lr.ph2328

.lr.ph2328:                                       ; preds = %._crit_edge2329, %.lr.ph2333.preheader
  %indvars.iv2629 = phi i64 [ 1, %.lr.ph2333.preheader ], [ %indvars.iv.next2630, %._crit_edge2329 ]
  store i32 %.01789, ptr %21, align 4, !tbaa !5
  %535 = mul nsw i64 %indvars.iv2629, %347
  %invariant.gep2861 = getelementptr double, ptr %44, i64 %535
  br label %536

536:                                              ; preds = %.lr.ph2328, %536
  %indvars.iv2626 = phi i64 [ 1, %.lr.ph2328 ], [ %indvars.iv.next2627, %536 ]
  %537 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %537, ptr %22, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2862 = getelementptr double, ptr %invariant.gep2861, i64 %indvars.iv2626
  %538 = load double, ptr %gep2862, align 8, !tbaa !9
  %539 = load double, ptr @c_b19, align 8, !tbaa !9
  %540 = call double @dpow_ui(double noundef %539, i32 noundef %537)
  %541 = fdiv double %538, %540
  %542 = load double, ptr %24, align 8
  %543 = fcmp ole double %542, %541
  %544 = select i1 %543, double %542, double %541
  store double %544, ptr %gep2862, align 8, !tbaa !9
  %indvars.iv.next2627 = add nuw nsw i64 %indvars.iv2626, 1
  %545 = load i32, ptr %21, align 4, !tbaa !5
  %546 = sext i32 %545 to i64
  %.not1975.not = icmp slt i64 %indvars.iv2626, %546
  br i1 %.not1975.not, label %536, label %._crit_edge2329, !llvm.loop !37

._crit_edge2329:                                  ; preds = %536
  %.pre2702 = load i32, ptr %20, align 4, !tbaa !5
  %indvars.iv.next2630 = add nuw nsw i64 %indvars.iv2629, 1
  %547 = sext i32 %.pre2702 to i64
  %.not1972.not = icmp slt i64 %indvars.iv2629, %547
  br i1 %.not1972.not, label %.lr.ph2328, label %._crit_edge2334, !llvm.loop !38

._crit_edge2334:                                  ; preds = %._crit_edge2329
  %548 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %548, ptr %20, align 4, !tbaa !5
  %549 = load double, ptr @c_b19, align 8, !tbaa !9
  %550 = call double @dpow_ui(double noundef %549, i32 noundef %548)
  %551 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %551, ptr %20, align 4, !tbaa !5
  %552 = load double, ptr @c_b19, align 8, !tbaa !9
  %553 = call double @dpow_ui(double noundef %552, i32 noundef %551)
  %554 = load double, ptr %31, align 8, !tbaa !9
  %555 = insertelement <2 x double> %530, double %554, i64 1
  %556 = insertelement <2 x double> poison, double %550, i64 0
  %557 = insertelement <2 x double> %556, double %553, i64 1
  %558 = fdiv <2 x double> %555, %557
  %559 = extractelement <2 x double> %558, i64 1
  store double %559, ptr %31, align 8, !tbaa !9
  br label %560

560:                                              ; preds = %._crit_edge2334, %503
  %.7 = phi double [ %534, %._crit_edge2334 ], [ %.62345, %503 ]
  %561 = phi <2 x double> [ %558, %._crit_edge2334 ], [ %530, %503 ]
  %562 = load double, ptr %28, align 8, !tbaa !9
  %563 = extractelement <2 x double> %561, i64 1
  %564 = fmul double %563, %562
  store double %564, ptr %28, align 8, !tbaa !9
  %565 = load double, ptr %29, align 8, !tbaa !9
  %566 = fmul double %563, %565
  store double %566, ptr %29, align 8, !tbaa !9
  %567 = load double, ptr %gep2876, align 8, !tbaa !9
  %568 = extractelement <2 x double> %561, i64 0
  %569 = fdiv double %568, %567
  %570 = fmul double %563, %569
  store double %570, ptr %25, align 8, !tbaa !9
  %571 = fcmp une double %570, 1.000000e+00
  br i1 %571, label %572, label %.loopexit2004

572:                                              ; preds = %560
  store i32 %501, ptr %20, align 4, !tbaa !5
  br i1 %.not19732335.not, label %.lr.ph2338, label %.loopexit2004

.lr.ph2338:                                       ; preds = %572, %.lr.ph2338
  %indvars.iv2632 = phi i64 [ %indvars.iv.next2633, %.lr.ph2338 ], [ %502, %572 ]
  store i32 %358, ptr %21, align 4, !tbaa !5
  %573 = mul nsw i64 %indvars.iv2632, %348
  %gep2864 = getelementptr double, ptr %invariant.gep2863, i64 %573
  call void @dscal_(ptr noundef nonnull %21, ptr noundef nonnull %25, ptr noundef %gep2864, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2633 = add nsw i64 %indvars.iv2632, 1
  %574 = load i32, ptr %20, align 4, !tbaa !5
  %575 = sext i32 %574 to i64
  %.not1973.not = icmp slt i64 %indvars.iv2632, %575
  br i1 %.not1973.not, label %.lr.ph2338, label %.loopexit2004.loopexit, !llvm.loop !39

.loopexit2004.loopexit:                           ; preds = %.lr.ph2338
  %.pre2703 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2004

.loopexit2004:                                    ; preds = %.loopexit2004.loopexit, %572, %560
  %576 = phi double [ %.pre2703, %.loopexit2004.loopexit ], [ %563, %572 ], [ %563, %560 ]
  %577 = load double, ptr %gep2870, align 8, !tbaa !9
  %578 = fdiv double %568, %577
  %579 = fmul double %578, %576
  store double %579, ptr %25, align 8, !tbaa !9
  %580 = fcmp une double %579, 1.000000e+00
  br i1 %580, label %581, label %.loopexit2003

581:                                              ; preds = %.loopexit2004
  %582 = add nsw i32 %506, -1
  store i32 %582, ptr %20, align 4, !tbaa !5
  %.not19742339.not = icmp slt i32 %504, %506
  br i1 %.not19742339.not, label %.lr.ph2342.preheader, label %.loopexit2003

.lr.ph2342.preheader:                             ; preds = %581
  %583 = sext i32 %504 to i64
  br label %.lr.ph2342

.lr.ph2342:                                       ; preds = %.lr.ph2342.preheader, %.lr.ph2342
  %indvars.iv2635 = phi i64 [ %583, %.lr.ph2342.preheader ], [ %indvars.iv.next2636, %.lr.ph2342 ]
  store i32 %358, ptr %21, align 4, !tbaa !5
  %584 = mul nsw i64 %indvars.iv2635, %348
  %gep2866 = getelementptr double, ptr %invariant.gep2865, i64 %584
  call void @dscal_(ptr noundef nonnull %21, ptr noundef nonnull %25, ptr noundef %gep2866, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2636 = add nsw i64 %indvars.iv2635, 1
  %585 = load i32, ptr %20, align 4, !tbaa !5
  %586 = sext i32 %585 to i64
  %.not1974.not = icmp slt i64 %indvars.iv2635, %586
  br i1 %.not1974.not, label %.lr.ph2342, label %.loopexit2003.loopexit, !llvm.loop !40

.loopexit2003.loopexit:                           ; preds = %.lr.ph2342
  %.pre2704 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2003

.loopexit2003:                                    ; preds = %.loopexit2003.loopexit, %581, %.loopexit2004
  %587 = phi double [ %.pre2704, %.loopexit2003.loopexit ], [ %576, %581 ], [ %576, %.loopexit2004 ]
  %588 = fmul double %568, %587
  store double %588, ptr %gep2876, align 8, !tbaa !9
  store double %588, ptr %gep2870, align 8, !tbaa !9
  store i32 %358, ptr %20, align 4, !tbaa !5
  store i32 %507, ptr %21, align 4, !tbaa !5
  store i32 %374, ptr %22, align 4, !tbaa !5
  store double %346, ptr %24, align 8, !tbaa !9
  %589 = mul nsw i32 %504, %35
  %590 = add nsw i32 %589, %371
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds double, ptr %37, i64 %591
  call void @dgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %24, ptr noundef %381, ptr noundef nonnull %10, ptr noundef %592, ptr noundef nonnull %8, ptr noundef nonnull @c_b32, ptr noundef %511, ptr noundef nonnull %10) #6
  %indvars.iv.next2641 = add nuw nsw i64 %indvars.iv2640, 1
  %593 = load i32, ptr %19, align 4, !tbaa !5
  %594 = sext i32 %593 to i64
  %.not1971.not = icmp slt i64 %indvars.iv2640, %594
  br i1 %.not1971.not, label %503, label %.loopexit2007, !llvm.loop !41

._crit_edge2354:                                  ; preds = %.loopexit2007, %353
  %.1.lcssa = phi double [ %.02357, %353 ], [ %.6.lcssa, %.loopexit2007 ]
  %indvars.iv.next2622 = add nsw i64 %indvars.iv2621, -1
  %595 = icmp sgt i64 %indvars.iv2621, 1
  br i1 %595, label %353, label %.loopexit2009, !llvm.loop !42

596:                                              ; preds = %._crit_edge2081
  %597 = icmp eq i32 %45, 0
  %or.cond3 = select i1 %597, i1 %343, i1 false
  br i1 %or.cond3, label %598, label %853

598:                                              ; preds = %596
  store i32 %.01789, ptr %18, align 4, !tbaa !5
  br i1 %.not1915206627202725, label %.loopexit2009, label %.lr.ph2288

.lr.ph2288:                                       ; preds = %598
  %599 = add i32 %32, 1
  %600 = add i32 %35, 1
  %601 = fneg double %342
  %602 = sext i32 %42 to i64
  %603 = sext i32 %38 to i64
  %604 = zext nneg i32 %340 to i64
  %605 = zext nneg i32 %.01788271227192727 to i64
  %606 = zext nneg i32 %.01788271227192727 to i64
  %607 = zext nneg i32 %.01789 to i64
  %invariant.gep2845 = getelementptr inbounds i32, ptr %41, i64 %195
  %invariant.gep2839 = getelementptr i32, ptr %41, i64 %195
  br label %610

.loopexit2016.loopexit:                           ; preds = %.loopexit2014
  %.pre2697 = load i32, ptr %18, align 4, !tbaa !5
  br label %.loopexit2016

.loopexit2016:                                    ; preds = %.loopexit2016.loopexit, %610
  %608 = phi i32 [ %611, %610 ], [ %.pre2697, %.loopexit2016.loopexit ]
  %.9.lcssa = phi double [ %.82286, %610 ], [ %.14.lcssa, %.loopexit2016.loopexit ]
  %609 = sext i32 %608 to i64
  %.not1944.not = icmp slt i64 %indvars.iv2600, %609
  %indvars.iv.next2576 = add nuw nsw i64 %indvars.iv2575, 1
  br i1 %.not1944.not, label %610, label %.loopexit2009, !llvm.loop !43

610:                                              ; preds = %.lr.ph2288, %.loopexit2016
  %611 = phi i32 [ %.01789, %.lr.ph2288 ], [ %608, %.loopexit2016 ]
  %indvars.iv2600 = phi i64 [ 1, %.lr.ph2288 ], [ %indvars.iv.next2601, %.loopexit2016 ]
  %indvars.iv2575 = phi i64 [ 2, %.lr.ph2288 ], [ %indvars.iv.next2576, %.loopexit2016 ]
  %.82286 = phi double [ 1.000000e+00, %.lr.ph2288 ], [ %.9.lcssa, %.loopexit2016 ]
  %612 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2600
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %indvars.iv.next2601 = add nuw nsw i64 %indvars.iv2600, 1
  %614 = getelementptr i32, ptr %12, i64 %indvars.iv2600
  %615 = load i32, ptr %614, align 4, !tbaa !5
  store i32 %.01788271227192727, ptr %19, align 4, !tbaa !5
  br i1 %.not19142057271427182729, label %.loopexit2016, label %.lr.ph2282

.lr.ph2282:                                       ; preds = %610
  %616 = sub nsw i32 %615, %613
  %617 = mul i32 %613, %599
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds double, ptr %34, i64 %618
  %620 = add nuw nsw i64 %indvars.iv2600, %606
  %621 = mul nsw i64 %620, %602
  %622 = sext i32 %613 to i64
  %invariant.gep2847 = getelementptr double, ptr %44, i64 %indvars.iv2600
  %.not19482247.not = icmp ult i64 %indvars.iv2600, %607
  %invariant.gep2831 = getelementptr double, ptr %44, i64 %621
  %invariant.gep2825 = getelementptr double, ptr %40, i64 %622
  %invariant.gep2841 = getelementptr double, ptr %44, i64 %indvars.iv2600
  %invariant.gep2835 = getelementptr double, ptr %40, i64 %622
  %invariant.gep2837 = getelementptr double, ptr %40, i64 %622
  br label %625

.loopexit2014:                                    ; preds = %.loopexit2010, %._crit_edge2252
  %.14.lcssa = phi double [ %.12.lcssa, %._crit_edge2252 ], [ %.15, %.loopexit2010 ]
  %623 = load i32, ptr %19, align 4, !tbaa !5
  %624 = sext i32 %623 to i64
  %.not1945.not = icmp slt i64 %indvars.iv2597, %624
  %indvars.iv.next2593 = add nuw i32 %indvars.iv2592, 1
  br i1 %.not1945.not, label %625, label %.loopexit2016.loopexit, !llvm.loop !44

625:                                              ; preds = %.lr.ph2282, %.loopexit2014
  %indvars.iv2597 = phi i64 [ 1, %.lr.ph2282 ], [ %indvars.iv.next2598, %.loopexit2014 ]
  %indvars.iv2592 = phi i32 [ 2, %.lr.ph2282 ], [ %indvars.iv.next2593, %.loopexit2014 ]
  %.92280 = phi double [ %.82286, %.lr.ph2282 ], [ %.14.lcssa, %.loopexit2014 ]
  %626 = sext i32 %indvars.iv2592 to i64
  %gep2846 = getelementptr inbounds i32, ptr %invariant.gep2845, i64 %indvars.iv2597
  %627 = load i32, ptr %gep2846, align 4, !tbaa !5
  %628 = getelementptr i8, ptr %gep2846, i64 4
  %629 = load i32, ptr %628, align 4, !tbaa !5
  store i32 %616, ptr %20, align 4, !tbaa !5
  %630 = sub nsw i32 %629, %627
  store i32 %630, ptr %21, align 4, !tbaa !5
  %631 = mul i32 %627, %600
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds double, ptr %37, i64 %632
  %634 = mul nsw i32 %627, %38
  %635 = add nsw i32 %634, %613
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds double, ptr %40, i64 %636
  call void @dtrsyl_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %619, ptr noundef nonnull %6, ptr noundef %633, ptr noundef nonnull %8, ptr noundef %637, ptr noundef nonnull %10, ptr noundef nonnull %31, ptr noundef nonnull %30) #6
  %638 = load i32, ptr %16, align 4, !tbaa !5
  %639 = load i32, ptr %30, align 4, !tbaa !5
  %.1997 = call i32 @llvm.smax.i32(i32 %638, i32 %639)
  store i32 %.1997, ptr %16, align 4, !tbaa !5
  %640 = load double, ptr %31, align 8, !tbaa !9
  %641 = mul nsw i64 %indvars.iv2597, %602
  %gep2848 = getelementptr double, ptr %invariant.gep2847, i64 %641
  %642 = load double, ptr %gep2848, align 8, !tbaa !9
  %643 = fmul double %640, %642
  %644 = fcmp oeq double %643, 0.000000e+00
  br i1 %644, label %645, label %.loopexit2015

645:                                              ; preds = %625
  %646 = fcmp oeq double %640, 0.000000e+00
  br i1 %646, label %.lr.ph2228.preheader, label %647

647:                                              ; preds = %645
  %648 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %648, ptr %20, align 4, !tbaa !5
  %649 = load double, ptr @c_b19, align 8, !tbaa !9
  %650 = call double @dpow_ui(double noundef %649, i32 noundef %648)
  %651 = fmul double %.92280, %650
  br label %.lr.ph2228.preheader

.lr.ph2228.preheader:                             ; preds = %647, %645
  %.10 = phi double [ %651, %647 ], [ 0.000000e+00, %645 ]
  store i32 %.01788271227192727, ptr %20, align 4, !tbaa !5
  br label %.lr.ph2223

.lr.ph2223:                                       ; preds = %._crit_edge2224, %.lr.ph2228.preheader
  %indvars.iv2560 = phi i64 [ 1, %.lr.ph2228.preheader ], [ %indvars.iv.next2561, %._crit_edge2224 ]
  store i32 %.01789, ptr %21, align 4, !tbaa !5
  %652 = mul nsw i64 %indvars.iv2560, %602
  %invariant.gep2821 = getelementptr double, ptr %44, i64 %652
  br label %653

653:                                              ; preds = %.lr.ph2223, %653
  %indvars.iv2557 = phi i64 [ 1, %.lr.ph2223 ], [ %indvars.iv.next2558, %653 ]
  %654 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %654, ptr %22, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2822 = getelementptr double, ptr %invariant.gep2821, i64 %indvars.iv2557
  %655 = load double, ptr %gep2822, align 8, !tbaa !9
  %656 = load double, ptr @c_b19, align 8, !tbaa !9
  %657 = call double @dpow_ui(double noundef %656, i32 noundef %654)
  %658 = fdiv double %655, %657
  %659 = load double, ptr %24, align 8
  %660 = fcmp ole double %659, %658
  %661 = select i1 %660, double %659, double %658
  store double %661, ptr %gep2822, align 8, !tbaa !9
  %indvars.iv.next2558 = add nuw nsw i64 %indvars.iv2557, 1
  %662 = load i32, ptr %21, align 4, !tbaa !5
  %663 = sext i32 %662 to i64
  %.not1958.not = icmp slt i64 %indvars.iv2557, %663
  br i1 %.not1958.not, label %653, label %._crit_edge2224, !llvm.loop !45

._crit_edge2224:                                  ; preds = %653
  %.pre2690 = load i32, ptr %20, align 4, !tbaa !5
  %indvars.iv.next2561 = add nuw nsw i64 %indvars.iv2560, 1
  %664 = sext i32 %.pre2690 to i64
  %.not1947.not = icmp slt i64 %indvars.iv2560, %664
  br i1 %.not1947.not, label %.lr.ph2223, label %.loopexit2015, !llvm.loop !46

.loopexit2015:                                    ; preds = %._crit_edge2224, %625
  %.11 = phi double [ %.92280, %625 ], [ %.10, %._crit_edge2224 ]
  %665 = load double, ptr %31, align 8, !tbaa !9
  %666 = load double, ptr %gep2848, align 8, !tbaa !9
  %667 = fmul double %665, %666
  store double %667, ptr %gep2848, align 8, !tbaa !9
  store i32 %616, ptr %20, align 4, !tbaa !5
  store i32 %630, ptr %21, align 4, !tbaa !5
  %668 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %637, ptr noundef nonnull %10, ptr noundef %117) #6
  store double %668, ptr %29, align 8, !tbaa !9
  store i32 %.01789, ptr %20, align 4, !tbaa !5
  br i1 %.not19482247.not, label %.lr.ph2251, label %._crit_edge2252

.lr.ph2251:                                       ; preds = %.loopexit2015
  %669 = add nsw i32 %629, -1
  %670 = sext i32 %627 to i64
  %invariant.gep2829 = getelementptr double, ptr %44, i64 %641
  %.not19552239.not = icmp slt i32 %627, %629
  %.not19562243.not = icmp slt i32 %627, %629
  br label %671

671:                                              ; preds = %.lr.ph2251, %.loopexit2012
  %indvars.iv2577 = phi i64 [ %indvars.iv2575, %.lr.ph2251 ], [ %indvars.iv.next2578, %.loopexit2012 ]
  %.122249 = phi double [ %.11, %.lr.ph2251 ], [ %.13, %.loopexit2012 ]
  %672 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2577
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %indvars.iv.next2578 = add nuw nsw i64 %indvars.iv2577, 1
  %674 = getelementptr i32, ptr %12, i64 %indvars.iv2577
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = sub nsw i32 %675, %673
  store i32 %676, ptr %21, align 4, !tbaa !5
  store i32 %630, ptr %22, align 4, !tbaa !5
  %677 = add nsw i32 %673, %634
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds double, ptr %40, i64 %678
  %680 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef %679, ptr noundef nonnull %10, ptr noundef %117) #6
  %gep2830 = getelementptr double, ptr %invariant.gep2829, i64 %indvars.iv2577
  %681 = load double, ptr %gep2830, align 8, !tbaa !9
  store double %681, ptr %24, align 8, !tbaa !9
  %682 = load double, ptr %gep2848, align 8, !tbaa !9
  %683 = fcmp ole double %681, %682
  %684 = select i1 %683, double %681, double %682
  %685 = fdiv double %684, %681
  %686 = fmul double %680, %685
  store double %686, ptr %28, align 8, !tbaa !9
  %687 = fdiv double %684, %682
  %688 = load double, ptr %29, align 8, !tbaa !9
  %689 = fmul double %688, %687
  store double %689, ptr %29, align 8, !tbaa !9
  %gep2832 = getelementptr double, ptr %invariant.gep2831, i64 %indvars.iv2577
  %690 = load double, ptr %gep2832, align 8, !tbaa !9
  store double %690, ptr %26, align 8, !tbaa !9
  %691 = call double @dlarmm_(ptr noundef nonnull %26, ptr noundef nonnull %29, ptr noundef nonnull %28) #6
  store double %691, ptr %31, align 8, !tbaa !9
  %692 = fmul double %684, %691
  %693 = fcmp oeq double %692, 0.000000e+00
  %694 = insertelement <2 x double> poison, double %684, i64 0
  %695 = insertelement <2 x double> %694, double %691, i64 1
  br i1 %693, label %.lr.ph2237.preheader, label %725

.lr.ph2237.preheader:                             ; preds = %671
  %696 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %696, ptr %21, align 4, !tbaa !5
  %697 = load double, ptr @c_b19, align 8, !tbaa !9
  %698 = call double @dpow_ui(double noundef %697, i32 noundef %696)
  %699 = fmul double %.122249, %698
  store i32 %.01788271227192727, ptr %21, align 4, !tbaa !5
  br label %.lr.ph2232

.lr.ph2232:                                       ; preds = %._crit_edge2233, %.lr.ph2237.preheader
  %indvars.iv2566 = phi i64 [ 1, %.lr.ph2237.preheader ], [ %indvars.iv.next2567, %._crit_edge2233 ]
  store i32 %.01789, ptr %22, align 4, !tbaa !5
  %700 = mul nsw i64 %indvars.iv2566, %602
  %invariant.gep2823 = getelementptr double, ptr %44, i64 %700
  br label %701

701:                                              ; preds = %.lr.ph2232, %701
  %indvars.iv2563 = phi i64 [ 1, %.lr.ph2232 ], [ %indvars.iv.next2564, %701 ]
  %702 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %702, ptr %23, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2824 = getelementptr double, ptr %invariant.gep2823, i64 %indvars.iv2563
  %703 = load double, ptr %gep2824, align 8, !tbaa !9
  %704 = load double, ptr @c_b19, align 8, !tbaa !9
  %705 = call double @dpow_ui(double noundef %704, i32 noundef %702)
  %706 = fdiv double %703, %705
  %707 = load double, ptr %24, align 8
  %708 = fcmp ole double %707, %706
  %709 = select i1 %708, double %707, double %706
  store double %709, ptr %gep2824, align 8, !tbaa !9
  %indvars.iv.next2564 = add nuw nsw i64 %indvars.iv2563, 1
  %710 = load i32, ptr %22, align 4, !tbaa !5
  %711 = sext i32 %710 to i64
  %.not1957.not = icmp slt i64 %indvars.iv2563, %711
  br i1 %.not1957.not, label %701, label %._crit_edge2233, !llvm.loop !47

._crit_edge2233:                                  ; preds = %701
  %.pre2691 = load i32, ptr %21, align 4, !tbaa !5
  %indvars.iv.next2567 = add nuw nsw i64 %indvars.iv2566, 1
  %712 = sext i32 %.pre2691 to i64
  %.not1954.not = icmp slt i64 %indvars.iv2566, %712
  br i1 %.not1954.not, label %.lr.ph2232, label %._crit_edge2238, !llvm.loop !48

._crit_edge2238:                                  ; preds = %._crit_edge2233
  %713 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %713, ptr %21, align 4, !tbaa !5
  %714 = load double, ptr @c_b19, align 8, !tbaa !9
  %715 = call double @dpow_ui(double noundef %714, i32 noundef %713)
  %716 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %716, ptr %21, align 4, !tbaa !5
  %717 = load double, ptr @c_b19, align 8, !tbaa !9
  %718 = call double @dpow_ui(double noundef %717, i32 noundef %716)
  %719 = load double, ptr %31, align 8, !tbaa !9
  %720 = insertelement <2 x double> %695, double %719, i64 1
  %721 = insertelement <2 x double> poison, double %715, i64 0
  %722 = insertelement <2 x double> %721, double %718, i64 1
  %723 = fdiv <2 x double> %720, %722
  %724 = extractelement <2 x double> %723, i64 1
  store double %724, ptr %31, align 8, !tbaa !9
  br label %725

725:                                              ; preds = %._crit_edge2238, %671
  %.13 = phi double [ %699, %._crit_edge2238 ], [ %.122249, %671 ]
  %726 = phi <2 x double> [ %723, %._crit_edge2238 ], [ %695, %671 ]
  %727 = load double, ptr %28, align 8, !tbaa !9
  %728 = extractelement <2 x double> %726, i64 1
  %729 = fmul double %728, %727
  store double %729, ptr %28, align 8, !tbaa !9
  %730 = load double, ptr %29, align 8, !tbaa !9
  %731 = fmul double %728, %730
  store double %731, ptr %29, align 8, !tbaa !9
  %732 = load double, ptr %gep2848, align 8, !tbaa !9
  %733 = extractelement <2 x double> %726, i64 0
  %734 = fdiv double %733, %732
  %735 = fmul double %728, %734
  store double %735, ptr %25, align 8, !tbaa !9
  %736 = fcmp une double %735, 1.000000e+00
  br i1 %736, label %737, label %.loopexit2013

737:                                              ; preds = %725
  store i32 %669, ptr %21, align 4, !tbaa !5
  br i1 %.not19552239.not, label %.lr.ph2242, label %.loopexit2013

.lr.ph2242:                                       ; preds = %737, %.lr.ph2242
  %indvars.iv2569 = phi i64 [ %indvars.iv.next2570, %.lr.ph2242 ], [ %670, %737 ]
  store i32 %616, ptr %22, align 4, !tbaa !5
  %738 = mul nsw i64 %indvars.iv2569, %603
  %gep2826 = getelementptr double, ptr %invariant.gep2825, i64 %738
  call void @dscal_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep2826, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2570 = add nsw i64 %indvars.iv2569, 1
  %739 = load i32, ptr %21, align 4, !tbaa !5
  %740 = sext i32 %739 to i64
  %.not1955.not = icmp slt i64 %indvars.iv2569, %740
  br i1 %.not1955.not, label %.lr.ph2242, label %.loopexit2013.loopexit, !llvm.loop !49

.loopexit2013.loopexit:                           ; preds = %.lr.ph2242
  %.pre2692 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2013

.loopexit2013:                                    ; preds = %.loopexit2013.loopexit, %737, %725
  %741 = phi double [ %.pre2692, %.loopexit2013.loopexit ], [ %728, %737 ], [ %728, %725 ]
  %742 = load double, ptr %gep2830, align 8, !tbaa !9
  %743 = fdiv double %733, %742
  %744 = fmul double %743, %741
  store double %744, ptr %25, align 8, !tbaa !9
  %745 = fcmp une double %744, 1.000000e+00
  br i1 %745, label %746, label %.loopexit2012

746:                                              ; preds = %.loopexit2013
  store i32 %669, ptr %21, align 4, !tbaa !5
  br i1 %.not19562243.not, label %.lr.ph2246.preheader, label %.loopexit2012

.lr.ph2246.preheader:                             ; preds = %746
  %747 = sext i32 %673 to i64
  %invariant.gep2827 = getelementptr double, ptr %40, i64 %747
  br label %.lr.ph2246

.lr.ph2246:                                       ; preds = %.lr.ph2246.preheader, %.lr.ph2246
  %indvars.iv2572 = phi i64 [ %670, %.lr.ph2246.preheader ], [ %indvars.iv.next2573, %.lr.ph2246 ]
  store i32 %676, ptr %22, align 4, !tbaa !5
  %748 = mul nsw i64 %indvars.iv2572, %603
  %gep2828 = getelementptr double, ptr %invariant.gep2827, i64 %748
  call void @dscal_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep2828, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2573 = add nsw i64 %indvars.iv2572, 1
  %749 = load i32, ptr %21, align 4, !tbaa !5
  %750 = sext i32 %749 to i64
  %.not1956.not = icmp slt i64 %indvars.iv2572, %750
  br i1 %.not1956.not, label %.lr.ph2246, label %.loopexit2012.loopexit, !llvm.loop !50

.loopexit2012.loopexit:                           ; preds = %.lr.ph2246
  %.pre2693 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2012

.loopexit2012:                                    ; preds = %.loopexit2012.loopexit, %746, %.loopexit2013
  %751 = phi double [ %.pre2693, %.loopexit2012.loopexit ], [ %741, %746 ], [ %741, %.loopexit2013 ]
  %752 = fmul double %733, %751
  store double %752, ptr %gep2848, align 8, !tbaa !9
  store double %752, ptr %gep2830, align 8, !tbaa !9
  store i32 %676, ptr %21, align 4, !tbaa !5
  store i32 %630, ptr %22, align 4, !tbaa !5
  store i32 %616, ptr %23, align 4, !tbaa !5
  %753 = mul nsw i32 %673, %32
  %754 = add nsw i32 %753, %613
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds double, ptr %34, i64 %755
  call void @dgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull @c_b31, ptr noundef %756, ptr noundef nonnull %6, ptr noundef %637, ptr noundef nonnull %10, ptr noundef nonnull @c_b32, ptr noundef %679, ptr noundef nonnull %10) #6
  %757 = load i32, ptr %20, align 4, !tbaa !5
  %758 = sext i32 %757 to i64
  %.not1948.not = icmp slt i64 %indvars.iv2577, %758
  br i1 %.not1948.not, label %671, label %._crit_edge2252, !llvm.loop !51

._crit_edge2252:                                  ; preds = %.loopexit2012, %.loopexit2015
  %.12.lcssa = phi double [ %.11, %.loopexit2015 ], [ %.13, %.loopexit2012 ]
  store i32 %.01788271227192727, ptr %20, align 4, !tbaa !5
  %indvars.iv.next2598 = add nuw nsw i64 %indvars.iv2597, 1
  %.not19492272.not = icmp ult i64 %indvars.iv2597, %605
  br i1 %.not19492272.not, label %.lr.ph2276, label %.loopexit2014

.lr.ph2276:                                       ; preds = %._crit_edge2252
  %759 = add nsw i32 %629, -1
  %760 = sext i32 %627 to i64
  %invariant.gep2843 = getelementptr double, ptr %44, i64 %indvars.iv2597
  %.not19512264.not = icmp slt i32 %627, %629
  br label %761

761:                                              ; preds = %.lr.ph2276, %.loopexit2010
  %indvars.iv2594 = phi i64 [ %626, %.lr.ph2276 ], [ %indvars.iv.next2595, %.loopexit2010 ]
  %.142274 = phi double [ %.12.lcssa, %.lr.ph2276 ], [ %.15, %.loopexit2010 ]
  %gep2840 = getelementptr i32, ptr %invariant.gep2839, i64 %indvars.iv2594
  %762 = load i32, ptr %gep2840, align 4, !tbaa !5
  %763 = getelementptr i8, ptr %gep2840, i64 4
  %764 = load i32, ptr %763, align 4, !tbaa !5
  store i32 %616, ptr %21, align 4, !tbaa !5
  %765 = sub nsw i32 %764, %762
  store i32 %765, ptr %22, align 4, !tbaa !5
  %766 = mul nsw i32 %762, %38
  %767 = add nsw i32 %766, %613
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds double, ptr %40, i64 %768
  %770 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef %769, ptr noundef nonnull %10, ptr noundef %117) #6
  %771 = mul nsw i64 %indvars.iv2594, %602
  %gep2842 = getelementptr double, ptr %invariant.gep2841, i64 %771
  %772 = load double, ptr %gep2842, align 8, !tbaa !9
  store double %772, ptr %24, align 8, !tbaa !9
  %773 = load double, ptr %gep2848, align 8, !tbaa !9
  %774 = fcmp ole double %772, %773
  %775 = select i1 %774, double %772, double %773
  %776 = fdiv double %775, %772
  %777 = fmul double %770, %776
  store double %777, ptr %28, align 8, !tbaa !9
  %778 = fdiv double %775, %773
  %779 = load double, ptr %29, align 8, !tbaa !9
  %780 = fmul double %779, %778
  store double %780, ptr %29, align 8, !tbaa !9
  %781 = add nuw nsw i64 %indvars.iv2594, %604
  %782 = mul nsw i64 %781, %602
  %gep2844 = getelementptr double, ptr %invariant.gep2843, i64 %782
  %783 = load double, ptr %gep2844, align 8, !tbaa !9
  store double %783, ptr %27, align 8, !tbaa !9
  %784 = call double @dlarmm_(ptr noundef nonnull %27, ptr noundef nonnull %29, ptr noundef nonnull %28) #6
  store double %784, ptr %31, align 8, !tbaa !9
  %785 = fmul double %775, %784
  %786 = fcmp oeq double %785, 0.000000e+00
  %787 = insertelement <2 x double> poison, double %775, i64 0
  %788 = insertelement <2 x double> %787, double %784, i64 1
  br i1 %786, label %.lr.ph2262.preheader, label %818

.lr.ph2262.preheader:                             ; preds = %761
  %789 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %789, ptr %21, align 4, !tbaa !5
  %790 = load double, ptr @c_b19, align 8, !tbaa !9
  %791 = call double @dpow_ui(double noundef %790, i32 noundef %789)
  %792 = fmul double %.142274, %791
  store i32 %.01788271227192727, ptr %21, align 4, !tbaa !5
  br label %.lr.ph2257

.lr.ph2257:                                       ; preds = %._crit_edge2258, %.lr.ph2262.preheader
  %indvars.iv2583 = phi i64 [ 1, %.lr.ph2262.preheader ], [ %indvars.iv.next2584, %._crit_edge2258 ]
  store i32 %.01789, ptr %22, align 4, !tbaa !5
  %793 = mul nsw i64 %indvars.iv2583, %602
  %invariant.gep2833 = getelementptr double, ptr %44, i64 %793
  br label %794

794:                                              ; preds = %.lr.ph2257, %794
  %indvars.iv2580 = phi i64 [ 1, %.lr.ph2257 ], [ %indvars.iv.next2581, %794 ]
  %795 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %795, ptr %23, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2834 = getelementptr double, ptr %invariant.gep2833, i64 %indvars.iv2580
  %796 = load double, ptr %gep2834, align 8, !tbaa !9
  %797 = load double, ptr @c_b19, align 8, !tbaa !9
  %798 = call double @dpow_ui(double noundef %797, i32 noundef %795)
  %799 = fdiv double %796, %798
  %800 = load double, ptr %24, align 8
  %801 = fcmp ole double %800, %799
  %802 = select i1 %801, double %800, double %799
  store double %802, ptr %gep2834, align 8, !tbaa !9
  %indvars.iv.next2581 = add nuw nsw i64 %indvars.iv2580, 1
  %803 = load i32, ptr %22, align 4, !tbaa !5
  %804 = sext i32 %803 to i64
  %.not1953.not = icmp slt i64 %indvars.iv2580, %804
  br i1 %.not1953.not, label %794, label %._crit_edge2258, !llvm.loop !52

._crit_edge2258:                                  ; preds = %794
  %.pre2694 = load i32, ptr %21, align 4, !tbaa !5
  %indvars.iv.next2584 = add nuw nsw i64 %indvars.iv2583, 1
  %805 = sext i32 %.pre2694 to i64
  %.not1950.not = icmp slt i64 %indvars.iv2583, %805
  br i1 %.not1950.not, label %.lr.ph2257, label %._crit_edge2263, !llvm.loop !53

._crit_edge2263:                                  ; preds = %._crit_edge2258
  %806 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %806, ptr %21, align 4, !tbaa !5
  %807 = load double, ptr @c_b19, align 8, !tbaa !9
  %808 = call double @dpow_ui(double noundef %807, i32 noundef %806)
  %809 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %809, ptr %21, align 4, !tbaa !5
  %810 = load double, ptr @c_b19, align 8, !tbaa !9
  %811 = call double @dpow_ui(double noundef %810, i32 noundef %809)
  %812 = load double, ptr %31, align 8, !tbaa !9
  %813 = insertelement <2 x double> %788, double %812, i64 1
  %814 = insertelement <2 x double> poison, double %808, i64 0
  %815 = insertelement <2 x double> %814, double %811, i64 1
  %816 = fdiv <2 x double> %813, %815
  %817 = extractelement <2 x double> %816, i64 1
  store double %817, ptr %31, align 8, !tbaa !9
  br label %818

818:                                              ; preds = %._crit_edge2263, %761
  %.15 = phi double [ %792, %._crit_edge2263 ], [ %.142274, %761 ]
  %819 = phi <2 x double> [ %816, %._crit_edge2263 ], [ %788, %761 ]
  %820 = load double, ptr %28, align 8, !tbaa !9
  %821 = extractelement <2 x double> %819, i64 1
  %822 = fmul double %821, %820
  store double %822, ptr %28, align 8, !tbaa !9
  %823 = load double, ptr %29, align 8, !tbaa !9
  %824 = fmul double %821, %823
  store double %824, ptr %29, align 8, !tbaa !9
  %825 = load double, ptr %gep2848, align 8, !tbaa !9
  %826 = extractelement <2 x double> %819, i64 0
  %827 = fdiv double %826, %825
  %828 = fmul double %821, %827
  store double %828, ptr %25, align 8, !tbaa !9
  %829 = fcmp une double %828, 1.000000e+00
  br i1 %829, label %830, label %.loopexit2011

830:                                              ; preds = %818
  store i32 %759, ptr %21, align 4, !tbaa !5
  br i1 %.not19512264.not, label %.lr.ph2267, label %.loopexit2011

.lr.ph2267:                                       ; preds = %830, %.lr.ph2267
  %indvars.iv2586 = phi i64 [ %indvars.iv.next2587, %.lr.ph2267 ], [ %760, %830 ]
  store i32 %616, ptr %22, align 4, !tbaa !5
  %831 = mul nsw i64 %indvars.iv2586, %603
  %gep2836 = getelementptr double, ptr %invariant.gep2835, i64 %831
  call void @dscal_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep2836, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2587 = add nsw i64 %indvars.iv2586, 1
  %832 = load i32, ptr %21, align 4, !tbaa !5
  %833 = sext i32 %832 to i64
  %.not1951.not = icmp slt i64 %indvars.iv2586, %833
  br i1 %.not1951.not, label %.lr.ph2267, label %.loopexit2011.loopexit, !llvm.loop !54

.loopexit2011.loopexit:                           ; preds = %.lr.ph2267
  %.pre2695 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2011

.loopexit2011:                                    ; preds = %.loopexit2011.loopexit, %830, %818
  %834 = phi double [ %.pre2695, %.loopexit2011.loopexit ], [ %821, %830 ], [ %821, %818 ]
  %835 = load double, ptr %gep2842, align 8, !tbaa !9
  %836 = fdiv double %826, %835
  %837 = fmul double %836, %834
  store double %837, ptr %25, align 8, !tbaa !9
  %838 = fcmp une double %837, 1.000000e+00
  br i1 %838, label %839, label %.loopexit2010

839:                                              ; preds = %.loopexit2011
  %840 = add nsw i32 %764, -1
  store i32 %840, ptr %21, align 4, !tbaa !5
  %.not19522268.not = icmp slt i32 %762, %764
  br i1 %.not19522268.not, label %.lr.ph2271.preheader, label %.loopexit2010

.lr.ph2271.preheader:                             ; preds = %839
  %841 = sext i32 %762 to i64
  br label %.lr.ph2271

.lr.ph2271:                                       ; preds = %.lr.ph2271.preheader, %.lr.ph2271
  %indvars.iv2589 = phi i64 [ %841, %.lr.ph2271.preheader ], [ %indvars.iv.next2590, %.lr.ph2271 ]
  store i32 %616, ptr %22, align 4, !tbaa !5
  %842 = mul nsw i64 %indvars.iv2589, %603
  %gep2838 = getelementptr double, ptr %invariant.gep2837, i64 %842
  call void @dscal_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep2838, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2590 = add nsw i64 %indvars.iv2589, 1
  %843 = load i32, ptr %21, align 4, !tbaa !5
  %844 = sext i32 %843 to i64
  %.not1952.not = icmp slt i64 %indvars.iv2589, %844
  br i1 %.not1952.not, label %.lr.ph2271, label %.loopexit2010.loopexit, !llvm.loop !55

.loopexit2010.loopexit:                           ; preds = %.lr.ph2271
  %.pre2696 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2010

.loopexit2010:                                    ; preds = %.loopexit2010.loopexit, %839, %.loopexit2011
  %845 = phi double [ %.pre2696, %.loopexit2010.loopexit ], [ %834, %839 ], [ %834, %.loopexit2011 ]
  %846 = fmul double %826, %845
  store double %846, ptr %gep2848, align 8, !tbaa !9
  store double %846, ptr %gep2842, align 8, !tbaa !9
  store i32 %616, ptr %21, align 4, !tbaa !5
  store i32 %765, ptr %22, align 4, !tbaa !5
  store i32 %630, ptr %23, align 4, !tbaa !5
  store double %601, ptr %24, align 8, !tbaa !9
  %847 = mul nsw i32 %762, %35
  %848 = add nsw i32 %847, %627
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds double, ptr %37, i64 %849
  call void @dgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef %637, ptr noundef nonnull %10, ptr noundef %850, ptr noundef nonnull %8, ptr noundef nonnull @c_b32, ptr noundef %769, ptr noundef nonnull %10) #6
  %indvars.iv.next2595 = add nuw nsw i64 %indvars.iv2594, 1
  %851 = load i32, ptr %20, align 4, !tbaa !5
  %852 = sext i32 %851 to i64
  %.not1949.not = icmp slt i64 %indvars.iv2594, %852
  br i1 %.not1949.not, label %761, label %.loopexit2014, !llvm.loop !56

853:                                              ; preds = %596
  %or.cond5 = select i1 %78, i1 true, i1 %343
  br i1 %or.cond5, label %1103, label %854

854:                                              ; preds = %853
  store i32 %.01789, ptr %18, align 4, !tbaa !5
  br i1 %.not1915206627202725, label %.loopexit2009, label %.lr.ph2149

.lr.ph2149:                                       ; preds = %854
  %855 = icmp sgt i32 %.01788271227192727, 0
  %856 = add i32 %32, 1
  %857 = fneg double %342
  br i1 %855, label %.lr.ph2143.us.preheader, label %.loopexit2009

.lr.ph2143.us.preheader:                          ; preds = %.lr.ph2149
  %858 = sext i32 %42 to i64
  %859 = sext i32 %38 to i64
  %860 = zext nneg i32 %340 to i64
  %861 = zext nneg i32 %.01788271227192727 to i64
  %862 = zext nneg i32 %.01788271227192727 to i64
  %863 = zext nneg i32 %.01789 to i64
  %invariant.gep2789 = getelementptr i32, ptr %41, i64 %195
  %invariant.gep2783 = getelementptr inbounds i32, ptr %41, i64 %195
  br label %.lr.ph2143.us

.lr.ph2143.us:                                    ; preds = %.lr.ph2143.us.preheader, %..loopexit2032_crit_edge.us
  %indvars.iv2512 = phi i64 [ 1, %.lr.ph2143.us.preheader ], [ %indvars.iv.next2513, %..loopexit2032_crit_edge.us ]
  %indvars.iv2489 = phi i64 [ 2, %.lr.ph2143.us.preheader ], [ %indvars.iv.next2490, %..loopexit2032_crit_edge.us ]
  %.162147.us = phi double [ 1.000000e+00, %.lr.ph2143.us.preheader ], [ %.20.lcssa.us, %..loopexit2032_crit_edge.us ]
  %864 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2512
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %indvars.iv.next2513 = add nuw nsw i64 %indvars.iv2512, 1
  %866 = getelementptr i32, ptr %12, i64 %indvars.iv2512
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = sub nsw i32 %867, %865
  %869 = mul i32 %865, %856
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds double, ptr %34, i64 %870
  %872 = add nuw nsw i64 %indvars.iv2512, %862
  %873 = mul nsw i64 %872, %858
  %874 = sext i32 %865 to i64
  %invariant.gep2791 = getelementptr double, ptr %44, i64 %indvars.iv2512
  %.not19202109.us.not = icmp ult i64 %indvars.iv2512, %863
  %invariant.gep2775 = getelementptr double, ptr %44, i64 %873
  %invariant.gep2769 = getelementptr double, ptr %40, i64 %874
  %invariant.gep2785 = getelementptr double, ptr %44, i64 %indvars.iv2512
  %invariant.gep2779 = getelementptr double, ptr %40, i64 %874
  %invariant.gep2781 = getelementptr double, ptr %40, i64 %874
  br label %875

875:                                              ; preds = %.loopexit2030.us, %.lr.ph2143.us
  %indvars.iv2509 = phi i64 [ %861, %.lr.ph2143.us ], [ %indvars.iv.next2510, %.loopexit2030.us ]
  %.172141.us = phi double [ %.162147.us, %.lr.ph2143.us ], [ %.23.us, %.loopexit2030.us ]
  %gep2790 = getelementptr i32, ptr %invariant.gep2789, i64 %indvars.iv2509
  %876 = load i32, ptr %gep2790, align 4, !tbaa !5
  %877 = getelementptr i8, ptr %gep2790, i64 4
  %878 = load i32, ptr %877, align 4, !tbaa !5
  store i32 %868, ptr %19, align 4, !tbaa !5
  %879 = sub nsw i32 %878, %876
  store i32 %879, ptr %20, align 4, !tbaa !5
  %880 = mul nsw i32 %876, %35
  %881 = add nsw i32 %880, %876
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds double, ptr %37, i64 %882
  %884 = mul nsw i32 %876, %38
  %885 = add nsw i32 %884, %865
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds double, ptr %40, i64 %886
  call void @dtrsyl_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %871, ptr noundef nonnull %6, ptr noundef %883, ptr noundef nonnull %8, ptr noundef %887, ptr noundef nonnull %10, ptr noundef nonnull %31, ptr noundef nonnull %30) #6
  %888 = load i32, ptr %16, align 4, !tbaa !5
  %889 = load i32, ptr %30, align 4, !tbaa !5
  %.1998.us = call i32 @llvm.smax.i32(i32 %888, i32 %889)
  store i32 %.1998.us, ptr %16, align 4, !tbaa !5
  %890 = load double, ptr %31, align 8, !tbaa !9
  %891 = mul nsw i64 %indvars.iv2509, %858
  %gep2792 = getelementptr double, ptr %invariant.gep2791, i64 %891
  %892 = load double, ptr %gep2792, align 8, !tbaa !9
  %893 = fmul double %890, %892
  store double %893, ptr %gep2792, align 8, !tbaa !9
  %894 = fmul double %890, %893
  %895 = fcmp oeq double %894, 0.000000e+00
  br i1 %895, label %896, label %.loopexit2031.us

896:                                              ; preds = %875
  %897 = fcmp oeq double %890, 0.000000e+00
  br i1 %897, label %.lr.ph2090.us.preheader, label %898

898:                                              ; preds = %896
  %899 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %899, ptr %19, align 4, !tbaa !5
  %900 = load double, ptr @c_b19, align 8, !tbaa !9
  %901 = call double @dpow_ui(double noundef %900, i32 noundef %899)
  %902 = fmul double %.172141.us, %901
  br label %.lr.ph2090.us.preheader

.lr.ph2090.us.preheader:                          ; preds = %896, %898
  %.18.us = phi double [ %902, %898 ], [ 0.000000e+00, %896 ]
  store i32 %.01788271227192727, ptr %19, align 4, !tbaa !5
  br label %.lr.ph2085.us

903:                                              ; preds = %.lr.ph2085.us, %903
  %indvars.iv2471 = phi i64 [ 1, %.lr.ph2085.us ], [ %indvars.iv.next2472, %903 ]
  %904 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %904, ptr %21, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2766 = getelementptr double, ptr %invariant.gep2765, i64 %indvars.iv2471
  %905 = load double, ptr %gep2766, align 8, !tbaa !9
  %906 = load double, ptr @c_b19, align 8, !tbaa !9
  %907 = call double @dpow_ui(double noundef %906, i32 noundef %904)
  %908 = fdiv double %905, %907
  %909 = load double, ptr %24, align 8
  %910 = fcmp ole double %909, %908
  %911 = select i1 %910, double %909, double %908
  store double %911, ptr %gep2766, align 8, !tbaa !9
  %indvars.iv.next2472 = add nuw nsw i64 %indvars.iv2471, 1
  %912 = load i32, ptr %20, align 4, !tbaa !5
  %913 = sext i32 %912 to i64
  %.not1930.us.not = icmp slt i64 %indvars.iv2471, %913
  br i1 %.not1930.us.not, label %903, label %._crit_edge2086.us, !llvm.loop !57

._crit_edge2086.us:                               ; preds = %903
  %.pre2676 = load i32, ptr %19, align 4, !tbaa !5
  %indvars.iv.next2475 = add nuw nsw i64 %indvars.iv2474, 1
  %914 = sext i32 %.pre2676 to i64
  %.not1919.us.not = icmp slt i64 %indvars.iv2474, %914
  br i1 %.not1919.us.not, label %.lr.ph2085.us, label %.loopexit2031.us, !llvm.loop !58

.loopexit2031.us:                                 ; preds = %._crit_edge2086.us, %875
  %.19.us = phi double [ %.172141.us, %875 ], [ %.18.us, %._crit_edge2086.us ]
  store i32 %868, ptr %19, align 4, !tbaa !5
  store i32 %879, ptr %20, align 4, !tbaa !5
  %915 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %887, ptr noundef nonnull %10, ptr noundef %117) #6
  store double %915, ptr %29, align 8, !tbaa !9
  store i32 %.01789, ptr %19, align 4, !tbaa !5
  br i1 %.not19202109.us.not, label %.lr.ph2113.us, label %._crit_edge2114.us

916:                                              ; preds = %.lr.ph2113.us, %.loopexit2028.us
  %indvars.iv2491 = phi i64 [ %indvars.iv2489, %.lr.ph2113.us ], [ %indvars.iv.next2492, %.loopexit2028.us ]
  %.202111.us = phi double [ %.19.us, %.lr.ph2113.us ], [ %.21.us, %.loopexit2028.us ]
  %917 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2491
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %indvars.iv.next2492 = add nuw nsw i64 %indvars.iv2491, 1
  %919 = getelementptr i32, ptr %12, i64 %indvars.iv2491
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = sub nsw i32 %920, %918
  store i32 %921, ptr %20, align 4, !tbaa !5
  store i32 %879, ptr %21, align 4, !tbaa !5
  %922 = add nsw i32 %918, %884
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds double, ptr %40, i64 %923
  %925 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %924, ptr noundef nonnull %10, ptr noundef %117) #6
  %gep2774 = getelementptr double, ptr %invariant.gep2773, i64 %indvars.iv2491
  %926 = load double, ptr %gep2774, align 8, !tbaa !9
  store double %926, ptr %24, align 8, !tbaa !9
  %927 = load double, ptr %gep2792, align 8, !tbaa !9
  %928 = fcmp ole double %926, %927
  %929 = select i1 %928, double %926, double %927
  %930 = fdiv double %929, %926
  %931 = fmul double %925, %930
  store double %931, ptr %28, align 8, !tbaa !9
  %932 = fdiv double %929, %927
  %933 = load double, ptr %29, align 8, !tbaa !9
  %934 = fmul double %933, %932
  store double %934, ptr %29, align 8, !tbaa !9
  %gep2776 = getelementptr double, ptr %invariant.gep2775, i64 %indvars.iv2491
  %935 = load double, ptr %gep2776, align 8, !tbaa !9
  store double %935, ptr %26, align 8, !tbaa !9
  %936 = call double @dlarmm_(ptr noundef nonnull %26, ptr noundef nonnull %29, ptr noundef nonnull %28) #6
  store double %936, ptr %31, align 8, !tbaa !9
  %937 = fmul double %929, %936
  %938 = fcmp oeq double %937, 0.000000e+00
  %939 = insertelement <2 x double> poison, double %929, i64 0
  %940 = insertelement <2 x double> %939, double %936, i64 1
  br i1 %938, label %.lr.ph2099.us.preheader, label %969

.lr.ph2099.us.preheader:                          ; preds = %916
  %941 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %941, ptr %20, align 4, !tbaa !5
  %942 = load double, ptr @c_b19, align 8, !tbaa !9
  %943 = call double @dpow_ui(double noundef %942, i32 noundef %941)
  %944 = fmul double %.202111.us, %943
  store i32 %.01788271227192727, ptr %20, align 4, !tbaa !5
  br label %.lr.ph2094.us

945:                                              ; preds = %.lr.ph2094.us, %945
  %indvars.iv2477 = phi i64 [ 1, %.lr.ph2094.us ], [ %indvars.iv.next2478, %945 ]
  %946 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %946, ptr %22, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2768 = getelementptr double, ptr %invariant.gep2767, i64 %indvars.iv2477
  %947 = load double, ptr %gep2768, align 8, !tbaa !9
  %948 = load double, ptr @c_b19, align 8, !tbaa !9
  %949 = call double @dpow_ui(double noundef %948, i32 noundef %946)
  %950 = fdiv double %947, %949
  %951 = load double, ptr %24, align 8
  %952 = fcmp ole double %951, %950
  %953 = select i1 %952, double %951, double %950
  store double %953, ptr %gep2768, align 8, !tbaa !9
  %indvars.iv.next2478 = add nuw nsw i64 %indvars.iv2477, 1
  %954 = load i32, ptr %21, align 4, !tbaa !5
  %955 = sext i32 %954 to i64
  %.not1929.us.not = icmp slt i64 %indvars.iv2477, %955
  br i1 %.not1929.us.not, label %945, label %._crit_edge2095.us, !llvm.loop !59

._crit_edge2095.us:                               ; preds = %945
  %.pre2677 = load i32, ptr %20, align 4, !tbaa !5
  %indvars.iv.next2481 = add nuw nsw i64 %indvars.iv2480, 1
  %956 = sext i32 %.pre2677 to i64
  %.not1926.us.not = icmp slt i64 %indvars.iv2480, %956
  br i1 %.not1926.us.not, label %.lr.ph2094.us, label %._crit_edge2100.us, !llvm.loop !60

._crit_edge2100.us:                               ; preds = %._crit_edge2095.us
  %957 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %957, ptr %20, align 4, !tbaa !5
  %958 = load double, ptr @c_b19, align 8, !tbaa !9
  %959 = call double @dpow_ui(double noundef %958, i32 noundef %957)
  %960 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %960, ptr %20, align 4, !tbaa !5
  %961 = load double, ptr @c_b19, align 8, !tbaa !9
  %962 = call double @dpow_ui(double noundef %961, i32 noundef %960)
  %963 = load double, ptr %31, align 8, !tbaa !9
  %964 = insertelement <2 x double> %940, double %963, i64 1
  %965 = insertelement <2 x double> poison, double %959, i64 0
  %966 = insertelement <2 x double> %965, double %962, i64 1
  %967 = fdiv <2 x double> %964, %966
  %968 = extractelement <2 x double> %967, i64 1
  store double %968, ptr %31, align 8, !tbaa !9
  br label %969

969:                                              ; preds = %._crit_edge2100.us, %916
  %.21.us = phi double [ %944, %._crit_edge2100.us ], [ %.202111.us, %916 ]
  %970 = phi <2 x double> [ %967, %._crit_edge2100.us ], [ %940, %916 ]
  %971 = load double, ptr %28, align 8, !tbaa !9
  %972 = extractelement <2 x double> %970, i64 1
  %973 = fmul double %972, %971
  store double %973, ptr %28, align 8, !tbaa !9
  %974 = load double, ptr %29, align 8, !tbaa !9
  %975 = fmul double %972, %974
  store double %975, ptr %29, align 8, !tbaa !9
  %976 = load double, ptr %gep2792, align 8, !tbaa !9
  %977 = extractelement <2 x double> %970, i64 0
  %978 = fdiv double %977, %976
  %979 = fmul double %972, %978
  store double %979, ptr %25, align 8, !tbaa !9
  %980 = fcmp une double %979, 1.000000e+00
  br i1 %980, label %981, label %.loopexit2029.us

981:                                              ; preds = %969
  store i32 %1096, ptr %20, align 4, !tbaa !5
  br i1 %.not19272101.us.not, label %.lr.ph2104.us, label %.loopexit2029.us

.lr.ph2104.us:                                    ; preds = %981, %.lr.ph2104.us
  %indvars.iv2483 = phi i64 [ %indvars.iv.next2484, %.lr.ph2104.us ], [ %1097, %981 ]
  store i32 %868, ptr %21, align 4, !tbaa !5
  %982 = mul nsw i64 %indvars.iv2483, %859
  %gep2770 = getelementptr double, ptr %invariant.gep2769, i64 %982
  call void @dscal_(ptr noundef nonnull %21, ptr noundef nonnull %25, ptr noundef %gep2770, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2484 = add nsw i64 %indvars.iv2483, 1
  %983 = load i32, ptr %20, align 4, !tbaa !5
  %984 = sext i32 %983 to i64
  %.not1927.us.not = icmp slt i64 %indvars.iv2483, %984
  br i1 %.not1927.us.not, label %.lr.ph2104.us, label %.loopexit2029.us.loopexit, !llvm.loop !61

.loopexit2029.us.loopexit:                        ; preds = %.lr.ph2104.us
  %.pre2678 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2029.us

.loopexit2029.us:                                 ; preds = %.loopexit2029.us.loopexit, %981, %969
  %985 = phi double [ %.pre2678, %.loopexit2029.us.loopexit ], [ %972, %981 ], [ %972, %969 ]
  %986 = load double, ptr %gep2774, align 8, !tbaa !9
  %987 = fdiv double %977, %986
  %988 = fmul double %987, %985
  store double %988, ptr %25, align 8, !tbaa !9
  %989 = fcmp une double %988, 1.000000e+00
  br i1 %989, label %990, label %.loopexit2028.us

990:                                              ; preds = %.loopexit2029.us
  store i32 %1096, ptr %20, align 4, !tbaa !5
  br i1 %.not19282105.us.not, label %.lr.ph2108.us.preheader, label %.loopexit2028.us

.lr.ph2108.us.preheader:                          ; preds = %990
  %991 = sext i32 %918 to i64
  %invariant.gep2771 = getelementptr double, ptr %40, i64 %991
  br label %.lr.ph2108.us

.lr.ph2108.us:                                    ; preds = %.lr.ph2108.us.preheader, %.lr.ph2108.us
  %indvars.iv2486 = phi i64 [ %1097, %.lr.ph2108.us.preheader ], [ %indvars.iv.next2487, %.lr.ph2108.us ]
  store i32 %921, ptr %21, align 4, !tbaa !5
  %992 = mul nsw i64 %indvars.iv2486, %859
  %gep2772 = getelementptr double, ptr %invariant.gep2771, i64 %992
  call void @dscal_(ptr noundef nonnull %21, ptr noundef nonnull %25, ptr noundef %gep2772, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2487 = add nsw i64 %indvars.iv2486, 1
  %993 = load i32, ptr %20, align 4, !tbaa !5
  %994 = sext i32 %993 to i64
  %.not1928.us.not = icmp slt i64 %indvars.iv2486, %994
  br i1 %.not1928.us.not, label %.lr.ph2108.us, label %.loopexit2028.us.loopexit, !llvm.loop !62

.loopexit2028.us.loopexit:                        ; preds = %.lr.ph2108.us
  %.pre2679 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2028.us

.loopexit2028.us:                                 ; preds = %.loopexit2028.us.loopexit, %990, %.loopexit2029.us
  %995 = phi double [ %.pre2679, %.loopexit2028.us.loopexit ], [ %985, %990 ], [ %985, %.loopexit2029.us ]
  %996 = fmul double %977, %995
  store double %996, ptr %gep2792, align 8, !tbaa !9
  store double %996, ptr %gep2774, align 8, !tbaa !9
  store i32 %921, ptr %20, align 4, !tbaa !5
  store i32 %879, ptr %21, align 4, !tbaa !5
  store i32 %868, ptr %22, align 4, !tbaa !5
  %997 = mul nsw i32 %918, %32
  %998 = add nsw i32 %997, %865
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds double, ptr %34, i64 %999
  call void @dgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull @c_b31, ptr noundef %1000, ptr noundef nonnull %6, ptr noundef %887, ptr noundef nonnull %10, ptr noundef nonnull @c_b32, ptr noundef %924, ptr noundef nonnull %10) #6
  %1001 = load i32, ptr %19, align 4, !tbaa !5
  %1002 = sext i32 %1001 to i64
  %.not1920.us.not = icmp slt i64 %indvars.iv2491, %1002
  br i1 %.not1920.us.not, label %916, label %._crit_edge2114.us, !llvm.loop !63

._crit_edge2114.us:                               ; preds = %.loopexit2028.us, %.loopexit2031.us
  %.20.lcssa.us = phi double [ %.19.us, %.loopexit2031.us ], [ %.21.us, %.loopexit2028.us ]
  %indvars.iv.next2510 = add nsw i64 %indvars.iv2509, -1
  %1003 = trunc nuw nsw i64 %indvars.iv.next2510 to i32
  store i32 %1003, ptr %19, align 4, !tbaa !5
  %.not19212134.us = icmp slt i64 %indvars.iv2509, 2
  br i1 %.not19212134.us, label %..loopexit2032_crit_edge.us, label %.lr.ph2138.us

1004:                                             ; preds = %.lr.ph2138.us, %.loopexit2026.us
  %indvars.iv2506 = phi i64 [ 1, %.lr.ph2138.us ], [ %indvars.iv.next2507, %.loopexit2026.us ]
  %.222136.us = phi double [ %.20.lcssa.us, %.lr.ph2138.us ], [ %.23.us, %.loopexit2026.us ]
  %gep2784 = getelementptr inbounds i32, ptr %invariant.gep2783, i64 %indvars.iv2506
  %1005 = load i32, ptr %gep2784, align 4, !tbaa !5
  %1006 = getelementptr i8, ptr %gep2784, i64 4
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  store i32 %868, ptr %20, align 4, !tbaa !5
  %1008 = sub nsw i32 %1007, %1005
  store i32 %1008, ptr %21, align 4, !tbaa !5
  %1009 = mul nsw i32 %1005, %38
  %1010 = add nsw i32 %1009, %865
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds double, ptr %40, i64 %1011
  %1013 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %1012, ptr noundef nonnull %10, ptr noundef %117) #6
  %1014 = mul nsw i64 %indvars.iv2506, %858
  %gep2786 = getelementptr double, ptr %invariant.gep2785, i64 %1014
  %1015 = load double, ptr %gep2786, align 8, !tbaa !9
  store double %1015, ptr %24, align 8, !tbaa !9
  %1016 = load double, ptr %gep2792, align 8, !tbaa !9
  %1017 = fcmp ole double %1015, %1016
  %1018 = select i1 %1017, double %1015, double %1016
  %1019 = fdiv double %1018, %1015
  %1020 = fmul double %1013, %1019
  store double %1020, ptr %28, align 8, !tbaa !9
  %1021 = fdiv double %1018, %1016
  %1022 = load double, ptr %29, align 8, !tbaa !9
  %1023 = fmul double %1022, %1021
  store double %1023, ptr %29, align 8, !tbaa !9
  %1024 = add nuw nsw i64 %indvars.iv2506, %860
  %1025 = mul nsw i64 %1024, %858
  %gep2788 = getelementptr double, ptr %invariant.gep2787, i64 %1025
  %1026 = load double, ptr %gep2788, align 8, !tbaa !9
  store double %1026, ptr %27, align 8, !tbaa !9
  %1027 = call double @dlarmm_(ptr noundef nonnull %27, ptr noundef nonnull %29, ptr noundef nonnull %28) #6
  store double %1027, ptr %31, align 8, !tbaa !9
  %1028 = fmul double %1018, %1027
  %1029 = fcmp oeq double %1028, 0.000000e+00
  %1030 = insertelement <2 x double> poison, double %1018, i64 0
  %1031 = insertelement <2 x double> %1030, double %1027, i64 1
  br i1 %1029, label %.lr.ph2124.us.preheader, label %1060

.lr.ph2124.us.preheader:                          ; preds = %1004
  %1032 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1032, ptr %20, align 4, !tbaa !5
  %1033 = load double, ptr @c_b19, align 8, !tbaa !9
  %1034 = call double @dpow_ui(double noundef %1033, i32 noundef %1032)
  %1035 = fmul double %.222136.us, %1034
  store i32 %.01788271227192727, ptr %20, align 4, !tbaa !5
  br label %.lr.ph2119.us

1036:                                             ; preds = %.lr.ph2119.us, %1036
  %indvars.iv2494 = phi i64 [ 1, %.lr.ph2119.us ], [ %indvars.iv.next2495, %1036 ]
  %1037 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1037, ptr %22, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2778 = getelementptr double, ptr %invariant.gep2777, i64 %indvars.iv2494
  %1038 = load double, ptr %gep2778, align 8, !tbaa !9
  %1039 = load double, ptr @c_b19, align 8, !tbaa !9
  %1040 = call double @dpow_ui(double noundef %1039, i32 noundef %1037)
  %1041 = fdiv double %1038, %1040
  %1042 = load double, ptr %24, align 8
  %1043 = fcmp ole double %1042, %1041
  %1044 = select i1 %1043, double %1042, double %1041
  store double %1044, ptr %gep2778, align 8, !tbaa !9
  %indvars.iv.next2495 = add nuw nsw i64 %indvars.iv2494, 1
  %1045 = load i32, ptr %21, align 4, !tbaa !5
  %1046 = sext i32 %1045 to i64
  %.not1925.us.not = icmp slt i64 %indvars.iv2494, %1046
  br i1 %.not1925.us.not, label %1036, label %._crit_edge2120.us, !llvm.loop !64

._crit_edge2120.us:                               ; preds = %1036
  %.pre2680 = load i32, ptr %20, align 4, !tbaa !5
  %indvars.iv.next2498 = add nuw nsw i64 %indvars.iv2497, 1
  %1047 = sext i32 %.pre2680 to i64
  %.not1922.us.not = icmp slt i64 %indvars.iv2497, %1047
  br i1 %.not1922.us.not, label %.lr.ph2119.us, label %._crit_edge2125.us, !llvm.loop !65

._crit_edge2125.us:                               ; preds = %._crit_edge2120.us
  %1048 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1048, ptr %20, align 4, !tbaa !5
  %1049 = load double, ptr @c_b19, align 8, !tbaa !9
  %1050 = call double @dpow_ui(double noundef %1049, i32 noundef %1048)
  %1051 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1051, ptr %20, align 4, !tbaa !5
  %1052 = load double, ptr @c_b19, align 8, !tbaa !9
  %1053 = call double @dpow_ui(double noundef %1052, i32 noundef %1051)
  %1054 = load double, ptr %31, align 8, !tbaa !9
  %1055 = insertelement <2 x double> %1031, double %1054, i64 1
  %1056 = insertelement <2 x double> poison, double %1050, i64 0
  %1057 = insertelement <2 x double> %1056, double %1053, i64 1
  %1058 = fdiv <2 x double> %1055, %1057
  %1059 = extractelement <2 x double> %1058, i64 1
  store double %1059, ptr %31, align 8, !tbaa !9
  br label %1060

1060:                                             ; preds = %._crit_edge2125.us, %1004
  %.23.us = phi double [ %1035, %._crit_edge2125.us ], [ %.222136.us, %1004 ]
  %1061 = phi <2 x double> [ %1058, %._crit_edge2125.us ], [ %1031, %1004 ]
  %1062 = load double, ptr %28, align 8, !tbaa !9
  %1063 = extractelement <2 x double> %1061, i64 1
  %1064 = fmul double %1063, %1062
  store double %1064, ptr %28, align 8, !tbaa !9
  %1065 = load double, ptr %29, align 8, !tbaa !9
  %1066 = fmul double %1063, %1065
  store double %1066, ptr %29, align 8, !tbaa !9
  %1067 = load double, ptr %gep2792, align 8, !tbaa !9
  %1068 = extractelement <2 x double> %1061, i64 0
  %1069 = fdiv double %1068, %1067
  %1070 = fmul double %1063, %1069
  store double %1070, ptr %25, align 8, !tbaa !9
  %1071 = fcmp une double %1070, 1.000000e+00
  br i1 %1071, label %1072, label %.loopexit2027.us

1072:                                             ; preds = %1060
  store i32 %1099, ptr %20, align 4, !tbaa !5
  br i1 %.not19232126.us.not, label %.lr.ph2129.us, label %.loopexit2027.us

.lr.ph2129.us:                                    ; preds = %1072, %.lr.ph2129.us
  %indvars.iv2500 = phi i64 [ %indvars.iv.next2501, %.lr.ph2129.us ], [ %1100, %1072 ]
  store i32 %868, ptr %21, align 4, !tbaa !5
  %1073 = mul nsw i64 %indvars.iv2500, %859
  %gep2780 = getelementptr double, ptr %invariant.gep2779, i64 %1073
  call void @dscal_(ptr noundef nonnull %21, ptr noundef nonnull %25, ptr noundef %gep2780, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2501 = add nsw i64 %indvars.iv2500, 1
  %1074 = load i32, ptr %20, align 4, !tbaa !5
  %1075 = sext i32 %1074 to i64
  %.not1923.us.not = icmp slt i64 %indvars.iv2500, %1075
  br i1 %.not1923.us.not, label %.lr.ph2129.us, label %.loopexit2027.us.loopexit, !llvm.loop !66

.loopexit2027.us.loopexit:                        ; preds = %.lr.ph2129.us
  %.pre2681 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2027.us

.loopexit2027.us:                                 ; preds = %.loopexit2027.us.loopexit, %1072, %1060
  %1076 = phi double [ %.pre2681, %.loopexit2027.us.loopexit ], [ %1063, %1072 ], [ %1063, %1060 ]
  %1077 = load double, ptr %gep2786, align 8, !tbaa !9
  %1078 = fdiv double %1068, %1077
  %1079 = fmul double %1078, %1076
  store double %1079, ptr %25, align 8, !tbaa !9
  %1080 = fcmp une double %1079, 1.000000e+00
  br i1 %1080, label %1081, label %.loopexit2026.us

1081:                                             ; preds = %.loopexit2027.us
  %1082 = add nsw i32 %1007, -1
  store i32 %1082, ptr %20, align 4, !tbaa !5
  %.not19242130.us.not = icmp slt i32 %1005, %1007
  br i1 %.not19242130.us.not, label %.lr.ph2133.us.preheader, label %.loopexit2026.us

.lr.ph2133.us.preheader:                          ; preds = %1081
  %1083 = sext i32 %1005 to i64
  br label %.lr.ph2133.us

.lr.ph2133.us:                                    ; preds = %.lr.ph2133.us.preheader, %.lr.ph2133.us
  %indvars.iv2503 = phi i64 [ %1083, %.lr.ph2133.us.preheader ], [ %indvars.iv.next2504, %.lr.ph2133.us ]
  store i32 %868, ptr %21, align 4, !tbaa !5
  %1084 = mul nsw i64 %indvars.iv2503, %859
  %gep2782 = getelementptr double, ptr %invariant.gep2781, i64 %1084
  call void @dscal_(ptr noundef nonnull %21, ptr noundef nonnull %25, ptr noundef %gep2782, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2504 = add nsw i64 %indvars.iv2503, 1
  %1085 = load i32, ptr %20, align 4, !tbaa !5
  %1086 = sext i32 %1085 to i64
  %.not1924.us.not = icmp slt i64 %indvars.iv2503, %1086
  br i1 %.not1924.us.not, label %.lr.ph2133.us, label %.loopexit2026.us.loopexit, !llvm.loop !67

.loopexit2026.us.loopexit:                        ; preds = %.lr.ph2133.us
  %.pre2682 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2026.us

.loopexit2026.us:                                 ; preds = %.loopexit2026.us.loopexit, %1081, %.loopexit2027.us
  %1087 = phi double [ %.pre2682, %.loopexit2026.us.loopexit ], [ %1076, %1081 ], [ %1076, %.loopexit2027.us ]
  %1088 = fmul double %1068, %1087
  store double %1088, ptr %gep2792, align 8, !tbaa !9
  store double %1088, ptr %gep2786, align 8, !tbaa !9
  store i32 %868, ptr %20, align 4, !tbaa !5
  store i32 %1008, ptr %21, align 4, !tbaa !5
  store i32 %879, ptr %22, align 4, !tbaa !5
  store double %857, ptr %24, align 8, !tbaa !9
  %1089 = add nsw i32 %1005, %880
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds double, ptr %37, i64 %1090
  call void @dgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.3, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %24, ptr noundef %887, ptr noundef nonnull %10, ptr noundef %1091, ptr noundef nonnull %8, ptr noundef nonnull @c_b32, ptr noundef %1012, ptr noundef nonnull %10) #6
  %indvars.iv.next2507 = add nuw nsw i64 %indvars.iv2506, 1
  %1092 = load i32, ptr %19, align 4, !tbaa !5
  %1093 = sext i32 %1092 to i64
  %.not1921.us.not = icmp slt i64 %indvars.iv2506, %1093
  br i1 %.not1921.us.not, label %1004, label %.loopexit2030.us, !llvm.loop !68

.loopexit2030.us:                                 ; preds = %.loopexit2026.us
  br label %875, !llvm.loop !69

.lr.ph2085.us:                                    ; preds = %._crit_edge2086.us, %.lr.ph2090.us.preheader
  %indvars.iv2474 = phi i64 [ 1, %.lr.ph2090.us.preheader ], [ %indvars.iv.next2475, %._crit_edge2086.us ]
  store i32 %.01789, ptr %20, align 4, !tbaa !5
  %1094 = mul nsw i64 %indvars.iv2474, %858
  %invariant.gep2765 = getelementptr double, ptr %44, i64 %1094
  br label %903

.lr.ph2094.us:                                    ; preds = %._crit_edge2095.us, %.lr.ph2099.us.preheader
  %indvars.iv2480 = phi i64 [ 1, %.lr.ph2099.us.preheader ], [ %indvars.iv.next2481, %._crit_edge2095.us ]
  store i32 %.01789, ptr %21, align 4, !tbaa !5
  %1095 = mul nsw i64 %indvars.iv2480, %858
  %invariant.gep2767 = getelementptr double, ptr %44, i64 %1095
  br label %945

.lr.ph2113.us:                                    ; preds = %.loopexit2031.us
  %1096 = add nsw i32 %878, -1
  %1097 = sext i32 %876 to i64
  %invariant.gep2773 = getelementptr double, ptr %44, i64 %891
  %.not19272101.us.not = icmp slt i32 %876, %878
  %.not19282105.us.not = icmp slt i32 %876, %878
  br label %916

.lr.ph2119.us:                                    ; preds = %._crit_edge2120.us, %.lr.ph2124.us.preheader
  %indvars.iv2497 = phi i64 [ 1, %.lr.ph2124.us.preheader ], [ %indvars.iv.next2498, %._crit_edge2120.us ]
  store i32 %.01789, ptr %21, align 4, !tbaa !5
  %1098 = mul nsw i64 %indvars.iv2497, %858
  %invariant.gep2777 = getelementptr double, ptr %44, i64 %1098
  br label %1036

.lr.ph2138.us:                                    ; preds = %._crit_edge2114.us
  %1099 = add nsw i32 %878, -1
  %1100 = sext i32 %876 to i64
  %invariant.gep2787 = getelementptr double, ptr %44, i64 %indvars.iv2509
  %.not19232126.us.not = icmp slt i32 %876, %878
  br label %1004

..loopexit2032_crit_edge.us:                      ; preds = %._crit_edge2114.us
  %1101 = load i32, ptr %18, align 4, !tbaa !5
  %1102 = sext i32 %1101 to i64
  %.not1917.us.not = icmp slt i64 %indvars.iv2512, %1102
  %indvars.iv.next2490 = add nuw nsw i64 %indvars.iv2489, 1
  br i1 %.not1917.us.not, label %.lr.ph2143.us, label %.loopexit2009, !llvm.loop !70

1103:                                             ; preds = %853
  %or.cond7 = select i1 %597, i1 true, i1 %343
  %or.cond2402.not = or i1 %.not1915206627202725, %or.cond7
  br i1 %or.cond2402.not, label %.loopexit2009, label %.lr.ph2217

.lr.ph2217:                                       ; preds = %1103
  %1104 = icmp sgt i32 %.01788271227192727, 0
  %1105 = fneg double %342
  br i1 %1104, label %.lr.ph2212.us.preheader, label %.loopexit2009

.lr.ph2212.us.preheader:                          ; preds = %.lr.ph2217
  %1106 = sext i32 %42 to i64
  %1107 = sext i32 %38 to i64
  %1108 = zext nneg i32 %340 to i64
  %1109 = zext nneg i32 %.01788271227192727 to i64
  %1110 = zext nneg i32 %.01789 to i64
  %1111 = zext nneg i32 %.01788271227192727 to i64
  %invariant.gep2817 = getelementptr i32, ptr %41, i64 %195
  %invariant.gep2811 = getelementptr inbounds i32, ptr %41, i64 %195
  br label %.lr.ph2212.us

.lr.ph2212.us:                                    ; preds = %.lr.ph2212.us.preheader, %._crit_edge2213.us
  %indvars.iv2554 = phi i64 [ %1110, %.lr.ph2212.us.preheader ], [ %indvars.iv.next2555, %._crit_edge2213.us ]
  %.242216.us = phi double [ 1.000000e+00, %.lr.ph2212.us.preheader ], [ %.28.lcssa.us, %._crit_edge2213.us ]
  %1112 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2554
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = getelementptr inbounds i8, ptr %1112, i64 4
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  %1116 = sub nsw i32 %1115, %1113
  %1117 = mul nsw i32 %1113, %32
  %1118 = add nsw i32 %1117, %1113
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds double, ptr %34, i64 %1119
  %indvars.iv.next2555 = add nsw i64 %indvars.iv2554, -1
  %1121 = add nsw i64 %indvars.iv2554, %1111
  %1122 = mul nsw i64 %1121, %1106
  %1123 = sext i32 %1113 to i64
  %invariant.gep2819 = getelementptr double, ptr %44, i64 %indvars.iv2554
  %1124 = trunc nuw nsw i64 %indvars.iv.next2555 to i32
  %.not19332178.us = icmp slt i64 %indvars.iv2554, 2
  %invariant.gep2803 = getelementptr double, ptr %44, i64 %1122
  %invariant.gep2797 = getelementptr double, ptr %40, i64 %1123
  %invariant.gep2813 = getelementptr double, ptr %44, i64 %indvars.iv2554
  %invariant.gep2807 = getelementptr double, ptr %40, i64 %1123
  %invariant.gep2809 = getelementptr double, ptr %40, i64 %1123
  br label %1125

1125:                                             ; preds = %.loopexit2022.us, %.lr.ph2212.us
  %indvars.iv2551 = phi i64 [ %1109, %.lr.ph2212.us ], [ %indvars.iv.next2552, %.loopexit2022.us ]
  %.252210.us = phi double [ %.242216.us, %.lr.ph2212.us ], [ %.31.us, %.loopexit2022.us ]
  %gep2818 = getelementptr i32, ptr %invariant.gep2817, i64 %indvars.iv2551
  %1126 = load i32, ptr %gep2818, align 4, !tbaa !5
  %1127 = getelementptr i8, ptr %gep2818, i64 4
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  store i32 %1116, ptr %18, align 4, !tbaa !5
  %1129 = sub nsw i32 %1128, %1126
  store i32 %1129, ptr %19, align 4, !tbaa !5
  %1130 = mul nsw i32 %1126, %35
  %1131 = add nsw i32 %1130, %1126
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds double, ptr %37, i64 %1132
  %1134 = mul nsw i32 %1126, %38
  %1135 = add nsw i32 %1134, %1113
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds double, ptr %40, i64 %1136
  call void @dtrsyl_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %1120, ptr noundef nonnull %6, ptr noundef %1133, ptr noundef nonnull %8, ptr noundef %1137, ptr noundef nonnull %10, ptr noundef nonnull %31, ptr noundef nonnull %30) #6
  %1138 = load i32, ptr %16, align 4, !tbaa !5
  %1139 = load i32, ptr %30, align 4, !tbaa !5
  %.1999.us = call i32 @llvm.smax.i32(i32 %1138, i32 %1139)
  store i32 %.1999.us, ptr %16, align 4, !tbaa !5
  %1140 = load double, ptr %31, align 8, !tbaa !9
  %1141 = mul nsw i64 %indvars.iv2551, %1106
  %gep2820 = getelementptr double, ptr %invariant.gep2819, i64 %1141
  %1142 = load double, ptr %gep2820, align 8, !tbaa !9
  %1143 = fmul double %1140, %1142
  %1144 = fcmp oeq double %1143, 0.000000e+00
  br i1 %1144, label %1145, label %.loopexit2023.us

1145:                                             ; preds = %1125
  %1146 = fcmp oeq double %1140, 0.000000e+00
  br i1 %1146, label %.lr.ph2159.us.preheader, label %1147

1147:                                             ; preds = %1145
  %1148 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1148, ptr %18, align 4, !tbaa !5
  %1149 = load double, ptr @c_b19, align 8, !tbaa !9
  %1150 = call double @dpow_ui(double noundef %1149, i32 noundef %1148)
  %1151 = fmul double %.252210.us, %1150
  br label %.lr.ph2159.us.preheader

.lr.ph2159.us.preheader:                          ; preds = %1145, %1147
  %.26.us = phi double [ %1151, %1147 ], [ 0.000000e+00, %1145 ]
  store i32 %.01788271227192727, ptr %18, align 4, !tbaa !5
  br label %.lr.ph2154.us

1152:                                             ; preds = %.lr.ph2154.us, %1152
  %indvars.iv2515 = phi i64 [ 1, %.lr.ph2154.us ], [ %indvars.iv.next2516, %1152 ]
  %1153 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1153, ptr %20, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2794 = getelementptr double, ptr %invariant.gep2793, i64 %indvars.iv2515
  %1154 = load double, ptr %gep2794, align 8, !tbaa !9
  %1155 = load double, ptr @c_b19, align 8, !tbaa !9
  %1156 = call double @dpow_ui(double noundef %1155, i32 noundef %1153)
  %1157 = fdiv double %1154, %1156
  %1158 = load double, ptr %24, align 8
  %1159 = fcmp ole double %1158, %1157
  %1160 = select i1 %1159, double %1158, double %1157
  store double %1160, ptr %gep2794, align 8, !tbaa !9
  %indvars.iv.next2516 = add nuw nsw i64 %indvars.iv2515, 1
  %1161 = load i32, ptr %19, align 4, !tbaa !5
  %1162 = sext i32 %1161 to i64
  %.not1943.us.not = icmp slt i64 %indvars.iv2515, %1162
  br i1 %.not1943.us.not, label %1152, label %._crit_edge2155.us, !llvm.loop !71

._crit_edge2155.us:                               ; preds = %1152
  %.pre2683 = load i32, ptr %18, align 4, !tbaa !5
  %indvars.iv.next2519 = add nuw nsw i64 %indvars.iv2518, 1
  %1163 = sext i32 %.pre2683 to i64
  %.not1932.us.not = icmp slt i64 %indvars.iv2518, %1163
  br i1 %.not1932.us.not, label %.lr.ph2154.us, label %.loopexit2023.us, !llvm.loop !72

.loopexit2023.us:                                 ; preds = %._crit_edge2155.us, %1125
  %.27.us = phi double [ %.252210.us, %1125 ], [ %.26.us, %._crit_edge2155.us ]
  %1164 = load double, ptr %31, align 8, !tbaa !9
  %1165 = load double, ptr %gep2820, align 8, !tbaa !9
  %1166 = fmul double %1164, %1165
  store double %1166, ptr %gep2820, align 8, !tbaa !9
  store i32 %1116, ptr %18, align 4, !tbaa !5
  store i32 %1129, ptr %19, align 4, !tbaa !5
  %1167 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %1137, ptr noundef nonnull %10, ptr noundef %117) #6
  store double %1167, ptr %29, align 8, !tbaa !9
  store i32 %1124, ptr %18, align 4, !tbaa !5
  br i1 %.not19332178.us, label %._crit_edge2183.us, label %.lr.ph2182.us

1168:                                             ; preds = %.lr.ph2182.us, %.loopexit2020.us
  %indvars.iv2533 = phi i64 [ 1, %.lr.ph2182.us ], [ %indvars.iv.next2534, %.loopexit2020.us ]
  %.282180.us = phi double [ %.27.us, %.lr.ph2182.us ], [ %.29.us, %.loopexit2020.us ]
  %1169 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2533
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %indvars.iv.next2534 = add nuw nsw i64 %indvars.iv2533, 1
  %1171 = getelementptr i32, ptr %12, i64 %indvars.iv2533
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = sub nsw i32 %1172, %1170
  store i32 %1173, ptr %19, align 4, !tbaa !5
  store i32 %1129, ptr %20, align 4, !tbaa !5
  %1174 = add nsw i32 %1170, %1134
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds double, ptr %40, i64 %1175
  %1177 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %1176, ptr noundef nonnull %10, ptr noundef %117) #6
  %gep2802 = getelementptr double, ptr %invariant.gep2801, i64 %indvars.iv2533
  %1178 = load double, ptr %gep2802, align 8, !tbaa !9
  store double %1178, ptr %24, align 8, !tbaa !9
  %1179 = load double, ptr %gep2820, align 8, !tbaa !9
  %1180 = fcmp ole double %1178, %1179
  %1181 = select i1 %1180, double %1178, double %1179
  %1182 = fdiv double %1181, %1178
  %1183 = fmul double %1177, %1182
  store double %1183, ptr %28, align 8, !tbaa !9
  %1184 = fdiv double %1181, %1179
  %1185 = load double, ptr %29, align 8, !tbaa !9
  %1186 = fmul double %1185, %1184
  store double %1186, ptr %29, align 8, !tbaa !9
  %gep2804 = getelementptr double, ptr %invariant.gep2803, i64 %indvars.iv2533
  %1187 = load double, ptr %gep2804, align 8, !tbaa !9
  store double %1187, ptr %26, align 8, !tbaa !9
  %1188 = call double @dlarmm_(ptr noundef nonnull %26, ptr noundef nonnull %29, ptr noundef nonnull %28) #6
  store double %1188, ptr %31, align 8, !tbaa !9
  %1189 = fmul double %1181, %1188
  %1190 = fcmp oeq double %1189, 0.000000e+00
  %1191 = insertelement <2 x double> poison, double %1181, i64 0
  %1192 = insertelement <2 x double> %1191, double %1188, i64 1
  br i1 %1190, label %.lr.ph2168.us.preheader, label %1221

.lr.ph2168.us.preheader:                          ; preds = %1168
  %1193 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1193, ptr %19, align 4, !tbaa !5
  %1194 = load double, ptr @c_b19, align 8, !tbaa !9
  %1195 = call double @dpow_ui(double noundef %1194, i32 noundef %1193)
  %1196 = fmul double %.282180.us, %1195
  store i32 %.01788271227192727, ptr %19, align 4, !tbaa !5
  br label %.lr.ph2163.us

1197:                                             ; preds = %.lr.ph2163.us, %1197
  %indvars.iv2521 = phi i64 [ 1, %.lr.ph2163.us ], [ %indvars.iv.next2522, %1197 ]
  %1198 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1198, ptr %21, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2796 = getelementptr double, ptr %invariant.gep2795, i64 %indvars.iv2521
  %1199 = load double, ptr %gep2796, align 8, !tbaa !9
  %1200 = load double, ptr @c_b19, align 8, !tbaa !9
  %1201 = call double @dpow_ui(double noundef %1200, i32 noundef %1198)
  %1202 = fdiv double %1199, %1201
  %1203 = load double, ptr %24, align 8
  %1204 = fcmp ole double %1203, %1202
  %1205 = select i1 %1204, double %1203, double %1202
  store double %1205, ptr %gep2796, align 8, !tbaa !9
  %indvars.iv.next2522 = add nuw nsw i64 %indvars.iv2521, 1
  %1206 = load i32, ptr %20, align 4, !tbaa !5
  %1207 = sext i32 %1206 to i64
  %.not1942.us.not = icmp slt i64 %indvars.iv2521, %1207
  br i1 %.not1942.us.not, label %1197, label %._crit_edge2164.us, !llvm.loop !73

._crit_edge2164.us:                               ; preds = %1197
  %.pre2684 = load i32, ptr %19, align 4, !tbaa !5
  %indvars.iv.next2525 = add nuw nsw i64 %indvars.iv2524, 1
  %1208 = sext i32 %.pre2684 to i64
  %.not1939.us.not = icmp slt i64 %indvars.iv2524, %1208
  br i1 %.not1939.us.not, label %.lr.ph2163.us, label %._crit_edge2169.us, !llvm.loop !74

._crit_edge2169.us:                               ; preds = %._crit_edge2164.us
  %1209 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1209, ptr %19, align 4, !tbaa !5
  %1210 = load double, ptr @c_b19, align 8, !tbaa !9
  %1211 = call double @dpow_ui(double noundef %1210, i32 noundef %1209)
  %1212 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1212, ptr %19, align 4, !tbaa !5
  %1213 = load double, ptr @c_b19, align 8, !tbaa !9
  %1214 = call double @dpow_ui(double noundef %1213, i32 noundef %1212)
  %1215 = load double, ptr %31, align 8, !tbaa !9
  %1216 = insertelement <2 x double> %1192, double %1215, i64 1
  %1217 = insertelement <2 x double> poison, double %1211, i64 0
  %1218 = insertelement <2 x double> %1217, double %1214, i64 1
  %1219 = fdiv <2 x double> %1216, %1218
  %1220 = extractelement <2 x double> %1219, i64 1
  store double %1220, ptr %31, align 8, !tbaa !9
  br label %1221

1221:                                             ; preds = %._crit_edge2169.us, %1168
  %.29.us = phi double [ %1196, %._crit_edge2169.us ], [ %.282180.us, %1168 ]
  %1222 = phi <2 x double> [ %1219, %._crit_edge2169.us ], [ %1192, %1168 ]
  %1223 = load double, ptr %28, align 8, !tbaa !9
  %1224 = extractelement <2 x double> %1222, i64 1
  %1225 = fmul double %1224, %1223
  store double %1225, ptr %28, align 8, !tbaa !9
  %1226 = load double, ptr %29, align 8, !tbaa !9
  %1227 = fmul double %1224, %1226
  store double %1227, ptr %29, align 8, !tbaa !9
  %1228 = load double, ptr %gep2820, align 8, !tbaa !9
  %1229 = extractelement <2 x double> %1222, i64 0
  %1230 = fdiv double %1229, %1228
  %1231 = fmul double %1224, %1230
  store double %1231, ptr %25, align 8, !tbaa !9
  %1232 = fcmp une double %1231, 1.000000e+00
  br i1 %1232, label %1233, label %.loopexit2021.us

1233:                                             ; preds = %1221
  store i32 %1347, ptr %19, align 4, !tbaa !5
  br i1 %.not19402170.us.not, label %.lr.ph2173.us, label %.loopexit2021.us

.lr.ph2173.us:                                    ; preds = %1233, %.lr.ph2173.us
  %indvars.iv2527 = phi i64 [ %indvars.iv.next2528, %.lr.ph2173.us ], [ %1348, %1233 ]
  store i32 %1116, ptr %20, align 4, !tbaa !5
  %1234 = mul nsw i64 %indvars.iv2527, %1107
  %gep2798 = getelementptr double, ptr %invariant.gep2797, i64 %1234
  call void @dscal_(ptr noundef nonnull %20, ptr noundef nonnull %25, ptr noundef %gep2798, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2528 = add nsw i64 %indvars.iv2527, 1
  %1235 = load i32, ptr %19, align 4, !tbaa !5
  %1236 = sext i32 %1235 to i64
  %.not1940.us.not = icmp slt i64 %indvars.iv2527, %1236
  br i1 %.not1940.us.not, label %.lr.ph2173.us, label %.loopexit2021.us.loopexit, !llvm.loop !75

.loopexit2021.us.loopexit:                        ; preds = %.lr.ph2173.us
  %.pre2685 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2021.us

.loopexit2021.us:                                 ; preds = %.loopexit2021.us.loopexit, %1233, %1221
  %1237 = phi double [ %.pre2685, %.loopexit2021.us.loopexit ], [ %1224, %1233 ], [ %1224, %1221 ]
  %1238 = load double, ptr %gep2802, align 8, !tbaa !9
  %1239 = fdiv double %1229, %1238
  %1240 = fmul double %1239, %1237
  store double %1240, ptr %25, align 8, !tbaa !9
  %1241 = fcmp une double %1240, 1.000000e+00
  br i1 %1241, label %1242, label %.loopexit2020.us

1242:                                             ; preds = %.loopexit2021.us
  store i32 %1347, ptr %19, align 4, !tbaa !5
  br i1 %.not19412174.us.not, label %.lr.ph2177.us.preheader, label %.loopexit2020.us

.lr.ph2177.us.preheader:                          ; preds = %1242
  %1243 = sext i32 %1170 to i64
  %invariant.gep2799 = getelementptr double, ptr %40, i64 %1243
  br label %.lr.ph2177.us

.lr.ph2177.us:                                    ; preds = %.lr.ph2177.us.preheader, %.lr.ph2177.us
  %indvars.iv2530 = phi i64 [ %1348, %.lr.ph2177.us.preheader ], [ %indvars.iv.next2531, %.lr.ph2177.us ]
  store i32 %1173, ptr %20, align 4, !tbaa !5
  %1244 = mul nsw i64 %indvars.iv2530, %1107
  %gep2800 = getelementptr double, ptr %invariant.gep2799, i64 %1244
  call void @dscal_(ptr noundef nonnull %20, ptr noundef nonnull %25, ptr noundef %gep2800, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2531 = add nsw i64 %indvars.iv2530, 1
  %1245 = load i32, ptr %19, align 4, !tbaa !5
  %1246 = sext i32 %1245 to i64
  %.not1941.us.not = icmp slt i64 %indvars.iv2530, %1246
  br i1 %.not1941.us.not, label %.lr.ph2177.us, label %.loopexit2020.us.loopexit, !llvm.loop !76

.loopexit2020.us.loopexit:                        ; preds = %.lr.ph2177.us
  %.pre2686 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2020.us

.loopexit2020.us:                                 ; preds = %.loopexit2020.us.loopexit, %1242, %.loopexit2021.us
  %1247 = phi double [ %.pre2686, %.loopexit2020.us.loopexit ], [ %1237, %1242 ], [ %1237, %.loopexit2021.us ]
  %1248 = fmul double %1229, %1247
  store double %1248, ptr %gep2820, align 8, !tbaa !9
  store double %1248, ptr %gep2802, align 8, !tbaa !9
  store i32 %1173, ptr %19, align 4, !tbaa !5
  store i32 %1129, ptr %20, align 4, !tbaa !5
  store i32 %1116, ptr %21, align 4, !tbaa !5
  %1249 = add nsw i32 %1170, %1117
  %1250 = sext i32 %1249 to i64
  %1251 = getelementptr inbounds double, ptr %34, i64 %1250
  call void @dgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull @c_b31, ptr noundef %1251, ptr noundef nonnull %6, ptr noundef %1137, ptr noundef nonnull %10, ptr noundef nonnull @c_b32, ptr noundef %1176, ptr noundef nonnull %10) #6
  %1252 = load i32, ptr %18, align 4, !tbaa !5
  %1253 = sext i32 %1252 to i64
  %.not1933.us.not = icmp slt i64 %indvars.iv2533, %1253
  br i1 %.not1933.us.not, label %1168, label %._crit_edge2183.us, !llvm.loop !77

._crit_edge2183.us:                               ; preds = %.loopexit2020.us, %.loopexit2023.us
  %.28.lcssa.us = phi double [ %.27.us, %.loopexit2023.us ], [ %.29.us, %.loopexit2020.us ]
  %indvars.iv.next2552 = add nsw i64 %indvars.iv2551, -1
  %1254 = trunc nuw nsw i64 %indvars.iv.next2552 to i32
  store i32 %1254, ptr %18, align 4, !tbaa !5
  %.not19342203.us = icmp slt i64 %indvars.iv2551, 2
  br i1 %.not19342203.us, label %._crit_edge2213.us, label %.lr.ph2207.us

1255:                                             ; preds = %.lr.ph2207.us, %.loopexit2018.us
  %indvars.iv2548 = phi i64 [ 1, %.lr.ph2207.us ], [ %indvars.iv.next2549, %.loopexit2018.us ]
  %.302205.us = phi double [ %.28.lcssa.us, %.lr.ph2207.us ], [ %.31.us, %.loopexit2018.us ]
  %gep2812 = getelementptr inbounds i32, ptr %invariant.gep2811, i64 %indvars.iv2548
  %1256 = load i32, ptr %gep2812, align 4, !tbaa !5
  %1257 = getelementptr i8, ptr %gep2812, i64 4
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  store i32 %1116, ptr %19, align 4, !tbaa !5
  %1259 = sub nsw i32 %1258, %1256
  store i32 %1259, ptr %20, align 4, !tbaa !5
  %1260 = mul nsw i32 %1256, %38
  %1261 = add nsw i32 %1260, %1113
  %1262 = sext i32 %1261 to i64
  %1263 = getelementptr inbounds double, ptr %40, i64 %1262
  %1264 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %1263, ptr noundef nonnull %10, ptr noundef %117) #6
  %1265 = mul nsw i64 %indvars.iv2548, %1106
  %gep2814 = getelementptr double, ptr %invariant.gep2813, i64 %1265
  %1266 = load double, ptr %gep2814, align 8, !tbaa !9
  store double %1266, ptr %24, align 8, !tbaa !9
  %1267 = load double, ptr %gep2820, align 8, !tbaa !9
  %1268 = fcmp ole double %1266, %1267
  %1269 = select i1 %1268, double %1266, double %1267
  %1270 = fdiv double %1269, %1266
  %1271 = fmul double %1264, %1270
  store double %1271, ptr %28, align 8, !tbaa !9
  %1272 = fdiv double %1269, %1267
  %1273 = load double, ptr %29, align 8, !tbaa !9
  %1274 = fmul double %1273, %1272
  store double %1274, ptr %29, align 8, !tbaa !9
  %1275 = add nuw nsw i64 %indvars.iv2548, %1108
  %1276 = mul nsw i64 %1275, %1106
  %gep2816 = getelementptr double, ptr %invariant.gep2815, i64 %1276
  %1277 = load double, ptr %gep2816, align 8, !tbaa !9
  store double %1277, ptr %27, align 8, !tbaa !9
  %1278 = call double @dlarmm_(ptr noundef nonnull %27, ptr noundef nonnull %29, ptr noundef nonnull %28) #6
  store double %1278, ptr %31, align 8, !tbaa !9
  %1279 = fmul double %1269, %1278
  %1280 = fcmp oeq double %1279, 0.000000e+00
  %1281 = insertelement <2 x double> poison, double %1269, i64 0
  %1282 = insertelement <2 x double> %1281, double %1278, i64 1
  br i1 %1280, label %.lr.ph2193.us.preheader, label %1311

.lr.ph2193.us.preheader:                          ; preds = %1255
  %1283 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1283, ptr %19, align 4, !tbaa !5
  %1284 = load double, ptr @c_b19, align 8, !tbaa !9
  %1285 = call double @dpow_ui(double noundef %1284, i32 noundef %1283)
  %1286 = fmul double %.302205.us, %1285
  store i32 %.01788271227192727, ptr %19, align 4, !tbaa !5
  br label %.lr.ph2188.us

1287:                                             ; preds = %.lr.ph2188.us, %1287
  %indvars.iv2536 = phi i64 [ 1, %.lr.ph2188.us ], [ %indvars.iv.next2537, %1287 ]
  %1288 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1288, ptr %21, align 4, !tbaa !5
  store double %188, ptr %24, align 8, !tbaa !9
  %gep2806 = getelementptr double, ptr %invariant.gep2805, i64 %indvars.iv2536
  %1289 = load double, ptr %gep2806, align 8, !tbaa !9
  %1290 = load double, ptr @c_b19, align 8, !tbaa !9
  %1291 = call double @dpow_ui(double noundef %1290, i32 noundef %1288)
  %1292 = fdiv double %1289, %1291
  %1293 = load double, ptr %24, align 8
  %1294 = fcmp ole double %1293, %1292
  %1295 = select i1 %1294, double %1293, double %1292
  store double %1295, ptr %gep2806, align 8, !tbaa !9
  %indvars.iv.next2537 = add nuw nsw i64 %indvars.iv2536, 1
  %1296 = load i32, ptr %20, align 4, !tbaa !5
  %1297 = sext i32 %1296 to i64
  %.not1938.us.not = icmp slt i64 %indvars.iv2536, %1297
  br i1 %.not1938.us.not, label %1287, label %._crit_edge2189.us, !llvm.loop !78

._crit_edge2189.us:                               ; preds = %1287
  %.pre2687 = load i32, ptr %19, align 4, !tbaa !5
  %indvars.iv.next2540 = add nuw nsw i64 %indvars.iv2539, 1
  %1298 = sext i32 %.pre2687 to i64
  %.not1935.us.not = icmp slt i64 %indvars.iv2539, %1298
  br i1 %.not1935.us.not, label %.lr.ph2188.us, label %._crit_edge2194.us, !llvm.loop !79

._crit_edge2194.us:                               ; preds = %._crit_edge2189.us
  %1299 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1299, ptr %19, align 4, !tbaa !5
  %1300 = load double, ptr @c_b19, align 8, !tbaa !9
  %1301 = call double @dpow_ui(double noundef %1300, i32 noundef %1299)
  %1302 = call i32 @my_expfunc(ptr noundef nonnull %31)
  store i32 %1302, ptr %19, align 4, !tbaa !5
  %1303 = load double, ptr @c_b19, align 8, !tbaa !9
  %1304 = call double @dpow_ui(double noundef %1303, i32 noundef %1302)
  %1305 = load double, ptr %31, align 8, !tbaa !9
  %1306 = insertelement <2 x double> %1282, double %1305, i64 1
  %1307 = insertelement <2 x double> poison, double %1301, i64 0
  %1308 = insertelement <2 x double> %1307, double %1304, i64 1
  %1309 = fdiv <2 x double> %1306, %1308
  %1310 = extractelement <2 x double> %1309, i64 1
  store double %1310, ptr %31, align 8, !tbaa !9
  br label %1311

1311:                                             ; preds = %._crit_edge2194.us, %1255
  %.31.us = phi double [ %1286, %._crit_edge2194.us ], [ %.302205.us, %1255 ]
  %1312 = phi <2 x double> [ %1309, %._crit_edge2194.us ], [ %1282, %1255 ]
  %1313 = load double, ptr %28, align 8, !tbaa !9
  %1314 = extractelement <2 x double> %1312, i64 1
  %1315 = fmul double %1314, %1313
  store double %1315, ptr %28, align 8, !tbaa !9
  %1316 = load double, ptr %29, align 8, !tbaa !9
  %1317 = fmul double %1314, %1316
  store double %1317, ptr %29, align 8, !tbaa !9
  %1318 = load double, ptr %gep2820, align 8, !tbaa !9
  %1319 = extractelement <2 x double> %1312, i64 0
  %1320 = fdiv double %1319, %1318
  %1321 = fmul double %1314, %1320
  store double %1321, ptr %25, align 8, !tbaa !9
  %1322 = fcmp une double %1321, 1.000000e+00
  br i1 %1322, label %1323, label %.loopexit2019.us

1323:                                             ; preds = %1311
  store i32 %1350, ptr %19, align 4, !tbaa !5
  br i1 %.not19362195.us.not, label %.lr.ph2198.us, label %.loopexit2019.us

.lr.ph2198.us:                                    ; preds = %1323, %.lr.ph2198.us
  %indvars.iv2542 = phi i64 [ %indvars.iv.next2543, %.lr.ph2198.us ], [ %1351, %1323 ]
  store i32 %1116, ptr %20, align 4, !tbaa !5
  %1324 = mul nsw i64 %indvars.iv2542, %1107
  %gep2808 = getelementptr double, ptr %invariant.gep2807, i64 %1324
  call void @dscal_(ptr noundef nonnull %20, ptr noundef nonnull %25, ptr noundef %gep2808, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2543 = add nsw i64 %indvars.iv2542, 1
  %1325 = load i32, ptr %19, align 4, !tbaa !5
  %1326 = sext i32 %1325 to i64
  %.not1936.us.not = icmp slt i64 %indvars.iv2542, %1326
  br i1 %.not1936.us.not, label %.lr.ph2198.us, label %.loopexit2019.us.loopexit, !llvm.loop !80

.loopexit2019.us.loopexit:                        ; preds = %.lr.ph2198.us
  %.pre2688 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2019.us

.loopexit2019.us:                                 ; preds = %.loopexit2019.us.loopexit, %1323, %1311
  %1327 = phi double [ %.pre2688, %.loopexit2019.us.loopexit ], [ %1314, %1323 ], [ %1314, %1311 ]
  %1328 = load double, ptr %gep2814, align 8, !tbaa !9
  %1329 = fdiv double %1319, %1328
  %1330 = fmul double %1329, %1327
  store double %1330, ptr %25, align 8, !tbaa !9
  %1331 = fcmp une double %1330, 1.000000e+00
  br i1 %1331, label %1332, label %.loopexit2018.us

1332:                                             ; preds = %.loopexit2019.us
  %1333 = add nsw i32 %1258, -1
  store i32 %1333, ptr %19, align 4, !tbaa !5
  %.not19372199.us.not = icmp slt i32 %1256, %1258
  br i1 %.not19372199.us.not, label %.lr.ph2202.us.preheader, label %.loopexit2018.us

.lr.ph2202.us.preheader:                          ; preds = %1332
  %1334 = sext i32 %1256 to i64
  br label %.lr.ph2202.us

.lr.ph2202.us:                                    ; preds = %.lr.ph2202.us.preheader, %.lr.ph2202.us
  %indvars.iv2545 = phi i64 [ %1334, %.lr.ph2202.us.preheader ], [ %indvars.iv.next2546, %.lr.ph2202.us ]
  store i32 %1116, ptr %20, align 4, !tbaa !5
  %1335 = mul nsw i64 %indvars.iv2545, %1107
  %gep2810 = getelementptr double, ptr %invariant.gep2809, i64 %1335
  call void @dscal_(ptr noundef nonnull %20, ptr noundef nonnull %25, ptr noundef %gep2810, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2546 = add nsw i64 %indvars.iv2545, 1
  %1336 = load i32, ptr %19, align 4, !tbaa !5
  %1337 = sext i32 %1336 to i64
  %.not1937.us.not = icmp slt i64 %indvars.iv2545, %1337
  br i1 %.not1937.us.not, label %.lr.ph2202.us, label %.loopexit2018.us.loopexit, !llvm.loop !81

.loopexit2018.us.loopexit:                        ; preds = %.lr.ph2202.us
  %.pre2689 = load double, ptr %31, align 8, !tbaa !9
  br label %.loopexit2018.us

.loopexit2018.us:                                 ; preds = %.loopexit2018.us.loopexit, %1332, %.loopexit2019.us
  %1338 = phi double [ %.pre2689, %.loopexit2018.us.loopexit ], [ %1327, %1332 ], [ %1327, %.loopexit2019.us ]
  %1339 = fmul double %1319, %1338
  store double %1339, ptr %gep2820, align 8, !tbaa !9
  store double %1339, ptr %gep2814, align 8, !tbaa !9
  store i32 %1116, ptr %19, align 4, !tbaa !5
  store i32 %1259, ptr %20, align 4, !tbaa !5
  store i32 %1129, ptr %21, align 4, !tbaa !5
  store double %1105, ptr %24, align 8, !tbaa !9
  %1340 = add nsw i32 %1256, %1130
  %1341 = sext i32 %1340 to i64
  %1342 = getelementptr inbounds double, ptr %37, i64 %1341
  call void @dgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.3, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %24, ptr noundef %1137, ptr noundef nonnull %10, ptr noundef %1342, ptr noundef nonnull %8, ptr noundef nonnull @c_b32, ptr noundef %1263, ptr noundef nonnull %10) #6
  %indvars.iv.next2549 = add nuw nsw i64 %indvars.iv2548, 1
  %1343 = load i32, ptr %18, align 4, !tbaa !5
  %1344 = sext i32 %1343 to i64
  %.not1934.us.not = icmp slt i64 %indvars.iv2548, %1344
  br i1 %.not1934.us.not, label %1255, label %.loopexit2022.us, !llvm.loop !82

.loopexit2022.us:                                 ; preds = %.loopexit2018.us
  br label %1125, !llvm.loop !83

.lr.ph2154.us:                                    ; preds = %._crit_edge2155.us, %.lr.ph2159.us.preheader
  %indvars.iv2518 = phi i64 [ 1, %.lr.ph2159.us.preheader ], [ %indvars.iv.next2519, %._crit_edge2155.us ]
  store i32 %.01789, ptr %19, align 4, !tbaa !5
  %1345 = mul nsw i64 %indvars.iv2518, %1106
  %invariant.gep2793 = getelementptr double, ptr %44, i64 %1345
  br label %1152

.lr.ph2163.us:                                    ; preds = %._crit_edge2164.us, %.lr.ph2168.us.preheader
  %indvars.iv2524 = phi i64 [ 1, %.lr.ph2168.us.preheader ], [ %indvars.iv.next2525, %._crit_edge2164.us ]
  store i32 %.01789, ptr %20, align 4, !tbaa !5
  %1346 = mul nsw i64 %indvars.iv2524, %1106
  %invariant.gep2795 = getelementptr double, ptr %44, i64 %1346
  br label %1197

.lr.ph2182.us:                                    ; preds = %.loopexit2023.us
  %1347 = add nsw i32 %1128, -1
  %1348 = sext i32 %1126 to i64
  %invariant.gep2801 = getelementptr double, ptr %44, i64 %1141
  %.not19402170.us.not = icmp slt i32 %1126, %1128
  %.not19412174.us.not = icmp slt i32 %1126, %1128
  br label %1168

.lr.ph2188.us:                                    ; preds = %._crit_edge2189.us, %.lr.ph2193.us.preheader
  %indvars.iv2539 = phi i64 [ 1, %.lr.ph2193.us.preheader ], [ %indvars.iv.next2540, %._crit_edge2189.us ]
  store i32 %.01789, ptr %20, align 4, !tbaa !5
  %1349 = mul nsw i64 %indvars.iv2539, %1106
  %invariant.gep2805 = getelementptr double, ptr %44, i64 %1349
  br label %1287

.lr.ph2207.us:                                    ; preds = %._crit_edge2183.us
  %1350 = add nsw i32 %1128, -1
  %1351 = sext i32 %1126 to i64
  %invariant.gep2815 = getelementptr double, ptr %44, i64 %indvars.iv2551
  %.not19362195.us.not = icmp slt i32 %1126, %1128
  br label %1255

._crit_edge2213.us:                               ; preds = %._crit_edge2183.us
  %1352 = icmp sgt i64 %indvars.iv2554, 1
  br i1 %1352, label %.lr.ph2212.us, label %.loopexit2009, !llvm.loop !84

.loopexit2009:                                    ; preds = %..loopexit2032_crit_edge.us, %._crit_edge2213.us, %.loopexit2016, %._crit_edge2354, %.lr.ph2217, %.lr.ph2149, %854, %598, %.preheader, %1103
  %.32 = phi double [ 1.000000e+00, %1103 ], [ 1.000000e+00, %.preheader ], [ 1.000000e+00, %598 ], [ 1.000000e+00, %854 ], [ 1.000000e+00, %.lr.ph2149 ], [ 1.000000e+00, %.lr.ph2217 ], [ %.1.lcssa, %._crit_edge2354 ], [ %.9.lcssa, %.loopexit2016 ], [ %.28.lcssa.us, %._crit_edge2213.us ], [ %.20.lcssa.us, %..loopexit2032_crit_edge.us ]
  call void @free(ptr noundef %117) #6
  %1353 = load double, ptr %14, align 8, !tbaa !9
  store double %1353, ptr %11, align 8, !tbaa !9
  br i1 %.not1915206627202725, label %.thread2734, label %.lr.ph2368

.lr.ph2368:                                       ; preds = %.loopexit2009
  br i1 %.not19142057271427182729, label %.thread2736, label %.lr.ph2368.split

.lr.ph2368.split:                                 ; preds = %.lr.ph2368
  %1354 = sext i32 %42 to i64
  %wide.trip.count2655 = zext nneg i32 %.pre-phi to i64
  %1355 = zext nneg i32 %.01788271227192727 to i64
  %xtraiter = and i64 %1355, 1
  %1356 = icmp eq i32 %.01788271227192727, 1
  %unroll_iter = and i64 %1355, 2147483646
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br label %.lr.ph2363

.lr.ph2363:                                       ; preds = %.lr.ph2368.split, %._crit_edge2364
  %indvars.iv2652 = phi i64 [ 1, %.lr.ph2368.split ], [ %indvars.iv.next2653, %._crit_edge2364 ]
  %.promoted2371 = phi double [ %1353, %.lr.ph2368.split ], [ %.lcssa2932, %._crit_edge2364 ]
  %invariant.gep2877 = getelementptr double, ptr %44, i64 %indvars.iv2652
  br i1 %1356, label %._crit_edge2364.unr-lcssa, label %.lr.ph2363.new

.lr.ph2363.new:                                   ; preds = %.lr.ph2363, %.lr.ph2363.new
  %indvars.iv2647 = phi i64 [ %indvars.iv.next2648.1, %.lr.ph2363.new ], [ 1, %.lr.ph2363 ]
  %1357 = phi double [ %1365, %.lr.ph2363.new ], [ %.promoted2371, %.lr.ph2363 ]
  %niter = phi i64 [ %niter.next.1, %.lr.ph2363.new ], [ 0, %.lr.ph2363 ]
  %1358 = mul nsw i64 %indvars.iv2647, %1354
  %gep2878 = getelementptr double, ptr %invariant.gep2877, i64 %1358
  %1359 = load double, ptr %gep2878, align 8, !tbaa !9
  %1360 = fcmp ole double %1357, %1359
  %1361 = select i1 %1360, double %1357, double %1359
  store double %1361, ptr %11, align 8, !tbaa !9
  %indvars.iv.next2648 = add nuw nsw i64 %indvars.iv2647, 1
  %1362 = mul nsw i64 %indvars.iv.next2648, %1354
  %gep2878.1 = getelementptr double, ptr %invariant.gep2877, i64 %1362
  %1363 = load double, ptr %gep2878.1, align 8, !tbaa !9
  %1364 = fcmp ole double %1361, %1363
  %1365 = select i1 %1364, double %1361, double %1363
  store double %1365, ptr %11, align 8, !tbaa !9
  %indvars.iv.next2648.1 = add nuw nsw i64 %indvars.iv2647, 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_edge2364.unr-lcssa, label %.lr.ph2363.new, !llvm.loop !85

._crit_edge2364.unr-lcssa:                        ; preds = %.lr.ph2363.new, %.lr.ph2363
  %.lcssa2933.ph = phi double [ poison, %.lr.ph2363 ], [ %1361, %.lr.ph2363.new ]
  %.lcssa2932.ph = phi double [ poison, %.lr.ph2363 ], [ %1365, %.lr.ph2363.new ]
  %indvars.iv2647.unr = phi i64 [ 1, %.lr.ph2363 ], [ %indvars.iv.next2648.1, %.lr.ph2363.new ]
  %.unr = phi double [ %.promoted2371, %.lr.ph2363 ], [ %1365, %.lr.ph2363.new ]
  br i1 %lcmp.mod.not, label %._crit_edge2364, label %._crit_edge2364.epilog-lcssa

._crit_edge2364.epilog-lcssa:                     ; preds = %._crit_edge2364.unr-lcssa
  %1366 = mul nsw i64 %indvars.iv2647.unr, %1354
  %gep2878.epil = getelementptr double, ptr %invariant.gep2877, i64 %1366
  %1367 = load double, ptr %gep2878.epil, align 8, !tbaa !9
  %1368 = fcmp ole double %.unr, %1367
  %1369 = select i1 %1368, double %.unr, double %1367
  store double %1369, ptr %11, align 8, !tbaa !9
  br label %._crit_edge2364

._crit_edge2364:                                  ; preds = %._crit_edge2364.unr-lcssa, %._crit_edge2364.epilog-lcssa
  %.lcssa2933 = phi double [ %.lcssa2933.ph, %._crit_edge2364.unr-lcssa ], [ %.unr, %._crit_edge2364.epilog-lcssa ]
  %.lcssa2932 = phi double [ %.lcssa2932.ph, %._crit_edge2364.unr-lcssa ], [ %1369, %._crit_edge2364.epilog-lcssa ]
  %indvars.iv.next2653 = add nuw nsw i64 %indvars.iv2652, 1
  %exitcond2656.not = icmp eq i64 %indvars.iv.next2653, %wide.trip.count2655
  br i1 %exitcond2656.not, label %1370, label %.lr.ph2363, !llvm.loop !86

1370:                                             ; preds = %._crit_edge2364
  store double %.lcssa2933, ptr %24, align 8, !tbaa !9
  store i32 %.01788271227192727, ptr %19, align 4, !tbaa !5
  %1371 = fcmp oeq double %.lcssa2932, 0.000000e+00
  br i1 %1371, label %1374, label %1384

.thread2736:                                      ; preds = %.lr.ph2368
  %1372 = fcmp oeq double %1353, 0.000000e+00
  br i1 %1372, label %1374, label %.thread2737

.thread2737:                                      ; preds = %.thread2736
  store i32 %.01789, ptr %18, align 4, !tbaa !5
  br label %.lr.ph2384.preheader

.thread2734:                                      ; preds = %.loopexit2009
  %1373 = fcmp oeq double %1353, 0.000000e+00
  br i1 %1373, label %1374, label %._crit_edge2385

1374:                                             ; preds = %.thread2736, %.thread2734, %1370
  %1375 = add nuw nsw i32 %340, 2
  store i32 %1375, ptr %12, align 4, !tbaa !5
  %1376 = call i32 @llvm.smax.i32(i32 %.01789, i32 %.01788271227192727)
  %1377 = uitofp nneg i32 %1376 to double
  store double %1377, ptr %14, align 8, !tbaa !9
  %1378 = shl nuw nsw i32 %.01788271227192727, 1
  %1379 = add nuw nsw i32 %1378, %.01789
  %1380 = uitofp nneg i32 %1379 to double
  %1381 = sext i32 %42 to i64
  %1382 = getelementptr double, ptr %44, i64 %1381
  %1383 = getelementptr i8, ptr %1382, i64 16
  store double %1380, ptr %1383, align 8, !tbaa !9
  br label %1483

1384:                                             ; preds = %1370
  store i32 %.01789, ptr %18, align 4, !tbaa !5
  br i1 %.not1915206627202725, label %._crit_edge2385, label %.lr.ph2384.preheader

.lr.ph2384.preheader:                             ; preds = %.thread2737, %1384
  %1385 = sext i32 %38 to i64
  %1386 = sext i32 %42 to i64
  %invariant.gep2881 = getelementptr inbounds i32, ptr %41, i64 %195
  br label %.lr.ph2384

.loopexit2002.loopexit:                           ; preds = %.loopexit
  %.pre2706 = load i32, ptr %18, align 4, !tbaa !5
  br label %.loopexit2002

.loopexit2002:                                    ; preds = %.loopexit2002.loopexit, %.lr.ph2384
  %1387 = phi i32 [ %.pre2706, %.loopexit2002.loopexit ], [ %1389, %.lr.ph2384 ]
  %1388 = sext i32 %1387 to i64
  %.not1960.not = icmp slt i64 %indvars.iv2663, %1388
  br i1 %.not1960.not, label %.lr.ph2384, label %._crit_edge2385, !llvm.loop !87

.lr.ph2384:                                       ; preds = %.lr.ph2384.preheader, %.loopexit2002
  %1389 = phi i32 [ %.01789, %.lr.ph2384.preheader ], [ %1387, %.loopexit2002 ]
  %indvars.iv2663 = phi i64 [ 1, %.lr.ph2384.preheader ], [ %indvars.iv.next2664, %.loopexit2002 ]
  %1390 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv2663
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %indvars.iv.next2664 = add nuw nsw i64 %indvars.iv2663, 1
  %1392 = getelementptr i32, ptr %12, i64 %indvars.iv2663
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  store i32 %.01788271227192727, ptr %19, align 4, !tbaa !5
  br i1 %.not19142057271427182729, label %.loopexit2002, label %.lr.ph2380

.lr.ph2380:                                       ; preds = %.lr.ph2384
  %1394 = sub nsw i32 %1393, %1391
  %1395 = sext i32 %1391 to i64
  %invariant.gep2883 = getelementptr double, ptr %44, i64 %indvars.iv2663
  %invariant.gep2879 = getelementptr double, ptr %40, i64 %1395
  br label %1396

1396:                                             ; preds = %.lr.ph2380, %.loopexit
  %1397 = phi i32 [ %.01788271227192727, %.lr.ph2380 ], [ %1412, %.loopexit ]
  %indvars.iv2660 = phi i64 [ 1, %.lr.ph2380 ], [ %indvars.iv.next2661, %.loopexit ]
  %gep2882 = getelementptr inbounds i32, ptr %invariant.gep2881, i64 %indvars.iv2660
  %1398 = load i32, ptr %gep2882, align 4, !tbaa !5
  %1399 = getelementptr i8, ptr %gep2882, i64 4
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = load double, ptr %11, align 8, !tbaa !9
  %1402 = mul nsw i64 %indvars.iv2660, %1386
  %gep2884 = getelementptr double, ptr %invariant.gep2883, i64 %1402
  %1403 = load double, ptr %gep2884, align 8, !tbaa !9
  %1404 = fdiv double %1401, %1403
  store double %1404, ptr %25, align 8, !tbaa !9
  %1405 = fcmp une double %1404, 1.000000e+00
  br i1 %1405, label %1406, label %.loopexit

1406:                                             ; preds = %1396
  %1407 = add nsw i32 %1400, -1
  store i32 %1407, ptr %20, align 4, !tbaa !5
  %.not19652373.not = icmp slt i32 %1398, %1400
  br i1 %.not19652373.not, label %.lr.ph2376.preheader, label %.loopexit

.lr.ph2376.preheader:                             ; preds = %1406
  %1408 = sext i32 %1398 to i64
  br label %.lr.ph2376

.lr.ph2376:                                       ; preds = %.lr.ph2376.preheader, %.lr.ph2376
  %indvars.iv2657 = phi i64 [ %1408, %.lr.ph2376.preheader ], [ %indvars.iv.next2658, %.lr.ph2376 ]
  store i32 %1394, ptr %21, align 4, !tbaa !5
  %1409 = mul nsw i64 %indvars.iv2657, %1385
  %gep2880 = getelementptr double, ptr %invariant.gep2879, i64 %1409
  call void @dscal_(ptr noundef nonnull %21, ptr noundef nonnull %25, ptr noundef %gep2880, ptr noundef nonnull @c__1) #6
  %indvars.iv.next2658 = add nsw i64 %indvars.iv2657, 1
  %1410 = load i32, ptr %20, align 4, !tbaa !5
  %1411 = sext i32 %1410 to i64
  %.not1965.not = icmp slt i64 %indvars.iv2657, %1411
  br i1 %.not1965.not, label %.lr.ph2376, label %.loopexit.loopexit, !llvm.loop !88

.loopexit.loopexit:                               ; preds = %.lr.ph2376
  %.pre2705 = load i32, ptr %19, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %1406, %1396
  %1412 = phi i32 [ %.pre2705, %.loopexit.loopexit ], [ %1397, %1406 ], [ %1397, %1396 ]
  %indvars.iv.next2661 = add nuw nsw i64 %indvars.iv2660, 1
  %1413 = sext i32 %1412 to i64
  %.not1964.not = icmp slt i64 %indvars.iv2660, %1413
  br i1 %.not1964.not, label %1396, label %.loopexit2002.loopexit, !llvm.loop !89

._crit_edge2385:                                  ; preds = %.loopexit2002, %.thread2734, %1384
  %1414 = fcmp une double %.32, 1.000000e+00
  %1415 = fcmp ogt double %.32, 0.000000e+00
  %or.cond9 = and i1 %1414, %1415
  br i1 %or.cond9, label %1416, label %1428

1416:                                             ; preds = %._crit_edge2385
  %1417 = load double, ptr %11, align 8, !tbaa !9
  %1418 = insertelement <2 x double> <double poison, double 1.000000e+00>, double %1417, i64 0
  %1419 = insertelement <2 x double> poison, double %130, i64 0
  %1420 = insertelement <2 x double> %1419, double %.32, i64 1
  %1421 = fdiv <2 x double> %1418, %1420
  %1422 = extractelement <2 x double> %1421, i64 0
  %1423 = extractelement <2 x double> %1421, i64 1
  %1424 = fcmp ole double %1422, %1423
  %1425 = select i1 %1424, double %1422, double %1423
  %1426 = fmul double %.32, %1425
  %1427 = fdiv double %1417, %1425
  store double %1427, ptr %11, align 8, !tbaa !9
  br label %1428

1428:                                             ; preds = %1416, %._crit_edge2385
  %.33 = phi double [ %1426, %1416 ], [ %.32, %._crit_edge2385 ]
  %1429 = fcmp une double %.33, 1.000000e+00
  %1430 = fcmp ogt double %.33, 0.000000e+00
  %or.cond11 = and i1 %1429, %1430
  br i1 %or.cond11, label %1431, label %1471

1431:                                             ; preds = %1428
  %1432 = load double, ptr %9, align 8, !tbaa !9
  store double %1432, ptr %25, align 8, !tbaa !9
  %1433 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %1433, ptr %18, align 4, !tbaa !5
  %.not19612396 = icmp slt i32 %1433, 1
  br i1 %.not19612396, label %._crit_edge2401, label %.lr.ph2400

.lr.ph2400:                                       ; preds = %1431
  %1434 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %1434, ptr %19, align 4, !tbaa !5
  %.not19632386 = icmp slt i32 %1434, 1
  br i1 %.not19632386, label %._crit_edge2401, label %.lr.ph2389.preheader

.lr.ph2389.preheader:                             ; preds = %.lr.ph2400
  %1435 = sext i32 %38 to i64
  %1436 = add nuw i32 %1433, 1
  %wide.trip.count2674 = zext i32 %1436 to i64
  %1437 = zext nneg i32 %1434 to i64
  %xtraiter2944 = and i64 %1437, 1
  %1438 = icmp eq i32 %1434, 1
  %unroll_iter2948 = and i64 %1437, 2147483646
  %lcmp.mod2946.not = icmp eq i64 %xtraiter2944, 0
  br label %.lr.ph2389

.lr.ph2389:                                       ; preds = %.lr.ph2389.preheader, %._crit_edge2390
  %indvars.iv2671 = phi i64 [ 1, %.lr.ph2389.preheader ], [ %indvars.iv.next2672, %._crit_edge2390 ]
  %.lcssa239223952397 = phi double [ %1432, %.lr.ph2389.preheader ], [ %.lcssa, %._crit_edge2390 ]
  %invariant.gep2885 = getelementptr double, ptr %40, i64 %indvars.iv2671
  br i1 %1438, label %._crit_edge2390.unr-lcssa, label %.lr.ph2389.new

.lr.ph2389.new:                                   ; preds = %.lr.ph2389, %.lr.ph2389.new
  %indvars.iv2666 = phi i64 [ %indvars.iv.next2667.1, %.lr.ph2389.new ], [ 1, %.lr.ph2389 ]
  %1439 = phi double [ %1453, %.lr.ph2389.new ], [ %.lcssa239223952397, %.lr.ph2389 ]
  %niter2949 = phi i64 [ %niter2949.next.1, %.lr.ph2389.new ], [ 0, %.lr.ph2389 ]
  %1440 = mul nsw i64 %indvars.iv2666, %1435
  %gep2886 = getelementptr double, ptr %invariant.gep2885, i64 %1440
  %1441 = load double, ptr %gep2886, align 8, !tbaa !9
  %1442 = fcmp oge double %1441, 0.000000e+00
  %1443 = fneg double %1441
  %1444 = select i1 %1442, double %1441, double %1443
  %1445 = fcmp oge double %1439, %1444
  %1446 = select i1 %1445, double %1439, double %1444
  %indvars.iv.next2667 = add nuw nsw i64 %indvars.iv2666, 1
  %1447 = mul nsw i64 %indvars.iv.next2667, %1435
  %gep2886.1 = getelementptr double, ptr %invariant.gep2885, i64 %1447
  %1448 = load double, ptr %gep2886.1, align 8, !tbaa !9
  %1449 = fcmp oge double %1448, 0.000000e+00
  %1450 = fneg double %1448
  %1451 = select i1 %1449, double %1448, double %1450
  %1452 = fcmp oge double %1446, %1451
  %1453 = select i1 %1452, double %1446, double %1451
  %indvars.iv.next2667.1 = add nuw nsw i64 %indvars.iv2666, 2
  %niter2949.next.1 = add i64 %niter2949, 2
  %niter2949.ncmp.1 = icmp eq i64 %niter2949.next.1, %unroll_iter2948
  br i1 %niter2949.ncmp.1, label %._crit_edge2390.unr-lcssa, label %.lr.ph2389.new, !llvm.loop !90

._crit_edge2390.unr-lcssa:                        ; preds = %.lr.ph2389.new, %.lr.ph2389
  %.lcssa.ph = phi double [ poison, %.lr.ph2389 ], [ %1453, %.lr.ph2389.new ]
  %indvars.iv2666.unr = phi i64 [ 1, %.lr.ph2389 ], [ %indvars.iv.next2667.1, %.lr.ph2389.new ]
  %.unr2945 = phi double [ %.lcssa239223952397, %.lr.ph2389 ], [ %1453, %.lr.ph2389.new ]
  br i1 %lcmp.mod2946.not, label %._crit_edge2390, label %._crit_edge2390.epilog-lcssa

._crit_edge2390.epilog-lcssa:                     ; preds = %._crit_edge2390.unr-lcssa
  %1454 = mul nsw i64 %indvars.iv2666.unr, %1435
  %gep2886.epil = getelementptr double, ptr %invariant.gep2885, i64 %1454
  %1455 = load double, ptr %gep2886.epil, align 8, !tbaa !9
  %1456 = fcmp oge double %1455, 0.000000e+00
  %1457 = fneg double %1455
  %1458 = select i1 %1456, double %1455, double %1457
  %1459 = fcmp oge double %.unr2945, %1458
  %1460 = select i1 %1459, double %.unr2945, double %1458
  br label %._crit_edge2390

._crit_edge2390:                                  ; preds = %._crit_edge2390.unr-lcssa, %._crit_edge2390.epilog-lcssa
  %.lcssa = phi double [ %.lcssa.ph, %._crit_edge2390.unr-lcssa ], [ %1460, %._crit_edge2390.epilog-lcssa ]
  %indvars.iv.next2672 = add nuw nsw i64 %indvars.iv2671, 1
  %exitcond2675.not = icmp eq i64 %indvars.iv.next2672, %wide.trip.count2674
  br i1 %exitcond2675.not, label %._crit_edge2401.split, label %.lr.ph2389, !llvm.loop !91

._crit_edge2401.split:                            ; preds = %._crit_edge2390
  store double %.lcssa, ptr %25, align 8, !tbaa !9
  br label %._crit_edge2401

._crit_edge2401:                                  ; preds = %.lr.ph2400, %._crit_edge2401.split, %1431
  %1461 = phi double [ %.lcssa, %._crit_edge2401.split ], [ %1432, %1431 ], [ %1432, %.lr.ph2400 ]
  %1462 = insertelement <2 x double> <double poison, double 1.000000e+00>, double %188, i64 0
  %1463 = insertelement <2 x double> poison, double %1461, i64 0
  %1464 = insertelement <2 x double> %1463, double %.33, i64 1
  %1465 = fdiv <2 x double> %1462, %1464
  %1466 = extractelement <2 x double> %1465, i64 0
  store double %1466, ptr %24, align 8, !tbaa !9
  %1467 = extractelement <2 x double> %1465, i64 1
  %1468 = fcmp ole double %1466, %1467
  %1469 = select i1 %1468, double %1466, double %1467
  store double %1469, ptr %31, align 8, !tbaa !9
  %1470 = fmul double %.33, %1469
  call void @dlascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_b32, ptr noundef nonnull %31, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %12) #6
  br label %1471

1471:                                             ; preds = %._crit_edge2401, %1428
  %.34 = phi double [ %1470, %._crit_edge2401 ], [ %.33, %1428 ]
  %1472 = load double, ptr %11, align 8, !tbaa !9
  %1473 = fmul double %.34, %1472
  store double %1473, ptr %11, align 8, !tbaa !9
  %1474 = add nuw nsw i32 %340, 2
  store i32 %1474, ptr %12, align 4, !tbaa !5
  %1475 = call i32 @llvm.smax.i32(i32 %.01789, i32 %.01788271227192727)
  %1476 = uitofp nneg i32 %1475 to double
  store double %1476, ptr %14, align 8, !tbaa !9
  %1477 = shl nuw nsw i32 %.01788271227192727, 1
  %1478 = add nuw nsw i32 %1477, %.01789
  %1479 = uitofp nneg i32 %1478 to double
  %1480 = sext i32 %42 to i64
  %1481 = getelementptr double, ptr %44, i64 %1480
  %1482 = getelementptr i8, ptr %1481, i64 16
  store double %1479, ptr %1482, align 8, !tbaa !9
  br label %1483

1483:                                             ; preds = %110, %109, %1471, %1374, %128, %.thread2000
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 8, 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 4, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #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 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #3

declare void @dtrsyl_(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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

declare double @dlange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @my_expfunc(ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden double @dpow_ui(double noundef, i32 noundef) local_unnamed_addr #0

declare double @dlarmm_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @dgemm_(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 nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #4

declare void @dlascl_(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.smax.i32(i32, i32) #5

; 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

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 nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #4 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 }
attributes #7 = { nounwind allocsize(0) }

!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, !13, !14}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!"llvm.loop.isvectorized", i32 1}
!14 = !{!"llvm.loop.unroll.runtime.disable"}
!15 = distinct !{!15, !12, !14, !13}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12, !13, !14}
!19 = distinct !{!19, !12, !14, !13}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12, !13, !14}
!23 = distinct !{!23, !12, !14, !13}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12}
!38 = distinct !{!38, !12}
!39 = distinct !{!39, !12}
!40 = distinct !{!40, !12}
!41 = distinct !{!41, !12}
!42 = distinct !{!42, !12}
!43 = distinct !{!43, !12}
!44 = distinct !{!44, !12}
!45 = distinct !{!45, !12}
!46 = distinct !{!46, !12}
!47 = distinct !{!47, !12}
!48 = distinct !{!48, !12}
!49 = distinct !{!49, !12}
!50 = distinct !{!50, !12}
!51 = distinct !{!51, !12}
!52 = distinct !{!52, !12}
!53 = distinct !{!53, !12}
!54 = distinct !{!54, !12}
!55 = distinct !{!55, !12}
!56 = distinct !{!56, !12}
!57 = distinct !{!57, !12}
!58 = distinct !{!58, !12}
!59 = distinct !{!59, !12}
!60 = distinct !{!60, !12}
!61 = distinct !{!61, !12}
!62 = distinct !{!62, !12}
!63 = distinct !{!63, !12}
!64 = distinct !{!64, !12}
!65 = distinct !{!65, !12}
!66 = distinct !{!66, !12}
!67 = distinct !{!67, !12}
!68 = distinct !{!68, !12}
!69 = distinct !{!69, !12}
!70 = distinct !{!70, !12}
!71 = distinct !{!71, !12}
!72 = distinct !{!72, !12}
!73 = distinct !{!73, !12}
!74 = distinct !{!74, !12}
!75 = distinct !{!75, !12}
!76 = distinct !{!76, !12}
!77 = distinct !{!77, !12}
!78 = distinct !{!78, !12}
!79 = distinct !{!79, !12}
!80 = distinct !{!80, !12}
!81 = distinct !{!81, !12}
!82 = distinct !{!82, !12}
!83 = distinct !{!83, !12}
!84 = distinct !{!84, !12}
!85 = distinct !{!85, !12}
!86 = distinct !{!86, !12}
!87 = distinct !{!87, !12}
!88 = distinct !{!88, !12}
!89 = distinct !{!89, !12}
!90 = distinct !{!90, !12}
!91 = distinct !{!91, !12}


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