; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/TESTING/MATGEN (dlatmr)

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

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

117:                                              ; preds = %28
  %118 = load ptr, ptr %30, align 8, !tbaa !5
  %119 = load i32, ptr %118, align 4, !tbaa !9
  %120 = icmp eq i32 %119, 0
  br i1 %120, label %121, label %122

121:                                              ; preds = %117, %28
  store i32 1, ptr %90, align 4
  br label %3061

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

126:                                              ; preds = %122
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %140

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

131:                                              ; preds = %127
  store i32 2, ptr %75, align 4, !tbaa !9
  br label %139

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

136:                                              ; preds = %132
  store i32 3, ptr %75, align 4, !tbaa !9
  br label %138

137:                                              ; preds = %132
  store i32 -1, ptr %75, align 4, !tbaa !9
  br label %138

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

139:                                              ; preds = %138, %131
  br label %140

140:                                              ; preds = %139, %126
  %141 = load ptr, ptr %33, align 8, !tbaa !5
  %142 = call i32 @lsame_(ptr noundef %141, ptr noundef @.str.1)
  %143 = icmp ne i32 %142, 0
  br i1 %143, label %144, label %145

144:                                              ; preds = %140
  store i32 0, ptr %67, align 4, !tbaa !9
  br label %158

145:                                              ; preds = %140
  %146 = load ptr, ptr %33, align 8, !tbaa !5
  %147 = call i32 @lsame_(ptr noundef %146, ptr noundef @.str.2)
  %148 = icmp ne i32 %147, 0
  br i1 %148, label %149, label %150

149:                                              ; preds = %145
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %157

150:                                              ; preds = %145
  %151 = load ptr, ptr %33, align 8, !tbaa !5
  %152 = call i32 @lsame_(ptr noundef %151, ptr noundef @.str.3)
  %153 = icmp ne i32 %152, 0
  br i1 %153, label %154, label %155

154:                                              ; preds = %150
  store i32 0, ptr %67, align 4, !tbaa !9
  br label %156

155:                                              ; preds = %150
  store i32 -1, ptr %67, align 4, !tbaa !9
  br label %156

156:                                              ; preds = %155, %154
  br label %157

157:                                              ; preds = %156, %149
  br label %158

158:                                              ; preds = %157, %144
  %159 = load ptr, ptr %38, align 8, !tbaa !5
  %160 = call i32 @lsame_(ptr noundef %159, ptr noundef @.str.4)
  %161 = icmp ne i32 %160, 0
  br i1 %161, label %162, label %163

162:                                              ; preds = %158
  store i32 0, ptr %86, align 4, !tbaa !9
  br label %170

163:                                              ; preds = %158
  %164 = load ptr, ptr %38, align 8, !tbaa !5
  %165 = call i32 @lsame_(ptr noundef %164, ptr noundef @.str.5)
  %166 = icmp ne i32 %165, 0
  br i1 %166, label %167, label %168

167:                                              ; preds = %163
  store i32 1, ptr %86, align 4, !tbaa !9
  br label %169

168:                                              ; preds = %163
  store i32 -1, ptr %86, align 4, !tbaa !9
  br label %169

169:                                              ; preds = %168, %167
  br label %170

170:                                              ; preds = %169, %162
  %171 = load ptr, ptr %46, align 8, !tbaa !5
  %172 = call i32 @lsame_(ptr noundef %171, ptr noundef @.str.2)
  %173 = icmp ne i32 %172, 0
  br i1 %173, label %174, label %175

174:                                              ; preds = %170
  store i32 0, ptr %87, align 4, !tbaa !9
  br label %236

175:                                              ; preds = %170
  %176 = load ptr, ptr %46, align 8, !tbaa !5
  %177 = call i32 @lsame_(ptr noundef %176, ptr noundef @.str.6)
  %178 = icmp ne i32 %177, 0
  br i1 %178, label %179, label %180

179:                                              ; preds = %175
  store i32 0, ptr %87, align 4, !tbaa !9
  br label %235

180:                                              ; preds = %175
  %181 = load ptr, ptr %46, align 8, !tbaa !5
  %182 = call i32 @lsame_(ptr noundef %181, ptr noundef @.str.7)
  %183 = icmp ne i32 %182, 0
  br i1 %183, label %184, label %187

184:                                              ; preds = %180
  store i32 1, ptr %87, align 4, !tbaa !9
  %185 = load ptr, ptr %29, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  store i32 %186, ptr %82, align 4, !tbaa !9
  br label %234

187:                                              ; preds = %180
  %188 = load ptr, ptr %46, align 8, !tbaa !5
  %189 = call i32 @lsame_(ptr noundef %188, ptr noundef @.str.8)
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %191, label %194

191:                                              ; preds = %187
  store i32 2, ptr %87, align 4, !tbaa !9
  %192 = load ptr, ptr %30, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  store i32 %193, ptr %82, align 4, !tbaa !9
  br label %233

194:                                              ; preds = %187
  %195 = load ptr, ptr %46, align 8, !tbaa !5
  %196 = call i32 @lsame_(ptr noundef %195, ptr noundef @.str.9)
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %198, label %212

198:                                              ; preds = %194
  store i32 3, ptr %87, align 4, !tbaa !9
  %199 = load ptr, ptr %30, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  %201 = load ptr, ptr %29, align 8, !tbaa !5
  %202 = load i32, ptr %201, align 4, !tbaa !9
  %203 = icmp sle i32 %200, %202
  br i1 %203, label %204, label %207

204:                                              ; preds = %198
  %205 = load ptr, ptr %30, align 8, !tbaa !5
  %206 = load i32, ptr %205, align 4, !tbaa !9
  br label %210

207:                                              ; preds = %198
  %208 = load ptr, ptr %29, align 8, !tbaa !5
  %209 = load i32, ptr %208, align 4, !tbaa !9
  br label %210

210:                                              ; preds = %207, %204
  %211 = phi i32 [ %206, %204 ], [ %209, %207 ]
  store i32 %211, ptr %82, align 4, !tbaa !9
  br label %232

212:                                              ; preds = %194
  %213 = load ptr, ptr %46, align 8, !tbaa !5
  %214 = call i32 @lsame_(ptr noundef %213, ptr noundef @.str.4)
  %215 = icmp ne i32 %214, 0
  br i1 %215, label %216, label %230

216:                                              ; preds = %212
  store i32 3, ptr %87, align 4, !tbaa !9
  %217 = load ptr, ptr %30, align 8, !tbaa !5
  %218 = load i32, ptr %217, align 4, !tbaa !9
  %219 = load ptr, ptr %29, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = icmp sle i32 %218, %220
  br i1 %221, label %222, label %225

222:                                              ; preds = %216
  %223 = load ptr, ptr %30, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  br label %228

225:                                              ; preds = %216
  %226 = load ptr, ptr %29, align 8, !tbaa !5
  %227 = load i32, ptr %226, align 4, !tbaa !9
  br label %228

228:                                              ; preds = %225, %222
  %229 = phi i32 [ %224, %222 ], [ %227, %225 ]
  store i32 %229, ptr %82, align 4, !tbaa !9
  br label %231

230:                                              ; preds = %212
  store i32 -1, ptr %87, align 4, !tbaa !9
  br label %231

231:                                              ; preds = %230, %228
  br label %232

232:                                              ; preds = %231, %210
  br label %233

233:                                              ; preds = %232, %191
  br label %234

234:                                              ; preds = %233, %184
  br label %235

235:                                              ; preds = %234, %179
  br label %236

236:                                              ; preds = %235, %174
  %237 = load ptr, ptr %39, align 8, !tbaa !5
  %238 = call i32 @lsame_(ptr noundef %237, ptr noundef @.str.2)
  %239 = icmp ne i32 %238, 0
  br i1 %239, label %240, label %241

240:                                              ; preds = %236
  store i32 0, ptr %83, align 4, !tbaa !9
  br label %276

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

245:                                              ; preds = %241
  store i32 1, ptr %83, align 4, !tbaa !9
  br label %275

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

250:                                              ; preds = %246
  store i32 2, ptr %83, align 4, !tbaa !9
  br label %274

251:                                              ; preds = %246
  %252 = load ptr, ptr %39, align 8, !tbaa !5
  %253 = call i32 @lsame_(ptr noundef %252, ptr noundef @.str.9)
  %254 = icmp ne i32 %253, 0
  br i1 %254, label %255, label %256

255:                                              ; preds = %251
  store i32 3, ptr %83, align 4, !tbaa !9
  br label %273

256:                                              ; preds = %251
  %257 = load ptr, ptr %39, align 8, !tbaa !5
  %258 = call i32 @lsame_(ptr noundef %257, ptr noundef @.str.10)
  %259 = icmp ne i32 %258, 0
  br i1 %259, label %260, label %261

260:                                              ; preds = %256
  store i32 4, ptr %83, align 4, !tbaa !9
  br label %272

261:                                              ; preds = %256
  %262 = load ptr, ptr %39, align 8, !tbaa !5
  %263 = call i32 @lsame_(ptr noundef %262, ptr noundef @.str.3)
  %264 = icmp ne i32 %263, 0
  br i1 %264, label %269, label %265

265:                                              ; preds = %261
  %266 = load ptr, ptr %39, align 8, !tbaa !5
  %267 = call i32 @lsame_(ptr noundef %266, ptr noundef @.str.1)
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %270

269:                                              ; preds = %265, %261
  store i32 5, ptr %83, align 4, !tbaa !9
  br label %271

270:                                              ; preds = %265
  store i32 -1, ptr %83, align 4, !tbaa !9
  br label %271

271:                                              ; preds = %270, %269
  br label %272

272:                                              ; preds = %271, %260
  br label %273

273:                                              ; preds = %272, %255
  br label %274

274:                                              ; preds = %273, %250
  br label %275

275:                                              ; preds = %274, %245
  br label %276

276:                                              ; preds = %275, %240
  %277 = load ptr, ptr %52, align 8, !tbaa !5
  %278 = call i32 @lsame_(ptr noundef %277, ptr noundef @.str.2)
  %279 = icmp ne i32 %278, 0
  br i1 %279, label %280, label %281

280:                                              ; preds = %276
  store i32 0, ptr %72, align 4, !tbaa !9
  br label %324

281:                                              ; preds = %276
  %282 = load ptr, ptr %52, align 8, !tbaa !5
  %283 = call i32 @lsame_(ptr noundef %282, ptr noundef @.str)
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %285, label %286

285:                                              ; preds = %281
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %323

286:                                              ; preds = %281
  %287 = load ptr, ptr %52, align 8, !tbaa !5
  %288 = call i32 @lsame_(ptr noundef %287, ptr noundef @.str.7)
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %290, label %291

290:                                              ; preds = %286
  store i32 2, ptr %72, align 4, !tbaa !9
  br label %322

291:                                              ; preds = %286
  %292 = load ptr, ptr %52, align 8, !tbaa !5
  %293 = call i32 @lsame_(ptr noundef %292, ptr noundef @.str.11)
  %294 = icmp ne i32 %293, 0
  br i1 %294, label %295, label %296

295:                                              ; preds = %291
  store i32 3, ptr %72, align 4, !tbaa !9
  br label %321

296:                                              ; preds = %291
  %297 = load ptr, ptr %52, align 8, !tbaa !5
  %298 = call i32 @lsame_(ptr noundef %297, ptr noundef @.str.8)
  %299 = icmp ne i32 %298, 0
  br i1 %299, label %300, label %301

300:                                              ; preds = %296
  store i32 4, ptr %72, align 4, !tbaa !9
  br label %320

301:                                              ; preds = %296
  %302 = load ptr, ptr %52, align 8, !tbaa !5
  %303 = call i32 @lsame_(ptr noundef %302, ptr noundef @.str.9)
  %304 = icmp ne i32 %303, 0
  br i1 %304, label %305, label %306

305:                                              ; preds = %301
  store i32 5, ptr %72, align 4, !tbaa !9
  br label %319

306:                                              ; preds = %301
  %307 = load ptr, ptr %52, align 8, !tbaa !5
  %308 = call i32 @lsame_(ptr noundef %307, ptr noundef @.str.12)
  %309 = icmp ne i32 %308, 0
  br i1 %309, label %310, label %311

310:                                              ; preds = %306
  store i32 6, ptr %72, align 4, !tbaa !9
  br label %318

311:                                              ; preds = %306
  %312 = load ptr, ptr %52, align 8, !tbaa !5
  %313 = call i32 @lsame_(ptr noundef %312, ptr noundef @.str.13)
  %314 = icmp ne i32 %313, 0
  br i1 %314, label %315, label %316

315:                                              ; preds = %311
  store i32 7, ptr %72, align 4, !tbaa !9
  br label %317

316:                                              ; preds = %311
  store i32 -1, ptr %72, align 4, !tbaa !9
  br label %317

317:                                              ; preds = %316, %315
  br label %318

318:                                              ; preds = %317, %310
  br label %319

319:                                              ; preds = %318, %305
  br label %320

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

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

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

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

324:                                              ; preds = %323, %280
  %325 = load ptr, ptr %29, align 8, !tbaa !5
  %326 = load i32, ptr %325, align 4, !tbaa !9
  %327 = load ptr, ptr %30, align 8, !tbaa !5
  %328 = load i32, ptr %327, align 4, !tbaa !9
  %329 = icmp sle i32 %326, %328
  br i1 %329, label %330, label %333

330:                                              ; preds = %324
  %331 = load ptr, ptr %29, align 8, !tbaa !5
  %332 = load i32, ptr %331, align 4, !tbaa !9
  br label %336

333:                                              ; preds = %324
  %334 = load ptr, ptr %30, align 8, !tbaa !5
  %335 = load i32, ptr %334, align 4, !tbaa !9
  br label %336

336:                                              ; preds = %333, %330
  %337 = phi i32 [ %332, %330 ], [ %335, %333 ]
  store i32 %337, ptr %77, align 4, !tbaa !9
  %338 = load ptr, ptr %48, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  store i32 %339, ptr %59, align 4, !tbaa !9
  %340 = load ptr, ptr %29, align 8, !tbaa !5
  %341 = load i32, ptr %340, align 4, !tbaa !9
  %342 = sub nsw i32 %341, 1
  store i32 %342, ptr %60, align 4, !tbaa !9
  %343 = load i32, ptr %59, align 4, !tbaa !9
  %344 = load i32, ptr %60, align 4, !tbaa !9
  %345 = icmp sle i32 %343, %344
  br i1 %345, label %346, label %348

346:                                              ; preds = %336
  %347 = load i32, ptr %59, align 4, !tbaa !9
  br label %350

348:                                              ; preds = %336
  %349 = load i32, ptr %60, align 4, !tbaa !9
  br label %350

350:                                              ; preds = %348, %346
  %351 = phi i32 [ %347, %346 ], [ %349, %348 ]
  store i32 %351, ptr %88, align 4, !tbaa !9
  %352 = load ptr, ptr %49, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !9
  store i32 %353, ptr %59, align 4, !tbaa !9
  %354 = load ptr, ptr %30, align 8, !tbaa !5
  %355 = load i32, ptr %354, align 4, !tbaa !9
  %356 = sub nsw i32 %355, 1
  store i32 %356, ptr %60, align 4, !tbaa !9
  %357 = load i32, ptr %59, align 4, !tbaa !9
  %358 = load i32, ptr %60, align 4, !tbaa !9
  %359 = icmp sle i32 %357, %358
  br i1 %359, label %360, label %362

360:                                              ; preds = %350
  %361 = load i32, ptr %59, align 4, !tbaa !9
  br label %364

362:                                              ; preds = %350
  %363 = load i32, ptr %60, align 4, !tbaa !9
  br label %364

364:                                              ; preds = %362, %360
  %365 = phi i32 [ %361, %360 ], [ %363, %362 ]
  store i32 %365, ptr %89, align 4, !tbaa !9
  store i32 0, ptr %78, align 4, !tbaa !9
  %366 = load i32, ptr %83, align 4, !tbaa !9
  %367 = icmp eq i32 %366, 4
  br i1 %367, label %368, label %392

368:                                              ; preds = %364
  %369 = load ptr, ptr %41, align 8, !tbaa !5
  %370 = load i32, ptr %369, align 4, !tbaa !9
  %371 = icmp eq i32 %370, 0
  br i1 %371, label %372, label %392

372:                                              ; preds = %368
  %373 = load ptr, ptr %29, align 8, !tbaa !5
  %374 = load i32, ptr %373, align 4, !tbaa !9
  store i32 %374, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %375

375:                                              ; preds = %388, %372
  %376 = load i32, ptr %68, align 4, !tbaa !9
  %377 = load i32, ptr %59, align 4, !tbaa !9
  %378 = icmp sle i32 %376, %377
  br i1 %378, label %379, label %391

379:                                              ; preds = %375
  %380 = load ptr, ptr %40, align 8, !tbaa !5
  %381 = load i32, ptr %68, align 4, !tbaa !9
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds double, ptr %380, i64 %382
  %384 = load double, ptr %383, align 8, !tbaa !11
  %385 = fcmp oeq double %384, 0.000000e+00
  br i1 %385, label %386, label %387

386:                                              ; preds = %379
  store i32 1, ptr %78, align 4, !tbaa !9
  br label %387

387:                                              ; preds = %386, %379
  br label %388

388:                                              ; preds = %387
  %389 = load i32, ptr %68, align 4, !tbaa !9
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr %68, align 4, !tbaa !9
  br label %375, !llvm.loop !13

391:                                              ; preds = %375
  br label %392

392:                                              ; preds = %391, %368, %364
  store i32 0, ptr %85, align 4, !tbaa !9
  %393 = load i32, ptr %87, align 4, !tbaa !9
  %394 = icmp sgt i32 %393, 0
  br i1 %394, label %395, label %422

395:                                              ; preds = %392
  %396 = load i32, ptr %82, align 4, !tbaa !9
  store i32 %396, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %397

397:                                              ; preds = %418, %395
  %398 = load i32, ptr %69, align 4, !tbaa !9
  %399 = load i32, ptr %59, align 4, !tbaa !9
  %400 = icmp sle i32 %398, %399
  br i1 %400, label %401, label %421

401:                                              ; preds = %397
  %402 = load ptr, ptr %47, align 8, !tbaa !5
  %403 = load i32, ptr %69, align 4, !tbaa !9
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds i32, ptr %402, i64 %404
  %406 = load i32, ptr %405, align 4, !tbaa !9
  %407 = icmp sle i32 %406, 0
  br i1 %407, label %416, label %408

408:                                              ; preds = %401
  %409 = load ptr, ptr %47, align 8, !tbaa !5
  %410 = load i32, ptr %69, align 4, !tbaa !9
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds i32, ptr %409, i64 %411
  %413 = load i32, ptr %412, align 4, !tbaa !9
  %414 = load i32, ptr %82, align 4, !tbaa !9
  %415 = icmp sgt i32 %413, %414
  br i1 %415, label %416, label %417

416:                                              ; preds = %408, %401
  store i32 1, ptr %85, align 4, !tbaa !9
  br label %417

417:                                              ; preds = %416, %408
  br label %418

418:                                              ; preds = %417
  %419 = load i32, ptr %69, align 4, !tbaa !9
  %420 = add nsw i32 %419, 1
  store i32 %420, ptr %69, align 4, !tbaa !9
  br label %397, !llvm.loop !15

421:                                              ; preds = %397
  br label %422

422:                                              ; preds = %421, %392
  %423 = load ptr, ptr %29, align 8, !tbaa !5
  %424 = load i32, ptr %423, align 4, !tbaa !9
  %425 = icmp slt i32 %424, 0
  br i1 %425, label %426, label %428

426:                                              ; preds = %422
  %427 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -1, ptr %427, align 4, !tbaa !9
  br label %814

428:                                              ; preds = %422
  %429 = load ptr, ptr %29, align 8, !tbaa !5
  %430 = load i32, ptr %429, align 4, !tbaa !9
  %431 = load ptr, ptr %30, align 8, !tbaa !5
  %432 = load i32, ptr %431, align 4, !tbaa !9
  %433 = icmp ne i32 %430, %432
  br i1 %433, label %434, label %439

434:                                              ; preds = %428
  %435 = load i32, ptr %67, align 4, !tbaa !9
  %436 = icmp eq i32 %435, 0
  br i1 %436, label %437, label %439

437:                                              ; preds = %434
  %438 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -1, ptr %438, align 4, !tbaa !9
  br label %813

439:                                              ; preds = %434, %428
  %440 = load ptr, ptr %30, align 8, !tbaa !5
  %441 = load i32, ptr %440, align 4, !tbaa !9
  %442 = icmp slt i32 %441, 0
  br i1 %442, label %443, label %445

443:                                              ; preds = %439
  %444 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -2, ptr %444, align 4, !tbaa !9
  br label %812

445:                                              ; preds = %439
  %446 = load i32, ptr %75, align 4, !tbaa !9
  %447 = icmp eq i32 %446, -1
  br i1 %447, label %448, label %450

448:                                              ; preds = %445
  %449 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -3, ptr %449, align 4, !tbaa !9
  br label %811

450:                                              ; preds = %445
  %451 = load i32, ptr %67, align 4, !tbaa !9
  %452 = icmp eq i32 %451, -1
  br i1 %452, label %453, label %455

453:                                              ; preds = %450
  %454 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -5, ptr %454, align 4, !tbaa !9
  br label %810

455:                                              ; preds = %450
  %456 = load ptr, ptr %35, align 8, !tbaa !5
  %457 = load i32, ptr %456, align 4, !tbaa !9
  %458 = icmp slt i32 %457, -6
  br i1 %458, label %463, label %459

459:                                              ; preds = %455
  %460 = load ptr, ptr %35, align 8, !tbaa !5
  %461 = load i32, ptr %460, align 4, !tbaa !9
  %462 = icmp sgt i32 %461, 6
  br i1 %462, label %463, label %465

463:                                              ; preds = %459, %455
  %464 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -7, ptr %464, align 4, !tbaa !9
  br label %809

465:                                              ; preds = %459
  %466 = load ptr, ptr %35, align 8, !tbaa !5
  %467 = load i32, ptr %466, align 4, !tbaa !9
  %468 = icmp ne i32 %467, -6
  br i1 %468, label %469, label %483

469:                                              ; preds = %465
  %470 = load ptr, ptr %35, align 8, !tbaa !5
  %471 = load i32, ptr %470, align 4, !tbaa !9
  %472 = icmp ne i32 %471, 0
  br i1 %472, label %473, label %483

473:                                              ; preds = %469
  %474 = load ptr, ptr %35, align 8, !tbaa !5
  %475 = load i32, ptr %474, align 4, !tbaa !9
  %476 = icmp ne i32 %475, 6
  br i1 %476, label %477, label %483

477:                                              ; preds = %473
  %478 = load ptr, ptr %36, align 8, !tbaa !5
  %479 = load double, ptr %478, align 8, !tbaa !11
  %480 = fcmp olt double %479, 1.000000e+00
  br i1 %480, label %481, label %483

481:                                              ; preds = %477
  %482 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -8, ptr %482, align 4, !tbaa !9
  br label %808

483:                                              ; preds = %477, %473, %469, %465
  %484 = load ptr, ptr %35, align 8, !tbaa !5
  %485 = load i32, ptr %484, align 4, !tbaa !9
  %486 = icmp ne i32 %485, -6
  br i1 %486, label %487, label %500

487:                                              ; preds = %483
  %488 = load ptr, ptr %35, align 8, !tbaa !5
  %489 = load i32, ptr %488, align 4, !tbaa !9
  %490 = icmp ne i32 %489, 0
  br i1 %490, label %491, label %500

491:                                              ; preds = %487
  %492 = load ptr, ptr %35, align 8, !tbaa !5
  %493 = load i32, ptr %492, align 4, !tbaa !9
  %494 = icmp ne i32 %493, 6
  br i1 %494, label %495, label %500

495:                                              ; preds = %491
  %496 = load i32, ptr %86, align 4, !tbaa !9
  %497 = icmp eq i32 %496, -1
  br i1 %497, label %498, label %500

498:                                              ; preds = %495
  %499 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -10, ptr %499, align 4, !tbaa !9
  br label %807

500:                                              ; preds = %495, %491, %487, %483
  %501 = load i32, ptr %83, align 4, !tbaa !9
  %502 = icmp eq i32 %501, -1
  br i1 %502, label %521, label %503

503:                                              ; preds = %500
  %504 = load i32, ptr %83, align 4, !tbaa !9
  %505 = icmp eq i32 %504, 4
  br i1 %505, label %506, label %512

506:                                              ; preds = %503
  %507 = load ptr, ptr %29, align 8, !tbaa !5
  %508 = load i32, ptr %507, align 4, !tbaa !9
  %509 = load ptr, ptr %30, align 8, !tbaa !5
  %510 = load i32, ptr %509, align 4, !tbaa !9
  %511 = icmp ne i32 %508, %510
  br i1 %511, label %521, label %512

512:                                              ; preds = %506, %503
  %513 = load i32, ptr %83, align 4, !tbaa !9
  %514 = icmp sge i32 %513, 1
  br i1 %514, label %515, label %523

515:                                              ; preds = %512
  %516 = load i32, ptr %83, align 4, !tbaa !9
  %517 = icmp sle i32 %516, 4
  br i1 %517, label %518, label %523

518:                                              ; preds = %515
  %519 = load i32, ptr %67, align 4, !tbaa !9
  %520 = icmp eq i32 %519, 0
  br i1 %520, label %521, label %523

521:                                              ; preds = %518, %506, %500
  %522 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -11, ptr %522, align 4, !tbaa !9
  br label %806

523:                                              ; preds = %518, %515, %512
  %524 = load i32, ptr %83, align 4, !tbaa !9
  %525 = icmp eq i32 %524, 4
  br i1 %525, label %526, label %531

526:                                              ; preds = %523
  %527 = load i32, ptr %78, align 4, !tbaa !9
  %528 = icmp ne i32 %527, 0
  br i1 %528, label %529, label %531

529:                                              ; preds = %526
  %530 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -12, ptr %530, align 4, !tbaa !9
  br label %805

531:                                              ; preds = %526, %523
  %532 = load i32, ptr %83, align 4, !tbaa !9
  %533 = icmp eq i32 %532, 1
  br i1 %533, label %543, label %534

534:                                              ; preds = %531
  %535 = load i32, ptr %83, align 4, !tbaa !9
  %536 = icmp eq i32 %535, 3
  br i1 %536, label %543, label %537

537:                                              ; preds = %534
  %538 = load i32, ptr %83, align 4, !tbaa !9
  %539 = icmp eq i32 %538, 4
  br i1 %539, label %543, label %540

540:                                              ; preds = %537
  %541 = load i32, ptr %83, align 4, !tbaa !9
  %542 = icmp eq i32 %541, 5
  br i1 %542, label %543, label %553

543:                                              ; preds = %540, %537, %534, %531
  %544 = load ptr, ptr %41, align 8, !tbaa !5
  %545 = load i32, ptr %544, align 4, !tbaa !9
  %546 = icmp slt i32 %545, -6
  br i1 %546, label %551, label %547

547:                                              ; preds = %543
  %548 = load ptr, ptr %41, align 8, !tbaa !5
  %549 = load i32, ptr %548, align 4, !tbaa !9
  %550 = icmp sgt i32 %549, 6
  br i1 %550, label %551, label %553

551:                                              ; preds = %547, %543
  %552 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -13, ptr %552, align 4, !tbaa !9
  br label %804

553:                                              ; preds = %547, %540
  %554 = load i32, ptr %83, align 4, !tbaa !9
  %555 = icmp eq i32 %554, 1
  br i1 %555, label %565, label %556

556:                                              ; preds = %553
  %557 = load i32, ptr %83, align 4, !tbaa !9
  %558 = icmp eq i32 %557, 3
  br i1 %558, label %565, label %559

559:                                              ; preds = %556
  %560 = load i32, ptr %83, align 4, !tbaa !9
  %561 = icmp eq i32 %560, 4
  br i1 %561, label %565, label %562

562:                                              ; preds = %559
  %563 = load i32, ptr %83, align 4, !tbaa !9
  %564 = icmp eq i32 %563, 5
  br i1 %564, label %565, label %583

565:                                              ; preds = %562, %559, %556, %553
  %566 = load ptr, ptr %41, align 8, !tbaa !5
  %567 = load i32, ptr %566, align 4, !tbaa !9
  %568 = icmp ne i32 %567, -6
  br i1 %568, label %569, label %583

569:                                              ; preds = %565
  %570 = load ptr, ptr %41, align 8, !tbaa !5
  %571 = load i32, ptr %570, align 4, !tbaa !9
  %572 = icmp ne i32 %571, 0
  br i1 %572, label %573, label %583

573:                                              ; preds = %569
  %574 = load ptr, ptr %41, align 8, !tbaa !5
  %575 = load i32, ptr %574, align 4, !tbaa !9
  %576 = icmp ne i32 %575, 6
  br i1 %576, label %577, label %583

577:                                              ; preds = %573
  %578 = load ptr, ptr %42, align 8, !tbaa !5
  %579 = load double, ptr %578, align 8, !tbaa !11
  %580 = fcmp olt double %579, 1.000000e+00
  br i1 %580, label %581, label %583

581:                                              ; preds = %577
  %582 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -14, ptr %582, align 4, !tbaa !9
  br label %803

583:                                              ; preds = %577, %573, %569, %565, %562
  %584 = load i32, ptr %83, align 4, !tbaa !9
  %585 = icmp eq i32 %584, 2
  br i1 %585, label %589, label %586

586:                                              ; preds = %583
  %587 = load i32, ptr %83, align 4, !tbaa !9
  %588 = icmp eq i32 %587, 3
  br i1 %588, label %589, label %599

589:                                              ; preds = %586, %583
  %590 = load ptr, ptr %44, align 8, !tbaa !5
  %591 = load i32, ptr %590, align 4, !tbaa !9
  %592 = icmp slt i32 %591, -6
  br i1 %592, label %597, label %593

593:                                              ; preds = %589
  %594 = load ptr, ptr %44, align 8, !tbaa !5
  %595 = load i32, ptr %594, align 4, !tbaa !9
  %596 = icmp sgt i32 %595, 6
  br i1 %596, label %597, label %599

597:                                              ; preds = %593, %589
  %598 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -16, ptr %598, align 4, !tbaa !9
  br label %802

599:                                              ; preds = %593, %586
  %600 = load i32, ptr %83, align 4, !tbaa !9
  %601 = icmp eq i32 %600, 2
  br i1 %601, label %605, label %602

602:                                              ; preds = %599
  %603 = load i32, ptr %83, align 4, !tbaa !9
  %604 = icmp eq i32 %603, 3
  br i1 %604, label %605, label %623

605:                                              ; preds = %602, %599
  %606 = load ptr, ptr %44, align 8, !tbaa !5
  %607 = load i32, ptr %606, align 4, !tbaa !9
  %608 = icmp ne i32 %607, -6
  br i1 %608, label %609, label %623

609:                                              ; preds = %605
  %610 = load ptr, ptr %44, align 8, !tbaa !5
  %611 = load i32, ptr %610, align 4, !tbaa !9
  %612 = icmp ne i32 %611, 0
  br i1 %612, label %613, label %623

613:                                              ; preds = %609
  %614 = load ptr, ptr %44, align 8, !tbaa !5
  %615 = load i32, ptr %614, align 4, !tbaa !9
  %616 = icmp ne i32 %615, 6
  br i1 %616, label %617, label %623

617:                                              ; preds = %613
  %618 = load ptr, ptr %45, align 8, !tbaa !5
  %619 = load double, ptr %618, align 8, !tbaa !11
  %620 = fcmp olt double %619, 1.000000e+00
  br i1 %620, label %621, label %623

621:                                              ; preds = %617
  %622 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -17, ptr %622, align 4, !tbaa !9
  br label %801

623:                                              ; preds = %617, %613, %609, %605, %602
  %624 = load i32, ptr %87, align 4, !tbaa !9
  %625 = icmp eq i32 %624, -1
  br i1 %625, label %644, label %626

626:                                              ; preds = %623
  %627 = load i32, ptr %87, align 4, !tbaa !9
  %628 = icmp eq i32 %627, 3
  br i1 %628, label %629, label %635

629:                                              ; preds = %626
  %630 = load ptr, ptr %29, align 8, !tbaa !5
  %631 = load i32, ptr %630, align 4, !tbaa !9
  %632 = load ptr, ptr %30, align 8, !tbaa !5
  %633 = load i32, ptr %632, align 4, !tbaa !9
  %634 = icmp ne i32 %631, %633
  br i1 %634, label %644, label %635

635:                                              ; preds = %629, %626
  %636 = load i32, ptr %87, align 4, !tbaa !9
  %637 = icmp eq i32 %636, 1
  br i1 %637, label %641, label %638

638:                                              ; preds = %635
  %639 = load i32, ptr %87, align 4, !tbaa !9
  %640 = icmp eq i32 %639, 2
  br i1 %640, label %641, label %646

641:                                              ; preds = %638, %635
  %642 = load i32, ptr %67, align 4, !tbaa !9
  %643 = icmp eq i32 %642, 0
  br i1 %643, label %644, label %646

644:                                              ; preds = %641, %629, %623
  %645 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -18, ptr %645, align 4, !tbaa !9
  br label %800

646:                                              ; preds = %641, %638
  %647 = load i32, ptr %87, align 4, !tbaa !9
  %648 = icmp ne i32 %647, 0
  br i1 %648, label %649, label %654

649:                                              ; preds = %646
  %650 = load i32, ptr %85, align 4, !tbaa !9
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %652, label %654

652:                                              ; preds = %649
  %653 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -19, ptr %653, align 4, !tbaa !9
  br label %799

654:                                              ; preds = %649, %646
  %655 = load ptr, ptr %48, align 8, !tbaa !5
  %656 = load i32, ptr %655, align 4, !tbaa !9
  %657 = icmp slt i32 %656, 0
  br i1 %657, label %658, label %660

658:                                              ; preds = %654
  %659 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -20, ptr %659, align 4, !tbaa !9
  br label %798

660:                                              ; preds = %654
  %661 = load ptr, ptr %49, align 8, !tbaa !5
  %662 = load i32, ptr %661, align 4, !tbaa !9
  %663 = icmp slt i32 %662, 0
  br i1 %663, label %673, label %664

664:                                              ; preds = %660
  %665 = load i32, ptr %67, align 4, !tbaa !9
  %666 = icmp eq i32 %665, 0
  br i1 %666, label %667, label %675

667:                                              ; preds = %664
  %668 = load ptr, ptr %48, align 8, !tbaa !5
  %669 = load i32, ptr %668, align 4, !tbaa !9
  %670 = load ptr, ptr %49, align 8, !tbaa !5
  %671 = load i32, ptr %670, align 4, !tbaa !9
  %672 = icmp ne i32 %669, %671
  br i1 %672, label %673, label %675

673:                                              ; preds = %667, %660
  %674 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -21, ptr %674, align 4, !tbaa !9
  br label %797

675:                                              ; preds = %667, %664
  %676 = load ptr, ptr %50, align 8, !tbaa !5
  %677 = load double, ptr %676, align 8, !tbaa !11
  %678 = fcmp olt double %677, 0.000000e+00
  br i1 %678, label %683, label %679

679:                                              ; preds = %675
  %680 = load ptr, ptr %50, align 8, !tbaa !5
  %681 = load double, ptr %680, align 8, !tbaa !11
  %682 = fcmp ogt double %681, 1.000000e+00
  br i1 %682, label %683, label %685

683:                                              ; preds = %679, %675
  %684 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -22, ptr %684, align 4, !tbaa !9
  br label %796

685:                                              ; preds = %679
  %686 = load i32, ptr %72, align 4, !tbaa !9
  %687 = icmp eq i32 %686, -1
  br i1 %687, label %735, label %688

688:                                              ; preds = %685
  %689 = load i32, ptr %72, align 4, !tbaa !9
  %690 = icmp eq i32 %689, 1
  br i1 %690, label %700, label %691

691:                                              ; preds = %688
  %692 = load i32, ptr %72, align 4, !tbaa !9
  %693 = icmp eq i32 %692, 2
  br i1 %693, label %700, label %694

694:                                              ; preds = %691
  %695 = load i32, ptr %72, align 4, !tbaa !9
  %696 = icmp eq i32 %695, 5
  br i1 %696, label %700, label %697

697:                                              ; preds = %694
  %698 = load i32, ptr %72, align 4, !tbaa !9
  %699 = icmp eq i32 %698, 6
  br i1 %699, label %700, label %703

700:                                              ; preds = %697, %694, %691, %688
  %701 = load i32, ptr %67, align 4, !tbaa !9
  %702 = icmp eq i32 %701, 1
  br i1 %702, label %735, label %703

703:                                              ; preds = %700, %697
  %704 = load i32, ptr %72, align 4, !tbaa !9
  %705 = icmp eq i32 %704, 3
  br i1 %705, label %706, label %719

706:                                              ; preds = %703
  %707 = load i32, ptr %67, align 4, !tbaa !9
  %708 = icmp eq i32 %707, 1
  br i1 %708, label %709, label %719

709:                                              ; preds = %706
  %710 = load ptr, ptr %48, align 8, !tbaa !5
  %711 = load i32, ptr %710, align 4, !tbaa !9
  %712 = icmp ne i32 %711, 0
  br i1 %712, label %735, label %713

713:                                              ; preds = %709
  %714 = load ptr, ptr %29, align 8, !tbaa !5
  %715 = load i32, ptr %714, align 4, !tbaa !9
  %716 = load ptr, ptr %30, align 8, !tbaa !5
  %717 = load i32, ptr %716, align 4, !tbaa !9
  %718 = icmp ne i32 %715, %717
  br i1 %718, label %735, label %719

719:                                              ; preds = %713, %706, %703
  %720 = load i32, ptr %72, align 4, !tbaa !9
  %721 = icmp eq i32 %720, 4
  br i1 %721, label %722, label %737

722:                                              ; preds = %719
  %723 = load i32, ptr %67, align 4, !tbaa !9
  %724 = icmp eq i32 %723, 1
  br i1 %724, label %725, label %737

725:                                              ; preds = %722
  %726 = load ptr, ptr %49, align 8, !tbaa !5
  %727 = load i32, ptr %726, align 4, !tbaa !9
  %728 = icmp ne i32 %727, 0
  br i1 %728, label %735, label %729

729:                                              ; preds = %725
  %730 = load ptr, ptr %29, align 8, !tbaa !5
  %731 = load i32, ptr %730, align 4, !tbaa !9
  %732 = load ptr, ptr %30, align 8, !tbaa !5
  %733 = load i32, ptr %732, align 4, !tbaa !9
  %734 = icmp ne i32 %731, %733
  br i1 %734, label %735, label %737

735:                                              ; preds = %729, %725, %713, %709, %700, %685
  %736 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -24, ptr %736, align 4, !tbaa !9
  br label %795

737:                                              ; preds = %729, %722, %719
  %738 = load i32, ptr %72, align 4, !tbaa !9
  %739 = icmp eq i32 %738, 0
  br i1 %739, label %746, label %740

740:                                              ; preds = %737
  %741 = load i32, ptr %72, align 4, !tbaa !9
  %742 = icmp eq i32 %741, 1
  br i1 %742, label %746, label %743

743:                                              ; preds = %740
  %744 = load i32, ptr %72, align 4, !tbaa !9
  %745 = icmp eq i32 %744, 2
  br i1 %745, label %746, label %759

746:                                              ; preds = %743, %740, %737
  %747 = load ptr, ptr %54, align 8, !tbaa !5
  %748 = load i32, ptr %747, align 4, !tbaa !9
  %749 = load ptr, ptr %29, align 8, !tbaa !5
  %750 = load i32, ptr %749, align 4, !tbaa !9
  %751 = icmp sge i32 1, %750
  br i1 %751, label %752, label %753

752:                                              ; preds = %746
  br label %756

753:                                              ; preds = %746
  %754 = load ptr, ptr %29, align 8, !tbaa !5
  %755 = load i32, ptr %754, align 4, !tbaa !9
  br label %756

756:                                              ; preds = %753, %752
  %757 = phi i32 [ 1, %752 ], [ %755, %753 ]
  %758 = icmp slt i32 %748, %757
  br i1 %758, label %792, label %759

759:                                              ; preds = %756, %743
  %760 = load i32, ptr %72, align 4, !tbaa !9
  %761 = icmp eq i32 %760, 3
  br i1 %761, label %765, label %762

762:                                              ; preds = %759
  %763 = load i32, ptr %72, align 4, !tbaa !9
  %764 = icmp eq i32 %763, 4
  br i1 %764, label %765, label %769

765:                                              ; preds = %762, %759
  %766 = load ptr, ptr %54, align 8, !tbaa !5
  %767 = load i32, ptr %766, align 4, !tbaa !9
  %768 = icmp slt i32 %767, 1
  br i1 %768, label %792, label %769

769:                                              ; preds = %765, %762
  %770 = load i32, ptr %72, align 4, !tbaa !9
  %771 = icmp eq i32 %770, 5
  br i1 %771, label %775, label %772

772:                                              ; preds = %769
  %773 = load i32, ptr %72, align 4, !tbaa !9
  %774 = icmp eq i32 %773, 6
  br i1 %774, label %775, label %781

775:                                              ; preds = %772, %769
  %776 = load ptr, ptr %54, align 8, !tbaa !5
  %777 = load i32, ptr %776, align 4, !tbaa !9
  %778 = load i32, ptr %89, align 4, !tbaa !9
  %779 = add nsw i32 %778, 1
  %780 = icmp slt i32 %777, %779
  br i1 %780, label %792, label %781

781:                                              ; preds = %775, %772
  %782 = load i32, ptr %72, align 4, !tbaa !9
  %783 = icmp eq i32 %782, 7
  br i1 %783, label %784, label %794

784:                                              ; preds = %781
  %785 = load ptr, ptr %54, align 8, !tbaa !5
  %786 = load i32, ptr %785, align 4, !tbaa !9
  %787 = load i32, ptr %88, align 4, !tbaa !9
  %788 = load i32, ptr %89, align 4, !tbaa !9
  %789 = add nsw i32 %787, %788
  %790 = add nsw i32 %789, 1
  %791 = icmp slt i32 %786, %790
  br i1 %791, label %792, label %794

792:                                              ; preds = %784, %775, %765, %756
  %793 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -26, ptr %793, align 4, !tbaa !9
  br label %794

794:                                              ; preds = %792, %784, %781
  br label %795

795:                                              ; preds = %794, %735
  br label %796

796:                                              ; preds = %795, %683
  br label %797

797:                                              ; preds = %796, %673
  br label %798

798:                                              ; preds = %797, %658
  br label %799

799:                                              ; preds = %798, %652
  br label %800

800:                                              ; preds = %799, %644
  br label %801

801:                                              ; preds = %800, %621
  br label %802

802:                                              ; preds = %801, %597
  br label %803

803:                                              ; preds = %802, %581
  br label %804

804:                                              ; preds = %803, %551
  br label %805

805:                                              ; preds = %804, %529
  br label %806

806:                                              ; preds = %805, %521
  br label %807

807:                                              ; preds = %806, %498
  br label %808

808:                                              ; preds = %807, %481
  br label %809

809:                                              ; preds = %808, %463
  br label %810

810:                                              ; preds = %809, %453
  br label %811

811:                                              ; preds = %810, %448
  br label %812

812:                                              ; preds = %811, %443
  br label %813

813:                                              ; preds = %812, %437
  br label %814

814:                                              ; preds = %813, %426
  %815 = load ptr, ptr %56, align 8, !tbaa !5
  %816 = load i32, ptr %815, align 4, !tbaa !9
  %817 = icmp ne i32 %816, 0
  br i1 %817, label %818, label %823

818:                                              ; preds = %814
  %819 = load ptr, ptr %56, align 8, !tbaa !5
  %820 = load i32, ptr %819, align 4, !tbaa !9
  %821 = sub nsw i32 0, %820
  store i32 %821, ptr %59, align 4, !tbaa !9
  %822 = call i32 @xerbla_(ptr noundef @.str.14, ptr noundef %59, i32 noundef 6)
  store i32 1, ptr %90, align 4
  br label %3061

823:                                              ; preds = %814
  store i32 0, ptr %84, align 4, !tbaa !9
  %824 = load i32, ptr %89, align 4, !tbaa !9
  %825 = load ptr, ptr %30, align 8, !tbaa !5
  %826 = load i32, ptr %825, align 4, !tbaa !9
  %827 = sub nsw i32 %826, 1
  %828 = icmp eq i32 %824, %827
  br i1 %828, label %829, label %836

829:                                              ; preds = %823
  %830 = load i32, ptr %88, align 4, !tbaa !9
  %831 = load ptr, ptr %29, align 8, !tbaa !5
  %832 = load i32, ptr %831, align 4, !tbaa !9
  %833 = sub nsw i32 %832, 1
  %834 = icmp eq i32 %830, %833
  br i1 %834, label %835, label %836

835:                                              ; preds = %829
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %836

836:                                              ; preds = %835, %829, %823
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %837

837:                                              ; preds = %860, %836
  %838 = load i32, ptr %68, align 4, !tbaa !9
  %839 = icmp sle i32 %838, 4
  br i1 %839, label %840, label %863

840:                                              ; preds = %837
  %841 = load ptr, ptr %32, align 8, !tbaa !5
  %842 = load i32, ptr %68, align 4, !tbaa !9
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds i32, ptr %841, i64 %843
  %845 = load i32, ptr %844, align 4, !tbaa !9
  store i32 %845, ptr %59, align 4, !tbaa !9
  %846 = load i32, ptr %59, align 4, !tbaa !9
  %847 = icmp sge i32 %846, 0
  br i1 %847, label %848, label %850

848:                                              ; preds = %840
  %849 = load i32, ptr %59, align 4, !tbaa !9
  br label %853

850:                                              ; preds = %840
  %851 = load i32, ptr %59, align 4, !tbaa !9
  %852 = sub nsw i32 0, %851
  br label %853

853:                                              ; preds = %850, %848
  %854 = phi i32 [ %849, %848 ], [ %852, %850 ]
  %855 = srem i32 %854, 4096
  %856 = load ptr, ptr %32, align 8, !tbaa !5
  %857 = load i32, ptr %68, align 4, !tbaa !9
  %858 = sext i32 %857 to i64
  %859 = getelementptr inbounds i32, ptr %856, i64 %858
  store i32 %855, ptr %859, align 4, !tbaa !9
  br label %860

860:                                              ; preds = %853
  %861 = load i32, ptr %68, align 4, !tbaa !9
  %862 = add nsw i32 %861, 1
  store i32 %862, ptr %68, align 4, !tbaa !9
  br label %837, !llvm.loop !16

863:                                              ; preds = %837
  %864 = load ptr, ptr %32, align 8, !tbaa !5
  %865 = getelementptr inbounds i32, ptr %864, i64 4
  %866 = load i32, ptr %865, align 4, !tbaa !9
  %867 = sdiv i32 %866, 2
  %868 = shl i32 %867, 1
  %869 = add nsw i32 %868, 1
  %870 = load ptr, ptr %32, align 8, !tbaa !5
  %871 = getelementptr inbounds i32, ptr %870, i64 4
  store i32 %869, ptr %871, align 4, !tbaa !9
  %872 = load ptr, ptr %35, align 8, !tbaa !5
  %873 = load ptr, ptr %36, align 8, !tbaa !5
  %874 = load ptr, ptr %32, align 8, !tbaa !5
  %875 = getelementptr inbounds i32, ptr %874, i64 1
  %876 = load ptr, ptr %34, align 8, !tbaa !5
  %877 = getelementptr inbounds double, ptr %876, i64 1
  %878 = load ptr, ptr %56, align 8, !tbaa !5
  call void @dlatm1_(ptr noundef %872, ptr noundef %873, ptr noundef %86, ptr noundef %75, ptr noundef %875, ptr noundef %877, ptr noundef %77, ptr noundef %878)
  %879 = load ptr, ptr %56, align 8, !tbaa !5
  %880 = load i32, ptr %879, align 4, !tbaa !9
  %881 = icmp ne i32 %880, 0
  br i1 %881, label %882, label %884

882:                                              ; preds = %863
  %883 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 1, ptr %883, align 4, !tbaa !9
  store i32 1, ptr %90, align 4
  br label %3061

884:                                              ; preds = %863
  %885 = load ptr, ptr %35, align 8, !tbaa !5
  %886 = load i32, ptr %885, align 4, !tbaa !9
  %887 = icmp ne i32 %886, 0
  br i1 %887, label %888, label %985

888:                                              ; preds = %884
  %889 = load ptr, ptr %35, align 8, !tbaa !5
  %890 = load i32, ptr %889, align 4, !tbaa !9
  %891 = icmp ne i32 %890, -6
  br i1 %891, label %892, label %985

892:                                              ; preds = %888
  %893 = load ptr, ptr %35, align 8, !tbaa !5
  %894 = load i32, ptr %893, align 4, !tbaa !9
  %895 = icmp ne i32 %894, 6
  br i1 %895, label %896, label %985

896:                                              ; preds = %892
  %897 = load ptr, ptr %34, align 8, !tbaa !5
  %898 = getelementptr inbounds double, ptr %897, i64 1
  %899 = load double, ptr %898, align 8, !tbaa !11
  %900 = fcmp oge double %899, 0.000000e+00
  br i1 %900, label %901, label %905

901:                                              ; preds = %896
  %902 = load ptr, ptr %34, align 8, !tbaa !5
  %903 = getelementptr inbounds double, ptr %902, i64 1
  %904 = load double, ptr %903, align 8, !tbaa !11
  br label %910

905:                                              ; preds = %896
  %906 = load ptr, ptr %34, align 8, !tbaa !5
  %907 = getelementptr inbounds double, ptr %906, i64 1
  %908 = load double, ptr %907, align 8, !tbaa !11
  %909 = fneg double %908
  br label %910

910:                                              ; preds = %905, %901
  %911 = phi double [ %904, %901 ], [ %909, %905 ]
  store double %911, ptr %66, align 8, !tbaa !11
  %912 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %912, ptr %59, align 4, !tbaa !9
  store i32 2, ptr %68, align 4, !tbaa !9
  br label %913

913:                                              ; preds = %942, %910
  %914 = load i32, ptr %68, align 4, !tbaa !9
  %915 = load i32, ptr %59, align 4, !tbaa !9
  %916 = icmp sle i32 %914, %915
  br i1 %916, label %917, label %945

917:                                              ; preds = %913
  %918 = load double, ptr %66, align 8, !tbaa !11
  store double %918, ptr %62, align 8, !tbaa !11
  %919 = load ptr, ptr %34, align 8, !tbaa !5
  %920 = load i32, ptr %68, align 4, !tbaa !9
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds double, ptr %919, i64 %921
  %923 = load double, ptr %922, align 8, !tbaa !11
  store double %923, ptr %61, align 8, !tbaa !11
  %924 = load double, ptr %61, align 8, !tbaa !11
  %925 = fcmp oge double %924, 0.000000e+00
  br i1 %925, label %926, label %928

926:                                              ; preds = %917
  %927 = load double, ptr %61, align 8, !tbaa !11
  br label %931

928:                                              ; preds = %917
  %929 = load double, ptr %61, align 8, !tbaa !11
  %930 = fneg double %929
  br label %931

931:                                              ; preds = %928, %926
  %932 = phi double [ %927, %926 ], [ %930, %928 ]
  store double %932, ptr %63, align 8, !tbaa !11
  %933 = load double, ptr %62, align 8, !tbaa !11
  %934 = load double, ptr %63, align 8, !tbaa !11
  %935 = fcmp oge double %933, %934
  br i1 %935, label %936, label %938

936:                                              ; preds = %931
  %937 = load double, ptr %62, align 8, !tbaa !11
  br label %940

938:                                              ; preds = %931
  %939 = load double, ptr %63, align 8, !tbaa !11
  br label %940

940:                                              ; preds = %938, %936
  %941 = phi double [ %937, %936 ], [ %939, %938 ]
  store double %941, ptr %66, align 8, !tbaa !11
  br label %942

942:                                              ; preds = %940
  %943 = load i32, ptr %68, align 4, !tbaa !9
  %944 = add nsw i32 %943, 1
  store i32 %944, ptr %68, align 4, !tbaa !9
  br label %913, !llvm.loop !17

945:                                              ; preds = %913
  %946 = load double, ptr %66, align 8, !tbaa !11
  %947 = fcmp oeq double %946, 0.000000e+00
  br i1 %947, label %948, label %954

948:                                              ; preds = %945
  %949 = load ptr, ptr %37, align 8, !tbaa !5
  %950 = load double, ptr %949, align 8, !tbaa !11
  %951 = fcmp une double %950, 0.000000e+00
  br i1 %951, label %952, label %954

952:                                              ; preds = %948
  %953 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 2, ptr %953, align 4, !tbaa !9
  store i32 1, ptr %90, align 4
  br label %3061

954:                                              ; preds = %948, %945
  %955 = load double, ptr %66, align 8, !tbaa !11
  %956 = fcmp une double %955, 0.000000e+00
  br i1 %956, label %957, label %962

957:                                              ; preds = %954
  %958 = load ptr, ptr %37, align 8, !tbaa !5
  %959 = load double, ptr %958, align 8, !tbaa !11
  %960 = load double, ptr %66, align 8, !tbaa !11
  %961 = fdiv double %959, %960
  store double %961, ptr %71, align 8, !tbaa !11
  br label %963

962:                                              ; preds = %954
  store double 1.000000e+00, ptr %71, align 8, !tbaa !11
  br label %963

963:                                              ; preds = %962, %957
  %964 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %964, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %965

965:                                              ; preds = %981, %963
  %966 = load i32, ptr %68, align 4, !tbaa !9
  %967 = load i32, ptr %59, align 4, !tbaa !9
  %968 = icmp sle i32 %966, %967
  br i1 %968, label %969, label %984

969:                                              ; preds = %965
  %970 = load double, ptr %71, align 8, !tbaa !11
  %971 = load ptr, ptr %34, align 8, !tbaa !5
  %972 = load i32, ptr %68, align 4, !tbaa !9
  %973 = sext i32 %972 to i64
  %974 = getelementptr inbounds double, ptr %971, i64 %973
  %975 = load double, ptr %974, align 8, !tbaa !11
  %976 = fmul double %970, %975
  %977 = load ptr, ptr %34, align 8, !tbaa !5
  %978 = load i32, ptr %68, align 4, !tbaa !9
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds double, ptr %977, i64 %979
  store double %976, ptr %980, align 8, !tbaa !11
  br label %981

981:                                              ; preds = %969
  %982 = load i32, ptr %68, align 4, !tbaa !9
  %983 = add nsw i32 %982, 1
  store i32 %983, ptr %68, align 4, !tbaa !9
  br label %965, !llvm.loop !18

984:                                              ; preds = %965
  br label %985

985:                                              ; preds = %984, %892, %888, %884
  %986 = load i32, ptr %83, align 4, !tbaa !9
  %987 = icmp eq i32 %986, 1
  br i1 %987, label %997, label %988

988:                                              ; preds = %985
  %989 = load i32, ptr %83, align 4, !tbaa !9
  %990 = icmp eq i32 %989, 3
  br i1 %990, label %997, label %991

991:                                              ; preds = %988
  %992 = load i32, ptr %83, align 4, !tbaa !9
  %993 = icmp eq i32 %992, 4
  br i1 %993, label %997, label %994

994:                                              ; preds = %991
  %995 = load i32, ptr %83, align 4, !tbaa !9
  %996 = icmp eq i32 %995, 5
  br i1 %996, label %997, label %1012

997:                                              ; preds = %994, %991, %988, %985
  %998 = load ptr, ptr %41, align 8, !tbaa !5
  %999 = load ptr, ptr %42, align 8, !tbaa !5
  %1000 = load ptr, ptr %32, align 8, !tbaa !5
  %1001 = getelementptr inbounds i32, ptr %1000, i64 1
  %1002 = load ptr, ptr %40, align 8, !tbaa !5
  %1003 = getelementptr inbounds double, ptr %1002, i64 1
  %1004 = load ptr, ptr %29, align 8, !tbaa !5
  %1005 = load ptr, ptr %56, align 8, !tbaa !5
  call void @dlatm1_(ptr noundef %998, ptr noundef %999, ptr noundef @c__0, ptr noundef %75, ptr noundef %1001, ptr noundef %1003, ptr noundef %1004, ptr noundef %1005)
  %1006 = load ptr, ptr %56, align 8, !tbaa !5
  %1007 = load i32, ptr %1006, align 4, !tbaa !9
  %1008 = icmp ne i32 %1007, 0
  br i1 %1008, label %1009, label %1011

1009:                                             ; preds = %997
  %1010 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 3, ptr %1010, align 4, !tbaa !9
  store i32 1, ptr %90, align 4
  br label %3061

1011:                                             ; preds = %997
  br label %1012

1012:                                             ; preds = %1011, %994
  %1013 = load i32, ptr %83, align 4, !tbaa !9
  %1014 = icmp eq i32 %1013, 2
  br i1 %1014, label %1018, label %1015

1015:                                             ; preds = %1012
  %1016 = load i32, ptr %83, align 4, !tbaa !9
  %1017 = icmp eq i32 %1016, 3
  br i1 %1017, label %1018, label %1033

1018:                                             ; preds = %1015, %1012
  %1019 = load ptr, ptr %44, align 8, !tbaa !5
  %1020 = load ptr, ptr %45, align 8, !tbaa !5
  %1021 = load ptr, ptr %32, align 8, !tbaa !5
  %1022 = getelementptr inbounds i32, ptr %1021, i64 1
  %1023 = load ptr, ptr %43, align 8, !tbaa !5
  %1024 = getelementptr inbounds double, ptr %1023, i64 1
  %1025 = load ptr, ptr %30, align 8, !tbaa !5
  %1026 = load ptr, ptr %56, align 8, !tbaa !5
  call void @dlatm1_(ptr noundef %1019, ptr noundef %1020, ptr noundef @c__0, ptr noundef %75, ptr noundef %1022, ptr noundef %1024, ptr noundef %1025, ptr noundef %1026)
  %1027 = load ptr, ptr %56, align 8, !tbaa !5
  %1028 = load i32, ptr %1027, align 4, !tbaa !9
  %1029 = icmp ne i32 %1028, 0
  br i1 %1029, label %1030, label %1032

1030:                                             ; preds = %1018
  %1031 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 4, ptr %1031, align 4, !tbaa !9
  store i32 1, ptr %90, align 4
  br label %3061

1032:                                             ; preds = %1018
  br label %1033

1033:                                             ; preds = %1032, %1015
  %1034 = load i32, ptr %87, align 4, !tbaa !9
  %1035 = icmp sgt i32 %1034, 0
  br i1 %1035, label %1036, label %1124

1036:                                             ; preds = %1033
  %1037 = load i32, ptr %82, align 4, !tbaa !9
  store i32 %1037, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1038

1038:                                             ; preds = %1048, %1036
  %1039 = load i32, ptr %68, align 4, !tbaa !9
  %1040 = load i32, ptr %59, align 4, !tbaa !9
  %1041 = icmp sle i32 %1039, %1040
  br i1 %1041, label %1042, label %1051

1042:                                             ; preds = %1038
  %1043 = load i32, ptr %68, align 4, !tbaa !9
  %1044 = load ptr, ptr %55, align 8, !tbaa !5
  %1045 = load i32, ptr %68, align 4, !tbaa !9
  %1046 = sext i32 %1045 to i64
  %1047 = getelementptr inbounds i32, ptr %1044, i64 %1046
  store i32 %1043, ptr %1047, align 4, !tbaa !9
  br label %1048

1048:                                             ; preds = %1042
  %1049 = load i32, ptr %68, align 4, !tbaa !9
  %1050 = add nsw i32 %1049, 1
  store i32 %1050, ptr %68, align 4, !tbaa !9
  br label %1038, !llvm.loop !19

1051:                                             ; preds = %1038
  %1052 = load i32, ptr %84, align 4, !tbaa !9
  %1053 = icmp ne i32 %1052, 0
  br i1 %1053, label %1054, label %1089

1054:                                             ; preds = %1051
  %1055 = load i32, ptr %82, align 4, !tbaa !9
  store i32 %1055, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1056

1056:                                             ; preds = %1085, %1054
  %1057 = load i32, ptr %68, align 4, !tbaa !9
  %1058 = load i32, ptr %59, align 4, !tbaa !9
  %1059 = icmp sle i32 %1057, %1058
  br i1 %1059, label %1060, label %1088

1060:                                             ; preds = %1056
  %1061 = load ptr, ptr %47, align 8, !tbaa !5
  %1062 = load i32, ptr %68, align 4, !tbaa !9
  %1063 = sext i32 %1062 to i64
  %1064 = getelementptr inbounds i32, ptr %1061, i64 %1063
  %1065 = load i32, ptr %1064, align 4, !tbaa !9
  store i32 %1065, ptr %70, align 4, !tbaa !9
  %1066 = load ptr, ptr %55, align 8, !tbaa !5
  %1067 = load i32, ptr %68, align 4, !tbaa !9
  %1068 = sext i32 %1067 to i64
  %1069 = getelementptr inbounds i32, ptr %1066, i64 %1068
  %1070 = load i32, ptr %1069, align 4, !tbaa !9
  store i32 %1070, ptr %69, align 4, !tbaa !9
  %1071 = load ptr, ptr %55, align 8, !tbaa !5
  %1072 = load i32, ptr %70, align 4, !tbaa !9
  %1073 = sext i32 %1072 to i64
  %1074 = getelementptr inbounds i32, ptr %1071, i64 %1073
  %1075 = load i32, ptr %1074, align 4, !tbaa !9
  %1076 = load ptr, ptr %55, align 8, !tbaa !5
  %1077 = load i32, ptr %68, align 4, !tbaa !9
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds i32, ptr %1076, i64 %1078
  store i32 %1075, ptr %1079, align 4, !tbaa !9
  %1080 = load i32, ptr %69, align 4, !tbaa !9
  %1081 = load ptr, ptr %55, align 8, !tbaa !5
  %1082 = load i32, ptr %70, align 4, !tbaa !9
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds i32, ptr %1081, i64 %1083
  store i32 %1080, ptr %1084, align 4, !tbaa !9
  br label %1085

1085:                                             ; preds = %1060
  %1086 = load i32, ptr %68, align 4, !tbaa !9
  %1087 = add nsw i32 %1086, 1
  store i32 %1087, ptr %68, align 4, !tbaa !9
  br label %1056, !llvm.loop !20

1088:                                             ; preds = %1056
  br label %1123

1089:                                             ; preds = %1051
  %1090 = load i32, ptr %82, align 4, !tbaa !9
  store i32 %1090, ptr %68, align 4, !tbaa !9
  br label %1091

1091:                                             ; preds = %1119, %1089
  %1092 = load i32, ptr %68, align 4, !tbaa !9
  %1093 = icmp sge i32 %1092, 1
  br i1 %1093, label %1094, label %1122

1094:                                             ; preds = %1091
  %1095 = load ptr, ptr %47, align 8, !tbaa !5
  %1096 = load i32, ptr %68, align 4, !tbaa !9
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds i32, ptr %1095, i64 %1097
  %1099 = load i32, ptr %1098, align 4, !tbaa !9
  store i32 %1099, ptr %70, align 4, !tbaa !9
  %1100 = load ptr, ptr %55, align 8, !tbaa !5
  %1101 = load i32, ptr %68, align 4, !tbaa !9
  %1102 = sext i32 %1101 to i64
  %1103 = getelementptr inbounds i32, ptr %1100, i64 %1102
  %1104 = load i32, ptr %1103, align 4, !tbaa !9
  store i32 %1104, ptr %69, align 4, !tbaa !9
  %1105 = load ptr, ptr %55, align 8, !tbaa !5
  %1106 = load i32, ptr %70, align 4, !tbaa !9
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds i32, ptr %1105, i64 %1107
  %1109 = load i32, ptr %1108, align 4, !tbaa !9
  %1110 = load ptr, ptr %55, align 8, !tbaa !5
  %1111 = load i32, ptr %68, align 4, !tbaa !9
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds i32, ptr %1110, i64 %1112
  store i32 %1109, ptr %1113, align 4, !tbaa !9
  %1114 = load i32, ptr %69, align 4, !tbaa !9
  %1115 = load ptr, ptr %55, align 8, !tbaa !5
  %1116 = load i32, ptr %70, align 4, !tbaa !9
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds i32, ptr %1115, i64 %1117
  store i32 %1114, ptr %1118, align 4, !tbaa !9
  br label %1119

1119:                                             ; preds = %1094
  %1120 = load i32, ptr %68, align 4, !tbaa !9
  %1121 = add nsw i32 %1120, -1
  store i32 %1121, ptr %68, align 4, !tbaa !9
  br label %1091, !llvm.loop !21

1122:                                             ; preds = %1091
  br label %1123

1123:                                             ; preds = %1122, %1088
  br label %1124

1124:                                             ; preds = %1123, %1033
  %1125 = load i32, ptr %84, align 4, !tbaa !9
  %1126 = icmp ne i32 %1125, 0
  br i1 %1126, label %1127, label %1964

1127:                                             ; preds = %1124
  %1128 = load i32, ptr %72, align 4, !tbaa !9
  %1129 = icmp eq i32 %1128, 0
  br i1 %1129, label %1130, label %1242

1130:                                             ; preds = %1127
  %1131 = load i32, ptr %67, align 4, !tbaa !9
  %1132 = icmp eq i32 %1131, 0
  br i1 %1132, label %1133, label %1189

1133:                                             ; preds = %1130
  %1134 = load ptr, ptr %30, align 8, !tbaa !5
  %1135 = load i32, ptr %1134, align 4, !tbaa !9
  store i32 %1135, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1136

1136:                                             ; preds = %1185, %1133
  %1137 = load i32, ptr %69, align 4, !tbaa !9
  %1138 = load i32, ptr %59, align 4, !tbaa !9
  %1139 = icmp sle i32 %1137, %1138
  br i1 %1139, label %1140, label %1188

1140:                                             ; preds = %1136
  %1141 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1141, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1142

1142:                                             ; preds = %1181, %1140
  %1143 = load i32, ptr %68, align 4, !tbaa !9
  %1144 = load i32, ptr %60, align 4, !tbaa !9
  %1145 = icmp sle i32 %1143, %1144
  br i1 %1145, label %1146, label %1184

1146:                                             ; preds = %1142
  %1147 = load ptr, ptr %29, align 8, !tbaa !5
  %1148 = load ptr, ptr %30, align 8, !tbaa !5
  %1149 = load ptr, ptr %48, align 8, !tbaa !5
  %1150 = load ptr, ptr %49, align 8, !tbaa !5
  %1151 = load ptr, ptr %32, align 8, !tbaa !5
  %1152 = getelementptr inbounds i32, ptr %1151, i64 1
  %1153 = load ptr, ptr %34, align 8, !tbaa !5
  %1154 = getelementptr inbounds double, ptr %1153, i64 1
  %1155 = load ptr, ptr %40, align 8, !tbaa !5
  %1156 = getelementptr inbounds double, ptr %1155, i64 1
  %1157 = load ptr, ptr %43, align 8, !tbaa !5
  %1158 = getelementptr inbounds double, ptr %1157, i64 1
  %1159 = load ptr, ptr %55, align 8, !tbaa !5
  %1160 = getelementptr inbounds i32, ptr %1159, i64 1
  %1161 = load ptr, ptr %50, align 8, !tbaa !5
  %1162 = call double @dlatm3_(ptr noundef %1147, ptr noundef %1148, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1149, ptr noundef %1150, ptr noundef %75, ptr noundef %1152, ptr noundef %1154, ptr noundef %83, ptr noundef %1156, ptr noundef %1158, ptr noundef %87, ptr noundef %1160, ptr noundef %1161)
  store double %1162, ptr %66, align 8, !tbaa !11
  %1163 = load double, ptr %66, align 8, !tbaa !11
  %1164 = load ptr, ptr %53, align 8, !tbaa !5
  %1165 = load i32, ptr %64, align 4, !tbaa !9
  %1166 = load i32, ptr %65, align 4, !tbaa !9
  %1167 = load i32, ptr %57, align 4, !tbaa !9
  %1168 = mul nsw i32 %1166, %1167
  %1169 = add nsw i32 %1165, %1168
  %1170 = sext i32 %1169 to i64
  %1171 = getelementptr inbounds double, ptr %1164, i64 %1170
  store double %1163, ptr %1171, align 8, !tbaa !11
  %1172 = load double, ptr %66, align 8, !tbaa !11
  %1173 = load ptr, ptr %53, align 8, !tbaa !5
  %1174 = load i32, ptr %65, align 4, !tbaa !9
  %1175 = load i32, ptr %64, align 4, !tbaa !9
  %1176 = load i32, ptr %57, align 4, !tbaa !9
  %1177 = mul nsw i32 %1175, %1176
  %1178 = add nsw i32 %1174, %1177
  %1179 = sext i32 %1178 to i64
  %1180 = getelementptr inbounds double, ptr %1173, i64 %1179
  store double %1172, ptr %1180, align 8, !tbaa !11
  br label %1181

1181:                                             ; preds = %1146
  %1182 = load i32, ptr %68, align 4, !tbaa !9
  %1183 = add nsw i32 %1182, 1
  store i32 %1183, ptr %68, align 4, !tbaa !9
  br label %1142, !llvm.loop !22

1184:                                             ; preds = %1142
  br label %1185

1185:                                             ; preds = %1184
  %1186 = load i32, ptr %69, align 4, !tbaa !9
  %1187 = add nsw i32 %1186, 1
  store i32 %1187, ptr %69, align 4, !tbaa !9
  br label %1136, !llvm.loop !23

1188:                                             ; preds = %1136
  br label %1241

1189:                                             ; preds = %1130
  %1190 = load i32, ptr %67, align 4, !tbaa !9
  %1191 = icmp eq i32 %1190, 1
  br i1 %1191, label %1192, label %1240

1192:                                             ; preds = %1189
  %1193 = load ptr, ptr %30, align 8, !tbaa !5
  %1194 = load i32, ptr %1193, align 4, !tbaa !9
  store i32 %1194, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1195

1195:                                             ; preds = %1236, %1192
  %1196 = load i32, ptr %69, align 4, !tbaa !9
  %1197 = load i32, ptr %59, align 4, !tbaa !9
  %1198 = icmp sle i32 %1196, %1197
  br i1 %1198, label %1199, label %1239

1199:                                             ; preds = %1195
  %1200 = load ptr, ptr %29, align 8, !tbaa !5
  %1201 = load i32, ptr %1200, align 4, !tbaa !9
  store i32 %1201, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1202

1202:                                             ; preds = %1232, %1199
  %1203 = load i32, ptr %68, align 4, !tbaa !9
  %1204 = load i32, ptr %60, align 4, !tbaa !9
  %1205 = icmp sle i32 %1203, %1204
  br i1 %1205, label %1206, label %1235

1206:                                             ; preds = %1202
  %1207 = load ptr, ptr %29, align 8, !tbaa !5
  %1208 = load ptr, ptr %30, align 8, !tbaa !5
  %1209 = load ptr, ptr %48, align 8, !tbaa !5
  %1210 = load ptr, ptr %49, align 8, !tbaa !5
  %1211 = load ptr, ptr %32, align 8, !tbaa !5
  %1212 = getelementptr inbounds i32, ptr %1211, i64 1
  %1213 = load ptr, ptr %34, align 8, !tbaa !5
  %1214 = getelementptr inbounds double, ptr %1213, i64 1
  %1215 = load ptr, ptr %40, align 8, !tbaa !5
  %1216 = getelementptr inbounds double, ptr %1215, i64 1
  %1217 = load ptr, ptr %43, align 8, !tbaa !5
  %1218 = getelementptr inbounds double, ptr %1217, i64 1
  %1219 = load ptr, ptr %55, align 8, !tbaa !5
  %1220 = getelementptr inbounds i32, ptr %1219, i64 1
  %1221 = load ptr, ptr %50, align 8, !tbaa !5
  %1222 = call double @dlatm3_(ptr noundef %1207, ptr noundef %1208, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1209, ptr noundef %1210, ptr noundef %75, ptr noundef %1212, ptr noundef %1214, ptr noundef %83, ptr noundef %1216, ptr noundef %1218, ptr noundef %87, ptr noundef %1220, ptr noundef %1221)
  store double %1222, ptr %66, align 8, !tbaa !11
  %1223 = load double, ptr %66, align 8, !tbaa !11
  %1224 = load ptr, ptr %53, align 8, !tbaa !5
  %1225 = load i32, ptr %64, align 4, !tbaa !9
  %1226 = load i32, ptr %65, align 4, !tbaa !9
  %1227 = load i32, ptr %57, align 4, !tbaa !9
  %1228 = mul nsw i32 %1226, %1227
  %1229 = add nsw i32 %1225, %1228
  %1230 = sext i32 %1229 to i64
  %1231 = getelementptr inbounds double, ptr %1224, i64 %1230
  store double %1223, ptr %1231, align 8, !tbaa !11
  br label %1232

1232:                                             ; preds = %1206
  %1233 = load i32, ptr %68, align 4, !tbaa !9
  %1234 = add nsw i32 %1233, 1
  store i32 %1234, ptr %68, align 4, !tbaa !9
  br label %1202, !llvm.loop !24

1235:                                             ; preds = %1202
  br label %1236

1236:                                             ; preds = %1235
  %1237 = load i32, ptr %69, align 4, !tbaa !9
  %1238 = add nsw i32 %1237, 1
  store i32 %1238, ptr %69, align 4, !tbaa !9
  br label %1195, !llvm.loop !25

1239:                                             ; preds = %1195
  br label %1240

1240:                                             ; preds = %1239, %1189
  br label %1241

1241:                                             ; preds = %1240, %1188
  br label %1963

1242:                                             ; preds = %1127
  %1243 = load i32, ptr %72, align 4, !tbaa !9
  %1244 = icmp eq i32 %1243, 1
  br i1 %1244, label %1245, label %1323

1245:                                             ; preds = %1242
  %1246 = load ptr, ptr %30, align 8, !tbaa !5
  %1247 = load i32, ptr %1246, align 4, !tbaa !9
  store i32 %1247, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1248

1248:                                             ; preds = %1319, %1245
  %1249 = load i32, ptr %69, align 4, !tbaa !9
  %1250 = load i32, ptr %59, align 4, !tbaa !9
  %1251 = icmp sle i32 %1249, %1250
  br i1 %1251, label %1252, label %1322

1252:                                             ; preds = %1248
  %1253 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1253, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1254

1254:                                             ; preds = %1315, %1252
  %1255 = load i32, ptr %68, align 4, !tbaa !9
  %1256 = load i32, ptr %60, align 4, !tbaa !9
  %1257 = icmp sle i32 %1255, %1256
  br i1 %1257, label %1258, label %1318

1258:                                             ; preds = %1254
  %1259 = load ptr, ptr %29, align 8, !tbaa !5
  %1260 = load ptr, ptr %30, align 8, !tbaa !5
  %1261 = load ptr, ptr %48, align 8, !tbaa !5
  %1262 = load ptr, ptr %49, align 8, !tbaa !5
  %1263 = load ptr, ptr %32, align 8, !tbaa !5
  %1264 = getelementptr inbounds i32, ptr %1263, i64 1
  %1265 = load ptr, ptr %34, align 8, !tbaa !5
  %1266 = getelementptr inbounds double, ptr %1265, i64 1
  %1267 = load ptr, ptr %40, align 8, !tbaa !5
  %1268 = getelementptr inbounds double, ptr %1267, i64 1
  %1269 = load ptr, ptr %43, align 8, !tbaa !5
  %1270 = getelementptr inbounds double, ptr %1269, i64 1
  %1271 = load ptr, ptr %55, align 8, !tbaa !5
  %1272 = getelementptr inbounds i32, ptr %1271, i64 1
  %1273 = load ptr, ptr %50, align 8, !tbaa !5
  %1274 = call double @dlatm3_(ptr noundef %1259, ptr noundef %1260, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1261, ptr noundef %1262, ptr noundef %75, ptr noundef %1264, ptr noundef %1266, ptr noundef %83, ptr noundef %1268, ptr noundef %1270, ptr noundef %87, ptr noundef %1272, ptr noundef %1273)
  store double %1274, ptr %66, align 8, !tbaa !11
  %1275 = load i32, ptr %64, align 4, !tbaa !9
  %1276 = load i32, ptr %65, align 4, !tbaa !9
  %1277 = icmp sle i32 %1275, %1276
  br i1 %1277, label %1278, label %1280

1278:                                             ; preds = %1258
  %1279 = load i32, ptr %64, align 4, !tbaa !9
  br label %1282

1280:                                             ; preds = %1258
  %1281 = load i32, ptr %65, align 4, !tbaa !9
  br label %1282

1282:                                             ; preds = %1280, %1278
  %1283 = phi i32 [ %1279, %1278 ], [ %1281, %1280 ]
  store i32 %1283, ptr %79, align 4, !tbaa !9
  %1284 = load i32, ptr %64, align 4, !tbaa !9
  %1285 = load i32, ptr %65, align 4, !tbaa !9
  %1286 = icmp sge i32 %1284, %1285
  br i1 %1286, label %1287, label %1289

1287:                                             ; preds = %1282
  %1288 = load i32, ptr %64, align 4, !tbaa !9
  br label %1291

1289:                                             ; preds = %1282
  %1290 = load i32, ptr %65, align 4, !tbaa !9
  br label %1291

1291:                                             ; preds = %1289, %1287
  %1292 = phi i32 [ %1288, %1287 ], [ %1290, %1289 ]
  store i32 %1292, ptr %81, align 4, !tbaa !9
  %1293 = load double, ptr %66, align 8, !tbaa !11
  %1294 = load ptr, ptr %53, align 8, !tbaa !5
  %1295 = load i32, ptr %79, align 4, !tbaa !9
  %1296 = load i32, ptr %81, align 4, !tbaa !9
  %1297 = load i32, ptr %57, align 4, !tbaa !9
  %1298 = mul nsw i32 %1296, %1297
  %1299 = add nsw i32 %1295, %1298
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds double, ptr %1294, i64 %1300
  store double %1293, ptr %1301, align 8, !tbaa !11
  %1302 = load i32, ptr %79, align 4, !tbaa !9
  %1303 = load i32, ptr %81, align 4, !tbaa !9
  %1304 = icmp ne i32 %1302, %1303
  br i1 %1304, label %1305, label %1314

1305:                                             ; preds = %1291
  %1306 = load ptr, ptr %53, align 8, !tbaa !5
  %1307 = load i32, ptr %81, align 4, !tbaa !9
  %1308 = load i32, ptr %79, align 4, !tbaa !9
  %1309 = load i32, ptr %57, align 4, !tbaa !9
  %1310 = mul nsw i32 %1308, %1309
  %1311 = add nsw i32 %1307, %1310
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds double, ptr %1306, i64 %1312
  store double 0.000000e+00, ptr %1313, align 8, !tbaa !11
  br label %1314

1314:                                             ; preds = %1305, %1291
  br label %1315

1315:                                             ; preds = %1314
  %1316 = load i32, ptr %68, align 4, !tbaa !9
  %1317 = add nsw i32 %1316, 1
  store i32 %1317, ptr %68, align 4, !tbaa !9
  br label %1254, !llvm.loop !26

1318:                                             ; preds = %1254
  br label %1319

1319:                                             ; preds = %1318
  %1320 = load i32, ptr %69, align 4, !tbaa !9
  %1321 = add nsw i32 %1320, 1
  store i32 %1321, ptr %69, align 4, !tbaa !9
  br label %1248, !llvm.loop !27

1322:                                             ; preds = %1248
  br label %1962

1323:                                             ; preds = %1242
  %1324 = load i32, ptr %72, align 4, !tbaa !9
  %1325 = icmp eq i32 %1324, 2
  br i1 %1325, label %1326, label %1404

1326:                                             ; preds = %1323
  %1327 = load ptr, ptr %30, align 8, !tbaa !5
  %1328 = load i32, ptr %1327, align 4, !tbaa !9
  store i32 %1328, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1329

1329:                                             ; preds = %1400, %1326
  %1330 = load i32, ptr %69, align 4, !tbaa !9
  %1331 = load i32, ptr %59, align 4, !tbaa !9
  %1332 = icmp sle i32 %1330, %1331
  br i1 %1332, label %1333, label %1403

1333:                                             ; preds = %1329
  %1334 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1334, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1335

1335:                                             ; preds = %1396, %1333
  %1336 = load i32, ptr %68, align 4, !tbaa !9
  %1337 = load i32, ptr %60, align 4, !tbaa !9
  %1338 = icmp sle i32 %1336, %1337
  br i1 %1338, label %1339, label %1399

1339:                                             ; preds = %1335
  %1340 = load ptr, ptr %29, align 8, !tbaa !5
  %1341 = load ptr, ptr %30, align 8, !tbaa !5
  %1342 = load ptr, ptr %48, align 8, !tbaa !5
  %1343 = load ptr, ptr %49, align 8, !tbaa !5
  %1344 = load ptr, ptr %32, align 8, !tbaa !5
  %1345 = getelementptr inbounds i32, ptr %1344, i64 1
  %1346 = load ptr, ptr %34, align 8, !tbaa !5
  %1347 = getelementptr inbounds double, ptr %1346, i64 1
  %1348 = load ptr, ptr %40, align 8, !tbaa !5
  %1349 = getelementptr inbounds double, ptr %1348, i64 1
  %1350 = load ptr, ptr %43, align 8, !tbaa !5
  %1351 = getelementptr inbounds double, ptr %1350, i64 1
  %1352 = load ptr, ptr %55, align 8, !tbaa !5
  %1353 = getelementptr inbounds i32, ptr %1352, i64 1
  %1354 = load ptr, ptr %50, align 8, !tbaa !5
  %1355 = call double @dlatm3_(ptr noundef %1340, ptr noundef %1341, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1342, ptr noundef %1343, ptr noundef %75, ptr noundef %1345, ptr noundef %1347, ptr noundef %83, ptr noundef %1349, ptr noundef %1351, ptr noundef %87, ptr noundef %1353, ptr noundef %1354)
  store double %1355, ptr %66, align 8, !tbaa !11
  %1356 = load i32, ptr %64, align 4, !tbaa !9
  %1357 = load i32, ptr %65, align 4, !tbaa !9
  %1358 = icmp sle i32 %1356, %1357
  br i1 %1358, label %1359, label %1361

1359:                                             ; preds = %1339
  %1360 = load i32, ptr %64, align 4, !tbaa !9
  br label %1363

1361:                                             ; preds = %1339
  %1362 = load i32, ptr %65, align 4, !tbaa !9
  br label %1363

1363:                                             ; preds = %1361, %1359
  %1364 = phi i32 [ %1360, %1359 ], [ %1362, %1361 ]
  store i32 %1364, ptr %79, align 4, !tbaa !9
  %1365 = load i32, ptr %64, align 4, !tbaa !9
  %1366 = load i32, ptr %65, align 4, !tbaa !9
  %1367 = icmp sge i32 %1365, %1366
  br i1 %1367, label %1368, label %1370

1368:                                             ; preds = %1363
  %1369 = load i32, ptr %64, align 4, !tbaa !9
  br label %1372

1370:                                             ; preds = %1363
  %1371 = load i32, ptr %65, align 4, !tbaa !9
  br label %1372

1372:                                             ; preds = %1370, %1368
  %1373 = phi i32 [ %1369, %1368 ], [ %1371, %1370 ]
  store i32 %1373, ptr %81, align 4, !tbaa !9
  %1374 = load double, ptr %66, align 8, !tbaa !11
  %1375 = load ptr, ptr %53, align 8, !tbaa !5
  %1376 = load i32, ptr %81, align 4, !tbaa !9
  %1377 = load i32, ptr %79, align 4, !tbaa !9
  %1378 = load i32, ptr %57, 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
  store double %1374, ptr %1382, align 8, !tbaa !11
  %1383 = load i32, ptr %79, align 4, !tbaa !9
  %1384 = load i32, ptr %81, align 4, !tbaa !9
  %1385 = icmp ne i32 %1383, %1384
  br i1 %1385, label %1386, label %1395

1386:                                             ; preds = %1372
  %1387 = load ptr, ptr %53, align 8, !tbaa !5
  %1388 = load i32, ptr %79, align 4, !tbaa !9
  %1389 = load i32, ptr %81, align 4, !tbaa !9
  %1390 = load i32, ptr %57, align 4, !tbaa !9
  %1391 = mul nsw i32 %1389, %1390
  %1392 = add nsw i32 %1388, %1391
  %1393 = sext i32 %1392 to i64
  %1394 = getelementptr inbounds double, ptr %1387, i64 %1393
  store double 0.000000e+00, ptr %1394, align 8, !tbaa !11
  br label %1395

1395:                                             ; preds = %1386, %1372
  br label %1396

1396:                                             ; preds = %1395
  %1397 = load i32, ptr %68, align 4, !tbaa !9
  %1398 = add nsw i32 %1397, 1
  store i32 %1398, ptr %68, align 4, !tbaa !9
  br label %1335, !llvm.loop !28

1399:                                             ; preds = %1335
  br label %1400

1400:                                             ; preds = %1399
  %1401 = load i32, ptr %69, align 4, !tbaa !9
  %1402 = add nsw i32 %1401, 1
  store i32 %1402, ptr %69, align 4, !tbaa !9
  br label %1329, !llvm.loop !29

1403:                                             ; preds = %1329
  br label %1961

1404:                                             ; preds = %1323
  %1405 = load i32, ptr %72, align 4, !tbaa !9
  %1406 = icmp eq i32 %1405, 3
  br i1 %1406, label %1407, label %1492

1407:                                             ; preds = %1404
  %1408 = load ptr, ptr %30, align 8, !tbaa !5
  %1409 = load i32, ptr %1408, align 4, !tbaa !9
  store i32 %1409, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1410

1410:                                             ; preds = %1488, %1407
  %1411 = load i32, ptr %69, align 4, !tbaa !9
  %1412 = load i32, ptr %59, align 4, !tbaa !9
  %1413 = icmp sle i32 %1411, %1412
  br i1 %1413, label %1414, label %1491

1414:                                             ; preds = %1410
  %1415 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1415, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1416

1416:                                             ; preds = %1484, %1414
  %1417 = load i32, ptr %68, align 4, !tbaa !9
  %1418 = load i32, ptr %60, align 4, !tbaa !9
  %1419 = icmp sle i32 %1417, %1418
  br i1 %1419, label %1420, label %1487

1420:                                             ; preds = %1416
  %1421 = load ptr, ptr %29, align 8, !tbaa !5
  %1422 = load ptr, ptr %30, align 8, !tbaa !5
  %1423 = load ptr, ptr %48, align 8, !tbaa !5
  %1424 = load ptr, ptr %49, align 8, !tbaa !5
  %1425 = load ptr, ptr %32, align 8, !tbaa !5
  %1426 = getelementptr inbounds i32, ptr %1425, i64 1
  %1427 = load ptr, ptr %34, align 8, !tbaa !5
  %1428 = getelementptr inbounds double, ptr %1427, i64 1
  %1429 = load ptr, ptr %40, align 8, !tbaa !5
  %1430 = getelementptr inbounds double, ptr %1429, i64 1
  %1431 = load ptr, ptr %43, align 8, !tbaa !5
  %1432 = getelementptr inbounds double, ptr %1431, i64 1
  %1433 = load ptr, ptr %55, align 8, !tbaa !5
  %1434 = getelementptr inbounds i32, ptr %1433, i64 1
  %1435 = load ptr, ptr %50, align 8, !tbaa !5
  %1436 = call double @dlatm3_(ptr noundef %1421, ptr noundef %1422, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1423, ptr noundef %1424, ptr noundef %75, ptr noundef %1426, ptr noundef %1428, ptr noundef %83, ptr noundef %1430, ptr noundef %1432, ptr noundef %87, ptr noundef %1434, ptr noundef %1435)
  store double %1436, ptr %66, align 8, !tbaa !11
  %1437 = load i32, ptr %64, align 4, !tbaa !9
  %1438 = load i32, ptr %65, align 4, !tbaa !9
  %1439 = icmp sle i32 %1437, %1438
  br i1 %1439, label %1440, label %1442

1440:                                             ; preds = %1420
  %1441 = load i32, ptr %64, align 4, !tbaa !9
  br label %1444

1442:                                             ; preds = %1420
  %1443 = load i32, ptr %65, align 4, !tbaa !9
  br label %1444

1444:                                             ; preds = %1442, %1440
  %1445 = phi i32 [ %1441, %1440 ], [ %1443, %1442 ]
  store i32 %1445, ptr %79, align 4, !tbaa !9
  %1446 = load i32, ptr %64, align 4, !tbaa !9
  %1447 = load i32, ptr %65, align 4, !tbaa !9
  %1448 = icmp sge i32 %1446, %1447
  br i1 %1448, label %1449, label %1451

1449:                                             ; preds = %1444
  %1450 = load i32, ptr %64, align 4, !tbaa !9
  br label %1453

1451:                                             ; preds = %1444
  %1452 = load i32, ptr %65, align 4, !tbaa !9
  br label %1453

1453:                                             ; preds = %1451, %1449
  %1454 = phi i32 [ %1450, %1449 ], [ %1452, %1451 ]
  store i32 %1454, ptr %81, align 4, !tbaa !9
  %1455 = load i32, ptr %81, align 4, !tbaa !9
  %1456 = load i32, ptr %81, align 4, !tbaa !9
  %1457 = sub nsw i32 %1456, 1
  %1458 = mul nsw i32 %1455, %1457
  %1459 = sdiv i32 %1458, 2
  %1460 = load i32, ptr %79, align 4, !tbaa !9
  %1461 = add nsw i32 %1459, %1460
  store i32 %1461, ptr %70, align 4, !tbaa !9
  %1462 = load i32, ptr %70, align 4, !tbaa !9
  %1463 = sub nsw i32 %1462, 1
  %1464 = load ptr, ptr %54, align 8, !tbaa !5
  %1465 = load i32, ptr %1464, align 4, !tbaa !9
  %1466 = sdiv i32 %1463, %1465
  %1467 = add nsw i32 %1466, 1
  store i32 %1467, ptr %76, align 4, !tbaa !9
  %1468 = load i32, ptr %70, align 4, !tbaa !9
  %1469 = load ptr, ptr %54, align 8, !tbaa !5
  %1470 = load i32, ptr %1469, align 4, !tbaa !9
  %1471 = load i32, ptr %76, align 4, !tbaa !9
  %1472 = sub nsw i32 %1471, 1
  %1473 = mul nsw i32 %1470, %1472
  %1474 = sub nsw i32 %1468, %1473
  store i32 %1474, ptr %74, align 4, !tbaa !9
  %1475 = load double, ptr %66, align 8, !tbaa !11
  %1476 = load ptr, ptr %53, align 8, !tbaa !5
  %1477 = load i32, ptr %74, align 4, !tbaa !9
  %1478 = load i32, ptr %76, align 4, !tbaa !9
  %1479 = load i32, ptr %57, align 4, !tbaa !9
  %1480 = mul nsw i32 %1478, %1479
  %1481 = add nsw i32 %1477, %1480
  %1482 = sext i32 %1481 to i64
  %1483 = getelementptr inbounds double, ptr %1476, i64 %1482
  store double %1475, ptr %1483, align 8, !tbaa !11
  br label %1484

1484:                                             ; preds = %1453
  %1485 = load i32, ptr %68, align 4, !tbaa !9
  %1486 = add nsw i32 %1485, 1
  store i32 %1486, ptr %68, align 4, !tbaa !9
  br label %1416, !llvm.loop !30

1487:                                             ; preds = %1416
  br label %1488

1488:                                             ; preds = %1487
  %1489 = load i32, ptr %69, align 4, !tbaa !9
  %1490 = add nsw i32 %1489, 1
  store i32 %1490, ptr %69, align 4, !tbaa !9
  br label %1410, !llvm.loop !31

1491:                                             ; preds = %1410
  br label %1960

1492:                                             ; preds = %1404
  %1493 = load i32, ptr %72, align 4, !tbaa !9
  %1494 = icmp eq i32 %1493, 4
  br i1 %1494, label %1495, label %1604

1495:                                             ; preds = %1492
  %1496 = load ptr, ptr %30, align 8, !tbaa !5
  %1497 = load i32, ptr %1496, align 4, !tbaa !9
  store i32 %1497, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1498

1498:                                             ; preds = %1600, %1495
  %1499 = load i32, ptr %69, align 4, !tbaa !9
  %1500 = load i32, ptr %59, align 4, !tbaa !9
  %1501 = icmp sle i32 %1499, %1500
  br i1 %1501, label %1502, label %1603

1502:                                             ; preds = %1498
  %1503 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1503, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1504

1504:                                             ; preds = %1596, %1502
  %1505 = load i32, ptr %68, align 4, !tbaa !9
  %1506 = load i32, ptr %60, align 4, !tbaa !9
  %1507 = icmp sle i32 %1505, %1506
  br i1 %1507, label %1508, label %1599

1508:                                             ; preds = %1504
  %1509 = load ptr, ptr %29, align 8, !tbaa !5
  %1510 = load ptr, ptr %30, align 8, !tbaa !5
  %1511 = load ptr, ptr %48, align 8, !tbaa !5
  %1512 = load ptr, ptr %49, align 8, !tbaa !5
  %1513 = load ptr, ptr %32, align 8, !tbaa !5
  %1514 = getelementptr inbounds i32, ptr %1513, i64 1
  %1515 = load ptr, ptr %34, align 8, !tbaa !5
  %1516 = getelementptr inbounds double, ptr %1515, i64 1
  %1517 = load ptr, ptr %40, align 8, !tbaa !5
  %1518 = getelementptr inbounds double, ptr %1517, i64 1
  %1519 = load ptr, ptr %43, align 8, !tbaa !5
  %1520 = getelementptr inbounds double, ptr %1519, i64 1
  %1521 = load ptr, ptr %55, align 8, !tbaa !5
  %1522 = getelementptr inbounds i32, ptr %1521, i64 1
  %1523 = load ptr, ptr %50, align 8, !tbaa !5
  %1524 = call double @dlatm3_(ptr noundef %1509, ptr noundef %1510, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1511, ptr noundef %1512, ptr noundef %75, ptr noundef %1514, ptr noundef %1516, ptr noundef %83, ptr noundef %1518, ptr noundef %1520, ptr noundef %87, ptr noundef %1522, ptr noundef %1523)
  store double %1524, ptr %66, align 8, !tbaa !11
  %1525 = load i32, ptr %64, align 4, !tbaa !9
  %1526 = load i32, ptr %65, align 4, !tbaa !9
  %1527 = icmp sle i32 %1525, %1526
  br i1 %1527, label %1528, label %1530

1528:                                             ; preds = %1508
  %1529 = load i32, ptr %64, align 4, !tbaa !9
  br label %1532

1530:                                             ; preds = %1508
  %1531 = load i32, ptr %65, align 4, !tbaa !9
  br label %1532

1532:                                             ; preds = %1530, %1528
  %1533 = phi i32 [ %1529, %1528 ], [ %1531, %1530 ]
  store i32 %1533, ptr %79, align 4, !tbaa !9
  %1534 = load i32, ptr %64, align 4, !tbaa !9
  %1535 = load i32, ptr %65, align 4, !tbaa !9
  %1536 = icmp sge i32 %1534, %1535
  br i1 %1536, label %1537, label %1539

1537:                                             ; preds = %1532
  %1538 = load i32, ptr %64, align 4, !tbaa !9
  br label %1541

1539:                                             ; preds = %1532
  %1540 = load i32, ptr %65, align 4, !tbaa !9
  br label %1541

1541:                                             ; preds = %1539, %1537
  %1542 = phi i32 [ %1538, %1537 ], [ %1540, %1539 ]
  store i32 %1542, ptr %81, align 4, !tbaa !9
  %1543 = load i32, ptr %79, align 4, !tbaa !9
  %1544 = icmp eq i32 %1543, 1
  br i1 %1544, label %1545, label %1547

1545:                                             ; preds = %1541
  %1546 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %1546, ptr %70, align 4, !tbaa !9
  br label %1573

1547:                                             ; preds = %1541
  %1548 = load ptr, ptr %30, align 8, !tbaa !5
  %1549 = load i32, ptr %1548, align 4, !tbaa !9
  %1550 = load ptr, ptr %30, align 8, !tbaa !5
  %1551 = load i32, ptr %1550, align 4, !tbaa !9
  %1552 = add nsw i32 %1551, 1
  %1553 = mul nsw i32 %1549, %1552
  %1554 = sdiv i32 %1553, 2
  %1555 = load ptr, ptr %30, align 8, !tbaa !5
  %1556 = load i32, ptr %1555, align 4, !tbaa !9
  %1557 = load i32, ptr %79, align 4, !tbaa !9
  %1558 = sub nsw i32 %1556, %1557
  %1559 = add nsw i32 %1558, 1
  %1560 = load ptr, ptr %30, align 8, !tbaa !5
  %1561 = load i32, ptr %1560, align 4, !tbaa !9
  %1562 = load i32, ptr %79, align 4, !tbaa !9
  %1563 = sub nsw i32 %1561, %1562
  %1564 = add nsw i32 %1563, 2
  %1565 = mul nsw i32 %1559, %1564
  %1566 = sdiv i32 %1565, 2
  %1567 = sub nsw i32 %1554, %1566
  %1568 = load i32, ptr %81, align 4, !tbaa !9
  %1569 = add nsw i32 %1567, %1568
  %1570 = load i32, ptr %79, align 4, !tbaa !9
  %1571 = sub nsw i32 %1569, %1570
  %1572 = add nsw i32 %1571, 1
  store i32 %1572, ptr %70, align 4, !tbaa !9
  br label %1573

1573:                                             ; preds = %1547, %1545
  %1574 = load i32, ptr %70, align 4, !tbaa !9
  %1575 = sub nsw i32 %1574, 1
  %1576 = load ptr, ptr %54, align 8, !tbaa !5
  %1577 = load i32, ptr %1576, align 4, !tbaa !9
  %1578 = sdiv i32 %1575, %1577
  %1579 = add nsw i32 %1578, 1
  store i32 %1579, ptr %76, align 4, !tbaa !9
  %1580 = load i32, ptr %70, align 4, !tbaa !9
  %1581 = load ptr, ptr %54, align 8, !tbaa !5
  %1582 = load i32, ptr %1581, align 4, !tbaa !9
  %1583 = load i32, ptr %76, align 4, !tbaa !9
  %1584 = sub nsw i32 %1583, 1
  %1585 = mul nsw i32 %1582, %1584
  %1586 = sub nsw i32 %1580, %1585
  store i32 %1586, ptr %74, align 4, !tbaa !9
  %1587 = load double, ptr %66, align 8, !tbaa !11
  %1588 = load ptr, ptr %53, align 8, !tbaa !5
  %1589 = load i32, ptr %74, align 4, !tbaa !9
  %1590 = load i32, ptr %76, align 4, !tbaa !9
  %1591 = load i32, ptr %57, align 4, !tbaa !9
  %1592 = mul nsw i32 %1590, %1591
  %1593 = add nsw i32 %1589, %1592
  %1594 = sext i32 %1593 to i64
  %1595 = getelementptr inbounds double, ptr %1588, i64 %1594
  store double %1587, ptr %1595, align 8, !tbaa !11
  br label %1596

1596:                                             ; preds = %1573
  %1597 = load i32, ptr %68, align 4, !tbaa !9
  %1598 = add nsw i32 %1597, 1
  store i32 %1598, ptr %68, align 4, !tbaa !9
  br label %1504, !llvm.loop !32

1599:                                             ; preds = %1504
  br label %1600

1600:                                             ; preds = %1599
  %1601 = load i32, ptr %69, align 4, !tbaa !9
  %1602 = add nsw i32 %1601, 1
  store i32 %1602, ptr %69, align 4, !tbaa !9
  br label %1498, !llvm.loop !33

1603:                                             ; preds = %1498
  br label %1959

1604:                                             ; preds = %1492
  %1605 = load i32, ptr %72, align 4, !tbaa !9
  %1606 = icmp eq i32 %1605, 5
  br i1 %1606, label %1607, label %1697

1607:                                             ; preds = %1604
  %1608 = load ptr, ptr %30, align 8, !tbaa !5
  %1609 = load i32, ptr %1608, align 4, !tbaa !9
  store i32 %1609, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1610

1610:                                             ; preds = %1693, %1607
  %1611 = load i32, ptr %69, align 4, !tbaa !9
  %1612 = load i32, ptr %59, align 4, !tbaa !9
  %1613 = icmp sle i32 %1611, %1612
  br i1 %1613, label %1614, label %1696

1614:                                             ; preds = %1610
  %1615 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1615, ptr %60, align 4, !tbaa !9
  %1616 = load i32, ptr %69, align 4, !tbaa !9
  %1617 = load i32, ptr %89, align 4, !tbaa !9
  %1618 = sub nsw i32 %1616, %1617
  store i32 %1618, ptr %68, align 4, !tbaa !9
  br label %1619

1619:                                             ; preds = %1689, %1614
  %1620 = load i32, ptr %68, align 4, !tbaa !9
  %1621 = load i32, ptr %60, align 4, !tbaa !9
  %1622 = icmp sle i32 %1620, %1621
  br i1 %1622, label %1623, label %1692

1623:                                             ; preds = %1619
  %1624 = load i32, ptr %68, align 4, !tbaa !9
  %1625 = icmp slt i32 %1624, 1
  br i1 %1625, label %1626, label %1641

1626:                                             ; preds = %1623
  %1627 = load ptr, ptr %53, align 8, !tbaa !5
  %1628 = load i32, ptr %69, align 4, !tbaa !9
  %1629 = load i32, ptr %68, align 4, !tbaa !9
  %1630 = sub nsw i32 %1628, %1629
  %1631 = add nsw i32 %1630, 1
  %1632 = load i32, ptr %68, align 4, !tbaa !9
  %1633 = load ptr, ptr %30, align 8, !tbaa !5
  %1634 = load i32, ptr %1633, align 4, !tbaa !9
  %1635 = add nsw i32 %1632, %1634
  %1636 = load i32, ptr %57, align 4, !tbaa !9
  %1637 = mul nsw i32 %1635, %1636
  %1638 = add nsw i32 %1631, %1637
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds double, ptr %1627, i64 %1639
  store double 0.000000e+00, ptr %1640, align 8, !tbaa !11
  br label %1688

1641:                                             ; preds = %1623
  %1642 = load ptr, ptr %29, align 8, !tbaa !5
  %1643 = load ptr, ptr %30, align 8, !tbaa !5
  %1644 = load ptr, ptr %48, align 8, !tbaa !5
  %1645 = load ptr, ptr %49, align 8, !tbaa !5
  %1646 = load ptr, ptr %32, align 8, !tbaa !5
  %1647 = getelementptr inbounds i32, ptr %1646, i64 1
  %1648 = load ptr, ptr %34, align 8, !tbaa !5
  %1649 = getelementptr inbounds double, ptr %1648, i64 1
  %1650 = load ptr, ptr %40, align 8, !tbaa !5
  %1651 = getelementptr inbounds double, ptr %1650, i64 1
  %1652 = load ptr, ptr %43, align 8, !tbaa !5
  %1653 = getelementptr inbounds double, ptr %1652, i64 1
  %1654 = load ptr, ptr %55, align 8, !tbaa !5
  %1655 = getelementptr inbounds i32, ptr %1654, i64 1
  %1656 = load ptr, ptr %50, align 8, !tbaa !5
  %1657 = call double @dlatm3_(ptr noundef %1642, ptr noundef %1643, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1644, ptr noundef %1645, ptr noundef %75, ptr noundef %1647, ptr noundef %1649, ptr noundef %83, ptr noundef %1651, ptr noundef %1653, ptr noundef %87, ptr noundef %1655, ptr noundef %1656)
  store double %1657, ptr %66, align 8, !tbaa !11
  %1658 = load i32, ptr %64, align 4, !tbaa !9
  %1659 = load i32, ptr %65, align 4, !tbaa !9
  %1660 = icmp sle i32 %1658, %1659
  br i1 %1660, label %1661, label %1663

1661:                                             ; preds = %1641
  %1662 = load i32, ptr %64, align 4, !tbaa !9
  br label %1665

1663:                                             ; preds = %1641
  %1664 = load i32, ptr %65, align 4, !tbaa !9
  br label %1665

1665:                                             ; preds = %1663, %1661
  %1666 = phi i32 [ %1662, %1661 ], [ %1664, %1663 ]
  store i32 %1666, ptr %79, align 4, !tbaa !9
  %1667 = load i32, ptr %64, align 4, !tbaa !9
  %1668 = load i32, ptr %65, align 4, !tbaa !9
  %1669 = icmp sge i32 %1667, %1668
  br i1 %1669, label %1670, label %1672

1670:                                             ; preds = %1665
  %1671 = load i32, ptr %64, align 4, !tbaa !9
  br label %1674

1672:                                             ; preds = %1665
  %1673 = load i32, ptr %65, align 4, !tbaa !9
  br label %1674

1674:                                             ; preds = %1672, %1670
  %1675 = phi i32 [ %1671, %1670 ], [ %1673, %1672 ]
  store i32 %1675, ptr %81, align 4, !tbaa !9
  %1676 = load double, ptr %66, align 8, !tbaa !11
  %1677 = load ptr, ptr %53, align 8, !tbaa !5
  %1678 = load i32, ptr %81, align 4, !tbaa !9
  %1679 = load i32, ptr %79, align 4, !tbaa !9
  %1680 = sub nsw i32 %1678, %1679
  %1681 = add nsw i32 %1680, 1
  %1682 = load i32, ptr %79, align 4, !tbaa !9
  %1683 = load i32, ptr %57, align 4, !tbaa !9
  %1684 = mul nsw i32 %1682, %1683
  %1685 = add nsw i32 %1681, %1684
  %1686 = sext i32 %1685 to i64
  %1687 = getelementptr inbounds double, ptr %1677, i64 %1686
  store double %1676, ptr %1687, align 8, !tbaa !11
  br label %1688

1688:                                             ; preds = %1674, %1626
  br label %1689

1689:                                             ; preds = %1688
  %1690 = load i32, ptr %68, align 4, !tbaa !9
  %1691 = add nsw i32 %1690, 1
  store i32 %1691, ptr %68, align 4, !tbaa !9
  br label %1619, !llvm.loop !34

1692:                                             ; preds = %1619
  br label %1693

1693:                                             ; preds = %1692
  %1694 = load i32, ptr %69, align 4, !tbaa !9
  %1695 = add nsw i32 %1694, 1
  store i32 %1695, ptr %69, align 4, !tbaa !9
  br label %1610, !llvm.loop !35

1696:                                             ; preds = %1610
  br label %1958

1697:                                             ; preds = %1604
  %1698 = load i32, ptr %72, align 4, !tbaa !9
  %1699 = icmp eq i32 %1698, 6
  br i1 %1699, label %1700, label %1773

1700:                                             ; preds = %1697
  %1701 = load ptr, ptr %30, align 8, !tbaa !5
  %1702 = load i32, ptr %1701, align 4, !tbaa !9
  store i32 %1702, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1703

1703:                                             ; preds = %1769, %1700
  %1704 = load i32, ptr %69, align 4, !tbaa !9
  %1705 = load i32, ptr %59, align 4, !tbaa !9
  %1706 = icmp sle i32 %1704, %1705
  br i1 %1706, label %1707, label %1772

1707:                                             ; preds = %1703
  %1708 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1708, ptr %60, align 4, !tbaa !9
  %1709 = load i32, ptr %69, align 4, !tbaa !9
  %1710 = load i32, ptr %89, align 4, !tbaa !9
  %1711 = sub nsw i32 %1709, %1710
  store i32 %1711, ptr %68, align 4, !tbaa !9
  br label %1712

1712:                                             ; preds = %1765, %1707
  %1713 = load i32, ptr %68, align 4, !tbaa !9
  %1714 = load i32, ptr %60, align 4, !tbaa !9
  %1715 = icmp sle i32 %1713, %1714
  br i1 %1715, label %1716, label %1768

1716:                                             ; preds = %1712
  %1717 = load ptr, ptr %29, align 8, !tbaa !5
  %1718 = load ptr, ptr %30, align 8, !tbaa !5
  %1719 = load ptr, ptr %48, align 8, !tbaa !5
  %1720 = load ptr, ptr %49, align 8, !tbaa !5
  %1721 = load ptr, ptr %32, align 8, !tbaa !5
  %1722 = getelementptr inbounds i32, ptr %1721, i64 1
  %1723 = load ptr, ptr %34, align 8, !tbaa !5
  %1724 = getelementptr inbounds double, ptr %1723, i64 1
  %1725 = load ptr, ptr %40, align 8, !tbaa !5
  %1726 = getelementptr inbounds double, ptr %1725, i64 1
  %1727 = load ptr, ptr %43, align 8, !tbaa !5
  %1728 = getelementptr inbounds double, ptr %1727, i64 1
  %1729 = load ptr, ptr %55, align 8, !tbaa !5
  %1730 = getelementptr inbounds i32, ptr %1729, i64 1
  %1731 = load ptr, ptr %50, align 8, !tbaa !5
  %1732 = call double @dlatm3_(ptr noundef %1717, ptr noundef %1718, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1719, ptr noundef %1720, ptr noundef %75, ptr noundef %1722, ptr noundef %1724, ptr noundef %83, ptr noundef %1726, ptr noundef %1728, ptr noundef %87, ptr noundef %1730, ptr noundef %1731)
  store double %1732, ptr %66, align 8, !tbaa !11
  %1733 = load i32, ptr %64, align 4, !tbaa !9
  %1734 = load i32, ptr %65, align 4, !tbaa !9
  %1735 = icmp sle i32 %1733, %1734
  br i1 %1735, label %1736, label %1738

1736:                                             ; preds = %1716
  %1737 = load i32, ptr %64, align 4, !tbaa !9
  br label %1740

1738:                                             ; preds = %1716
  %1739 = load i32, ptr %65, align 4, !tbaa !9
  br label %1740

1740:                                             ; preds = %1738, %1736
  %1741 = phi i32 [ %1737, %1736 ], [ %1739, %1738 ]
  store i32 %1741, ptr %79, align 4, !tbaa !9
  %1742 = load i32, ptr %64, align 4, !tbaa !9
  %1743 = load i32, ptr %65, align 4, !tbaa !9
  %1744 = icmp sge i32 %1742, %1743
  br i1 %1744, label %1745, label %1747

1745:                                             ; preds = %1740
  %1746 = load i32, ptr %64, align 4, !tbaa !9
  br label %1749

1747:                                             ; preds = %1740
  %1748 = load i32, ptr %65, align 4, !tbaa !9
  br label %1749

1749:                                             ; preds = %1747, %1745
  %1750 = phi i32 [ %1746, %1745 ], [ %1748, %1747 ]
  store i32 %1750, ptr %81, align 4, !tbaa !9
  %1751 = load double, ptr %66, align 8, !tbaa !11
  %1752 = load ptr, ptr %53, align 8, !tbaa !5
  %1753 = load i32, ptr %79, align 4, !tbaa !9
  %1754 = load i32, ptr %81, align 4, !tbaa !9
  %1755 = sub nsw i32 %1753, %1754
  %1756 = load i32, ptr %89, align 4, !tbaa !9
  %1757 = add nsw i32 %1755, %1756
  %1758 = add nsw i32 %1757, 1
  %1759 = load i32, ptr %81, align 4, !tbaa !9
  %1760 = load i32, ptr %57, align 4, !tbaa !9
  %1761 = mul nsw i32 %1759, %1760
  %1762 = add nsw i32 %1758, %1761
  %1763 = sext i32 %1762 to i64
  %1764 = getelementptr inbounds double, ptr %1752, i64 %1763
  store double %1751, ptr %1764, align 8, !tbaa !11
  br label %1765

1765:                                             ; preds = %1749
  %1766 = load i32, ptr %68, align 4, !tbaa !9
  %1767 = add nsw i32 %1766, 1
  store i32 %1767, ptr %68, align 4, !tbaa !9
  br label %1712, !llvm.loop !36

1768:                                             ; preds = %1712
  br label %1769

1769:                                             ; preds = %1768
  %1770 = load i32, ptr %69, align 4, !tbaa !9
  %1771 = add nsw i32 %1770, 1
  store i32 %1771, ptr %69, align 4, !tbaa !9
  br label %1703, !llvm.loop !37

1772:                                             ; preds = %1703
  br label %1957

1773:                                             ; preds = %1697
  %1774 = load i32, ptr %72, align 4, !tbaa !9
  %1775 = icmp eq i32 %1774, 7
  br i1 %1775, label %1776, label %1956

1776:                                             ; preds = %1773
  %1777 = load i32, ptr %67, align 4, !tbaa !9
  %1778 = icmp eq i32 %1777, 0
  br i1 %1778, label %1779, label %1894

1779:                                             ; preds = %1776
  %1780 = load ptr, ptr %30, align 8, !tbaa !5
  %1781 = load i32, ptr %1780, align 4, !tbaa !9
  store i32 %1781, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1782

1782:                                             ; preds = %1890, %1779
  %1783 = load i32, ptr %69, align 4, !tbaa !9
  %1784 = load i32, ptr %59, align 4, !tbaa !9
  %1785 = icmp sle i32 %1783, %1784
  br i1 %1785, label %1786, label %1893

1786:                                             ; preds = %1782
  %1787 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1787, ptr %60, align 4, !tbaa !9
  %1788 = load i32, ptr %69, align 4, !tbaa !9
  %1789 = load i32, ptr %89, align 4, !tbaa !9
  %1790 = sub nsw i32 %1788, %1789
  store i32 %1790, ptr %68, align 4, !tbaa !9
  br label %1791

1791:                                             ; preds = %1886, %1786
  %1792 = load i32, ptr %68, align 4, !tbaa !9
  %1793 = load i32, ptr %60, align 4, !tbaa !9
  %1794 = icmp sle i32 %1792, %1793
  br i1 %1794, label %1795, label %1889

1795:                                             ; preds = %1791
  %1796 = load ptr, ptr %29, align 8, !tbaa !5
  %1797 = load ptr, ptr %30, align 8, !tbaa !5
  %1798 = load ptr, ptr %48, align 8, !tbaa !5
  %1799 = load ptr, ptr %49, align 8, !tbaa !5
  %1800 = load ptr, ptr %32, align 8, !tbaa !5
  %1801 = getelementptr inbounds i32, ptr %1800, i64 1
  %1802 = load ptr, ptr %34, align 8, !tbaa !5
  %1803 = getelementptr inbounds double, ptr %1802, i64 1
  %1804 = load ptr, ptr %40, align 8, !tbaa !5
  %1805 = getelementptr inbounds double, ptr %1804, i64 1
  %1806 = load ptr, ptr %43, align 8, !tbaa !5
  %1807 = getelementptr inbounds double, ptr %1806, i64 1
  %1808 = load ptr, ptr %55, align 8, !tbaa !5
  %1809 = getelementptr inbounds i32, ptr %1808, i64 1
  %1810 = load ptr, ptr %50, align 8, !tbaa !5
  %1811 = call double @dlatm3_(ptr noundef %1796, ptr noundef %1797, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1798, ptr noundef %1799, ptr noundef %75, ptr noundef %1801, ptr noundef %1803, ptr noundef %83, ptr noundef %1805, ptr noundef %1807, ptr noundef %87, ptr noundef %1809, ptr noundef %1810)
  store double %1811, ptr %66, align 8, !tbaa !11
  %1812 = load i32, ptr %64, align 4, !tbaa !9
  %1813 = load i32, ptr %65, align 4, !tbaa !9
  %1814 = icmp sle i32 %1812, %1813
  br i1 %1814, label %1815, label %1817

1815:                                             ; preds = %1795
  %1816 = load i32, ptr %64, align 4, !tbaa !9
  br label %1819

1817:                                             ; preds = %1795
  %1818 = load i32, ptr %65, align 4, !tbaa !9
  br label %1819

1819:                                             ; preds = %1817, %1815
  %1820 = phi i32 [ %1816, %1815 ], [ %1818, %1817 ]
  store i32 %1820, ptr %79, align 4, !tbaa !9
  %1821 = load i32, ptr %64, align 4, !tbaa !9
  %1822 = load i32, ptr %65, align 4, !tbaa !9
  %1823 = icmp sge i32 %1821, %1822
  br i1 %1823, label %1824, label %1826

1824:                                             ; preds = %1819
  %1825 = load i32, ptr %64, align 4, !tbaa !9
  br label %1828

1826:                                             ; preds = %1819
  %1827 = load i32, ptr %65, align 4, !tbaa !9
  br label %1828

1828:                                             ; preds = %1826, %1824
  %1829 = phi i32 [ %1825, %1824 ], [ %1827, %1826 ]
  store i32 %1829, ptr %81, align 4, !tbaa !9
  %1830 = load double, ptr %66, align 8, !tbaa !11
  %1831 = load ptr, ptr %53, align 8, !tbaa !5
  %1832 = load i32, ptr %79, align 4, !tbaa !9
  %1833 = load i32, ptr %81, align 4, !tbaa !9
  %1834 = sub nsw i32 %1832, %1833
  %1835 = load i32, ptr %89, align 4, !tbaa !9
  %1836 = add nsw i32 %1834, %1835
  %1837 = add nsw i32 %1836, 1
  %1838 = load i32, ptr %81, align 4, !tbaa !9
  %1839 = load i32, ptr %57, align 4, !tbaa !9
  %1840 = mul nsw i32 %1838, %1839
  %1841 = add nsw i32 %1837, %1840
  %1842 = sext i32 %1841 to i64
  %1843 = getelementptr inbounds double, ptr %1831, i64 %1842
  store double %1830, ptr %1843, align 8, !tbaa !11
  %1844 = load i32, ptr %68, align 4, !tbaa !9
  %1845 = icmp slt i32 %1844, 1
  br i1 %1845, label %1846, label %1863

1846:                                             ; preds = %1828
  %1847 = load ptr, ptr %53, align 8, !tbaa !5
  %1848 = load i32, ptr %69, align 4, !tbaa !9
  %1849 = load i32, ptr %68, align 4, !tbaa !9
  %1850 = sub nsw i32 %1848, %1849
  %1851 = add nsw i32 %1850, 1
  %1852 = load i32, ptr %89, align 4, !tbaa !9
  %1853 = add nsw i32 %1851, %1852
  %1854 = load i32, ptr %68, align 4, !tbaa !9
  %1855 = load ptr, ptr %30, align 8, !tbaa !5
  %1856 = load i32, ptr %1855, align 4, !tbaa !9
  %1857 = add nsw i32 %1854, %1856
  %1858 = load i32, ptr %57, align 4, !tbaa !9
  %1859 = mul nsw i32 %1857, %1858
  %1860 = add nsw i32 %1853, %1859
  %1861 = sext i32 %1860 to i64
  %1862 = getelementptr inbounds double, ptr %1847, i64 %1861
  store double 0.000000e+00, ptr %1862, align 8, !tbaa !11
  br label %1863

1863:                                             ; preds = %1846, %1828
  %1864 = load i32, ptr %68, align 4, !tbaa !9
  %1865 = icmp sge i32 %1864, 1
  br i1 %1865, label %1866, label %1885

1866:                                             ; preds = %1863
  %1867 = load i32, ptr %79, align 4, !tbaa !9
  %1868 = load i32, ptr %81, align 4, !tbaa !9
  %1869 = icmp ne i32 %1867, %1868
  br i1 %1869, label %1870, label %1885

1870:                                             ; preds = %1866
  %1871 = load double, ptr %66, align 8, !tbaa !11
  %1872 = load ptr, ptr %53, align 8, !tbaa !5
  %1873 = load i32, ptr %81, align 4, !tbaa !9
  %1874 = load i32, ptr %79, align 4, !tbaa !9
  %1875 = sub nsw i32 %1873, %1874
  %1876 = add nsw i32 %1875, 1
  %1877 = load i32, ptr %89, align 4, !tbaa !9
  %1878 = add nsw i32 %1876, %1877
  %1879 = load i32, ptr %79, align 4, !tbaa !9
  %1880 = load i32, ptr %57, align 4, !tbaa !9
  %1881 = mul nsw i32 %1879, %1880
  %1882 = add nsw i32 %1878, %1881
  %1883 = sext i32 %1882 to i64
  %1884 = getelementptr inbounds double, ptr %1872, i64 %1883
  store double %1871, ptr %1884, align 8, !tbaa !11
  br label %1885

1885:                                             ; preds = %1870, %1866, %1863
  br label %1886

1886:                                             ; preds = %1885
  %1887 = load i32, ptr %68, align 4, !tbaa !9
  %1888 = add nsw i32 %1887, 1
  store i32 %1888, ptr %68, align 4, !tbaa !9
  br label %1791, !llvm.loop !38

1889:                                             ; preds = %1791
  br label %1890

1890:                                             ; preds = %1889
  %1891 = load i32, ptr %69, align 4, !tbaa !9
  %1892 = add nsw i32 %1891, 1
  store i32 %1892, ptr %69, align 4, !tbaa !9
  br label %1782, !llvm.loop !39

1893:                                             ; preds = %1782
  br label %1955

1894:                                             ; preds = %1776
  %1895 = load i32, ptr %67, align 4, !tbaa !9
  %1896 = icmp eq i32 %1895, 1
  br i1 %1896, label %1897, label %1954

1897:                                             ; preds = %1894
  %1898 = load ptr, ptr %30, align 8, !tbaa !5
  %1899 = load i32, ptr %1898, align 4, !tbaa !9
  store i32 %1899, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1900

1900:                                             ; preds = %1950, %1897
  %1901 = load i32, ptr %69, align 4, !tbaa !9
  %1902 = load i32, ptr %59, align 4, !tbaa !9
  %1903 = icmp sle i32 %1901, %1902
  br i1 %1903, label %1904, label %1953

1904:                                             ; preds = %1900
  %1905 = load i32, ptr %69, align 4, !tbaa !9
  %1906 = load i32, ptr %88, align 4, !tbaa !9
  %1907 = add nsw i32 %1905, %1906
  store i32 %1907, ptr %60, align 4, !tbaa !9
  %1908 = load i32, ptr %69, align 4, !tbaa !9
  %1909 = load i32, ptr %89, align 4, !tbaa !9
  %1910 = sub nsw i32 %1908, %1909
  store i32 %1910, ptr %68, align 4, !tbaa !9
  br label %1911

1911:                                             ; preds = %1946, %1904
  %1912 = load i32, ptr %68, align 4, !tbaa !9
  %1913 = load i32, ptr %60, align 4, !tbaa !9
  %1914 = icmp sle i32 %1912, %1913
  br i1 %1914, label %1915, label %1949

1915:                                             ; preds = %1911
  %1916 = load ptr, ptr %29, align 8, !tbaa !5
  %1917 = load ptr, ptr %30, align 8, !tbaa !5
  %1918 = load ptr, ptr %48, align 8, !tbaa !5
  %1919 = load ptr, ptr %49, align 8, !tbaa !5
  %1920 = load ptr, ptr %32, align 8, !tbaa !5
  %1921 = getelementptr inbounds i32, ptr %1920, i64 1
  %1922 = load ptr, ptr %34, align 8, !tbaa !5
  %1923 = getelementptr inbounds double, ptr %1922, i64 1
  %1924 = load ptr, ptr %40, align 8, !tbaa !5
  %1925 = getelementptr inbounds double, ptr %1924, i64 1
  %1926 = load ptr, ptr %43, align 8, !tbaa !5
  %1927 = getelementptr inbounds double, ptr %1926, i64 1
  %1928 = load ptr, ptr %55, align 8, !tbaa !5
  %1929 = getelementptr inbounds i32, ptr %1928, i64 1
  %1930 = load ptr, ptr %50, align 8, !tbaa !5
  %1931 = call double @dlatm3_(ptr noundef %1916, ptr noundef %1917, ptr noundef %68, ptr noundef %69, ptr noundef %64, ptr noundef %65, ptr noundef %1918, ptr noundef %1919, ptr noundef %75, ptr noundef %1921, ptr noundef %1923, ptr noundef %83, ptr noundef %1925, ptr noundef %1927, ptr noundef %87, ptr noundef %1929, ptr noundef %1930)
  store double %1931, ptr %66, align 8, !tbaa !11
  %1932 = load double, ptr %66, align 8, !tbaa !11
  %1933 = load ptr, ptr %53, align 8, !tbaa !5
  %1934 = load i32, ptr %64, align 4, !tbaa !9
  %1935 = load i32, ptr %65, align 4, !tbaa !9
  %1936 = sub nsw i32 %1934, %1935
  %1937 = load i32, ptr %89, align 4, !tbaa !9
  %1938 = add nsw i32 %1936, %1937
  %1939 = add nsw i32 %1938, 1
  %1940 = load i32, ptr %65, align 4, !tbaa !9
  %1941 = load i32, ptr %57, align 4, !tbaa !9
  %1942 = mul nsw i32 %1940, %1941
  %1943 = add nsw i32 %1939, %1942
  %1944 = sext i32 %1943 to i64
  %1945 = getelementptr inbounds double, ptr %1933, i64 %1944
  store double %1932, ptr %1945, align 8, !tbaa !11
  br label %1946

1946:                                             ; preds = %1915
  %1947 = load i32, ptr %68, align 4, !tbaa !9
  %1948 = add nsw i32 %1947, 1
  store i32 %1948, ptr %68, align 4, !tbaa !9
  br label %1911, !llvm.loop !40

1949:                                             ; preds = %1911
  br label %1950

1950:                                             ; preds = %1949
  %1951 = load i32, ptr %69, align 4, !tbaa !9
  %1952 = add nsw i32 %1951, 1
  store i32 %1952, ptr %69, align 4, !tbaa !9
  br label %1900, !llvm.loop !41

1953:                                             ; preds = %1900
  br label %1954

1954:                                             ; preds = %1953, %1894
  br label %1955

1955:                                             ; preds = %1954, %1893
  br label %1956

1956:                                             ; preds = %1955, %1773
  br label %1957

1957:                                             ; preds = %1956, %1772
  br label %1958

1958:                                             ; preds = %1957, %1696
  br label %1959

1959:                                             ; preds = %1958, %1603
  br label %1960

1960:                                             ; preds = %1959, %1491
  br label %1961

1961:                                             ; preds = %1960, %1403
  br label %1962

1962:                                             ; preds = %1961, %1322
  br label %1963

1963:                                             ; preds = %1962, %1241
  br label %2738

1964:                                             ; preds = %1124
  %1965 = load i32, ptr %72, align 4, !tbaa !9
  %1966 = icmp eq i32 %1965, 0
  br i1 %1966, label %1967, label %2085

1967:                                             ; preds = %1964
  %1968 = load i32, ptr %67, align 4, !tbaa !9
  %1969 = icmp eq i32 %1968, 0
  br i1 %1969, label %1970, label %2033

1970:                                             ; preds = %1967
  %1971 = load ptr, ptr %30, align 8, !tbaa !5
  %1972 = load i32, ptr %1971, align 4, !tbaa !9
  store i32 %1972, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1973

1973:                                             ; preds = %2029, %1970
  %1974 = load i32, ptr %69, align 4, !tbaa !9
  %1975 = load i32, ptr %59, align 4, !tbaa !9
  %1976 = icmp sle i32 %1974, %1975
  br i1 %1976, label %1977, label %2032

1977:                                             ; preds = %1973
  %1978 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1978, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1979

1979:                                             ; preds = %2025, %1977
  %1980 = load i32, ptr %68, align 4, !tbaa !9
  %1981 = load i32, ptr %60, align 4, !tbaa !9
  %1982 = icmp sle i32 %1980, %1981
  br i1 %1982, label %1983, label %2028

1983:                                             ; preds = %1979
  %1984 = load ptr, ptr %29, align 8, !tbaa !5
  %1985 = load ptr, ptr %30, align 8, !tbaa !5
  %1986 = load ptr, ptr %48, align 8, !tbaa !5
  %1987 = load ptr, ptr %49, align 8, !tbaa !5
  %1988 = load ptr, ptr %32, align 8, !tbaa !5
  %1989 = getelementptr inbounds i32, ptr %1988, i64 1
  %1990 = load ptr, ptr %34, align 8, !tbaa !5
  %1991 = getelementptr inbounds double, ptr %1990, i64 1
  %1992 = load ptr, ptr %40, align 8, !tbaa !5
  %1993 = getelementptr inbounds double, ptr %1992, i64 1
  %1994 = load ptr, ptr %43, align 8, !tbaa !5
  %1995 = getelementptr inbounds double, ptr %1994, i64 1
  %1996 = load ptr, ptr %55, align 8, !tbaa !5
  %1997 = getelementptr inbounds i32, ptr %1996, i64 1
  %1998 = load ptr, ptr %50, align 8, !tbaa !5
  %1999 = call double @dlatm2_(ptr noundef %1984, ptr noundef %1985, ptr noundef %68, ptr noundef %69, ptr noundef %1986, ptr noundef %1987, ptr noundef %75, ptr noundef %1989, ptr noundef %1991, ptr noundef %83, ptr noundef %1993, ptr noundef %1995, ptr noundef %87, ptr noundef %1997, ptr noundef %1998)
  %2000 = load ptr, ptr %53, align 8, !tbaa !5
  %2001 = load i32, ptr %68, align 4, !tbaa !9
  %2002 = load i32, ptr %69, align 4, !tbaa !9
  %2003 = load i32, ptr %57, align 4, !tbaa !9
  %2004 = mul nsw i32 %2002, %2003
  %2005 = add nsw i32 %2001, %2004
  %2006 = sext i32 %2005 to i64
  %2007 = getelementptr inbounds double, ptr %2000, i64 %2006
  store double %1999, ptr %2007, align 8, !tbaa !11
  %2008 = load ptr, ptr %53, align 8, !tbaa !5
  %2009 = load i32, ptr %68, align 4, !tbaa !9
  %2010 = load i32, ptr %69, align 4, !tbaa !9
  %2011 = load i32, ptr %57, 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
  %2016 = load double, ptr %2015, align 8, !tbaa !11
  %2017 = load ptr, ptr %53, align 8, !tbaa !5
  %2018 = load i32, ptr %69, align 4, !tbaa !9
  %2019 = load i32, ptr %68, align 4, !tbaa !9
  %2020 = load i32, ptr %57, align 4, !tbaa !9
  %2021 = mul nsw i32 %2019, %2020
  %2022 = add nsw i32 %2018, %2021
  %2023 = sext i32 %2022 to i64
  %2024 = getelementptr inbounds double, ptr %2017, i64 %2023
  store double %2016, ptr %2024, align 8, !tbaa !11
  br label %2025

2025:                                             ; preds = %1983
  %2026 = load i32, ptr %68, align 4, !tbaa !9
  %2027 = add nsw i32 %2026, 1
  store i32 %2027, ptr %68, align 4, !tbaa !9
  br label %1979, !llvm.loop !42

2028:                                             ; preds = %1979
  br label %2029

2029:                                             ; preds = %2028
  %2030 = load i32, ptr %69, align 4, !tbaa !9
  %2031 = add nsw i32 %2030, 1
  store i32 %2031, ptr %69, align 4, !tbaa !9
  br label %1973, !llvm.loop !43

2032:                                             ; preds = %1973
  br label %2084

2033:                                             ; preds = %1967
  %2034 = load i32, ptr %67, align 4, !tbaa !9
  %2035 = icmp eq i32 %2034, 1
  br i1 %2035, label %2036, label %2083

2036:                                             ; preds = %2033
  %2037 = load ptr, ptr %30, align 8, !tbaa !5
  %2038 = load i32, ptr %2037, align 4, !tbaa !9
  store i32 %2038, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2039

2039:                                             ; preds = %2079, %2036
  %2040 = load i32, ptr %69, align 4, !tbaa !9
  %2041 = load i32, ptr %59, align 4, !tbaa !9
  %2042 = icmp sle i32 %2040, %2041
  br i1 %2042, label %2043, label %2082

2043:                                             ; preds = %2039
  %2044 = load ptr, ptr %29, align 8, !tbaa !5
  %2045 = load i32, ptr %2044, align 4, !tbaa !9
  store i32 %2045, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %2046

2046:                                             ; preds = %2075, %2043
  %2047 = load i32, ptr %68, align 4, !tbaa !9
  %2048 = load i32, ptr %60, align 4, !tbaa !9
  %2049 = icmp sle i32 %2047, %2048
  br i1 %2049, label %2050, label %2078

2050:                                             ; preds = %2046
  %2051 = load ptr, ptr %29, align 8, !tbaa !5
  %2052 = load ptr, ptr %30, align 8, !tbaa !5
  %2053 = load ptr, ptr %48, align 8, !tbaa !5
  %2054 = load ptr, ptr %49, align 8, !tbaa !5
  %2055 = load ptr, ptr %32, align 8, !tbaa !5
  %2056 = getelementptr inbounds i32, ptr %2055, i64 1
  %2057 = load ptr, ptr %34, align 8, !tbaa !5
  %2058 = getelementptr inbounds double, ptr %2057, i64 1
  %2059 = load ptr, ptr %40, align 8, !tbaa !5
  %2060 = getelementptr inbounds double, ptr %2059, i64 1
  %2061 = load ptr, ptr %43, align 8, !tbaa !5
  %2062 = getelementptr inbounds double, ptr %2061, i64 1
  %2063 = load ptr, ptr %55, align 8, !tbaa !5
  %2064 = getelementptr inbounds i32, ptr %2063, i64 1
  %2065 = load ptr, ptr %50, align 8, !tbaa !5
  %2066 = call double @dlatm2_(ptr noundef %2051, ptr noundef %2052, ptr noundef %68, ptr noundef %69, ptr noundef %2053, ptr noundef %2054, ptr noundef %75, ptr noundef %2056, ptr noundef %2058, ptr noundef %83, ptr noundef %2060, ptr noundef %2062, ptr noundef %87, ptr noundef %2064, ptr noundef %2065)
  %2067 = load ptr, ptr %53, align 8, !tbaa !5
  %2068 = load i32, ptr %68, align 4, !tbaa !9
  %2069 = load i32, ptr %69, align 4, !tbaa !9
  %2070 = load i32, ptr %57, align 4, !tbaa !9
  %2071 = mul nsw i32 %2069, %2070
  %2072 = add nsw i32 %2068, %2071
  %2073 = sext i32 %2072 to i64
  %2074 = getelementptr inbounds double, ptr %2067, i64 %2073
  store double %2066, ptr %2074, align 8, !tbaa !11
  br label %2075

2075:                                             ; preds = %2050
  %2076 = load i32, ptr %68, align 4, !tbaa !9
  %2077 = add nsw i32 %2076, 1
  store i32 %2077, ptr %68, align 4, !tbaa !9
  br label %2046, !llvm.loop !44

2078:                                             ; preds = %2046
  br label %2079

2079:                                             ; preds = %2078
  %2080 = load i32, ptr %69, align 4, !tbaa !9
  %2081 = add nsw i32 %2080, 1
  store i32 %2081, ptr %69, align 4, !tbaa !9
  br label %2039, !llvm.loop !45

2082:                                             ; preds = %2039
  br label %2083

2083:                                             ; preds = %2082, %2033
  br label %2084

2084:                                             ; preds = %2083, %2032
  br label %2737

2085:                                             ; preds = %1964
  %2086 = load i32, ptr %72, align 4, !tbaa !9
  %2087 = icmp eq i32 %2086, 1
  br i1 %2087, label %2088, label %2147

2088:                                             ; preds = %2085
  %2089 = load ptr, ptr %30, align 8, !tbaa !5
  %2090 = load i32, ptr %2089, align 4, !tbaa !9
  store i32 %2090, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2091

2091:                                             ; preds = %2143, %2088
  %2092 = load i32, ptr %69, align 4, !tbaa !9
  %2093 = load i32, ptr %59, align 4, !tbaa !9
  %2094 = icmp sle i32 %2092, %2093
  br i1 %2094, label %2095, label %2146

2095:                                             ; preds = %2091
  %2096 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2096, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %2097

2097:                                             ; preds = %2139, %2095
  %2098 = load i32, ptr %68, align 4, !tbaa !9
  %2099 = load i32, ptr %60, align 4, !tbaa !9
  %2100 = icmp sle i32 %2098, %2099
  br i1 %2100, label %2101, label %2142

2101:                                             ; preds = %2097
  %2102 = load ptr, ptr %29, align 8, !tbaa !5
  %2103 = load ptr, ptr %30, align 8, !tbaa !5
  %2104 = load ptr, ptr %48, align 8, !tbaa !5
  %2105 = load ptr, ptr %49, align 8, !tbaa !5
  %2106 = load ptr, ptr %32, align 8, !tbaa !5
  %2107 = getelementptr inbounds i32, ptr %2106, i64 1
  %2108 = load ptr, ptr %34, align 8, !tbaa !5
  %2109 = getelementptr inbounds double, ptr %2108, i64 1
  %2110 = load ptr, ptr %40, align 8, !tbaa !5
  %2111 = getelementptr inbounds double, ptr %2110, i64 1
  %2112 = load ptr, ptr %43, align 8, !tbaa !5
  %2113 = getelementptr inbounds double, ptr %2112, i64 1
  %2114 = load ptr, ptr %55, align 8, !tbaa !5
  %2115 = getelementptr inbounds i32, ptr %2114, i64 1
  %2116 = load ptr, ptr %50, align 8, !tbaa !5
  %2117 = call double @dlatm2_(ptr noundef %2102, ptr noundef %2103, ptr noundef %68, ptr noundef %69, ptr noundef %2104, ptr noundef %2105, ptr noundef %75, ptr noundef %2107, ptr noundef %2109, ptr noundef %83, ptr noundef %2111, ptr noundef %2113, ptr noundef %87, ptr noundef %2115, ptr noundef %2116)
  %2118 = load ptr, ptr %53, align 8, !tbaa !5
  %2119 = load i32, ptr %68, align 4, !tbaa !9
  %2120 = load i32, ptr %69, align 4, !tbaa !9
  %2121 = load i32, ptr %57, align 4, !tbaa !9
  %2122 = mul nsw i32 %2120, %2121
  %2123 = add nsw i32 %2119, %2122
  %2124 = sext i32 %2123 to i64
  %2125 = getelementptr inbounds double, ptr %2118, i64 %2124
  store double %2117, ptr %2125, align 8, !tbaa !11
  %2126 = load i32, ptr %68, align 4, !tbaa !9
  %2127 = load i32, ptr %69, align 4, !tbaa !9
  %2128 = icmp ne i32 %2126, %2127
  br i1 %2128, label %2129, label %2138

2129:                                             ; preds = %2101
  %2130 = load ptr, ptr %53, align 8, !tbaa !5
  %2131 = load i32, ptr %69, align 4, !tbaa !9
  %2132 = load i32, ptr %68, align 4, !tbaa !9
  %2133 = load i32, ptr %57, align 4, !tbaa !9
  %2134 = mul nsw i32 %2132, %2133
  %2135 = add nsw i32 %2131, %2134
  %2136 = sext i32 %2135 to i64
  %2137 = getelementptr inbounds double, ptr %2130, i64 %2136
  store double 0.000000e+00, ptr %2137, align 8, !tbaa !11
  br label %2138

2138:                                             ; preds = %2129, %2101
  br label %2139

2139:                                             ; preds = %2138
  %2140 = load i32, ptr %68, align 4, !tbaa !9
  %2141 = add nsw i32 %2140, 1
  store i32 %2141, ptr %68, align 4, !tbaa !9
  br label %2097, !llvm.loop !46

2142:                                             ; preds = %2097
  br label %2143

2143:                                             ; preds = %2142
  %2144 = load i32, ptr %69, align 4, !tbaa !9
  %2145 = add nsw i32 %2144, 1
  store i32 %2145, ptr %69, align 4, !tbaa !9
  br label %2091, !llvm.loop !47

2146:                                             ; preds = %2091
  br label %2736

2147:                                             ; preds = %2085
  %2148 = load i32, ptr %72, align 4, !tbaa !9
  %2149 = icmp eq i32 %2148, 2
  br i1 %2149, label %2150, label %2209

2150:                                             ; preds = %2147
  %2151 = load ptr, ptr %30, align 8, !tbaa !5
  %2152 = load i32, ptr %2151, align 4, !tbaa !9
  store i32 %2152, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2153

2153:                                             ; preds = %2205, %2150
  %2154 = load i32, ptr %69, align 4, !tbaa !9
  %2155 = load i32, ptr %59, align 4, !tbaa !9
  %2156 = icmp sle i32 %2154, %2155
  br i1 %2156, label %2157, label %2208

2157:                                             ; preds = %2153
  %2158 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2158, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %2159

2159:                                             ; preds = %2201, %2157
  %2160 = load i32, ptr %68, align 4, !tbaa !9
  %2161 = load i32, ptr %60, align 4, !tbaa !9
  %2162 = icmp sle i32 %2160, %2161
  br i1 %2162, label %2163, label %2204

2163:                                             ; preds = %2159
  %2164 = load ptr, ptr %29, align 8, !tbaa !5
  %2165 = load ptr, ptr %30, align 8, !tbaa !5
  %2166 = load ptr, ptr %48, align 8, !tbaa !5
  %2167 = load ptr, ptr %49, align 8, !tbaa !5
  %2168 = load ptr, ptr %32, align 8, !tbaa !5
  %2169 = getelementptr inbounds i32, ptr %2168, i64 1
  %2170 = load ptr, ptr %34, align 8, !tbaa !5
  %2171 = getelementptr inbounds double, ptr %2170, i64 1
  %2172 = load ptr, ptr %40, align 8, !tbaa !5
  %2173 = getelementptr inbounds double, ptr %2172, i64 1
  %2174 = load ptr, ptr %43, align 8, !tbaa !5
  %2175 = getelementptr inbounds double, ptr %2174, i64 1
  %2176 = load ptr, ptr %55, align 8, !tbaa !5
  %2177 = getelementptr inbounds i32, ptr %2176, i64 1
  %2178 = load ptr, ptr %50, align 8, !tbaa !5
  %2179 = call double @dlatm2_(ptr noundef %2164, ptr noundef %2165, ptr noundef %68, ptr noundef %69, ptr noundef %2166, ptr noundef %2167, ptr noundef %75, ptr noundef %2169, ptr noundef %2171, ptr noundef %83, ptr noundef %2173, ptr noundef %2175, ptr noundef %87, ptr noundef %2177, ptr noundef %2178)
  %2180 = load ptr, ptr %53, align 8, !tbaa !5
  %2181 = load i32, ptr %69, align 4, !tbaa !9
  %2182 = load i32, ptr %68, align 4, !tbaa !9
  %2183 = load i32, ptr %57, align 4, !tbaa !9
  %2184 = mul nsw i32 %2182, %2183
  %2185 = add nsw i32 %2181, %2184
  %2186 = sext i32 %2185 to i64
  %2187 = getelementptr inbounds double, ptr %2180, i64 %2186
  store double %2179, ptr %2187, align 8, !tbaa !11
  %2188 = load i32, ptr %68, align 4, !tbaa !9
  %2189 = load i32, ptr %69, align 4, !tbaa !9
  %2190 = icmp ne i32 %2188, %2189
  br i1 %2190, label %2191, label %2200

2191:                                             ; preds = %2163
  %2192 = load ptr, ptr %53, align 8, !tbaa !5
  %2193 = load i32, ptr %68, align 4, !tbaa !9
  %2194 = load i32, ptr %69, align 4, !tbaa !9
  %2195 = load i32, ptr %57, align 4, !tbaa !9
  %2196 = mul nsw i32 %2194, %2195
  %2197 = add nsw i32 %2193, %2196
  %2198 = sext i32 %2197 to i64
  %2199 = getelementptr inbounds double, ptr %2192, i64 %2198
  store double 0.000000e+00, ptr %2199, align 8, !tbaa !11
  br label %2200

2200:                                             ; preds = %2191, %2163
  br label %2201

2201:                                             ; preds = %2200
  %2202 = load i32, ptr %68, align 4, !tbaa !9
  %2203 = add nsw i32 %2202, 1
  store i32 %2203, ptr %68, align 4, !tbaa !9
  br label %2159, !llvm.loop !48

2204:                                             ; preds = %2159
  br label %2205

2205:                                             ; preds = %2204
  %2206 = load i32, ptr %69, align 4, !tbaa !9
  %2207 = add nsw i32 %2206, 1
  store i32 %2207, ptr %69, align 4, !tbaa !9
  br label %2153, !llvm.loop !49

2208:                                             ; preds = %2153
  br label %2735

2209:                                             ; preds = %2147
  %2210 = load i32, ptr %72, align 4, !tbaa !9
  %2211 = icmp eq i32 %2210, 3
  br i1 %2211, label %2212, label %2268

2212:                                             ; preds = %2209
  store i32 0, ptr %64, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  %2213 = load ptr, ptr %30, align 8, !tbaa !5
  %2214 = load i32, ptr %2213, align 4, !tbaa !9
  store i32 %2214, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2215

2215:                                             ; preds = %2264, %2212
  %2216 = load i32, ptr %69, align 4, !tbaa !9
  %2217 = load i32, ptr %59, align 4, !tbaa !9
  %2218 = icmp sle i32 %2216, %2217
  br i1 %2218, label %2219, label %2267

2219:                                             ; preds = %2215
  %2220 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2220, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %2221

2221:                                             ; preds = %2260, %2219
  %2222 = load i32, ptr %68, align 4, !tbaa !9
  %2223 = load i32, ptr %60, align 4, !tbaa !9
  %2224 = icmp sle i32 %2222, %2223
  br i1 %2224, label %2225, label %2263

2225:                                             ; preds = %2221
  %2226 = load i32, ptr %64, align 4, !tbaa !9
  %2227 = add nsw i32 %2226, 1
  store i32 %2227, ptr %64, align 4, !tbaa !9
  %2228 = load i32, ptr %64, align 4, !tbaa !9
  %2229 = load ptr, ptr %54, align 8, !tbaa !5
  %2230 = load i32, ptr %2229, align 4, !tbaa !9
  %2231 = icmp sgt i32 %2228, %2230
  br i1 %2231, label %2232, label %2235

2232:                                             ; preds = %2225
  store i32 1, ptr %64, align 4, !tbaa !9
  %2233 = load i32, ptr %65, align 4, !tbaa !9
  %2234 = add nsw i32 %2233, 1
  store i32 %2234, ptr %65, align 4, !tbaa !9
  br label %2235

2235:                                             ; preds = %2232, %2225
  %2236 = load ptr, ptr %29, align 8, !tbaa !5
  %2237 = load ptr, ptr %30, align 8, !tbaa !5
  %2238 = load ptr, ptr %48, align 8, !tbaa !5
  %2239 = load ptr, ptr %49, align 8, !tbaa !5
  %2240 = load ptr, ptr %32, align 8, !tbaa !5
  %2241 = getelementptr inbounds i32, ptr %2240, i64 1
  %2242 = load ptr, ptr %34, align 8, !tbaa !5
  %2243 = getelementptr inbounds double, ptr %2242, i64 1
  %2244 = load ptr, ptr %40, align 8, !tbaa !5
  %2245 = getelementptr inbounds double, ptr %2244, i64 1
  %2246 = load ptr, ptr %43, align 8, !tbaa !5
  %2247 = getelementptr inbounds double, ptr %2246, i64 1
  %2248 = load ptr, ptr %55, align 8, !tbaa !5
  %2249 = getelementptr inbounds i32, ptr %2248, i64 1
  %2250 = load ptr, ptr %50, align 8, !tbaa !5
  %2251 = call double @dlatm2_(ptr noundef %2236, ptr noundef %2237, ptr noundef %68, ptr noundef %69, ptr noundef %2238, ptr noundef %2239, ptr noundef %75, ptr noundef %2241, ptr noundef %2243, ptr noundef %83, ptr noundef %2245, ptr noundef %2247, ptr noundef %87, ptr noundef %2249, ptr noundef %2250)
  %2252 = load ptr, ptr %53, align 8, !tbaa !5
  %2253 = load i32, ptr %64, align 4, !tbaa !9
  %2254 = load i32, ptr %65, align 4, !tbaa !9
  %2255 = load i32, ptr %57, align 4, !tbaa !9
  %2256 = mul nsw i32 %2254, %2255
  %2257 = add nsw i32 %2253, %2256
  %2258 = sext i32 %2257 to i64
  %2259 = getelementptr inbounds double, ptr %2252, i64 %2258
  store double %2251, ptr %2259, align 8, !tbaa !11
  br label %2260

2260:                                             ; preds = %2235
  %2261 = load i32, ptr %68, align 4, !tbaa !9
  %2262 = add nsw i32 %2261, 1
  store i32 %2262, ptr %68, align 4, !tbaa !9
  br label %2221, !llvm.loop !50

2263:                                             ; preds = %2221
  br label %2264

2264:                                             ; preds = %2263
  %2265 = load i32, ptr %69, align 4, !tbaa !9
  %2266 = add nsw i32 %2265, 1
  store i32 %2266, ptr %69, align 4, !tbaa !9
  br label %2215, !llvm.loop !51

2267:                                             ; preds = %2215
  br label %2734

2268:                                             ; preds = %2209
  %2269 = load i32, ptr %72, align 4, !tbaa !9
  %2270 = icmp eq i32 %2269, 4
  br i1 %2270, label %2271, label %2423

2271:                                             ; preds = %2268
  %2272 = load i32, ptr %67, align 4, !tbaa !9
  %2273 = icmp eq i32 %2272, 0
  br i1 %2273, label %2274, label %2364

2274:                                             ; preds = %2271
  %2275 = load ptr, ptr %30, align 8, !tbaa !5
  %2276 = load i32, ptr %2275, align 4, !tbaa !9
  store i32 %2276, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2277

2277:                                             ; preds = %2360, %2274
  %2278 = load i32, ptr %69, align 4, !tbaa !9
  %2279 = load i32, ptr %59, align 4, !tbaa !9
  %2280 = icmp sle i32 %2278, %2279
  br i1 %2280, label %2281, label %2363

2281:                                             ; preds = %2277
  %2282 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2282, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %2283

2283:                                             ; preds = %2356, %2281
  %2284 = load i32, ptr %68, align 4, !tbaa !9
  %2285 = load i32, ptr %60, align 4, !tbaa !9
  %2286 = icmp sle i32 %2284, %2285
  br i1 %2286, label %2287, label %2359

2287:                                             ; preds = %2283
  %2288 = load i32, ptr %68, align 4, !tbaa !9
  %2289 = icmp eq i32 %2288, 1
  br i1 %2289, label %2290, label %2292

2290:                                             ; preds = %2287
  %2291 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2291, ptr %70, align 4, !tbaa !9
  br label %2318

2292:                                             ; preds = %2287
  %2293 = load ptr, ptr %30, align 8, !tbaa !5
  %2294 = load i32, ptr %2293, align 4, !tbaa !9
  %2295 = load ptr, ptr %30, align 8, !tbaa !5
  %2296 = load i32, ptr %2295, align 4, !tbaa !9
  %2297 = add nsw i32 %2296, 1
  %2298 = mul nsw i32 %2294, %2297
  %2299 = sdiv i32 %2298, 2
  %2300 = load ptr, ptr %30, align 8, !tbaa !5
  %2301 = load i32, ptr %2300, align 4, !tbaa !9
  %2302 = load i32, ptr %68, align 4, !tbaa !9
  %2303 = sub nsw i32 %2301, %2302
  %2304 = add nsw i32 %2303, 1
  %2305 = load ptr, ptr %30, align 8, !tbaa !5
  %2306 = load i32, ptr %2305, align 4, !tbaa !9
  %2307 = load i32, ptr %68, align 4, !tbaa !9
  %2308 = sub nsw i32 %2306, %2307
  %2309 = add nsw i32 %2308, 2
  %2310 = mul nsw i32 %2304, %2309
  %2311 = sdiv i32 %2310, 2
  %2312 = sub nsw i32 %2299, %2311
  %2313 = load i32, ptr %69, align 4, !tbaa !9
  %2314 = add nsw i32 %2312, %2313
  %2315 = load i32, ptr %68, align 4, !tbaa !9
  %2316 = sub nsw i32 %2314, %2315
  %2317 = add nsw i32 %2316, 1
  store i32 %2317, ptr %70, align 4, !tbaa !9
  br label %2318

2318:                                             ; preds = %2292, %2290
  %2319 = load i32, ptr %70, align 4, !tbaa !9
  %2320 = sub nsw i32 %2319, 1
  %2321 = load ptr, ptr %54, align 8, !tbaa !5
  %2322 = load i32, ptr %2321, align 4, !tbaa !9
  %2323 = sdiv i32 %2320, %2322
  %2324 = add nsw i32 %2323, 1
  store i32 %2324, ptr %65, align 4, !tbaa !9
  %2325 = load i32, ptr %70, align 4, !tbaa !9
  %2326 = load ptr, ptr %54, align 8, !tbaa !5
  %2327 = load i32, ptr %2326, align 4, !tbaa !9
  %2328 = load i32, ptr %65, align 4, !tbaa !9
  %2329 = sub nsw i32 %2328, 1
  %2330 = mul nsw i32 %2327, %2329
  %2331 = sub nsw i32 %2325, %2330
  store i32 %2331, ptr %64, align 4, !tbaa !9
  %2332 = load ptr, ptr %29, align 8, !tbaa !5
  %2333 = load ptr, ptr %30, align 8, !tbaa !5
  %2334 = load ptr, ptr %48, align 8, !tbaa !5
  %2335 = load ptr, ptr %49, align 8, !tbaa !5
  %2336 = load ptr, ptr %32, align 8, !tbaa !5
  %2337 = getelementptr inbounds i32, ptr %2336, i64 1
  %2338 = load ptr, ptr %34, align 8, !tbaa !5
  %2339 = getelementptr inbounds double, ptr %2338, i64 1
  %2340 = load ptr, ptr %40, align 8, !tbaa !5
  %2341 = getelementptr inbounds double, ptr %2340, i64 1
  %2342 = load ptr, ptr %43, align 8, !tbaa !5
  %2343 = getelementptr inbounds double, ptr %2342, i64 1
  %2344 = load ptr, ptr %55, align 8, !tbaa !5
  %2345 = getelementptr inbounds i32, ptr %2344, i64 1
  %2346 = load ptr, ptr %50, align 8, !tbaa !5
  %2347 = call double @dlatm2_(ptr noundef %2332, ptr noundef %2333, ptr noundef %68, ptr noundef %69, ptr noundef %2334, ptr noundef %2335, ptr noundef %75, ptr noundef %2337, ptr noundef %2339, ptr noundef %83, ptr noundef %2341, ptr noundef %2343, ptr noundef %87, ptr noundef %2345, ptr noundef %2346)
  %2348 = load ptr, ptr %53, align 8, !tbaa !5
  %2349 = load i32, ptr %64, align 4, !tbaa !9
  %2350 = load i32, ptr %65, align 4, !tbaa !9
  %2351 = load i32, ptr %57, align 4, !tbaa !9
  %2352 = mul nsw i32 %2350, %2351
  %2353 = add nsw i32 %2349, %2352
  %2354 = sext i32 %2353 to i64
  %2355 = getelementptr inbounds double, ptr %2348, i64 %2354
  store double %2347, ptr %2355, align 8, !tbaa !11
  br label %2356

2356:                                             ; preds = %2318
  %2357 = load i32, ptr %68, align 4, !tbaa !9
  %2358 = add nsw i32 %2357, 1
  store i32 %2358, ptr %68, align 4, !tbaa !9
  br label %2283, !llvm.loop !52

2359:                                             ; preds = %2283
  br label %2360

2360:                                             ; preds = %2359
  %2361 = load i32, ptr %69, align 4, !tbaa !9
  %2362 = add nsw i32 %2361, 1
  store i32 %2362, ptr %69, align 4, !tbaa !9
  br label %2277, !llvm.loop !53

2363:                                             ; preds = %2277
  br label %2422

2364:                                             ; preds = %2271
  store i32 0, ptr %64, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  %2365 = load ptr, ptr %30, align 8, !tbaa !5
  %2366 = load i32, ptr %2365, align 4, !tbaa !9
  store i32 %2366, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2367

2367:                                             ; preds = %2418, %2364
  %2368 = load i32, ptr %69, align 4, !tbaa !9
  %2369 = load i32, ptr %59, align 4, !tbaa !9
  %2370 = icmp sle i32 %2368, %2369
  br i1 %2370, label %2371, label %2421

2371:                                             ; preds = %2367
  %2372 = load ptr, ptr %29, align 8, !tbaa !5
  %2373 = load i32, ptr %2372, align 4, !tbaa !9
  store i32 %2373, ptr %60, align 4, !tbaa !9
  %2374 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2374, ptr %68, align 4, !tbaa !9
  br label %2375

2375:                                             ; preds = %2414, %2371
  %2376 = load i32, ptr %68, align 4, !tbaa !9
  %2377 = load i32, ptr %60, align 4, !tbaa !9
  %2378 = icmp sle i32 %2376, %2377
  br i1 %2378, label %2379, label %2417

2379:                                             ; preds = %2375
  %2380 = load i32, ptr %64, align 4, !tbaa !9
  %2381 = add nsw i32 %2380, 1
  store i32 %2381, ptr %64, align 4, !tbaa !9
  %2382 = load i32, ptr %64, align 4, !tbaa !9
  %2383 = load ptr, ptr %54, align 8, !tbaa !5
  %2384 = load i32, ptr %2383, align 4, !tbaa !9
  %2385 = icmp sgt i32 %2382, %2384
  br i1 %2385, label %2386, label %2389

2386:                                             ; preds = %2379
  store i32 1, ptr %64, align 4, !tbaa !9
  %2387 = load i32, ptr %65, align 4, !tbaa !9
  %2388 = add nsw i32 %2387, 1
  store i32 %2388, ptr %65, align 4, !tbaa !9
  br label %2389

2389:                                             ; preds = %2386, %2379
  %2390 = load ptr, ptr %29, align 8, !tbaa !5
  %2391 = load ptr, ptr %30, align 8, !tbaa !5
  %2392 = load ptr, ptr %48, align 8, !tbaa !5
  %2393 = load ptr, ptr %49, align 8, !tbaa !5
  %2394 = load ptr, ptr %32, align 8, !tbaa !5
  %2395 = getelementptr inbounds i32, ptr %2394, i64 1
  %2396 = load ptr, ptr %34, align 8, !tbaa !5
  %2397 = getelementptr inbounds double, ptr %2396, i64 1
  %2398 = load ptr, ptr %40, align 8, !tbaa !5
  %2399 = getelementptr inbounds double, ptr %2398, i64 1
  %2400 = load ptr, ptr %43, align 8, !tbaa !5
  %2401 = getelementptr inbounds double, ptr %2400, i64 1
  %2402 = load ptr, ptr %55, align 8, !tbaa !5
  %2403 = getelementptr inbounds i32, ptr %2402, i64 1
  %2404 = load ptr, ptr %50, align 8, !tbaa !5
  %2405 = call double @dlatm2_(ptr noundef %2390, ptr noundef %2391, ptr noundef %68, ptr noundef %69, ptr noundef %2392, ptr noundef %2393, ptr noundef %75, ptr noundef %2395, ptr noundef %2397, ptr noundef %83, ptr noundef %2399, ptr noundef %2401, ptr noundef %87, ptr noundef %2403, ptr noundef %2404)
  %2406 = load ptr, ptr %53, align 8, !tbaa !5
  %2407 = load i32, ptr %64, align 4, !tbaa !9
  %2408 = load i32, ptr %65, align 4, !tbaa !9
  %2409 = load i32, ptr %57, align 4, !tbaa !9
  %2410 = mul nsw i32 %2408, %2409
  %2411 = add nsw i32 %2407, %2410
  %2412 = sext i32 %2411 to i64
  %2413 = getelementptr inbounds double, ptr %2406, i64 %2412
  store double %2405, ptr %2413, align 8, !tbaa !11
  br label %2414

2414:                                             ; preds = %2389
  %2415 = load i32, ptr %68, align 4, !tbaa !9
  %2416 = add nsw i32 %2415, 1
  store i32 %2416, ptr %68, align 4, !tbaa !9
  br label %2375, !llvm.loop !54

2417:                                             ; preds = %2375
  br label %2418

2418:                                             ; preds = %2417
  %2419 = load i32, ptr %69, align 4, !tbaa !9
  %2420 = add nsw i32 %2419, 1
  store i32 %2420, ptr %69, align 4, !tbaa !9
  br label %2367, !llvm.loop !55

2421:                                             ; preds = %2367
  br label %2422

2422:                                             ; preds = %2421, %2363
  br label %2733

2423:                                             ; preds = %2268
  %2424 = load i32, ptr %72, align 4, !tbaa !9
  %2425 = icmp eq i32 %2424, 5
  br i1 %2425, label %2426, label %2497

2426:                                             ; preds = %2423
  %2427 = load ptr, ptr %30, align 8, !tbaa !5
  %2428 = load i32, ptr %2427, align 4, !tbaa !9
  store i32 %2428, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2429

2429:                                             ; preds = %2493, %2426
  %2430 = load i32, ptr %69, align 4, !tbaa !9
  %2431 = load i32, ptr %59, align 4, !tbaa !9
  %2432 = icmp sle i32 %2430, %2431
  br i1 %2432, label %2433, label %2496

2433:                                             ; preds = %2429
  %2434 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2434, ptr %60, align 4, !tbaa !9
  %2435 = load i32, ptr %69, align 4, !tbaa !9
  %2436 = load i32, ptr %89, align 4, !tbaa !9
  %2437 = sub nsw i32 %2435, %2436
  store i32 %2437, ptr %68, align 4, !tbaa !9
  br label %2438

2438:                                             ; preds = %2489, %2433
  %2439 = load i32, ptr %68, align 4, !tbaa !9
  %2440 = load i32, ptr %60, align 4, !tbaa !9
  %2441 = icmp sle i32 %2439, %2440
  br i1 %2441, label %2442, label %2492

2442:                                             ; preds = %2438
  %2443 = load i32, ptr %68, align 4, !tbaa !9
  %2444 = icmp slt i32 %2443, 1
  br i1 %2444, label %2445, label %2460

2445:                                             ; preds = %2442
  %2446 = load ptr, ptr %53, align 8, !tbaa !5
  %2447 = load i32, ptr %69, align 4, !tbaa !9
  %2448 = load i32, ptr %68, align 4, !tbaa !9
  %2449 = sub nsw i32 %2447, %2448
  %2450 = add nsw i32 %2449, 1
  %2451 = load i32, ptr %68, align 4, !tbaa !9
  %2452 = load ptr, ptr %30, align 8, !tbaa !5
  %2453 = load i32, ptr %2452, align 4, !tbaa !9
  %2454 = add nsw i32 %2451, %2453
  %2455 = load i32, ptr %57, align 4, !tbaa !9
  %2456 = mul nsw i32 %2454, %2455
  %2457 = add nsw i32 %2450, %2456
  %2458 = sext i32 %2457 to i64
  %2459 = getelementptr inbounds double, ptr %2446, i64 %2458
  store double 0.000000e+00, ptr %2459, align 8, !tbaa !11
  br label %2488

2460:                                             ; preds = %2442
  %2461 = load ptr, ptr %29, align 8, !tbaa !5
  %2462 = load ptr, ptr %30, align 8, !tbaa !5
  %2463 = load ptr, ptr %48, align 8, !tbaa !5
  %2464 = load ptr, ptr %49, align 8, !tbaa !5
  %2465 = load ptr, ptr %32, align 8, !tbaa !5
  %2466 = getelementptr inbounds i32, ptr %2465, i64 1
  %2467 = load ptr, ptr %34, align 8, !tbaa !5
  %2468 = getelementptr inbounds double, ptr %2467, i64 1
  %2469 = load ptr, ptr %40, align 8, !tbaa !5
  %2470 = getelementptr inbounds double, ptr %2469, i64 1
  %2471 = load ptr, ptr %43, align 8, !tbaa !5
  %2472 = getelementptr inbounds double, ptr %2471, i64 1
  %2473 = load ptr, ptr %55, align 8, !tbaa !5
  %2474 = getelementptr inbounds i32, ptr %2473, i64 1
  %2475 = load ptr, ptr %50, align 8, !tbaa !5
  %2476 = call double @dlatm2_(ptr noundef %2461, ptr noundef %2462, ptr noundef %68, ptr noundef %69, ptr noundef %2463, ptr noundef %2464, ptr noundef %75, ptr noundef %2466, ptr noundef %2468, ptr noundef %83, ptr noundef %2470, ptr noundef %2472, ptr noundef %87, ptr noundef %2474, ptr noundef %2475)
  %2477 = load ptr, ptr %53, align 8, !tbaa !5
  %2478 = load i32, ptr %69, align 4, !tbaa !9
  %2479 = load i32, ptr %68, align 4, !tbaa !9
  %2480 = sub nsw i32 %2478, %2479
  %2481 = add nsw i32 %2480, 1
  %2482 = load i32, ptr %68, align 4, !tbaa !9
  %2483 = load i32, ptr %57, align 4, !tbaa !9
  %2484 = mul nsw i32 %2482, %2483
  %2485 = add nsw i32 %2481, %2484
  %2486 = sext i32 %2485 to i64
  %2487 = getelementptr inbounds double, ptr %2477, i64 %2486
  store double %2476, ptr %2487, align 8, !tbaa !11
  br label %2488

2488:                                             ; preds = %2460, %2445
  br label %2489

2489:                                             ; preds = %2488
  %2490 = load i32, ptr %68, align 4, !tbaa !9
  %2491 = add nsw i32 %2490, 1
  store i32 %2491, ptr %68, align 4, !tbaa !9
  br label %2438, !llvm.loop !56

2492:                                             ; preds = %2438
  br label %2493

2493:                                             ; preds = %2492
  %2494 = load i32, ptr %69, align 4, !tbaa !9
  %2495 = add nsw i32 %2494, 1
  store i32 %2495, ptr %69, align 4, !tbaa !9
  br label %2429, !llvm.loop !57

2496:                                             ; preds = %2429
  br label %2732

2497:                                             ; preds = %2423
  %2498 = load i32, ptr %72, align 4, !tbaa !9
  %2499 = icmp eq i32 %2498, 6
  br i1 %2499, label %2500, label %2554

2500:                                             ; preds = %2497
  %2501 = load ptr, ptr %30, align 8, !tbaa !5
  %2502 = load i32, ptr %2501, align 4, !tbaa !9
  store i32 %2502, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2503

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

2507:                                             ; preds = %2503
  %2508 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2508, ptr %60, align 4, !tbaa !9
  %2509 = load i32, ptr %69, align 4, !tbaa !9
  %2510 = load i32, ptr %89, align 4, !tbaa !9
  %2511 = sub nsw i32 %2509, %2510
  store i32 %2511, ptr %68, align 4, !tbaa !9
  br label %2512

2512:                                             ; preds = %2546, %2507
  %2513 = load i32, ptr %68, align 4, !tbaa !9
  %2514 = load i32, ptr %60, align 4, !tbaa !9
  %2515 = icmp sle i32 %2513, %2514
  br i1 %2515, label %2516, label %2549

2516:                                             ; preds = %2512
  %2517 = load ptr, ptr %29, align 8, !tbaa !5
  %2518 = load ptr, ptr %30, align 8, !tbaa !5
  %2519 = load ptr, ptr %48, align 8, !tbaa !5
  %2520 = load ptr, ptr %49, align 8, !tbaa !5
  %2521 = load ptr, ptr %32, align 8, !tbaa !5
  %2522 = getelementptr inbounds i32, ptr %2521, i64 1
  %2523 = load ptr, ptr %34, align 8, !tbaa !5
  %2524 = getelementptr inbounds double, ptr %2523, i64 1
  %2525 = load ptr, ptr %40, align 8, !tbaa !5
  %2526 = getelementptr inbounds double, ptr %2525, i64 1
  %2527 = load ptr, ptr %43, align 8, !tbaa !5
  %2528 = getelementptr inbounds double, ptr %2527, i64 1
  %2529 = load ptr, ptr %55, align 8, !tbaa !5
  %2530 = getelementptr inbounds i32, ptr %2529, i64 1
  %2531 = load ptr, ptr %50, align 8, !tbaa !5
  %2532 = call double @dlatm2_(ptr noundef %2517, ptr noundef %2518, ptr noundef %68, ptr noundef %69, ptr noundef %2519, ptr noundef %2520, ptr noundef %75, ptr noundef %2522, ptr noundef %2524, ptr noundef %83, ptr noundef %2526, ptr noundef %2528, ptr noundef %87, ptr noundef %2530, ptr noundef %2531)
  %2533 = load ptr, ptr %53, align 8, !tbaa !5
  %2534 = load i32, ptr %68, align 4, !tbaa !9
  %2535 = load i32, ptr %69, align 4, !tbaa !9
  %2536 = sub nsw i32 %2534, %2535
  %2537 = load i32, ptr %89, align 4, !tbaa !9
  %2538 = add nsw i32 %2536, %2537
  %2539 = add nsw i32 %2538, 1
  %2540 = load i32, ptr %69, align 4, !tbaa !9
  %2541 = load i32, ptr %57, 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 %2533, i64 %2544
  store double %2532, ptr %2545, align 8, !tbaa !11
  br label %2546

2546:                                             ; preds = %2516
  %2547 = load i32, ptr %68, align 4, !tbaa !9
  %2548 = add nsw i32 %2547, 1
  store i32 %2548, ptr %68, align 4, !tbaa !9
  br label %2512, !llvm.loop !58

2549:                                             ; preds = %2512
  br label %2550

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

2553:                                             ; preds = %2503
  br label %2731

2554:                                             ; preds = %2497
  %2555 = load i32, ptr %72, align 4, !tbaa !9
  %2556 = icmp eq i32 %2555, 7
  br i1 %2556, label %2557, label %2730

2557:                                             ; preds = %2554
  %2558 = load i32, ptr %67, align 4, !tbaa !9
  %2559 = icmp eq i32 %2558, 0
  br i1 %2559, label %2560, label %2669

2560:                                             ; preds = %2557
  %2561 = load ptr, ptr %30, align 8, !tbaa !5
  %2562 = load i32, ptr %2561, align 4, !tbaa !9
  store i32 %2562, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2563

2563:                                             ; preds = %2665, %2560
  %2564 = load i32, ptr %69, align 4, !tbaa !9
  %2565 = load i32, ptr %59, align 4, !tbaa !9
  %2566 = icmp sle i32 %2564, %2565
  br i1 %2566, label %2567, label %2668

2567:                                             ; preds = %2563
  %2568 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2568, ptr %60, align 4, !tbaa !9
  %2569 = load i32, ptr %69, align 4, !tbaa !9
  %2570 = load i32, ptr %89, align 4, !tbaa !9
  %2571 = sub nsw i32 %2569, %2570
  store i32 %2571, ptr %68, align 4, !tbaa !9
  br label %2572

2572:                                             ; preds = %2661, %2567
  %2573 = load i32, ptr %68, align 4, !tbaa !9
  %2574 = load i32, ptr %60, align 4, !tbaa !9
  %2575 = icmp sle i32 %2573, %2574
  br i1 %2575, label %2576, label %2664

2576:                                             ; preds = %2572
  %2577 = load ptr, ptr %29, align 8, !tbaa !5
  %2578 = load ptr, ptr %30, align 8, !tbaa !5
  %2579 = load ptr, ptr %48, align 8, !tbaa !5
  %2580 = load ptr, ptr %49, align 8, !tbaa !5
  %2581 = load ptr, ptr %32, align 8, !tbaa !5
  %2582 = getelementptr inbounds i32, ptr %2581, i64 1
  %2583 = load ptr, ptr %34, align 8, !tbaa !5
  %2584 = getelementptr inbounds double, ptr %2583, i64 1
  %2585 = load ptr, ptr %40, align 8, !tbaa !5
  %2586 = getelementptr inbounds double, ptr %2585, i64 1
  %2587 = load ptr, ptr %43, align 8, !tbaa !5
  %2588 = getelementptr inbounds double, ptr %2587, i64 1
  %2589 = load ptr, ptr %55, align 8, !tbaa !5
  %2590 = getelementptr inbounds i32, ptr %2589, i64 1
  %2591 = load ptr, ptr %50, align 8, !tbaa !5
  %2592 = call double @dlatm2_(ptr noundef %2577, ptr noundef %2578, ptr noundef %68, ptr noundef %69, ptr noundef %2579, ptr noundef %2580, ptr noundef %75, ptr noundef %2582, ptr noundef %2584, ptr noundef %83, ptr noundef %2586, ptr noundef %2588, ptr noundef %87, ptr noundef %2590, ptr noundef %2591)
  %2593 = load ptr, ptr %53, align 8, !tbaa !5
  %2594 = load i32, ptr %68, align 4, !tbaa !9
  %2595 = load i32, ptr %69, align 4, !tbaa !9
  %2596 = sub nsw i32 %2594, %2595
  %2597 = load i32, ptr %89, align 4, !tbaa !9
  %2598 = add nsw i32 %2596, %2597
  %2599 = add nsw i32 %2598, 1
  %2600 = load i32, ptr %69, align 4, !tbaa !9
  %2601 = load i32, ptr %57, align 4, !tbaa !9
  %2602 = mul nsw i32 %2600, %2601
  %2603 = add nsw i32 %2599, %2602
  %2604 = sext i32 %2603 to i64
  %2605 = getelementptr inbounds double, ptr %2593, i64 %2604
  store double %2592, ptr %2605, align 8, !tbaa !11
  %2606 = load i32, ptr %68, align 4, !tbaa !9
  %2607 = icmp slt i32 %2606, 1
  br i1 %2607, label %2608, label %2625

2608:                                             ; preds = %2576
  %2609 = load ptr, ptr %53, align 8, !tbaa !5
  %2610 = load i32, ptr %69, align 4, !tbaa !9
  %2611 = load i32, ptr %68, align 4, !tbaa !9
  %2612 = sub nsw i32 %2610, %2611
  %2613 = add nsw i32 %2612, 1
  %2614 = load i32, ptr %89, align 4, !tbaa !9
  %2615 = add nsw i32 %2613, %2614
  %2616 = load i32, ptr %68, align 4, !tbaa !9
  %2617 = load ptr, ptr %30, align 8, !tbaa !5
  %2618 = load i32, ptr %2617, align 4, !tbaa !9
  %2619 = add nsw i32 %2616, %2618
  %2620 = load i32, ptr %57, align 4, !tbaa !9
  %2621 = mul nsw i32 %2619, %2620
  %2622 = add nsw i32 %2615, %2621
  %2623 = sext i32 %2622 to i64
  %2624 = getelementptr inbounds double, ptr %2609, i64 %2623
  store double 0.000000e+00, ptr %2624, align 8, !tbaa !11
  br label %2625

2625:                                             ; preds = %2608, %2576
  %2626 = load i32, ptr %68, align 4, !tbaa !9
  %2627 = icmp sge i32 %2626, 1
  br i1 %2627, label %2628, label %2660

2628:                                             ; preds = %2625
  %2629 = load i32, ptr %68, align 4, !tbaa !9
  %2630 = load i32, ptr %69, align 4, !tbaa !9
  %2631 = icmp ne i32 %2629, %2630
  br i1 %2631, label %2632, label %2660

2632:                                             ; preds = %2628
  %2633 = load ptr, ptr %53, align 8, !tbaa !5
  %2634 = load i32, ptr %68, align 4, !tbaa !9
  %2635 = load i32, ptr %69, align 4, !tbaa !9
  %2636 = sub nsw i32 %2634, %2635
  %2637 = load i32, ptr %89, align 4, !tbaa !9
  %2638 = add nsw i32 %2636, %2637
  %2639 = add nsw i32 %2638, 1
  %2640 = load i32, ptr %69, align 4, !tbaa !9
  %2641 = load i32, ptr %57, align 4, !tbaa !9
  %2642 = mul nsw i32 %2640, %2641
  %2643 = add nsw i32 %2639, %2642
  %2644 = sext i32 %2643 to i64
  %2645 = getelementptr inbounds double, ptr %2633, i64 %2644
  %2646 = load double, ptr %2645, align 8, !tbaa !11
  %2647 = load ptr, ptr %53, align 8, !tbaa !5
  %2648 = load i32, ptr %69, align 4, !tbaa !9
  %2649 = load i32, ptr %68, align 4, !tbaa !9
  %2650 = sub nsw i32 %2648, %2649
  %2651 = add nsw i32 %2650, 1
  %2652 = load i32, ptr %89, align 4, !tbaa !9
  %2653 = add nsw i32 %2651, %2652
  %2654 = load i32, ptr %68, align 4, !tbaa !9
  %2655 = load i32, ptr %57, align 4, !tbaa !9
  %2656 = mul nsw i32 %2654, %2655
  %2657 = add nsw i32 %2653, %2656
  %2658 = sext i32 %2657 to i64
  %2659 = getelementptr inbounds double, ptr %2647, i64 %2658
  store double %2646, ptr %2659, align 8, !tbaa !11
  br label %2660

2660:                                             ; preds = %2632, %2628, %2625
  br label %2661

2661:                                             ; preds = %2660
  %2662 = load i32, ptr %68, align 4, !tbaa !9
  %2663 = add nsw i32 %2662, 1
  store i32 %2663, ptr %68, align 4, !tbaa !9
  br label %2572, !llvm.loop !60

2664:                                             ; preds = %2572
  br label %2665

2665:                                             ; preds = %2664
  %2666 = load i32, ptr %69, align 4, !tbaa !9
  %2667 = add nsw i32 %2666, 1
  store i32 %2667, ptr %69, align 4, !tbaa !9
  br label %2563, !llvm.loop !61

2668:                                             ; preds = %2563
  br label %2729

2669:                                             ; preds = %2557
  %2670 = load i32, ptr %67, align 4, !tbaa !9
  %2671 = icmp eq i32 %2670, 1
  br i1 %2671, label %2672, label %2728

2672:                                             ; preds = %2669
  %2673 = load ptr, ptr %30, align 8, !tbaa !5
  %2674 = load i32, ptr %2673, align 4, !tbaa !9
  store i32 %2674, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2675

2675:                                             ; preds = %2724, %2672
  %2676 = load i32, ptr %69, align 4, !tbaa !9
  %2677 = load i32, ptr %59, align 4, !tbaa !9
  %2678 = icmp sle i32 %2676, %2677
  br i1 %2678, label %2679, label %2727

2679:                                             ; preds = %2675
  %2680 = load i32, ptr %69, align 4, !tbaa !9
  %2681 = load i32, ptr %88, align 4, !tbaa !9
  %2682 = add nsw i32 %2680, %2681
  store i32 %2682, ptr %60, align 4, !tbaa !9
  %2683 = load i32, ptr %69, align 4, !tbaa !9
  %2684 = load i32, ptr %89, align 4, !tbaa !9
  %2685 = sub nsw i32 %2683, %2684
  store i32 %2685, ptr %68, align 4, !tbaa !9
  br label %2686

2686:                                             ; preds = %2720, %2679
  %2687 = load i32, ptr %68, align 4, !tbaa !9
  %2688 = load i32, ptr %60, align 4, !tbaa !9
  %2689 = icmp sle i32 %2687, %2688
  br i1 %2689, label %2690, label %2723

2690:                                             ; preds = %2686
  %2691 = load ptr, ptr %29, align 8, !tbaa !5
  %2692 = load ptr, ptr %30, align 8, !tbaa !5
  %2693 = load ptr, ptr %48, align 8, !tbaa !5
  %2694 = load ptr, ptr %49, align 8, !tbaa !5
  %2695 = load ptr, ptr %32, align 8, !tbaa !5
  %2696 = getelementptr inbounds i32, ptr %2695, i64 1
  %2697 = load ptr, ptr %34, align 8, !tbaa !5
  %2698 = getelementptr inbounds double, ptr %2697, i64 1
  %2699 = load ptr, ptr %40, align 8, !tbaa !5
  %2700 = getelementptr inbounds double, ptr %2699, i64 1
  %2701 = load ptr, ptr %43, align 8, !tbaa !5
  %2702 = getelementptr inbounds double, ptr %2701, i64 1
  %2703 = load ptr, ptr %55, align 8, !tbaa !5
  %2704 = getelementptr inbounds i32, ptr %2703, i64 1
  %2705 = load ptr, ptr %50, align 8, !tbaa !5
  %2706 = call double @dlatm2_(ptr noundef %2691, ptr noundef %2692, ptr noundef %68, ptr noundef %69, ptr noundef %2693, ptr noundef %2694, ptr noundef %75, ptr noundef %2696, ptr noundef %2698, ptr noundef %83, ptr noundef %2700, ptr noundef %2702, ptr noundef %87, ptr noundef %2704, ptr noundef %2705)
  %2707 = load ptr, ptr %53, align 8, !tbaa !5
  %2708 = load i32, ptr %68, align 4, !tbaa !9
  %2709 = load i32, ptr %69, align 4, !tbaa !9
  %2710 = sub nsw i32 %2708, %2709
  %2711 = load i32, ptr %89, align 4, !tbaa !9
  %2712 = add nsw i32 %2710, %2711
  %2713 = add nsw i32 %2712, 1
  %2714 = load i32, ptr %69, align 4, !tbaa !9
  %2715 = load i32, ptr %57, align 4, !tbaa !9
  %2716 = mul nsw i32 %2714, %2715
  %2717 = add nsw i32 %2713, %2716
  %2718 = sext i32 %2717 to i64
  %2719 = getelementptr inbounds double, ptr %2707, i64 %2718
  store double %2706, ptr %2719, align 8, !tbaa !11
  br label %2720

2720:                                             ; preds = %2690
  %2721 = load i32, ptr %68, align 4, !tbaa !9
  %2722 = add nsw i32 %2721, 1
  store i32 %2722, ptr %68, align 4, !tbaa !9
  br label %2686, !llvm.loop !62

2723:                                             ; preds = %2686
  br label %2724

2724:                                             ; preds = %2723
  %2725 = load i32, ptr %69, align 4, !tbaa !9
  %2726 = add nsw i32 %2725, 1
  store i32 %2726, ptr %69, align 4, !tbaa !9
  br label %2675, !llvm.loop !63

2727:                                             ; preds = %2675
  br label %2728

2728:                                             ; preds = %2727, %2669
  br label %2729

2729:                                             ; preds = %2728, %2668
  br label %2730

2730:                                             ; preds = %2729, %2554
  br label %2731

2731:                                             ; preds = %2730, %2553
  br label %2732

2732:                                             ; preds = %2731, %2496
  br label %2733

2733:                                             ; preds = %2732, %2422
  br label %2734

2734:                                             ; preds = %2733, %2267
  br label %2735

2735:                                             ; preds = %2734, %2208
  br label %2736

2736:                                             ; preds = %2735, %2146
  br label %2737

2737:                                             ; preds = %2736, %2084
  br label %2738

2738:                                             ; preds = %2737, %1963
  %2739 = load i32, ptr %72, align 4, !tbaa !9
  %2740 = icmp eq i32 %2739, 0
  br i1 %2740, label %2741, label %2751

2741:                                             ; preds = %2738
  %2742 = load ptr, ptr %29, align 8, !tbaa !5
  %2743 = load ptr, ptr %30, align 8, !tbaa !5
  %2744 = load ptr, ptr %53, align 8, !tbaa !5
  %2745 = load i32, ptr %58, align 4, !tbaa !9
  %2746 = sext i32 %2745 to i64
  %2747 = getelementptr inbounds double, ptr %2744, i64 %2746
  %2748 = load ptr, ptr %54, align 8, !tbaa !5
  %2749 = getelementptr inbounds [1 x double], ptr %73, i64 0, i64 0
  %2750 = call double @dlange_(ptr noundef @.str.15, ptr noundef %2742, ptr noundef %2743, ptr noundef %2747, ptr noundef %2748, ptr noundef %2749)
  store double %2750, ptr %80, align 8, !tbaa !11
  br label %2840

2751:                                             ; preds = %2738
  %2752 = load i32, ptr %72, align 4, !tbaa !9
  %2753 = icmp eq i32 %2752, 1
  br i1 %2753, label %2754, label %2763

2754:                                             ; preds = %2751
  %2755 = load ptr, ptr %30, align 8, !tbaa !5
  %2756 = load ptr, ptr %53, align 8, !tbaa !5
  %2757 = load i32, ptr %58, align 4, !tbaa !9
  %2758 = sext i32 %2757 to i64
  %2759 = getelementptr inbounds double, ptr %2756, i64 %2758
  %2760 = load ptr, ptr %54, align 8, !tbaa !5
  %2761 = getelementptr inbounds [1 x double], ptr %73, i64 0, i64 0
  %2762 = call double @dlansy_(ptr noundef @.str.15, ptr noundef @.str, ptr noundef %2755, ptr noundef %2759, ptr noundef %2760, ptr noundef %2761)
  store double %2762, ptr %80, align 8, !tbaa !11
  br label %2839

2763:                                             ; preds = %2751
  %2764 = load i32, ptr %72, align 4, !tbaa !9
  %2765 = icmp eq i32 %2764, 2
  br i1 %2765, label %2766, label %2775

2766:                                             ; preds = %2763
  %2767 = load ptr, ptr %30, align 8, !tbaa !5
  %2768 = load ptr, ptr %53, align 8, !tbaa !5
  %2769 = load i32, ptr %58, align 4, !tbaa !9
  %2770 = sext i32 %2769 to i64
  %2771 = getelementptr inbounds double, ptr %2768, i64 %2770
  %2772 = load ptr, ptr %54, align 8, !tbaa !5
  %2773 = getelementptr inbounds [1 x double], ptr %73, i64 0, i64 0
  %2774 = call double @dlansy_(ptr noundef @.str.15, ptr noundef @.str.7, ptr noundef %2767, ptr noundef %2771, ptr noundef %2772, ptr noundef %2773)
  store double %2774, ptr %80, align 8, !tbaa !11
  br label %2838

2775:                                             ; preds = %2763
  %2776 = load i32, ptr %72, align 4, !tbaa !9
  %2777 = icmp eq i32 %2776, 3
  br i1 %2777, label %2778, label %2786

2778:                                             ; preds = %2775
  %2779 = load ptr, ptr %30, align 8, !tbaa !5
  %2780 = load ptr, ptr %53, align 8, !tbaa !5
  %2781 = load i32, ptr %58, align 4, !tbaa !9
  %2782 = sext i32 %2781 to i64
  %2783 = getelementptr inbounds double, ptr %2780, i64 %2782
  %2784 = getelementptr inbounds [1 x double], ptr %73, i64 0, i64 0
  %2785 = call double @dlansp_(ptr noundef @.str.15, ptr noundef @.str, ptr noundef %2779, ptr noundef %2783, ptr noundef %2784)
  store double %2785, ptr %80, align 8, !tbaa !11
  br label %2837

2786:                                             ; preds = %2775
  %2787 = load i32, ptr %72, align 4, !tbaa !9
  %2788 = icmp eq i32 %2787, 4
  br i1 %2788, label %2789, label %2797

2789:                                             ; preds = %2786
  %2790 = load ptr, ptr %30, align 8, !tbaa !5
  %2791 = load ptr, ptr %53, align 8, !tbaa !5
  %2792 = load i32, ptr %58, align 4, !tbaa !9
  %2793 = sext i32 %2792 to i64
  %2794 = getelementptr inbounds double, ptr %2791, i64 %2793
  %2795 = getelementptr inbounds [1 x double], ptr %73, i64 0, i64 0
  %2796 = call double @dlansp_(ptr noundef @.str.15, ptr noundef @.str.7, ptr noundef %2790, ptr noundef %2794, ptr noundef %2795)
  store double %2796, ptr %80, align 8, !tbaa !11
  br label %2836

2797:                                             ; preds = %2786
  %2798 = load i32, ptr %72, align 4, !tbaa !9
  %2799 = icmp eq i32 %2798, 5
  br i1 %2799, label %2800, label %2809

2800:                                             ; preds = %2797
  %2801 = load ptr, ptr %30, align 8, !tbaa !5
  %2802 = load ptr, ptr %53, align 8, !tbaa !5
  %2803 = load i32, ptr %58, align 4, !tbaa !9
  %2804 = sext i32 %2803 to i64
  %2805 = getelementptr inbounds double, ptr %2802, i64 %2804
  %2806 = load ptr, ptr %54, align 8, !tbaa !5
  %2807 = getelementptr inbounds [1 x double], ptr %73, i64 0, i64 0
  %2808 = call double @dlansb_(ptr noundef @.str.15, ptr noundef @.str.7, ptr noundef %2801, ptr noundef %88, ptr noundef %2805, ptr noundef %2806, ptr noundef %2807)
  store double %2808, ptr %80, align 8, !tbaa !11
  br label %2835

2809:                                             ; preds = %2797
  %2810 = load i32, ptr %72, align 4, !tbaa !9
  %2811 = icmp eq i32 %2810, 6
  br i1 %2811, label %2812, label %2821

2812:                                             ; preds = %2809
  %2813 = load ptr, ptr %30, align 8, !tbaa !5
  %2814 = load ptr, ptr %53, align 8, !tbaa !5
  %2815 = load i32, ptr %58, align 4, !tbaa !9
  %2816 = sext i32 %2815 to i64
  %2817 = getelementptr inbounds double, ptr %2814, i64 %2816
  %2818 = load ptr, ptr %54, align 8, !tbaa !5
  %2819 = getelementptr inbounds [1 x double], ptr %73, i64 0, i64 0
  %2820 = call double @dlansb_(ptr noundef @.str.15, ptr noundef @.str, ptr noundef %2813, ptr noundef %89, ptr noundef %2817, ptr noundef %2818, ptr noundef %2819)
  store double %2820, ptr %80, align 8, !tbaa !11
  br label %2834

2821:                                             ; preds = %2809
  %2822 = load i32, ptr %72, align 4, !tbaa !9
  %2823 = icmp eq i32 %2822, 7
  br i1 %2823, label %2824, label %2833

2824:                                             ; preds = %2821
  %2825 = load ptr, ptr %30, align 8, !tbaa !5
  %2826 = load ptr, ptr %53, align 8, !tbaa !5
  %2827 = load i32, ptr %58, align 4, !tbaa !9
  %2828 = sext i32 %2827 to i64
  %2829 = getelementptr inbounds double, ptr %2826, i64 %2828
  %2830 = load ptr, ptr %54, align 8, !tbaa !5
  %2831 = getelementptr inbounds [1 x double], ptr %73, i64 0, i64 0
  %2832 = call double @dlangb_(ptr noundef @.str.15, ptr noundef %2825, ptr noundef %88, ptr noundef %89, ptr noundef %2829, ptr noundef %2830, ptr noundef %2831)
  store double %2832, ptr %80, align 8, !tbaa !11
  br label %2833

2833:                                             ; preds = %2824, %2821
  br label %2834

2834:                                             ; preds = %2833, %2812
  br label %2835

2835:                                             ; preds = %2834, %2800
  br label %2836

2836:                                             ; preds = %2835, %2789
  br label %2837

2837:                                             ; preds = %2836, %2778
  br label %2838

2838:                                             ; preds = %2837, %2766
  br label %2839

2839:                                             ; preds = %2838, %2754
  br label %2840

2840:                                             ; preds = %2839, %2741
  %2841 = load ptr, ptr %51, align 8, !tbaa !5
  %2842 = load double, ptr %2841, align 8, !tbaa !11
  %2843 = fcmp oge double %2842, 0.000000e+00
  br i1 %2843, label %2844, label %3060

2844:                                             ; preds = %2840
  %2845 = load ptr, ptr %51, align 8, !tbaa !5
  %2846 = load double, ptr %2845, align 8, !tbaa !11
  %2847 = fcmp ogt double %2846, 0.000000e+00
  br i1 %2847, label %2848, label %2853

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

2851:                                             ; preds = %2848
  %2852 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 5, ptr %2852, align 4, !tbaa !9
  store i32 1, ptr %90, align 4
  br label %3061

2853:                                             ; preds = %2848, %2844
  %2854 = load ptr, ptr %51, align 8, !tbaa !5
  %2855 = load double, ptr %2854, align 8, !tbaa !11
  %2856 = fcmp ogt double %2855, 1.000000e+00
  br i1 %2856, label %2857, label %2860

2857:                                             ; preds = %2853
  %2858 = load double, ptr %80, align 8, !tbaa !11
  %2859 = fcmp olt double %2858, 1.000000e+00
  br i1 %2859, label %2867, label %2860

2860:                                             ; preds = %2857, %2853
  %2861 = load ptr, ptr %51, align 8, !tbaa !5
  %2862 = load double, ptr %2861, align 8, !tbaa !11
  %2863 = fcmp olt double %2862, 1.000000e+00
  br i1 %2863, label %2864, label %2976

2864:                                             ; preds = %2860
  %2865 = load double, ptr %80, align 8, !tbaa !11
  %2866 = fcmp ogt double %2865, 1.000000e+00
  br i1 %2866, label %2867, label %2976

2867:                                             ; preds = %2864, %2857
  %2868 = load i32, ptr %72, align 4, !tbaa !9
  %2869 = icmp sle i32 %2868, 2
  br i1 %2869, label %2870, label %2901

2870:                                             ; preds = %2867
  %2871 = load ptr, ptr %30, align 8, !tbaa !5
  %2872 = load i32, ptr %2871, align 4, !tbaa !9
  store i32 %2872, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2873

2873:                                             ; preds = %2897, %2870
  %2874 = load i32, ptr %69, align 4, !tbaa !9
  %2875 = load i32, ptr %59, align 4, !tbaa !9
  %2876 = icmp sle i32 %2874, %2875
  br i1 %2876, label %2877, label %2900

2877:                                             ; preds = %2873
  %2878 = load double, ptr %80, align 8, !tbaa !11
  %2879 = fdiv double 1.000000e+00, %2878
  store double %2879, ptr %61, align 8, !tbaa !11
  %2880 = load ptr, ptr %29, align 8, !tbaa !5
  %2881 = load ptr, ptr %53, align 8, !tbaa !5
  %2882 = load i32, ptr %69, align 4, !tbaa !9
  %2883 = load i32, ptr %57, align 4, !tbaa !9
  %2884 = mul nsw i32 %2882, %2883
  %2885 = add nsw i32 %2884, 1
  %2886 = sext i32 %2885 to i64
  %2887 = getelementptr inbounds double, ptr %2881, i64 %2886
  call void @dscal_(ptr noundef %2880, ptr noundef %61, ptr noundef %2887, ptr noundef @c__1)
  %2888 = load ptr, ptr %29, align 8, !tbaa !5
  %2889 = load ptr, ptr %51, align 8, !tbaa !5
  %2890 = load ptr, ptr %53, align 8, !tbaa !5
  %2891 = load i32, ptr %69, align 4, !tbaa !9
  %2892 = load i32, ptr %57, align 4, !tbaa !9
  %2893 = mul nsw i32 %2891, %2892
  %2894 = add nsw i32 %2893, 1
  %2895 = sext i32 %2894 to i64
  %2896 = getelementptr inbounds double, ptr %2890, i64 %2895
  call void @dscal_(ptr noundef %2888, ptr noundef %2889, ptr noundef %2896, ptr noundef @c__1)
  br label %2897

2897:                                             ; preds = %2877
  %2898 = load i32, ptr %69, align 4, !tbaa !9
  %2899 = add nsw i32 %2898, 1
  store i32 %2899, ptr %69, align 4, !tbaa !9
  br label %2873, !llvm.loop !64

2900:                                             ; preds = %2873
  br label %2975

2901:                                             ; preds = %2867
  %2902 = load i32, ptr %72, align 4, !tbaa !9
  %2903 = icmp eq i32 %2902, 3
  br i1 %2903, label %2907, label %2904

2904:                                             ; preds = %2901
  %2905 = load i32, ptr %72, align 4, !tbaa !9
  %2906 = icmp eq i32 %2905, 4
  br i1 %2906, label %2907, label %2933

2907:                                             ; preds = %2904, %2901
  %2908 = load ptr, ptr %30, align 8, !tbaa !5
  %2909 = load i32, ptr %2908, align 4, !tbaa !9
  %2910 = load ptr, ptr %30, align 8, !tbaa !5
  %2911 = load i32, ptr %2910, align 4, !tbaa !9
  %2912 = add nsw i32 %2911, 1
  %2913 = mul nsw i32 %2909, %2912
  %2914 = sdiv i32 %2913, 2
  store i32 %2914, ptr %59, align 4, !tbaa !9
  %2915 = load double, ptr %80, align 8, !tbaa !11
  %2916 = fdiv double 1.000000e+00, %2915
  store double %2916, ptr %61, align 8, !tbaa !11
  %2917 = load ptr, ptr %53, align 8, !tbaa !5
  %2918 = load i32, ptr %58, align 4, !tbaa !9
  %2919 = sext i32 %2918 to i64
  %2920 = getelementptr inbounds double, ptr %2917, i64 %2919
  call void @dscal_(ptr noundef %59, ptr noundef %61, ptr noundef %2920, ptr noundef @c__1)
  %2921 = load ptr, ptr %30, align 8, !tbaa !5
  %2922 = load i32, ptr %2921, align 4, !tbaa !9
  %2923 = load ptr, ptr %30, align 8, !tbaa !5
  %2924 = load i32, ptr %2923, align 4, !tbaa !9
  %2925 = add nsw i32 %2924, 1
  %2926 = mul nsw i32 %2922, %2925
  %2927 = sdiv i32 %2926, 2
  store i32 %2927, ptr %59, align 4, !tbaa !9
  %2928 = load ptr, ptr %51, align 8, !tbaa !5
  %2929 = load ptr, ptr %53, align 8, !tbaa !5
  %2930 = load i32, ptr %58, align 4, !tbaa !9
  %2931 = sext i32 %2930 to i64
  %2932 = getelementptr inbounds double, ptr %2929, i64 %2931
  call void @dscal_(ptr noundef %59, ptr noundef %2928, ptr noundef %2932, ptr noundef @c__1)
  br label %2974

2933:                                             ; preds = %2904
  %2934 = load i32, ptr %72, align 4, !tbaa !9
  %2935 = icmp sge i32 %2934, 5
  br i1 %2935, label %2936, label %2973

2936:                                             ; preds = %2933
  %2937 = load ptr, ptr %30, align 8, !tbaa !5
  %2938 = load i32, ptr %2937, align 4, !tbaa !9
  store i32 %2938, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2939

2939:                                             ; preds = %2969, %2936
  %2940 = load i32, ptr %69, align 4, !tbaa !9
  %2941 = load i32, ptr %59, align 4, !tbaa !9
  %2942 = icmp sle i32 %2940, %2941
  br i1 %2942, label %2943, label %2972

2943:                                             ; preds = %2939
  %2944 = load i32, ptr %88, align 4, !tbaa !9
  %2945 = load i32, ptr %89, align 4, !tbaa !9
  %2946 = add nsw i32 %2944, %2945
  %2947 = add nsw i32 %2946, 1
  store i32 %2947, ptr %60, align 4, !tbaa !9
  %2948 = load double, ptr %80, align 8, !tbaa !11
  %2949 = fdiv double 1.000000e+00, %2948
  store double %2949, ptr %61, align 8, !tbaa !11
  %2950 = load ptr, ptr %53, align 8, !tbaa !5
  %2951 = load i32, ptr %69, align 4, !tbaa !9
  %2952 = load i32, ptr %57, align 4, !tbaa !9
  %2953 = mul nsw i32 %2951, %2952
  %2954 = add nsw i32 %2953, 1
  %2955 = sext i32 %2954 to i64
  %2956 = getelementptr inbounds double, ptr %2950, i64 %2955
  call void @dscal_(ptr noundef %60, ptr noundef %61, ptr noundef %2956, ptr noundef @c__1)
  %2957 = load i32, ptr %88, align 4, !tbaa !9
  %2958 = load i32, ptr %89, align 4, !tbaa !9
  %2959 = add nsw i32 %2957, %2958
  %2960 = add nsw i32 %2959, 1
  store i32 %2960, ptr %60, align 4, !tbaa !9
  %2961 = load ptr, ptr %51, align 8, !tbaa !5
  %2962 = load ptr, ptr %53, align 8, !tbaa !5
  %2963 = load i32, ptr %69, align 4, !tbaa !9
  %2964 = load i32, ptr %57, align 4, !tbaa !9
  %2965 = mul nsw i32 %2963, %2964
  %2966 = add nsw i32 %2965, 1
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds double, ptr %2962, i64 %2967
  call void @dscal_(ptr noundef %60, ptr noundef %2961, ptr noundef %2968, ptr noundef @c__1)
  br label %2969

2969:                                             ; preds = %2943
  %2970 = load i32, ptr %69, align 4, !tbaa !9
  %2971 = add nsw i32 %2970, 1
  store i32 %2971, ptr %69, align 4, !tbaa !9
  br label %2939, !llvm.loop !65

2972:                                             ; preds = %2939
  br label %2973

2973:                                             ; preds = %2972, %2933
  br label %2974

2974:                                             ; preds = %2973, %2907
  br label %2975

2975:                                             ; preds = %2974, %2900
  br label %3058

2976:                                             ; preds = %2864, %2860
  %2977 = load i32, ptr %72, align 4, !tbaa !9
  %2978 = icmp sle i32 %2977, 2
  br i1 %2978, label %2979, label %3003

2979:                                             ; preds = %2976
  %2980 = load ptr, ptr %30, align 8, !tbaa !5
  %2981 = load i32, ptr %2980, align 4, !tbaa !9
  store i32 %2981, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %2982

2982:                                             ; preds = %2999, %2979
  %2983 = load i32, ptr %69, align 4, !tbaa !9
  %2984 = load i32, ptr %59, align 4, !tbaa !9
  %2985 = icmp sle i32 %2983, %2984
  br i1 %2985, label %2986, label %3002

2986:                                             ; preds = %2982
  %2987 = load ptr, ptr %51, align 8, !tbaa !5
  %2988 = load double, ptr %2987, align 8, !tbaa !11
  %2989 = load double, ptr %80, align 8, !tbaa !11
  %2990 = fdiv double %2988, %2989
  store double %2990, ptr %61, align 8, !tbaa !11
  %2991 = load ptr, ptr %29, align 8, !tbaa !5
  %2992 = load ptr, ptr %53, align 8, !tbaa !5
  %2993 = load i32, ptr %69, align 4, !tbaa !9
  %2994 = load i32, ptr %57, align 4, !tbaa !9
  %2995 = mul nsw i32 %2993, %2994
  %2996 = add nsw i32 %2995, 1
  %2997 = sext i32 %2996 to i64
  %2998 = getelementptr inbounds double, ptr %2992, i64 %2997
  call void @dscal_(ptr noundef %2991, ptr noundef %61, ptr noundef %2998, ptr noundef @c__1)
  br label %2999

2999:                                             ; preds = %2986
  %3000 = load i32, ptr %69, align 4, !tbaa !9
  %3001 = add nsw i32 %3000, 1
  store i32 %3001, ptr %69, align 4, !tbaa !9
  br label %2982, !llvm.loop !66

3002:                                             ; preds = %2982
  br label %3057

3003:                                             ; preds = %2976
  %3004 = load i32, ptr %72, align 4, !tbaa !9
  %3005 = icmp eq i32 %3004, 3
  br i1 %3005, label %3009, label %3006

3006:                                             ; preds = %3003
  %3007 = load i32, ptr %72, align 4, !tbaa !9
  %3008 = icmp eq i32 %3007, 4
  br i1 %3008, label %3009, label %3025

3009:                                             ; preds = %3006, %3003
  %3010 = load ptr, ptr %30, align 8, !tbaa !5
  %3011 = load i32, ptr %3010, align 4, !tbaa !9
  %3012 = load ptr, ptr %30, align 8, !tbaa !5
  %3013 = load i32, ptr %3012, align 4, !tbaa !9
  %3014 = add nsw i32 %3013, 1
  %3015 = mul nsw i32 %3011, %3014
  %3016 = sdiv i32 %3015, 2
  store i32 %3016, ptr %59, align 4, !tbaa !9
  %3017 = load ptr, ptr %51, align 8, !tbaa !5
  %3018 = load double, ptr %3017, align 8, !tbaa !11
  %3019 = load double, ptr %80, align 8, !tbaa !11
  %3020 = fdiv double %3018, %3019
  store double %3020, ptr %61, align 8, !tbaa !11
  %3021 = load ptr, ptr %53, align 8, !tbaa !5
  %3022 = load i32, ptr %58, align 4, !tbaa !9
  %3023 = sext i32 %3022 to i64
  %3024 = getelementptr inbounds double, ptr %3021, i64 %3023
  call void @dscal_(ptr noundef %59, ptr noundef %61, ptr noundef %3024, ptr noundef @c__1)
  br label %3056

3025:                                             ; preds = %3006
  %3026 = load i32, ptr %72, align 4, !tbaa !9
  %3027 = icmp sge i32 %3026, 5
  br i1 %3027, label %3028, label %3055

3028:                                             ; preds = %3025
  %3029 = load ptr, ptr %30, align 8, !tbaa !5
  %3030 = load i32, ptr %3029, align 4, !tbaa !9
  store i32 %3030, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %3031

3031:                                             ; preds = %3051, %3028
  %3032 = load i32, ptr %69, align 4, !tbaa !9
  %3033 = load i32, ptr %59, align 4, !tbaa !9
  %3034 = icmp sle i32 %3032, %3033
  br i1 %3034, label %3035, label %3054

3035:                                             ; preds = %3031
  %3036 = load i32, ptr %88, align 4, !tbaa !9
  %3037 = load i32, ptr %89, align 4, !tbaa !9
  %3038 = add nsw i32 %3036, %3037
  %3039 = add nsw i32 %3038, 1
  store i32 %3039, ptr %60, align 4, !tbaa !9
  %3040 = load ptr, ptr %51, align 8, !tbaa !5
  %3041 = load double, ptr %3040, align 8, !tbaa !11
  %3042 = load double, ptr %80, align 8, !tbaa !11
  %3043 = fdiv double %3041, %3042
  store double %3043, ptr %61, align 8, !tbaa !11
  %3044 = load ptr, ptr %53, align 8, !tbaa !5
  %3045 = load i32, ptr %69, align 4, !tbaa !9
  %3046 = load i32, ptr %57, align 4, !tbaa !9
  %3047 = mul nsw i32 %3045, %3046
  %3048 = add nsw i32 %3047, 1
  %3049 = sext i32 %3048 to i64
  %3050 = getelementptr inbounds double, ptr %3044, i64 %3049
  call void @dscal_(ptr noundef %60, ptr noundef %61, ptr noundef %3050, ptr noundef @c__1)
  br label %3051

3051:                                             ; preds = %3035
  %3052 = load i32, ptr %69, align 4, !tbaa !9
  %3053 = add nsw i32 %3052, 1
  store i32 %3053, ptr %69, align 4, !tbaa !9
  br label %3031, !llvm.loop !67

3054:                                             ; preds = %3031
  br label %3055

3055:                                             ; preds = %3054, %3025
  br label %3056

3056:                                             ; preds = %3055, %3009
  br label %3057

3057:                                             ; preds = %3056, %3002
  br label %3058

3058:                                             ; preds = %3057, %2975
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059, %2840
  store i32 1, ptr %90, align 4
  br label %3061

3061:                                             ; preds = %3060, %2851, %1030, %1009, %952, %882, %818, %121
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #3
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

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

!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}


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @dlatmr_(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 nocapture noundef readonly %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr nocapture noundef readonly %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27) local_unnamed_addr #0 {
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca double, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca [1 x double], align 8
  %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
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #4
  %44 = getelementptr inbounds i8, ptr %5, i64 -8
  %45 = getelementptr inbounds i8, ptr %11, i64 -8
  %46 = getelementptr inbounds i8, ptr %18, i64 -4
  %47 = load i32, ptr %25, align 4, !tbaa !5
  %narrow = xor i32 %47, -1
  %48 = sext i32 %narrow to i64
  %49 = getelementptr inbounds double, ptr %24, i64 %48
  %50 = getelementptr inbounds i8, ptr %26, i64 -4
  store i32 0, ptr %27, align 4, !tbaa !5
  %51 = load i32, ptr %0, align 4, !tbaa !5
  %52 = icmp eq i32 %51, 0
  br i1 %52, label %.loopexit, label %53

53:                                               ; preds = %28
  %54 = load i32, ptr %1, align 4, !tbaa !5
  %55 = icmp eq i32 %54, 0
  br i1 %55, label %.loopexit, label %56

56:                                               ; preds = %53
  %57 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #4
  %.not = icmp eq i32 %57, 0
  br i1 %.not, label %59, label %58

58:                                               ; preds = %56
  store i32 1, ptr %37, align 4, !tbaa !5
  br label %66

59:                                               ; preds = %56
  %60 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #4
  %.not887 = icmp eq i32 %60, 0
  br i1 %.not887, label %62, label %61

61:                                               ; preds = %59
  store i32 2, ptr %37, align 4, !tbaa !5
  br label %66

62:                                               ; preds = %59
  %63 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #4
  %.not888 = icmp eq i32 %63, 0
  br i1 %.not888, label %65, label %64

64:                                               ; preds = %62
  store i32 3, ptr %37, align 4, !tbaa !5
  br label %66

65:                                               ; preds = %62
  store i32 -1, ptr %37, align 4, !tbaa !5
  br label %66

66:                                               ; preds = %61, %65, %64, %58
  %67 = phi i1 [ false, %61 ], [ true, %65 ], [ false, %64 ], [ false, %58 ]
  %68 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.1) #4
  %.not889 = icmp eq i32 %68, 0
  br i1 %.not889, label %69, label %73

69:                                               ; preds = %66
  %70 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.2) #4
  %.not890 = icmp eq i32 %70, 0
  br i1 %.not890, label %71, label %73

71:                                               ; preds = %69
  %72 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.3) #4
  %.not891 = icmp eq i32 %72, 0
  %not..not891 = xor i1 %.not891, true
  br label %73

73:                                               ; preds = %71, %69, %66
  %74 = phi i1 [ true, %66 ], [ false, %69 ], [ %not..not891, %71 ]
  %75 = phi i1 [ false, %66 ], [ false, %69 ], [ %.not891, %71 ]
  %76 = phi i1 [ false, %66 ], [ true, %69 ], [ false, %71 ]
  %77 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.4) #4
  %.not892 = icmp eq i32 %77, 0
  br i1 %.not892, label %79, label %78

78:                                               ; preds = %73
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %83

79:                                               ; preds = %73
  %80 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.5) #4
  %.not893 = icmp eq i32 %80, 0
  br i1 %.not893, label %82, label %81

81:                                               ; preds = %79
  store i32 1, ptr %40, align 4, !tbaa !5
  br label %83

82:                                               ; preds = %79
  store i32 -1, ptr %40, align 4, !tbaa !5
  br label %83

83:                                               ; preds = %81, %82, %78
  %84 = phi i1 [ false, %81 ], [ true, %82 ], [ false, %78 ]
  %85 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.2) #4
  %.not894 = icmp eq i32 %85, 0
  br i1 %.not894, label %87, label %86

86:                                               ; preds = %83
  store i32 0, ptr %41, align 4, !tbaa !5
  br label %109

87:                                               ; preds = %83
  %88 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.6) #4
  %.not895 = icmp eq i32 %88, 0
  br i1 %.not895, label %90, label %89

89:                                               ; preds = %87
  store i32 0, ptr %41, align 4, !tbaa !5
  br label %109

90:                                               ; preds = %87
  %91 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.7) #4
  %.not896 = icmp eq i32 %91, 0
  br i1 %.not896, label %94, label %92

92:                                               ; preds = %90
  store i32 1, ptr %41, align 4, !tbaa !5
  %93 = load i32, ptr %0, align 4, !tbaa !5
  br label %109

94:                                               ; preds = %90
  %95 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.8) #4
  %.not897 = icmp eq i32 %95, 0
  br i1 %.not897, label %98, label %96

96:                                               ; preds = %94
  store i32 2, ptr %41, align 4, !tbaa !5
  %97 = load i32, ptr %1, align 4, !tbaa !5
  br label %109

98:                                               ; preds = %94
  %99 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.9) #4
  %.not898 = icmp eq i32 %99, 0
  br i1 %.not898, label %103, label %100

100:                                              ; preds = %98
  store i32 3, ptr %41, align 4, !tbaa !5
  %101 = load i32, ptr %1, align 4, !tbaa !5
  %102 = load i32, ptr %0, align 4, !tbaa !5
  %.1078 = tail call i32 @llvm.smin.i32(i32 %101, i32 %102)
  br label %109

103:                                              ; preds = %98
  %104 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.4) #4
  %.not899 = icmp eq i32 %104, 0
  br i1 %.not899, label %108, label %105

105:                                              ; preds = %103
  store i32 3, ptr %41, align 4, !tbaa !5
  %106 = load i32, ptr %1, align 4, !tbaa !5
  %107 = load i32, ptr %0, align 4, !tbaa !5
  %.1079 = tail call i32 @llvm.smin.i32(i32 %106, i32 %107)
  br label %109

108:                                              ; preds = %103
  store i32 -1, ptr %41, align 4, !tbaa !5
  br label %109

109:                                              ; preds = %89, %96, %105, %108, %100, %92, %86
  %110 = phi i1 [ false, %86 ], [ false, %89 ], [ true, %92 ], [ true, %96 ], [ true, %100 ], [ true, %105 ], [ false, %108 ]
  %111 = phi i1 [ false, %86 ], [ false, %89 ], [ true, %92 ], [ true, %96 ], [ true, %100 ], [ true, %105 ], [ true, %108 ]
  %112 = phi i32 [ 0, %86 ], [ 0, %89 ], [ 1, %92 ], [ 2, %96 ], [ 3, %100 ], [ 3, %105 ], [ -1, %108 ]
  %.0807 = phi i32 [ undef, %86 ], [ undef, %89 ], [ %93, %92 ], [ %97, %96 ], [ %.1078, %100 ], [ %.1079, %105 ], [ undef, %108 ]
  %113 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.2) #4
  %.not902 = icmp eq i32 %113, 0
  br i1 %.not902, label %115, label %114

114:                                              ; preds = %109
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %133

115:                                              ; preds = %109
  %116 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.7) #4
  %.not903 = icmp eq i32 %116, 0
  br i1 %.not903, label %118, label %117

117:                                              ; preds = %115
  store i32 1, ptr %39, align 4, !tbaa !5
  br label %133

118:                                              ; preds = %115
  %119 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.8) #4
  %.not904 = icmp eq i32 %119, 0
  br i1 %.not904, label %121, label %120

120:                                              ; preds = %118
  store i32 2, ptr %39, align 4, !tbaa !5
  br label %133

121:                                              ; preds = %118
  %122 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.9) #4
  %.not905 = icmp eq i32 %122, 0
  br i1 %.not905, label %124, label %123

123:                                              ; preds = %121
  store i32 3, ptr %39, align 4, !tbaa !5
  br label %133

124:                                              ; preds = %121
  %125 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.10) #4
  %.not906 = icmp eq i32 %125, 0
  br i1 %.not906, label %127, label %126

126:                                              ; preds = %124
  store i32 4, ptr %39, align 4, !tbaa !5
  br label %133

127:                                              ; preds = %124
  %128 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.3) #4
  %.not907 = icmp eq i32 %128, 0
  br i1 %.not907, label %129, label %131

129:                                              ; preds = %127
  %130 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.1) #4
  %.not908 = icmp eq i32 %130, 0
  br i1 %.not908, label %132, label %131

131:                                              ; preds = %129, %127
  store i32 5, ptr %39, align 4, !tbaa !5
  br label %133

132:                                              ; preds = %129
  store i32 -1, ptr %39, align 4, !tbaa !5
  br label %133

133:                                              ; preds = %117, %123, %131, %132, %126, %120, %114
  %134 = phi i1 [ false, %117 ], [ false, %123 ], [ false, %131 ], [ false, %132 ], [ true, %126 ], [ false, %120 ], [ false, %114 ]
  %135 = phi i32 [ 1, %117 ], [ 3, %123 ], [ 5, %131 ], [ -1, %132 ], [ 4, %126 ], [ 2, %120 ], [ 0, %114 ]
  %136 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.2) #4
  %.not909 = icmp ne i32 %136, 0
  br i1 %.not909, label %151, label %137

137:                                              ; preds = %133
  %138 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str) #4
  %.not910 = icmp eq i32 %138, 0
  br i1 %.not910, label %139, label %151

139:                                              ; preds = %137
  %140 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.7) #4
  %.not911 = icmp eq i32 %140, 0
  br i1 %.not911, label %141, label %151

141:                                              ; preds = %139
  %142 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.11) #4
  %.not912 = icmp eq i32 %142, 0
  br i1 %.not912, label %143, label %151

143:                                              ; preds = %141
  %144 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.8) #4
  %.not913 = icmp eq i32 %144, 0
  br i1 %.not913, label %145, label %151

145:                                              ; preds = %143
  %146 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.9) #4
  %.not914 = icmp eq i32 %146, 0
  br i1 %.not914, label %147, label %151

147:                                              ; preds = %145
  %148 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.12) #4
  %.not915 = icmp eq i32 %148, 0
  br i1 %.not915, label %149, label %151

149:                                              ; preds = %147
  %150 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.13) #4
  %.not916 = icmp eq i32 %150, 0
  %not..not916 = xor i1 %.not916, true
  br label %151

151:                                              ; preds = %149, %147, %145, %143, %141, %139, %137, %133
  %152 = phi i1 [ false, %133 ], [ false, %137 ], [ false, %139 ], [ false, %141 ], [ false, %143 ], [ false, %145 ], [ false, %147 ], [ %.not916, %149 ]
  %153 = phi i1 [ false, %133 ], [ true, %137 ], [ false, %139 ], [ false, %141 ], [ false, %143 ], [ false, %145 ], [ false, %147 ], [ false, %149 ]
  %154 = phi i1 [ false, %133 ], [ false, %137 ], [ true, %139 ], [ false, %141 ], [ false, %143 ], [ false, %145 ], [ false, %147 ], [ false, %149 ]
  %155 = phi i1 [ false, %133 ], [ false, %137 ], [ false, %139 ], [ false, %141 ], [ false, %143 ], [ true, %145 ], [ false, %147 ], [ false, %149 ]
  %156 = phi i1 [ false, %133 ], [ false, %137 ], [ false, %139 ], [ false, %141 ], [ false, %143 ], [ false, %145 ], [ true, %147 ], [ false, %149 ]
  %157 = phi i1 [ false, %133 ], [ false, %137 ], [ false, %139 ], [ true, %141 ], [ false, %143 ], [ false, %145 ], [ false, %147 ], [ false, %149 ]
  %158 = phi i1 [ false, %133 ], [ false, %137 ], [ false, %139 ], [ false, %141 ], [ true, %143 ], [ false, %145 ], [ false, %147 ], [ false, %149 ]
  %159 = phi i1 [ false, %133 ], [ false, %137 ], [ false, %139 ], [ false, %141 ], [ false, %143 ], [ false, %145 ], [ false, %147 ], [ %not..not916, %149 ]
  %160 = phi i1 [ true, %133 ], [ true, %137 ], [ true, %139 ], [ false, %141 ], [ false, %143 ], [ false, %145 ], [ false, %147 ], [ %.not916, %149 ]
  %161 = load i32, ptr %0, align 4, !tbaa !5
  %162 = load i32, ptr %1, align 4, !tbaa !5
  %.1082 = tail call i32 @llvm.smin.i32(i32 %161, i32 %162)
  store i32 %.1082, ptr %38, align 4, !tbaa !5
  %163 = load i32, ptr %19, align 4, !tbaa !5
  store i32 %163, ptr %29, align 4, !tbaa !5
  %164 = add i32 %161, -1
  %165 = tail call i32 @llvm.smin.i32(i32 %163, i32 %164)
  store i32 %165, ptr %42, align 4, !tbaa !5
  %166 = load i32, ptr %20, align 4, !tbaa !5
  %167 = add nsw i32 %162, -1
  store i32 %167, ptr %30, align 4, !tbaa !5
  %168 = tail call i32 @llvm.smin.i32(i32 %166, i32 %167)
  store i32 %168, ptr %43, align 4, !tbaa !5
  br i1 %134, label %169, label %187

169:                                              ; preds = %151
  %170 = load i32, ptr %12, align 4, !tbaa !5
  %171 = icmp eq i32 %170, 0
  br i1 %171, label %172, label %187

172:                                              ; preds = %169
  store i32 %161, ptr %29, align 4, !tbaa !5
  %.not9201159 = icmp slt i32 %161, 1
  br i1 %.not9201159, label %.loopexit1158, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %172
  %173 = add nuw i32 %161, 1
  %wide.trip.count = zext i32 %173 to i64
  %174 = zext nneg i32 %161 to i64
  %min.iters.check = icmp ult i32 %161, 4
  br i1 %min.iters.check, label %.lr.ph.preheader1713, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %174, 2147483644
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.phi = phi <2 x i1> [ zeroinitializer, %vector.ph ], [ %179, %vector.body ]
  %vec.phi1635 = phi <2 x i1> [ zeroinitializer, %vector.ph ], [ %180, %vector.body ]
  %175 = getelementptr double, ptr %11, i64 %index
  %176 = getelementptr inbounds i8, ptr %175, i64 16
  %wide.load = load <2 x double>, ptr %175, align 8, !tbaa !9
  %wide.load1636 = load <2 x double>, ptr %176, align 8, !tbaa !9
  %177 = fcmp oeq <2 x double> %wide.load, zeroinitializer
  %178 = fcmp oeq <2 x double> %wide.load1636, zeroinitializer
  %179 = or <2 x i1> %vec.phi, %177
  %180 = or <2 x i1> %vec.phi1635, %178
  %index.next = add nuw i64 %index, 4
  %181 = icmp eq i64 %index.next, %n.vec
  br i1 %181, label %middle.block, label %vector.body, !llvm.loop !11

middle.block:                                     ; preds = %vector.body
  %bin.rdx = or <2 x i1> %180, %179
  %bin.rdx.fr = freeze <2 x i1> %bin.rdx
  %182 = bitcast <2 x i1> %bin.rdx.fr to i2
  %.not1666 = icmp ne i2 %182, 0
  %rdx.select = zext i1 %.not1666 to i32
  %cmp.n = icmp eq i64 %n.vec, %174
  br i1 %cmp.n, label %.loopexit1158.loopexit, label %.lr.ph.preheader1713

.lr.ph.preheader1713:                             ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %.08091161.ph = phi i32 [ 0, %.lr.ph.preheader ], [ %rdx.select, %middle.block ]
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader1713, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %indvars.iv.ph, %.lr.ph.preheader1713 ]
  %.08091161 = phi i32 [ %.1810, %.lr.ph ], [ %.08091161.ph, %.lr.ph.preheader1713 ]
  %183 = getelementptr inbounds double, ptr %45, i64 %indvars.iv
  %184 = load double, ptr %183, align 8, !tbaa !9
  %185 = fcmp oeq double %184, 0.000000e+00
  %.1810 = select i1 %185, i32 1, i32 %.08091161
  %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 %.loopexit1158.loopexit, label %.lr.ph, !llvm.loop !15

.loopexit1158.loopexit:                           ; preds = %.lr.ph, %middle.block
  %.1810.lcssa = phi i32 [ %rdx.select, %middle.block ], [ %.1810, %.lr.ph ]
  %186 = add nuw i32 %161, 1
  br label %.loopexit1158

.loopexit1158:                                    ; preds = %.loopexit1158.loopexit, %172
  %storemerge.lcssa = phi i32 [ 1, %172 ], [ %186, %.loopexit1158.loopexit ]
  %.0809.lcssa = phi i32 [ 0, %172 ], [ %.1810.lcssa, %.loopexit1158.loopexit ]
  store i32 %storemerge.lcssa, ptr %34, align 4, !tbaa !5
  br label %187

187:                                              ; preds = %.loopexit1158, %169, %151
  %.2811 = phi i32 [ 0, %169 ], [ 0, %151 ], [ %.0809.lcssa, %.loopexit1158 ]
  br i1 %110, label %188, label %216

188:                                              ; preds = %187
  %.not9221163 = icmp slt i32 %.0807, 1
  br i1 %.not9221163, label %.loopexit1157, label %.lr.ph1166.preheader

.lr.ph1166.preheader:                             ; preds = %188
  %189 = zext nneg i32 %.0807 to i64
  %xtraiter = and i64 %189, 3
  %190 = icmp ult i32 %.0807, 4
  br i1 %190, label %.loopexit1157.loopexit.unr-lcssa, label %.lr.ph1166.preheader.new

.lr.ph1166.preheader.new:                         ; preds = %.lr.ph1166.preheader
  %unroll_iter = and i64 %189, 2147483644
  %invariant.gep1755 = getelementptr inbounds i8, ptr %46, i64 8
  %invariant.gep1757 = getelementptr inbounds i8, ptr %46, i64 12
  br label %.lr.ph1166

.lr.ph1166:                                       ; preds = %.lr.ph1166, %.lr.ph1166.preheader.new
  %indvars.iv1436 = phi i64 [ 1, %.lr.ph1166.preheader.new ], [ %indvars.iv.next1437.3, %.lr.ph1166 ]
  %.01165 = phi i32 [ 0, %.lr.ph1166.preheader.new ], [ %.1.3, %.lr.ph1166 ]
  %niter = phi i64 [ 0, %.lr.ph1166.preheader.new ], [ %niter.next.3, %.lr.ph1166 ]
  %191 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv1436
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = icmp slt i32 %192, 1
  %194 = icmp sgt i32 %192, %.0807
  %195 = getelementptr i32, ptr %18, i64 %indvars.iv1436
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = icmp slt i32 %196, 1
  %198 = icmp sgt i32 %196, %.0807
  %gep1756 = getelementptr inbounds i32, ptr %invariant.gep1755, i64 %indvars.iv1436
  %199 = load i32, ptr %gep1756, align 4, !tbaa !5
  %200 = icmp slt i32 %199, 1
  %201 = icmp sgt i32 %199, %.0807
  %gep1758 = getelementptr inbounds i32, ptr %invariant.gep1757, i64 %indvars.iv1436
  %202 = load i32, ptr %gep1758, align 4, !tbaa !5
  %203 = icmp slt i32 %202, 1
  %204 = icmp sgt i32 %202, %.0807
  %or.cond1083.3 = select i1 %203, i1 true, i1 %204
  %205 = select i1 %or.cond1083.3, i1 true, i1 %200
  %206 = select i1 %205, i1 true, i1 %201
  %207 = select i1 %206, i1 true, i1 %197
  %208 = select i1 %207, i1 true, i1 %198
  %209 = select i1 %208, i1 true, i1 %193
  %210 = select i1 %209, i1 true, i1 %194
  %.1.3 = select i1 %210, i32 1, i32 %.01165
  %indvars.iv.next1437.3 = add nuw nsw i64 %indvars.iv1436, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %.loopexit1157.loopexit.unr-lcssa, label %.lr.ph1166, !llvm.loop !16

.loopexit1157.loopexit.unr-lcssa:                 ; preds = %.lr.ph1166, %.lr.ph1166.preheader
  %.1.lcssa.ph = phi i32 [ poison, %.lr.ph1166.preheader ], [ %.1.3, %.lr.ph1166 ]
  %indvars.iv1436.unr = phi i64 [ 1, %.lr.ph1166.preheader ], [ %indvars.iv.next1437.3, %.lr.ph1166 ]
  %.01165.unr = phi i32 [ 0, %.lr.ph1166.preheader ], [ %.1.3, %.lr.ph1166 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit1157.loopexit, label %.lr.ph1166.epil

.lr.ph1166.epil:                                  ; preds = %.loopexit1157.loopexit.unr-lcssa, %.lr.ph1166.epil
  %indvars.iv1436.epil = phi i64 [ %indvars.iv.next1437.epil, %.lr.ph1166.epil ], [ %indvars.iv1436.unr, %.loopexit1157.loopexit.unr-lcssa ]
  %.01165.epil = phi i32 [ %.1.epil, %.lr.ph1166.epil ], [ %.01165.unr, %.loopexit1157.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1166.epil ], [ 0, %.loopexit1157.loopexit.unr-lcssa ]
  %211 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv1436.epil
  %212 = load i32, ptr %211, align 4, !tbaa !5
  %213 = icmp slt i32 %212, 1
  %214 = icmp sgt i32 %212, %.0807
  %or.cond1083.epil = select i1 %213, i1 true, i1 %214
  %.1.epil = select i1 %or.cond1083.epil, i32 1, i32 %.01165.epil
  %indvars.iv.next1437.epil = add nuw nsw i64 %indvars.iv1436.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %.loopexit1157.loopexit, label %.lr.ph1166.epil, !llvm.loop !17

.loopexit1157.loopexit:                           ; preds = %.lr.ph1166.epil, %.loopexit1157.loopexit.unr-lcssa
  %.1.lcssa = phi i32 [ %.1.lcssa.ph, %.loopexit1157.loopexit.unr-lcssa ], [ %.1.epil, %.lr.ph1166.epil ]
  %215 = add nuw i32 %.0807, 1
  br label %.loopexit1157

.loopexit1157:                                    ; preds = %.loopexit1157.loopexit, %188
  %storemerge921.lcssa = phi i32 [ 1, %188 ], [ %215, %.loopexit1157.loopexit ]
  %.0.lcssa = phi i32 [ 0, %188 ], [ %.1.lcssa, %.loopexit1157.loopexit ]
  store i32 %storemerge921.lcssa, ptr %35, align 4, !tbaa !5
  br label %216

216:                                              ; preds = %.loopexit1157, %187
  %.2 = phi i32 [ 0, %187 ], [ %.0.lcssa, %.loopexit1157 ]
  %217 = icmp slt i32 %161, 0
  %218 = icmp ne i32 %161, %162
  %or.cond = and i1 %74, %218
  %or.cond1587 = select i1 %217, i1 true, i1 %or.cond
  br i1 %or.cond1587, label %.thread1095.sink.split, label %219

219:                                              ; preds = %216
  %220 = icmp slt i32 %162, 0
  %brmerge = or i1 %220, %67
  %brmerge1588 = select i1 %brmerge, i1 true, i1 %75
  %.mux = select i1 %67, i32 -3, i32 -5
  %.mux.mux = select i1 %220, i32 -2, i32 %.mux
  br i1 %brmerge1588, label %.thread1095.sink.split, label %221

221:                                              ; preds = %219
  %222 = load i32, ptr %6, align 4, !tbaa !5
  %223 = add i32 %222, -7
  %or.cond1084 = icmp ult i32 %223, -13
  br i1 %or.cond1084, label %.thread1095.sink.split, label %224

224:                                              ; preds = %221
  switch i32 %222, label %225 [
    i32 -6, label %.thread
    i32 0, label %.thread
    i32 6, label %.thread
  ]

225:                                              ; preds = %224
  %226 = load double, ptr %7, align 8, !tbaa !9
  %227 = fcmp olt double %226, 1.000000e+00
  br i1 %227, label %.thread1095.sink.split, label %228

228:                                              ; preds = %225
  switch i32 %222, label %229 [
    i32 -6, label %.thread
    i32 0, label %.thread
  ]

229:                                              ; preds = %228
  br i1 %84, label %.thread1095.sink.split, label %.thread

.thread:                                          ; preds = %224, %224, %224, %228, %228, %229
  switch i32 %135, label %231 [
    i32 -1, label %.thread1095.sink.split
    i32 4, label %230
  ]

230:                                              ; preds = %.thread
  %.not928 = icmp eq i32 %161, %162
  br i1 %.not928, label %231, label %.thread1095.sink.split

231:                                              ; preds = %.thread, %230
  %232 = add nsw i32 %135, -1
  %or.cond5 = icmp ult i32 %232, 4
  %or.cond7 = and i1 %74, %or.cond5
  br i1 %or.cond7, label %.thread1095.sink.split, label %233

233:                                              ; preds = %231
  %234 = icmp ne i32 %.2811, 0
  %or.cond9 = select i1 %134, i1 %234, i1 false
  br i1 %or.cond9, label %.thread1095.sink.split, label %235

235:                                              ; preds = %233
  switch i32 %135, label %244 [
    i32 5, label %236
    i32 4, label %236
    i32 3, label %236
    i32 1, label %236
  ]

236:                                              ; preds = %235, %235, %235, %235
  %237 = load i32, ptr %12, align 4, !tbaa !5
  %238 = add i32 %237, -7
  %or.cond1085 = icmp ult i32 %238, -13
  br i1 %or.cond1085, label %.thread1095.sink.split, label %239

239:                                              ; preds = %236
  switch i32 %135, label %244 [
    i32 5, label %240
    i32 4, label %240
    i32 3, label %240
    i32 1, label %240
  ]

240:                                              ; preds = %239, %239, %239, %239
  switch i32 %237, label %241 [
    i32 -6, label %244
    i32 0, label %244
    i32 6, label %244
  ]

241:                                              ; preds = %240
  %242 = load double, ptr %13, align 8, !tbaa !9
  %243 = fcmp olt double %242, 1.000000e+00
  br i1 %243, label %.thread1095.sink.split, label %244

244:                                              ; preds = %235, %240, %240, %240, %239, %241
  %245 = and i32 %135, -2
  %or.cond23 = icmp eq i32 %245, 2
  br i1 %or.cond23, label %246, label %253

246:                                              ; preds = %244
  %247 = load i32, ptr %15, align 4, !tbaa !5
  %248 = add i32 %247, -7
  %or.cond1086 = icmp ult i32 %248, -13
  br i1 %or.cond1086, label %.thread1095.sink.split, label %249

249:                                              ; preds = %246
  switch i32 %247, label %250 [
    i32 -6, label %253
    i32 0, label %253
    i32 6, label %253
  ]

250:                                              ; preds = %249
  %251 = load double, ptr %16, align 8, !tbaa !9
  %252 = fcmp olt double %251, 1.000000e+00
  br i1 %252, label %.thread1095.sink.split, label %253

253:                                              ; preds = %244, %249, %249, %249, %250
  switch i32 %112, label %255 [
    i32 -1, label %.thread1095.sink.split
    i32 3, label %254
  ]

254:                                              ; preds = %253
  %.not935 = icmp eq i32 %161, %162
  br i1 %.not935, label %.thread1092, label %.thread1095.sink.split

255:                                              ; preds = %253
  %256 = add nsw i32 %112, -1
  %or.cond27 = icmp ult i32 %256, 2
  %or.cond29 = and i1 %74, %or.cond27
  br i1 %or.cond29, label %.thread1095.sink.split, label %.thread1092

.thread1092:                                      ; preds = %254, %255
  %257 = icmp ne i32 %.2, 0
  %or.cond31 = select i1 %111, i1 %257, i1 false
  br i1 %or.cond31, label %.thread1095.sink.split, label %258

258:                                              ; preds = %.thread1092
  %259 = icmp slt i32 %163, 0
  br i1 %259, label %.thread1095.sink.split, label %260

260:                                              ; preds = %258
  %261 = icmp slt i32 %166, 0
  %.not936 = icmp ne i32 %163, %166
  %or.cond1088.not = and i1 %74, %.not936
  %or.cond1115 = select i1 %261, i1 true, i1 %or.cond1088.not
  br i1 %or.cond1115, label %.thread1095.sink.split, label %262

262:                                              ; preds = %260
  %263 = load double, ptr %21, align 8, !tbaa !9
  %264 = fcmp olt double %263, 0.000000e+00
  %265 = fcmp ogt double %263, 1.000000e+00
  %or.cond1089 = or i1 %264, %265
  %brmerge1589 = select i1 %or.cond1089, i1 true, i1 %152
  %.mux1590 = select i1 %or.cond1089, i32 -22, i32 -24
  br i1 %brmerge1589, label %.thread1095.sink.split, label %266

266:                                              ; preds = %262
  %or.cond33 = or i1 %153, %154
  %or.cond35 = or i1 %or.cond33, %155
  %or.cond37 = or i1 %or.cond35, %156
  %or.cond39 = and i1 %76, %or.cond37
  br i1 %or.cond39, label %.thread1095.sink.split, label %267

267:                                              ; preds = %266
  %or.cond41 = and i1 %76, %157
  br i1 %or.cond41, label %268, label %269

268:                                              ; preds = %267
  %.not937 = icmp eq i32 %163, 0
  %.not938 = icmp eq i32 %161, %162
  %or.cond1113 = select i1 %.not937, i1 %.not938, i1 false
  br i1 %or.cond1113, label %269, label %.thread1095.sink.split

269:                                              ; preds = %268, %267
  %or.cond43 = and i1 %76, %158
  br i1 %or.cond43, label %270, label %271

270:                                              ; preds = %269
  %.not939 = icmp eq i32 %166, 0
  %.not940 = icmp eq i32 %161, %162
  %or.cond1114 = select i1 %.not939, i1 %.not940, i1 false
  br i1 %or.cond1114, label %271, label %.thread1095.sink.split

271:                                              ; preds = %270, %269
  %or.cond45 = or i1 %.not909, %153
  %or.cond47 = or i1 %or.cond45, %154
  br i1 %or.cond47, label %272, label %275

272:                                              ; preds = %271
  %273 = load i32, ptr %25, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %161, i32 1)
  %274 = icmp slt i32 %273, %spec.select
  br i1 %274, label %.thread1095.sink.split, label %275

275:                                              ; preds = %271, %272
  %or.cond49 = or i1 %157, %158
  br i1 %or.cond49, label %276, label %279

276:                                              ; preds = %275
  %277 = load i32, ptr %25, align 4, !tbaa !5
  %278 = icmp slt i32 %277, 1
  br i1 %278, label %.thread1095.sink.split, label %279

279:                                              ; preds = %275, %276
  %or.cond51 = or i1 %155, %156
  br i1 %or.cond51, label %280, label %282

280:                                              ; preds = %279
  %281 = load i32, ptr %25, align 4, !tbaa !5
  %.not941 = icmp sgt i32 %281, %168
  br i1 %.not941, label %282, label %.thread1095.sink.split

282:                                              ; preds = %279, %280
  br i1 %159, label %283, label %286

283:                                              ; preds = %282
  %284 = load i32, ptr %25, align 4, !tbaa !5
  %285 = add nsw i32 %168, %165
  %.not942 = icmp sgt i32 %284, %285
  br i1 %.not942, label %286, label %.thread1095.sink.split

286:                                              ; preds = %283, %282
  %.pr = load i32, ptr %27, align 4, !tbaa !5
  %.not943 = icmp eq i32 %.pr, 0
  br i1 %.not943, label %290, label %.thread1095

.thread1095.sink.split:                           ; preds = %262, %219, %272, %276, %280, %283, %268, %270, %266, %260, %258, %.thread1092, %254, %255, %253, %250, %246, %241, %236, %233, %230, %231, %.thread, %229, %225, %221, %216
  %.sink = phi i32 [ -1, %216 ], [ %.mux.mux, %219 ], [ -7, %221 ], [ -8, %225 ], [ -10, %229 ], [ -11, %.thread ], [ -11, %231 ], [ -11, %230 ], [ -12, %233 ], [ -13, %236 ], [ -14, %241 ], [ -16, %246 ], [ -17, %250 ], [ -18, %253 ], [ -18, %255 ], [ -18, %254 ], [ -19, %.thread1092 ], [ -20, %258 ], [ -21, %260 ], [ %.mux1590, %262 ], [ -24, %266 ], [ -24, %270 ], [ -24, %268 ], [ -26, %283 ], [ -26, %280 ], [ -26, %276 ], [ -26, %272 ]
  store i32 %.sink, ptr %27, align 4, !tbaa !5
  br label %.thread1095

.thread1095:                                      ; preds = %.thread1095.sink.split, %286
  %287 = phi i32 [ %.pr, %286 ], [ %.sink, %.thread1095.sink.split ]
  %288 = sub nsw i32 0, %287
  store i32 %288, ptr %29, align 4, !tbaa !5
  %289 = call i32 @xerbla_(ptr noundef nonnull @.str.14, ptr noundef nonnull %29, i32 noundef 6) #4
  br label %.loopexit

290:                                              ; preds = %286
  %.not1510 = icmp sgt i32 %167, %166
  %291 = icmp sgt i32 %164, %163
  %spec.select1573 = select i1 %.not1510, i1 true, i1 %291
  %292 = load <2 x i32>, ptr %3, align 4, !tbaa !5
  %293 = tail call <2 x i32> @llvm.abs.v2i32(<2 x i32> %292, i1 true)
  %294 = and <2 x i32> %293, <i32 4095, i32 4095>
  store <2 x i32> %294, ptr %3, align 4, !tbaa !5
  %295 = getelementptr inbounds i8, ptr %3, i64 8
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = tail call i32 @llvm.abs.i32(i32 %296, i1 true)
  %298 = and i32 %297, 4095
  store i32 %298, ptr %295, align 4, !tbaa !5
  %299 = getelementptr inbounds i8, ptr %3, i64 12
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = tail call i32 @llvm.abs.i32(i32 %300, i1 true)
  store i32 5, ptr %34, align 4, !tbaa !5
  store i32 %300, ptr %29, align 4, !tbaa !5
  %302 = getelementptr inbounds i8, ptr %3, i64 12
  %303 = and i32 %301, 4094
  %304 = or disjoint i32 %303, 1
  store i32 %304, ptr %302, align 4, !tbaa !5
  call void @dlatm1_(ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %40, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %38, ptr noundef nonnull %27) #4
  %305 = load i32, ptr %27, align 4, !tbaa !5
  %.not945 = icmp eq i32 %305, 0
  br i1 %.not945, label %307, label %306

306:                                              ; preds = %290
  store i32 1, ptr %27, align 4, !tbaa !5
  br label %.loopexit

307:                                              ; preds = %290
  %308 = load i32, ptr %6, align 4, !tbaa !5
  switch i32 %308, label %309 [
    i32 0, label %361
    i32 -6, label %361
    i32 6, label %361
  ]

309:                                              ; preds = %307
  %310 = load double, ptr %5, align 8, !tbaa !9
  %311 = fcmp ult double %310, 0.000000e+00
  %312 = fneg double %310
  %313 = select i1 %311, double %312, double %310
  %314 = load i32, ptr %38, align 4, !tbaa !5
  %.not9501171 = icmp slt i32 %314, 2
  br i1 %.not9501171, label %._crit_edge, label %.lr.ph1174.preheader

.lr.ph1174.preheader:                             ; preds = %309
  %315 = add nuw i32 %314, 1
  %wide.trip.count1448 = zext i32 %315 to i64
  %xtraiter1718 = and i64 %wide.trip.count1448, 1
  %316 = icmp eq i32 %315, 3
  br i1 %316, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph1174.preheader.new

.lr.ph1174.preheader.new:                         ; preds = %.lr.ph1174.preheader
  %317 = and i64 %wide.trip.count1448, 4294967294
  %318 = add nsw i64 %317, -4
  br label %.lr.ph1174

.lr.ph1174:                                       ; preds = %.lr.ph1174, %.lr.ph1174.preheader.new
  %indvars.iv1445 = phi i64 [ 2, %.lr.ph1174.preheader.new ], [ %indvars.iv.next1446.1, %.lr.ph1174 ]
  %.08171173 = phi double [ %313, %.lr.ph1174.preheader.new ], [ %332, %.lr.ph1174 ]
  %niter1724 = phi i64 [ 0, %.lr.ph1174.preheader.new ], [ %niter1724.next.1, %.lr.ph1174 ]
  %319 = getelementptr inbounds double, ptr %44, i64 %indvars.iv1445
  %320 = load double, ptr %319, align 8, !tbaa !9
  %321 = fcmp oge double %320, 0.000000e+00
  %322 = fneg double %320
  %323 = select i1 %321, double %320, double %322
  %324 = fcmp oge double %.08171173, %323
  %325 = select i1 %324, double %.08171173, double %323
  %326 = getelementptr double, ptr %5, i64 %indvars.iv1445
  %327 = load double, ptr %326, align 8, !tbaa !9
  %328 = fcmp oge double %327, 0.000000e+00
  %329 = fneg double %327
  %330 = select i1 %328, double %327, double %329
  %331 = fcmp oge double %325, %330
  %332 = select i1 %331, double %325, double %330
  %indvars.iv.next1446.1 = add nuw nsw i64 %indvars.iv1445, 2
  %niter1724.next.1 = add i64 %niter1724, 2
  %niter1724.ncmp.1 = icmp eq i64 %niter1724, %318
  br i1 %niter1724.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph1174, !llvm.loop !19

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph1174, %.lr.ph1174.preheader
  %.lcssa1712.ph = phi double [ poison, %.lr.ph1174.preheader ], [ %327, %.lr.ph1174 ]
  %.lcssa1711.ph = phi double [ poison, %.lr.ph1174.preheader ], [ %332, %.lr.ph1174 ]
  %indvars.iv1445.unr = phi i64 [ 2, %.lr.ph1174.preheader ], [ %indvars.iv.next1446.1, %.lr.ph1174 ]
  %.08171173.unr = phi double [ %313, %.lr.ph1174.preheader ], [ %332, %.lr.ph1174 ]
  %lcmp.mod1720.not = icmp eq i64 %xtraiter1718, 0
  br i1 %lcmp.mod1720.not, label %._crit_edge, label %.lr.ph1174.epil

.lr.ph1174.epil:                                  ; preds = %._crit_edge.loopexit.unr-lcssa
  %333 = getelementptr inbounds double, ptr %44, i64 %indvars.iv1445.unr
  %334 = load double, ptr %333, align 8, !tbaa !9
  %335 = fcmp oge double %334, 0.000000e+00
  %336 = fneg double %334
  %337 = select i1 %335, double %334, double %336
  %338 = fcmp oge double %.08171173.unr, %337
  %339 = select i1 %338, double %.08171173.unr, double %337
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph1174.epil, %._crit_edge.loopexit.unr-lcssa, %309
  %.lcssa1170 = phi double [ undef, %309 ], [ %.lcssa1712.ph, %._crit_edge.loopexit.unr-lcssa ], [ %334, %.lr.ph1174.epil ]
  %.0817.lcssa = phi double [ %313, %309 ], [ %.lcssa1711.ph, %._crit_edge.loopexit.unr-lcssa ], [ %339, %.lr.ph1174.epil ]
  store double %.lcssa1170, ptr %31, align 8, !tbaa !9
  %340 = fcmp oeq double %.0817.lcssa, 0.000000e+00
  br i1 %340, label %341, label %345

341:                                              ; preds = %._crit_edge
  %342 = load double, ptr %8, align 8, !tbaa !9
  %343 = fcmp une double %342, 0.000000e+00
  br i1 %343, label %344, label %345

344:                                              ; preds = %341
  store i32 2, ptr %27, align 4, !tbaa !5
  br label %.loopexit

345:                                              ; preds = %341, %._crit_edge
  %346 = fcmp une double %.0817.lcssa, 0.000000e+00
  br i1 %346, label %347, label %350

347:                                              ; preds = %345
  %348 = load double, ptr %8, align 8, !tbaa !9
  %349 = fdiv double %348, %.0817.lcssa
  br label %350

350:                                              ; preds = %345, %347
  %.0813 = phi double [ %349, %347 ], [ 1.000000e+00, %345 ]
  store i32 %314, ptr %29, align 4, !tbaa !5
  %.not9521178 = icmp slt i32 %314, 1
  br i1 %.not9521178, label %.loopexit1156, label %.lr.ph1181.preheader

.lr.ph1181.preheader:                             ; preds = %350
  %351 = add nuw i32 %314, 1
  %wide.trip.count1453 = zext i32 %351 to i64
  %352 = zext nneg i32 %314 to i64
  %min.iters.check1639 = icmp ult i32 %314, 4
  br i1 %min.iters.check1639, label %.lr.ph1181.preheader1710, label %vector.ph1640

vector.ph1640:                                    ; preds = %.lr.ph1181.preheader
  %n.vec1642 = and i64 %352, 2147483644
  %ind.end1643 = or disjoint i64 %n.vec1642, 1
  %broadcast.splatinsert = insertelement <2 x double> poison, double %.0813, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1645

vector.body1645:                                  ; preds = %vector.body1645, %vector.ph1640
  %index1646 = phi i64 [ 0, %vector.ph1640 ], [ %index.next1650, %vector.body1645 ]
  %353 = getelementptr double, ptr %5, i64 %index1646
  %354 = getelementptr inbounds i8, ptr %353, i64 16
  %wide.load1648 = load <2 x double>, ptr %353, align 8, !tbaa !9
  %wide.load1649 = load <2 x double>, ptr %354, align 8, !tbaa !9
  %355 = fmul <2 x double> %broadcast.splat, %wide.load1648
  %356 = fmul <2 x double> %broadcast.splat, %wide.load1649
  store <2 x double> %355, ptr %353, align 8, !tbaa !9
  store <2 x double> %356, ptr %354, align 8, !tbaa !9
  %index.next1650 = add nuw i64 %index1646, 4
  %357 = icmp eq i64 %index.next1650, %n.vec1642
  br i1 %357, label %middle.block1637, label %vector.body1645, !llvm.loop !20

middle.block1637:                                 ; preds = %vector.body1645
  %cmp.n1651 = icmp eq i64 %n.vec1642, %352
  br i1 %cmp.n1651, label %.loopexit1156, label %.lr.ph1181.preheader1710

.lr.ph1181.preheader1710:                         ; preds = %middle.block1637, %.lr.ph1181.preheader
  %indvars.iv1450.ph = phi i64 [ 1, %.lr.ph1181.preheader ], [ %ind.end1643, %middle.block1637 ]
  br label %.lr.ph1181

.lr.ph1181:                                       ; preds = %.lr.ph1181.preheader1710, %.lr.ph1181
  %indvars.iv1450 = phi i64 [ %indvars.iv.next1451, %.lr.ph1181 ], [ %indvars.iv1450.ph, %.lr.ph1181.preheader1710 ]
  %358 = getelementptr inbounds double, ptr %44, i64 %indvars.iv1450
  %359 = load double, ptr %358, align 8, !tbaa !9
  %360 = fmul double %.0813, %359
  store double %360, ptr %358, align 8, !tbaa !9
  %indvars.iv.next1451 = add nuw nsw i64 %indvars.iv1450, 1
  %exitcond1454.not = icmp eq i64 %indvars.iv.next1451, %wide.trip.count1453
  br i1 %exitcond1454.not, label %.loopexit1156, label %.lr.ph1181, !llvm.loop !21

.loopexit1156:                                    ; preds = %.lr.ph1181, %middle.block1637, %350
  %storemerge951.lcssa = phi i32 [ 1, %350 ], [ %351, %middle.block1637 ], [ %351, %.lr.ph1181 ]
  store i32 %storemerge951.lcssa, ptr %34, align 4, !tbaa !5
  br label %361

361:                                              ; preds = %.loopexit1156, %307, %307, %307
  %362 = load i32, ptr %39, align 4
  switch i32 %362, label %366 [
    i32 5, label %363
    i32 4, label %363
    i32 3, label %363
    i32 1, label %363
  ]

363:                                              ; preds = %361, %361, %361, %361
  call void @dlatm1_(ptr noundef %12, ptr noundef %13, ptr noundef nonnull @c__0, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %11, ptr noundef nonnull %0, ptr noundef nonnull %27) #4
  %364 = load i32, ptr %27, align 4, !tbaa !5
  %.not953 = icmp eq i32 %364, 0
  br i1 %.not953, label %._crit_edge1468, label %365

._crit_edge1468:                                  ; preds = %363
  %.pre = load i32, ptr %39, align 4
  br label %366

365:                                              ; preds = %363
  store i32 3, ptr %27, align 4, !tbaa !5
  br label %.loopexit

366:                                              ; preds = %._crit_edge1468, %361
  %367 = phi i32 [ %.pre, %._crit_edge1468 ], [ %362, %361 ]
  %368 = and i32 %367, -2
  %or.cond59 = icmp eq i32 %368, 2
  br i1 %or.cond59, label %369, label %372

369:                                              ; preds = %366
  call void @dlatm1_(ptr noundef %15, ptr noundef %16, ptr noundef nonnull @c__0, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %1, ptr noundef nonnull %27) #4
  %370 = load i32, ptr %27, align 4, !tbaa !5
  %.not954 = icmp eq i32 %370, 0
  br i1 %.not954, label %372, label %371

371:                                              ; preds = %369
  store i32 4, ptr %27, align 4, !tbaa !5
  br label %.loopexit

372:                                              ; preds = %369, %366
  %373 = load i32, ptr %41, align 4, !tbaa !5
  %374 = icmp sgt i32 %373, 0
  br i1 %374, label %375, label %417

375:                                              ; preds = %372
  store i32 %.0807, ptr %29, align 4, !tbaa !5
  %.not9561183 = icmp slt i32 %.0807, 1
  br i1 %.not9561183, label %._crit_edge1187.thread, label %.lr.ph1186.preheader

.lr.ph1186.preheader:                             ; preds = %375
  %376 = add nuw i32 %.0807, 1
  %wide.trip.count1458 = zext i32 %376 to i64
  %377 = zext nneg i32 %.0807 to i64
  %min.iters.check1654 = icmp ult i32 %.0807, 8
  br i1 %min.iters.check1654, label %.lr.ph1186.preheader1709, label %vector.ph1655

vector.ph1655:                                    ; preds = %.lr.ph1186.preheader
  %n.vec1657 = and i64 %377, 2147483640
  %ind.end1658 = or disjoint i64 %n.vec1657, 1
  br label %vector.body1660

vector.body1660:                                  ; preds = %vector.body1660, %vector.ph1655
  %index1661 = phi i64 [ 0, %vector.ph1655 ], [ %index.next1664, %vector.body1660 ]
  %vec.ind = phi <4 x i32> [ <i32 1, i32 2, i32 3, i32 4>, %vector.ph1655 ], [ %vec.ind.next, %vector.body1660 ]
  %step.add = add <4 x i32> %vec.ind, <i32 4, i32 4, i32 4, i32 4>
  %378 = getelementptr i32, ptr %26, i64 %index1661
  %379 = getelementptr inbounds i8, ptr %378, i64 16
  store <4 x i32> %vec.ind, ptr %378, align 4, !tbaa !5
  store <4 x i32> %step.add, ptr %379, align 4, !tbaa !5
  %index.next1664 = add nuw i64 %index1661, 8
  %vec.ind.next = add <4 x i32> %vec.ind, <i32 8, i32 8, i32 8, i32 8>
  %380 = icmp eq i64 %index.next1664, %n.vec1657
  br i1 %380, label %middle.block1652, label %vector.body1660, !llvm.loop !22

middle.block1652:                                 ; preds = %vector.body1660
  %cmp.n1665 = icmp eq i64 %n.vec1657, %377
  br i1 %cmp.n1665, label %._crit_edge1187, label %.lr.ph1186.preheader1709

.lr.ph1186.preheader1709:                         ; preds = %middle.block1652, %.lr.ph1186.preheader
  %indvars.iv1455.ph = phi i64 [ 1, %.lr.ph1186.preheader ], [ %ind.end1658, %middle.block1652 ]
  br label %.lr.ph1186

.lr.ph1186:                                       ; preds = %.lr.ph1186.preheader1709, %.lr.ph1186
  %indvars.iv1455 = phi i64 [ %indvars.iv.next1456, %.lr.ph1186 ], [ %indvars.iv1455.ph, %.lr.ph1186.preheader1709 ]
  %381 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv1455
  %382 = trunc nuw nsw i64 %indvars.iv1455 to i32
  store i32 %382, ptr %381, align 4, !tbaa !5
  %indvars.iv.next1456 = add nuw nsw i64 %indvars.iv1455, 1
  %exitcond1459.not = icmp eq i64 %indvars.iv.next1456, %wide.trip.count1458
  br i1 %exitcond1459.not, label %._crit_edge1187, label %.lr.ph1186, !llvm.loop !23

._crit_edge1187:                                  ; preds = %.lr.ph1186, %middle.block1652
  br i1 %spec.select1573, label %.lr.ph1196.preheader, label %384

._crit_edge1187.thread:                           ; preds = %375
  br i1 %spec.select1573, label %.loopexit1154, label %.loopexit1155

.lr.ph1196.preheader:                             ; preds = %._crit_edge1187
  %383 = zext nneg i32 %.0807 to i64
  br label %.lr.ph1196

384:                                              ; preds = %._crit_edge1187
  store i32 %.0807, ptr %29, align 4, !tbaa !5
  br i1 %.not9561183, label %.loopexit1155, label %.lr.ph1192.preheader

.lr.ph1192.preheader:                             ; preds = %384
  %385 = add nuw i32 %.0807, 1
  %386 = zext nneg i32 %.0807 to i64
  %xtraiter1725 = and i64 %386, 1
  %387 = icmp eq i32 %376, 2
  br i1 %387, label %..loopexit1155_crit_edge.unr-lcssa, label %.lr.ph1192.preheader.new

.lr.ph1192.preheader.new:                         ; preds = %.lr.ph1192.preheader
  %unroll_iter1729 = and i64 %386, 2147483646
  br label %.lr.ph1192

.lr.ph1192:                                       ; preds = %.lr.ph1192, %.lr.ph1192.preheader.new
  %indvars.iv1460 = phi i64 [ 1, %.lr.ph1192.preheader.new ], [ %indvars.iv.next1461.1, %.lr.ph1192 ]
  %niter1730 = phi i64 [ 0, %.lr.ph1192.preheader.new ], [ %niter1730.next.1, %.lr.ph1192 ]
  %388 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv1460
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv1460
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = sext i32 %389 to i64
  %393 = getelementptr inbounds i32, ptr %50, i64 %392
  %394 = load i32, ptr %393, align 4, !tbaa !5
  store i32 %394, ptr %390, align 4, !tbaa !5
  store i32 %391, ptr %393, align 4, !tbaa !5
  %395 = getelementptr i32, ptr %18, i64 %indvars.iv1460
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = getelementptr i32, ptr %26, i64 %indvars.iv1460
  %398 = load i32, ptr %397, align 4, !tbaa !5
  %399 = sext i32 %396 to i64
  %400 = getelementptr inbounds i32, ptr %50, i64 %399
  %401 = load i32, ptr %400, align 4, !tbaa !5
  store i32 %401, ptr %397, align 4, !tbaa !5
  store i32 %398, ptr %400, align 4, !tbaa !5
  %indvars.iv.next1461.1 = add nuw nsw i64 %indvars.iv1460, 2
  %niter1730.next.1 = add i64 %niter1730, 2
  %niter1730.ncmp.1 = icmp eq i64 %niter1730.next.1, %unroll_iter1729
  br i1 %niter1730.ncmp.1, label %..loopexit1155_crit_edge.unr-lcssa, label %.lr.ph1192, !llvm.loop !24

.lr.ph1196:                                       ; preds = %.lr.ph1196.preheader, %.lr.ph1196
  %indvars.iv1465 = phi i64 [ %383, %.lr.ph1196.preheader ], [ %indvars.iv.next1466, %.lr.ph1196 ]
  %402 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv1465
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv1465
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = sext i32 %403 to i64
  %407 = getelementptr inbounds i32, ptr %50, i64 %406
  %408 = load i32, ptr %407, align 4, !tbaa !5
  store i32 %408, ptr %404, align 4, !tbaa !5
  store i32 %405, ptr %407, align 4, !tbaa !5
  %indvars.iv.next1466 = add nsw i64 %indvars.iv1465, -1
  %409 = icmp ugt i64 %indvars.iv1465, 1
  br i1 %409, label %.lr.ph1196, label %..loopexit1154_crit_edge, !llvm.loop !25

..loopexit1154_crit_edge:                         ; preds = %.lr.ph1196
  store i32 %405, ptr %35, align 4, !tbaa !5
  br label %.loopexit1154

.loopexit1154:                                    ; preds = %._crit_edge1187.thread, %..loopexit1154_crit_edge
  %storemerge958.lcssa = phi i32 [ 0, %..loopexit1154_crit_edge ], [ %.0807, %._crit_edge1187.thread ]
  store i32 %storemerge958.lcssa, ptr %34, align 4, !tbaa !5
  br label %417

..loopexit1155_crit_edge.unr-lcssa:               ; preds = %.lr.ph1192, %.lr.ph1192.preheader
  %.lcssa1708.ph = phi i32 [ poison, %.lr.ph1192.preheader ], [ %398, %.lr.ph1192 ]
  %indvars.iv1460.unr = phi i64 [ 1, %.lr.ph1192.preheader ], [ %indvars.iv.next1461.1, %.lr.ph1192 ]
  %lcmp.mod1727.not = icmp eq i64 %xtraiter1725, 0
  br i1 %lcmp.mod1727.not, label %..loopexit1155_crit_edge, label %.lr.ph1192.epil

.lr.ph1192.epil:                                  ; preds = %..loopexit1155_crit_edge.unr-lcssa
  %410 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv1460.unr
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv1460.unr
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = sext i32 %411 to i64
  %415 = getelementptr inbounds i32, ptr %50, i64 %414
  %416 = load i32, ptr %415, align 4, !tbaa !5
  store i32 %416, ptr %412, align 4, !tbaa !5
  store i32 %413, ptr %415, align 4, !tbaa !5
  br label %..loopexit1155_crit_edge

..loopexit1155_crit_edge:                         ; preds = %..loopexit1155_crit_edge.unr-lcssa, %.lr.ph1192.epil
  %.lcssa1708 = phi i32 [ %.lcssa1708.ph, %..loopexit1155_crit_edge.unr-lcssa ], [ %413, %.lr.ph1192.epil ]
  store i32 %.lcssa1708, ptr %35, align 4, !tbaa !5
  br label %.loopexit1155

.loopexit1155:                                    ; preds = %._crit_edge1187.thread, %..loopexit1155_crit_edge, %384
  %storemerge959.lcssa = phi i32 [ %385, %..loopexit1155_crit_edge ], [ 1, %384 ], [ 1, %._crit_edge1187.thread ]
  store i32 %storemerge959.lcssa, ptr %34, align 4, !tbaa !5
  br label %417

417:                                              ; preds = %.loopexit1155, %.loopexit1154, %372
  br i1 %spec.select1573, label %705, label %418

418:                                              ; preds = %417
  br i1 %.not909, label %419, label %458

419:                                              ; preds = %418
  br i1 %74, label %420, label %440

420:                                              ; preds = %419
  %421 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %421, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10661275 = icmp slt i32 %421, 1
  br i1 %.not10661275, label %.thread1104, label %.lr.ph1278

.lr.ph1278:                                       ; preds = %420, %._crit_edge1274
  %422 = phi i32 [ %437, %._crit_edge1274 ], [ %421, %420 ]
  %423 = phi i32 [ %439, %._crit_edge1274 ], [ 1, %420 ]
  store i32 %423, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not10761271 = icmp slt i32 %423, 1
  br i1 %.not10761271, label %._crit_edge1274, label %.lr.ph1273

.lr.ph1273:                                       ; preds = %.lr.ph1278, %.lr.ph1273
  %424 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %425 = load i32, ptr %32, align 4, !tbaa !5
  %426 = load i32, ptr %33, align 4, !tbaa !5
  %427 = mul nsw i32 %426, %47
  %428 = add nsw i32 %427, %425
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds double, ptr %49, i64 %429
  store double %424, ptr %430, align 8, !tbaa !9
  %431 = mul nsw i32 %425, %47
  %432 = add nsw i32 %426, %431
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds double, ptr %49, i64 %433
  store double %424, ptr %434, align 8, !tbaa !9
  %435 = load i32, ptr %34, align 4, !tbaa !5
  %436 = add nsw i32 %435, 1
  store i32 %436, ptr %34, align 4, !tbaa !5
  %.not1076.not = icmp slt i32 %435, %423
  br i1 %.not1076.not, label %.lr.ph1273, label %._crit_edge1274.loopexit, !llvm.loop !26

._crit_edge1274.loopexit:                         ; preds = %.lr.ph1273
  %.pre1491 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1492 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1274

._crit_edge1274:                                  ; preds = %._crit_edge1274.loopexit, %.lr.ph1278
  %437 = phi i32 [ %.pre1492, %._crit_edge1274.loopexit ], [ %422, %.lr.ph1278 ]
  %438 = phi i32 [ %.pre1491, %._crit_edge1274.loopexit ], [ %423, %.lr.ph1278 ]
  %439 = add nsw i32 %438, 1
  store i32 %439, ptr %35, align 4, !tbaa !5
  %.not1066.not = icmp slt i32 %438, %437
  br i1 %.not1066.not, label %.lr.ph1278, label %.loopexit1133, !llvm.loop !27

440:                                              ; preds = %419
  br i1 %76, label %441, label %.thread1104

441:                                              ; preds = %440
  %442 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %442, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10621268 = icmp slt i32 %442, 1
  br i1 %.not10621268, label %.thread1104, label %.lr.ph1270

.lr.ph1270:                                       ; preds = %441, %._crit_edge1267
  %443 = phi i32 [ %455, %._crit_edge1267 ], [ %442, %441 ]
  %444 = phi i32 [ %457, %._crit_edge1267 ], [ 1, %441 ]
  %445 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %445, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not10641264 = icmp slt i32 %445, 1
  br i1 %.not10641264, label %._crit_edge1267, label %.lr.ph1266

.lr.ph1266:                                       ; preds = %.lr.ph1270, %.lr.ph1266
  %446 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %447 = load i32, ptr %32, align 4, !tbaa !5
  %448 = load i32, ptr %33, align 4, !tbaa !5
  %449 = mul nsw i32 %448, %47
  %450 = add nsw i32 %449, %447
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds double, ptr %49, i64 %451
  store double %446, ptr %452, align 8, !tbaa !9
  %453 = load i32, ptr %34, align 4, !tbaa !5
  %454 = add nsw i32 %453, 1
  store i32 %454, ptr %34, align 4, !tbaa !5
  %.not1064.not = icmp slt i32 %453, %445
  br i1 %.not1064.not, label %.lr.ph1266, label %._crit_edge1267.loopexit, !llvm.loop !28

._crit_edge1267.loopexit:                         ; preds = %.lr.ph1266
  %.pre1489 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1490 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1267

._crit_edge1267:                                  ; preds = %._crit_edge1267.loopexit, %.lr.ph1270
  %455 = phi i32 [ %.pre1490, %._crit_edge1267.loopexit ], [ %443, %.lr.ph1270 ]
  %456 = phi i32 [ %.pre1489, %._crit_edge1267.loopexit ], [ %444, %.lr.ph1270 ]
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr %35, align 4, !tbaa !5
  %.not1062.not = icmp slt i32 %456, %455
  br i1 %.not1062.not, label %.lr.ph1270, label %.loopexit1133, !llvm.loop !29

458:                                              ; preds = %418
  br i1 %153, label %459, label %483

459:                                              ; preds = %458
  %460 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %460, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10551260 = icmp slt i32 %460, 1
  br i1 %.not10551260, label %.loopexit1133.thread.thread1517, label %.lr.ph1263

.lr.ph1263:                                       ; preds = %459, %._crit_edge1259
  %461 = phi i32 [ %480, %._crit_edge1259 ], [ %460, %459 ]
  %462 = phi i32 [ %482, %._crit_edge1259 ], [ 1, %459 ]
  store i32 %462, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not10571256 = icmp slt i32 %462, 1
  br i1 %.not10571256, label %._crit_edge1259, label %.lr.ph1258

.lr.ph1258:                                       ; preds = %.lr.ph1263, %477
  %463 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %464 = load i32, ptr %32, align 4
  %465 = load i32, ptr %33, align 4
  %466 = call i32 @llvm.smin.i32(i32 %464, i32 %465)
  %467 = call i32 @llvm.smax.i32(i32 %464, i32 %465)
  %468 = mul nsw i32 %467, %47
  %469 = add nsw i32 %468, %466
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds double, ptr %49, i64 %470
  store double %463, ptr %471, align 8, !tbaa !9
  %.not1060 = icmp eq i32 %464, %465
  br i1 %.not1060, label %477, label %472

472:                                              ; preds = %.lr.ph1258
  %473 = mul nsw i32 %466, %47
  %474 = add nsw i32 %473, %467
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds double, ptr %49, i64 %475
  store double 0.000000e+00, ptr %476, align 8, !tbaa !9
  br label %477

477:                                              ; preds = %.lr.ph1258, %472
  %478 = load i32, ptr %34, align 4, !tbaa !5
  %479 = add nsw i32 %478, 1
  store i32 %479, ptr %34, align 4, !tbaa !5
  %.not1057.not = icmp slt i32 %478, %462
  br i1 %.not1057.not, label %.lr.ph1258, label %._crit_edge1259.loopexit, !llvm.loop !30

._crit_edge1259.loopexit:                         ; preds = %477
  %.pre1487 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1488 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1259

._crit_edge1259:                                  ; preds = %._crit_edge1259.loopexit, %.lr.ph1263
  %480 = phi i32 [ %.pre1488, %._crit_edge1259.loopexit ], [ %461, %.lr.ph1263 ]
  %481 = phi i32 [ %.pre1487, %._crit_edge1259.loopexit ], [ %462, %.lr.ph1263 ]
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr %35, align 4, !tbaa !5
  %.not1055.not = icmp slt i32 %481, %480
  br i1 %.not1055.not, label %.lr.ph1263, label %.loopexit1133, !llvm.loop !31

483:                                              ; preds = %458
  br i1 %154, label %484, label %508

484:                                              ; preds = %483
  %485 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %485, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10481252 = icmp slt i32 %485, 1
  br i1 %.not10481252, label %.loopexit1133.thread.thread.thread1519, label %.lr.ph1255

.lr.ph1255:                                       ; preds = %484, %._crit_edge1251
  %486 = phi i32 [ %505, %._crit_edge1251 ], [ %485, %484 ]
  %487 = phi i32 [ %507, %._crit_edge1251 ], [ 1, %484 ]
  store i32 %487, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not10501248 = icmp slt i32 %487, 1
  br i1 %.not10501248, label %._crit_edge1251, label %.lr.ph1250

.lr.ph1250:                                       ; preds = %.lr.ph1255, %502
  %488 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %489 = load i32, ptr %32, align 4
  %490 = load i32, ptr %33, align 4
  %491 = call i32 @llvm.smin.i32(i32 %489, i32 %490)
  %492 = call i32 @llvm.smax.i32(i32 %489, i32 %490)
  %493 = mul nsw i32 %491, %47
  %494 = add nsw i32 %493, %492
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds double, ptr %49, i64 %495
  store double %488, ptr %496, align 8, !tbaa !9
  %.not1053 = icmp eq i32 %489, %490
  br i1 %.not1053, label %502, label %497

497:                                              ; preds = %.lr.ph1250
  %498 = mul nsw i32 %492, %47
  %499 = add nsw i32 %498, %491
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds double, ptr %49, i64 %500
  store double 0.000000e+00, ptr %501, align 8, !tbaa !9
  br label %502

502:                                              ; preds = %.lr.ph1250, %497
  %503 = load i32, ptr %34, align 4, !tbaa !5
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr %34, align 4, !tbaa !5
  %.not1050.not = icmp slt i32 %503, %487
  br i1 %.not1050.not, label %.lr.ph1250, label %._crit_edge1251.loopexit, !llvm.loop !32

._crit_edge1251.loopexit:                         ; preds = %502
  %.pre1485 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1486 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1251

._crit_edge1251:                                  ; preds = %._crit_edge1251.loopexit, %.lr.ph1255
  %505 = phi i32 [ %.pre1486, %._crit_edge1251.loopexit ], [ %486, %.lr.ph1255 ]
  %506 = phi i32 [ %.pre1485, %._crit_edge1251.loopexit ], [ %487, %.lr.ph1255 ]
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr %35, align 4, !tbaa !5
  %.not1048.not = icmp slt i32 %506, %505
  br i1 %.not1048.not, label %.lr.ph1255, label %.loopexit1133, !llvm.loop !33

508:                                              ; preds = %483
  br i1 %157, label %509, label %537

509:                                              ; preds = %508
  %510 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %510, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10421244 = icmp slt i32 %510, 1
  br i1 %.not10421244, label %.loopexit1133.thread.thread.thread.thread1521, label %.lr.ph1247

.lr.ph1247:                                       ; preds = %509, %._crit_edge1243
  %511 = phi i32 [ %534, %._crit_edge1243 ], [ %510, %509 ]
  %512 = phi i32 [ %536, %._crit_edge1243 ], [ 1, %509 ]
  store i32 %512, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not10441240 = icmp slt i32 %512, 1
  br i1 %.not10441240, label %._crit_edge1243, label %.lr.ph1242

.lr.ph1242:                                       ; preds = %.lr.ph1247, %.lr.ph1242
  %513 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %514 = load i32, ptr %32, align 4
  %515 = load i32, ptr %33, align 4
  %516 = call i32 @llvm.smin.i32(i32 %514, i32 %515)
  %517 = call i32 @llvm.smax.i32(i32 %514, i32 %515)
  %518 = add nsw i32 %517, -1
  %519 = mul nsw i32 %518, %517
  %520 = sdiv i32 %519, 2
  %521 = add nsw i32 %520, %516
  %522 = add nsw i32 %521, -1
  %523 = load i32, ptr %25, align 4, !tbaa !5
  %524 = sdiv i32 %522, %523
  %525 = add nsw i32 %524, 1
  %526 = mul nsw i32 %524, %523
  %527 = mul nsw i32 %525, %47
  %528 = sub i32 %527, %526
  %529 = add i32 %528, %521
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds double, ptr %49, i64 %530
  store double %513, ptr %531, align 8, !tbaa !9
  %532 = load i32, ptr %34, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr %34, align 4, !tbaa !5
  %.not1044.not = icmp slt i32 %532, %512
  br i1 %.not1044.not, label %.lr.ph1242, label %._crit_edge1243.loopexit, !llvm.loop !34

._crit_edge1243.loopexit:                         ; preds = %.lr.ph1242
  %.pre1483 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1484 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1243

._crit_edge1243:                                  ; preds = %._crit_edge1243.loopexit, %.lr.ph1247
  %534 = phi i32 [ %.pre1484, %._crit_edge1243.loopexit ], [ %511, %.lr.ph1247 ]
  %535 = phi i32 [ %.pre1483, %._crit_edge1243.loopexit ], [ %512, %.lr.ph1247 ]
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr %35, align 4, !tbaa !5
  %.not1042.not = icmp slt i32 %535, %534
  br i1 %.not1042.not, label %.lr.ph1247, label %.loopexit1133, !llvm.loop !35

537:                                              ; preds = %508
  br i1 %158, label %538, label %577

538:                                              ; preds = %537
  %539 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %539, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10351236 = icmp slt i32 %539, 1
  br i1 %.not10351236, label %.loopexit1133.thread.thread.thread.thread.thread1523, label %.lr.ph1239

.lr.ph1239:                                       ; preds = %538, %._crit_edge1235
  %540 = phi i32 [ %574, %._crit_edge1235 ], [ %539, %538 ]
  %541 = phi i32 [ %576, %._crit_edge1235 ], [ 1, %538 ]
  store i32 %541, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not10371232 = icmp slt i32 %541, 1
  br i1 %.not10371232, label %._crit_edge1235, label %.lr.ph1234

.lr.ph1234:                                       ; preds = %.lr.ph1239, %561
  %542 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %543 = load i32, ptr %32, align 4
  %544 = load i32, ptr %33, align 4
  %545 = call i32 @llvm.smin.i32(i32 %543, i32 %544)
  %546 = call i32 @llvm.smax.i32(i32 %543, i32 %544)
  %547 = icmp eq i32 %545, 1
  br i1 %547, label %561, label %548

548:                                              ; preds = %.lr.ph1234
  %549 = load i32, ptr %1, align 4, !tbaa !5
  %550 = add nsw i32 %549, 1
  %551 = mul nsw i32 %550, %549
  %552 = sdiv i32 %551, 2
  %553 = sub nsw i32 %549, %545
  %554 = add nsw i32 %553, 1
  %555 = add nsw i32 %553, 2
  %556 = mul nsw i32 %554, %555
  %.neg1040 = sdiv i32 %556, -2
  %557 = add i32 %546, 1
  %558 = sub i32 %557, %545
  %559 = add i32 %558, %552
  %560 = add i32 %559, %.neg1040
  br label %561

561:                                              ; preds = %.lr.ph1234, %548
  %.0814 = phi i32 [ %560, %548 ], [ %546, %.lr.ph1234 ]
  %562 = add nsw i32 %.0814, -1
  %563 = load i32, ptr %25, align 4, !tbaa !5
  %564 = sdiv i32 %562, %563
  %565 = add nsw i32 %564, 1
  %566 = mul nsw i32 %564, %563
  %567 = sub i32 %.0814, %566
  %568 = mul nsw i32 %565, %47
  %569 = add nsw i32 %567, %568
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds double, ptr %49, i64 %570
  store double %542, ptr %571, align 8, !tbaa !9
  %572 = load i32, ptr %34, align 4, !tbaa !5
  %573 = add nsw i32 %572, 1
  store i32 %573, ptr %34, align 4, !tbaa !5
  %.not1037.not = icmp slt i32 %572, %541
  br i1 %.not1037.not, label %.lr.ph1234, label %._crit_edge1235.loopexit, !llvm.loop !36

._crit_edge1235.loopexit:                         ; preds = %561
  %.pre1481 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1482 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1235

._crit_edge1235:                                  ; preds = %._crit_edge1235.loopexit, %.lr.ph1239
  %574 = phi i32 [ %.pre1482, %._crit_edge1235.loopexit ], [ %540, %.lr.ph1239 ]
  %575 = phi i32 [ %.pre1481, %._crit_edge1235.loopexit ], [ %541, %.lr.ph1239 ]
  %576 = add nsw i32 %575, 1
  store i32 %576, ptr %35, align 4, !tbaa !5
  %.not1035.not = icmp slt i32 %575, %574
  br i1 %.not1035.not, label %.lr.ph1239, label %.loopexit1133, !llvm.loop !37

577:                                              ; preds = %537
  br i1 %155, label %578, label %611

578:                                              ; preds = %577
  %579 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %579, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10291228 = icmp slt i32 %579, 1
  br i1 %.not10291228, label %.loopexit1133.thread.thread.thread.thread.thread.thread1525, label %.lr.ph1231

.lr.ph1231:                                       ; preds = %578, %._crit_edge1227
  %580 = phi i32 [ %608, %._crit_edge1227 ], [ %579, %578 ]
  %581 = phi i32 [ %610, %._crit_edge1227 ], [ 1, %578 ]
  store i32 %581, ptr %30, align 4, !tbaa !5
  %582 = load i32, ptr %43, align 4, !tbaa !5
  %583 = sub nsw i32 %581, %582
  store i32 %583, ptr %34, align 4, !tbaa !5
  %.not10311223 = icmp slt i32 %582, 0
  br i1 %.not10311223, label %._crit_edge1227, label %.lr.ph1226

.lr.ph1226:                                       ; preds = %.lr.ph1231, %605
  %storemerge10301224 = phi i32 [ %607, %605 ], [ %583, %.lr.ph1231 ]
  %584 = icmp slt i32 %storemerge10301224, 1
  br i1 %584, label %585, label %594

585:                                              ; preds = %.lr.ph1226
  %586 = load i32, ptr %35, align 4, !tbaa !5
  %587 = load i32, ptr %1, align 4, !tbaa !5
  %588 = add nsw i32 %587, %storemerge10301224
  %589 = mul nsw i32 %588, %47
  %reass.sub1396 = sub i32 %586, %storemerge10301224
  %590 = add i32 %reass.sub1396, 1
  %591 = add nsw i32 %590, %589
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds double, ptr %49, i64 %592
  store double 0.000000e+00, ptr %593, align 8, !tbaa !9
  br label %605

594:                                              ; preds = %.lr.ph1226
  %595 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %596 = load i32, ptr %32, align 4
  %597 = load i32, ptr %33, align 4
  %598 = call i32 @llvm.smin.i32(i32 %596, i32 %597)
  %599 = call i32 @llvm.smax.i32(i32 %596, i32 %597)
  %600 = mul nsw i32 %598, %47
  %reass.sub1395 = sub i32 %599, %598
  %601 = add i32 %reass.sub1395, 1
  %602 = add nsw i32 %601, %600
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds double, ptr %49, i64 %603
  store double %595, ptr %604, align 8, !tbaa !9
  %.pre1478 = load i32, ptr %34, align 4, !tbaa !5
  br label %605

605:                                              ; preds = %585, %594
  %606 = phi i32 [ %storemerge10301224, %585 ], [ %.pre1478, %594 ]
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr %34, align 4, !tbaa !5
  %.not1031.not = icmp slt i32 %606, %581
  br i1 %.not1031.not, label %.lr.ph1226, label %._crit_edge1227.loopexit, !llvm.loop !38

._crit_edge1227.loopexit:                         ; preds = %605
  %.pre1479 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1480 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1227

._crit_edge1227:                                  ; preds = %._crit_edge1227.loopexit, %.lr.ph1231
  %608 = phi i32 [ %.pre1480, %._crit_edge1227.loopexit ], [ %580, %.lr.ph1231 ]
  %609 = phi i32 [ %.pre1479, %._crit_edge1227.loopexit ], [ %581, %.lr.ph1231 ]
  %610 = add nsw i32 %609, 1
  store i32 %610, ptr %35, align 4, !tbaa !5
  %.not1029.not = icmp slt i32 %609, %608
  br i1 %.not1029.not, label %.lr.ph1231, label %.loopexit1133, !llvm.loop !39

611:                                              ; preds = %577
  br i1 %156, label %612, label %636

612:                                              ; preds = %611
  %613 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %613, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10231219 = icmp slt i32 %613, 1
  br i1 %.not10231219, label %.loopexit1133.thread.thread.thread.thread.thread.thread.thread1527, label %.lr.ph1222.preheader

.lr.ph1222.preheader:                             ; preds = %612
  %.pre1475 = load i32, ptr %43, align 4, !tbaa !5
  br label %.lr.ph1222

.lr.ph1222:                                       ; preds = %.lr.ph1222.preheader, %._crit_edge1218
  %614 = phi i32 [ %632, %._crit_edge1218 ], [ %613, %.lr.ph1222.preheader ]
  %615 = phi i32 [ %634, %._crit_edge1218 ], [ %.pre1475, %.lr.ph1222.preheader ]
  %616 = phi i32 [ %635, %._crit_edge1218 ], [ 1, %.lr.ph1222.preheader ]
  store i32 %616, ptr %30, align 4, !tbaa !5
  %617 = sub nsw i32 %616, %615
  store i32 %617, ptr %34, align 4, !tbaa !5
  %.not10251215 = icmp slt i32 %615, 0
  br i1 %.not10251215, label %._crit_edge1218, label %.lr.ph1217

.lr.ph1217:                                       ; preds = %.lr.ph1222, %.lr.ph1217
  %618 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %619 = load i32, ptr %32, align 4
  %620 = load i32, ptr %33, align 4
  %621 = call i32 @llvm.smin.i32(i32 %619, i32 %620)
  %622 = call i32 @llvm.smax.i32(i32 %619, i32 %620)
  %623 = load i32, ptr %43, align 4, !tbaa !5
  %624 = mul nsw i32 %622, %47
  %reass.sub1394 = sub i32 %621, %622
  %625 = add i32 %reass.sub1394, 1
  %626 = add i32 %625, %623
  %627 = add nsw i32 %626, %624
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds double, ptr %49, i64 %628
  store double %618, ptr %629, align 8, !tbaa !9
  %630 = load i32, ptr %34, align 4, !tbaa !5
  %631 = add nsw i32 %630, 1
  store i32 %631, ptr %34, align 4, !tbaa !5
  %.not1025.not = icmp slt i32 %630, %616
  br i1 %.not1025.not, label %.lr.ph1217, label %._crit_edge1218.loopexit, !llvm.loop !40

._crit_edge1218.loopexit:                         ; preds = %.lr.ph1217
  %.pre1476 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1477 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1218

._crit_edge1218:                                  ; preds = %._crit_edge1218.loopexit, %.lr.ph1222
  %632 = phi i32 [ %.pre1477, %._crit_edge1218.loopexit ], [ %614, %.lr.ph1222 ]
  %633 = phi i32 [ %.pre1476, %._crit_edge1218.loopexit ], [ %616, %.lr.ph1222 ]
  %634 = phi i32 [ %623, %._crit_edge1218.loopexit ], [ %615, %.lr.ph1222 ]
  %635 = add nsw i32 %633, 1
  store i32 %635, ptr %35, align 4, !tbaa !5
  %.not1023.not = icmp slt i32 %633, %632
  br i1 %.not1023.not, label %.lr.ph1222, label %.loopexit1133, !llvm.loop !41

636:                                              ; preds = %611
  br i1 %159, label %637, label %.thread1110.thread1112

637:                                              ; preds = %636
  br i1 %74, label %638, label %680

638:                                              ; preds = %637
  %639 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %639, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10161211 = icmp slt i32 %639, 1
  br i1 %.not10161211, label %.thread1110.thread, label %.lr.ph1214.preheader

.lr.ph1214.preheader:                             ; preds = %638
  %.pre1472 = load i32, ptr %43, align 4, !tbaa !5
  br label %.lr.ph1214

.lr.ph1214:                                       ; preds = %.lr.ph1214.preheader, %._crit_edge1210
  %640 = phi i32 [ %676, %._crit_edge1210 ], [ %639, %.lr.ph1214.preheader ]
  %641 = phi i32 [ %678, %._crit_edge1210 ], [ %.pre1472, %.lr.ph1214.preheader ]
  %642 = phi i32 [ %679, %._crit_edge1210 ], [ 1, %.lr.ph1214.preheader ]
  store i32 %642, ptr %30, align 4, !tbaa !5
  %643 = sub nsw i32 %642, %641
  store i32 %643, ptr %34, align 4, !tbaa !5
  %.not10181207 = icmp slt i32 %641, 0
  br i1 %.not10181207, label %._crit_edge1210, label %.lr.ph1209

.lr.ph1209:                                       ; preds = %.lr.ph1214, %674
  %644 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %645 = load i32, ptr %32, align 4
  %646 = load i32, ptr %33, align 4
  %647 = call i32 @llvm.smin.i32(i32 %645, i32 %646)
  %648 = call i32 @llvm.smax.i32(i32 %645, i32 %646)
  %649 = load i32, ptr %43, align 4, !tbaa !5
  %650 = mul nsw i32 %648, %47
  %651 = add i32 %649, 1
  %652 = sub i32 %651, %648
  %653 = add i32 %652, %647
  %654 = add nsw i32 %653, %650
  %655 = sext i32 %654 to i64
  %656 = getelementptr inbounds double, ptr %49, i64 %655
  store double %644, ptr %656, align 8, !tbaa !9
  %657 = load i32, ptr %34, align 4, !tbaa !5
  %658 = icmp slt i32 %657, 1
  br i1 %658, label %.thread1097, label %666

.thread1097:                                      ; preds = %.lr.ph1209
  %659 = load i32, ptr %35, align 4, !tbaa !5
  %660 = load i32, ptr %1, align 4, !tbaa !5
  %661 = add nsw i32 %660, %657
  %662 = mul nsw i32 %661, %47
  %663 = sub i32 %651, %657
  %664 = add i32 %663, %659
  %665 = add nsw i32 %664, %662
  br label %.sink.split

666:                                              ; preds = %.lr.ph1209
  %.not1021 = icmp eq i32 %645, %646
  br i1 %.not1021, label %674, label %667

667:                                              ; preds = %666
  %668 = mul nsw i32 %647, %47
  %reass.sub = sub i32 %648, %647
  %669 = add i32 %reass.sub, 1
  %670 = add nsw i32 %669, %649
  %671 = add nsw i32 %670, %668
  br label %.sink.split

.sink.split:                                      ; preds = %667, %.thread1097
  %.sink1577 = phi i32 [ %665, %.thread1097 ], [ %671, %667 ]
  %.sink1574 = phi double [ 0.000000e+00, %.thread1097 ], [ %644, %667 ]
  %672 = sext i32 %.sink1577 to i64
  %673 = getelementptr inbounds double, ptr %49, i64 %672
  store double %.sink1574, ptr %673, align 8, !tbaa !9
  br label %674

674:                                              ; preds = %.sink.split, %666
  %675 = add nsw i32 %657, 1
  store i32 %675, ptr %34, align 4, !tbaa !5
  %.not1018.not = icmp slt i32 %657, %642
  br i1 %.not1018.not, label %.lr.ph1209, label %._crit_edge1210.loopexit, !llvm.loop !42

._crit_edge1210.loopexit:                         ; preds = %674
  %.pre1473 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1474 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1210

._crit_edge1210:                                  ; preds = %._crit_edge1210.loopexit, %.lr.ph1214
  %676 = phi i32 [ %.pre1474, %._crit_edge1210.loopexit ], [ %640, %.lr.ph1214 ]
  %677 = phi i32 [ %.pre1473, %._crit_edge1210.loopexit ], [ %642, %.lr.ph1214 ]
  %678 = phi i32 [ %649, %._crit_edge1210.loopexit ], [ %641, %.lr.ph1214 ]
  %679 = add nsw i32 %677, 1
  store i32 %679, ptr %35, align 4, !tbaa !5
  %.not1016.not = icmp slt i32 %677, %676
  br i1 %.not1016.not, label %.lr.ph1214, label %.loopexit1133, !llvm.loop !43

680:                                              ; preds = %637
  br i1 %76, label %681, label %.thread1110.thread

681:                                              ; preds = %680
  %682 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %682, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10121203 = icmp slt i32 %682, 1
  br i1 %.not10121203, label %.thread1110.thread, label %.lr.ph1206.preheader

.lr.ph1206.preheader:                             ; preds = %681
  %.pre1469 = load i32, ptr %43, align 4, !tbaa !5
  br label %.lr.ph1206

.lr.ph1206:                                       ; preds = %.lr.ph1206.preheader, %._crit_edge1202
  %683 = phi i32 [ %701, %._crit_edge1202 ], [ %682, %.lr.ph1206.preheader ]
  %684 = phi i32 [ %703, %._crit_edge1202 ], [ %.pre1469, %.lr.ph1206.preheader ]
  %storemerge10111204 = phi i32 [ %704, %._crit_edge1202 ], [ 1, %.lr.ph1206.preheader ]
  %685 = load i32, ptr %42, align 4, !tbaa !5
  %686 = add nsw i32 %685, %storemerge10111204
  store i32 %686, ptr %30, align 4, !tbaa !5
  %687 = sub nsw i32 %storemerge10111204, %684
  store i32 %687, ptr %34, align 4, !tbaa !5
  %.not10141199 = icmp sgt i32 %687, %686
  br i1 %.not10141199, label %._crit_edge1202, label %.lr.ph1201

.lr.ph1201:                                       ; preds = %.lr.ph1206, %.lr.ph1201
  %688 = call double @dlatm3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %689 = load i32, ptr %32, align 4, !tbaa !5
  %690 = load i32, ptr %33, align 4, !tbaa !5
  %691 = load i32, ptr %43, align 4, !tbaa !5
  %692 = mul nsw i32 %690, %47
  %693 = add i32 %689, 1
  %694 = sub i32 %693, %690
  %695 = add i32 %694, %691
  %696 = add nsw i32 %695, %692
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds double, ptr %49, i64 %697
  store double %688, ptr %698, align 8, !tbaa !9
  %699 = load i32, ptr %34, align 4, !tbaa !5
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr %34, align 4, !tbaa !5
  %.not1014.not = icmp slt i32 %699, %686
  br i1 %.not1014.not, label %.lr.ph1201, label %._crit_edge1202.loopexit, !llvm.loop !44

._crit_edge1202.loopexit:                         ; preds = %.lr.ph1201
  %.pre1470 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1471 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1202

._crit_edge1202:                                  ; preds = %._crit_edge1202.loopexit, %.lr.ph1206
  %701 = phi i32 [ %.pre1471, %._crit_edge1202.loopexit ], [ %683, %.lr.ph1206 ]
  %702 = phi i32 [ %.pre1470, %._crit_edge1202.loopexit ], [ %storemerge10111204, %.lr.ph1206 ]
  %703 = phi i32 [ %691, %._crit_edge1202.loopexit ], [ %684, %.lr.ph1206 ]
  %704 = add nsw i32 %702, 1
  store i32 %704, ptr %35, align 4, !tbaa !5
  %.not1012.not = icmp slt i32 %702, %701
  br i1 %.not1012.not, label %.lr.ph1206, label %.loopexit1133, !llvm.loop !45

705:                                              ; preds = %417
  br i1 %.not909, label %706, label %743

706:                                              ; preds = %705
  br i1 %74, label %707, label %726

707:                                              ; preds = %706
  %708 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %708, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10081364 = icmp slt i32 %708, 1
  br i1 %.not10081364, label %.thread1104, label %.lr.ph1367

.lr.ph1367:                                       ; preds = %707, %._crit_edge1363
  %709 = phi i32 [ %723, %._crit_edge1363 ], [ %708, %707 ]
  %710 = phi i32 [ %725, %._crit_edge1363 ], [ 1, %707 ]
  store i32 %710, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not10101360 = icmp slt i32 %710, 1
  br i1 %.not10101360, label %._crit_edge1363, label %.lr.ph1362

.lr.ph1362:                                       ; preds = %.lr.ph1367, %.lr.ph1362
  %711 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %712 = load i32, ptr %34, align 4, !tbaa !5
  %713 = load i32, ptr %35, align 4, !tbaa !5
  %714 = mul nsw i32 %713, %47
  %715 = add nsw i32 %714, %712
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds double, ptr %49, i64 %716
  store double %711, ptr %717, align 8, !tbaa !9
  %718 = mul nsw i32 %712, %47
  %719 = add nsw i32 %713, %718
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds double, ptr %49, i64 %720
  store double %711, ptr %721, align 8, !tbaa !9
  %722 = add nsw i32 %712, 1
  store i32 %722, ptr %34, align 4, !tbaa !5
  %.not1010.not = icmp slt i32 %712, %710
  br i1 %.not1010.not, label %.lr.ph1362, label %._crit_edge1363.loopexit, !llvm.loop !46

._crit_edge1363.loopexit:                         ; preds = %.lr.ph1362
  %.pre1509 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1363

._crit_edge1363:                                  ; preds = %._crit_edge1363.loopexit, %.lr.ph1367
  %723 = phi i32 [ %.pre1509, %._crit_edge1363.loopexit ], [ %709, %.lr.ph1367 ]
  %724 = phi i32 [ %713, %._crit_edge1363.loopexit ], [ %710, %.lr.ph1367 ]
  %725 = add nsw i32 %724, 1
  store i32 %725, ptr %35, align 4, !tbaa !5
  %.not1008.not = icmp slt i32 %724, %723
  br i1 %.not1008.not, label %.lr.ph1367, label %.loopexit1133, !llvm.loop !47

726:                                              ; preds = %706
  br i1 %76, label %727, label %.thread1104

727:                                              ; preds = %726
  %728 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %728, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10041357 = icmp slt i32 %728, 1
  br i1 %.not10041357, label %.thread1104, label %.lr.ph1359

.lr.ph1359:                                       ; preds = %727, %._crit_edge1356
  %729 = phi i32 [ %740, %._crit_edge1356 ], [ %728, %727 ]
  %730 = phi i32 [ %742, %._crit_edge1356 ], [ 1, %727 ]
  %731 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %731, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not10061353 = icmp slt i32 %731, 1
  br i1 %.not10061353, label %._crit_edge1356, label %.lr.ph1355

.lr.ph1355:                                       ; preds = %.lr.ph1359, %.lr.ph1355
  %732 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %733 = load i32, ptr %34, align 4, !tbaa !5
  %734 = load i32, ptr %35, align 4, !tbaa !5
  %735 = mul nsw i32 %734, %47
  %736 = add nsw i32 %735, %733
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds double, ptr %49, i64 %737
  store double %732, ptr %738, align 8, !tbaa !9
  %739 = add nsw i32 %733, 1
  store i32 %739, ptr %34, align 4, !tbaa !5
  %.not1006.not = icmp slt i32 %733, %731
  br i1 %.not1006.not, label %.lr.ph1355, label %._crit_edge1356.loopexit, !llvm.loop !48

._crit_edge1356.loopexit:                         ; preds = %.lr.ph1355
  %.pre1508 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1356

._crit_edge1356:                                  ; preds = %._crit_edge1356.loopexit, %.lr.ph1359
  %740 = phi i32 [ %.pre1508, %._crit_edge1356.loopexit ], [ %729, %.lr.ph1359 ]
  %741 = phi i32 [ %734, %._crit_edge1356.loopexit ], [ %730, %.lr.ph1359 ]
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr %35, align 4, !tbaa !5
  %.not1004.not = icmp slt i32 %741, %740
  br i1 %.not1004.not, label %.lr.ph1359, label %.loopexit1133, !llvm.loop !49

743:                                              ; preds = %705
  br i1 %153, label %744, label %765

744:                                              ; preds = %743
  %745 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %745, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not9991349 = icmp slt i32 %745, 1
  br i1 %.not9991349, label %.loopexit1133.thread.thread1517, label %.lr.ph1352

.lr.ph1352:                                       ; preds = %744, %._crit_edge1348
  %746 = phi i32 [ %762, %._crit_edge1348 ], [ %745, %744 ]
  %747 = phi i32 [ %764, %._crit_edge1348 ], [ 1, %744 ]
  store i32 %747, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not10011345 = icmp slt i32 %747, 1
  br i1 %.not10011345, label %._crit_edge1348, label %.lr.ph1347

.lr.ph1347:                                       ; preds = %.lr.ph1352, %760
  %748 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %749 = load i32, ptr %34, align 4, !tbaa !5
  %750 = load i32, ptr %35, align 4, !tbaa !5
  %751 = mul nsw i32 %750, %47
  %752 = add nsw i32 %751, %749
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds double, ptr %49, i64 %753
  store double %748, ptr %754, align 8, !tbaa !9
  %.not1002 = icmp eq i32 %749, %750
  br i1 %.not1002, label %760, label %755

755:                                              ; preds = %.lr.ph1347
  %756 = mul nsw i32 %749, %47
  %757 = add nsw i32 %750, %756
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds double, ptr %49, i64 %758
  store double 0.000000e+00, ptr %759, align 8, !tbaa !9
  br label %760

760:                                              ; preds = %.lr.ph1347, %755
  %761 = add nsw i32 %749, 1
  store i32 %761, ptr %34, align 4, !tbaa !5
  %.not1001.not = icmp slt i32 %749, %747
  br i1 %.not1001.not, label %.lr.ph1347, label %._crit_edge1348.loopexit, !llvm.loop !50

._crit_edge1348.loopexit:                         ; preds = %760
  %.pre1507 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1348

._crit_edge1348:                                  ; preds = %._crit_edge1348.loopexit, %.lr.ph1352
  %762 = phi i32 [ %.pre1507, %._crit_edge1348.loopexit ], [ %746, %.lr.ph1352 ]
  %763 = phi i32 [ %750, %._crit_edge1348.loopexit ], [ %747, %.lr.ph1352 ]
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr %35, align 4, !tbaa !5
  %.not999.not = icmp slt i32 %763, %762
  br i1 %.not999.not, label %.lr.ph1352, label %.loopexit1133, !llvm.loop !51

765:                                              ; preds = %743
  br i1 %154, label %766, label %787

766:                                              ; preds = %765
  %767 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %767, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not9941341 = icmp slt i32 %767, 1
  br i1 %.not9941341, label %.loopexit1133.thread.thread.thread1519, label %.lr.ph1344

.lr.ph1344:                                       ; preds = %766, %._crit_edge1340
  %768 = phi i32 [ %784, %._crit_edge1340 ], [ %767, %766 ]
  %769 = phi i32 [ %786, %._crit_edge1340 ], [ 1, %766 ]
  store i32 %769, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not9961337 = icmp slt i32 %769, 1
  br i1 %.not9961337, label %._crit_edge1340, label %.lr.ph1339

.lr.ph1339:                                       ; preds = %.lr.ph1344, %782
  %770 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %771 = load i32, ptr %35, align 4, !tbaa !5
  %772 = load i32, ptr %34, align 4, !tbaa !5
  %773 = mul nsw i32 %772, %47
  %774 = add nsw i32 %773, %771
  %775 = sext i32 %774 to i64
  %776 = getelementptr inbounds double, ptr %49, i64 %775
  store double %770, ptr %776, align 8, !tbaa !9
  %.not997 = icmp eq i32 %772, %771
  br i1 %.not997, label %782, label %777

777:                                              ; preds = %.lr.ph1339
  %778 = mul nsw i32 %771, %47
  %779 = add nsw i32 %772, %778
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds double, ptr %49, i64 %780
  store double 0.000000e+00, ptr %781, align 8, !tbaa !9
  br label %782

782:                                              ; preds = %.lr.ph1339, %777
  %783 = add nsw i32 %772, 1
  store i32 %783, ptr %34, align 4, !tbaa !5
  %.not996.not = icmp slt i32 %772, %769
  br i1 %.not996.not, label %.lr.ph1339, label %._crit_edge1340.loopexit, !llvm.loop !52

._crit_edge1340.loopexit:                         ; preds = %782
  %.pre1506 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1340

._crit_edge1340:                                  ; preds = %._crit_edge1340.loopexit, %.lr.ph1344
  %784 = phi i32 [ %.pre1506, %._crit_edge1340.loopexit ], [ %768, %.lr.ph1344 ]
  %785 = phi i32 [ %771, %._crit_edge1340.loopexit ], [ %769, %.lr.ph1344 ]
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr %35, align 4, !tbaa !5
  %.not994.not = icmp slt i32 %785, %784
  br i1 %.not994.not, label %.lr.ph1344, label %.loopexit1133, !llvm.loop !53

787:                                              ; preds = %765
  br i1 %157, label %788, label %815

788:                                              ; preds = %787
  store i32 0, ptr %32, align 4, !tbaa !5
  store i32 1, ptr %33, align 4, !tbaa !5
  %789 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %789, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not9891333 = icmp slt i32 %789, 1
  br i1 %.not9891333, label %.loopexit1133.thread.thread.thread.thread1521, label %.lr.ph1336

.lr.ph1336:                                       ; preds = %788, %._crit_edge1332
  %790 = phi i32 [ %810, %._crit_edge1332 ], [ %789, %788 ]
  %791 = phi i32 [ %812, %._crit_edge1332 ], [ 1, %788 ]
  %792 = phi i32 [ %813, %._crit_edge1332 ], [ 0, %788 ]
  %793 = phi i32 [ %814, %._crit_edge1332 ], [ 1, %788 ]
  store i32 %793, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not9911329 = icmp slt i32 %793, 1
  br i1 %.not9911329, label %._crit_edge1332, label %.lr.ph1331

.lr.ph1331:                                       ; preds = %.lr.ph1336, %800
  %794 = phi i32 [ %803, %800 ], [ %791, %.lr.ph1336 ]
  %795 = phi i32 [ %802, %800 ], [ %792, %.lr.ph1336 ]
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr %32, align 4, !tbaa !5
  %797 = load i32, ptr %25, align 4, !tbaa !5
  %.not992 = icmp slt i32 %795, %797
  br i1 %.not992, label %800, label %798

798:                                              ; preds = %.lr.ph1331
  store i32 1, ptr %32, align 4, !tbaa !5
  %799 = add nsw i32 %794, 1
  store i32 %799, ptr %33, align 4, !tbaa !5
  br label %800

800:                                              ; preds = %798, %.lr.ph1331
  %801 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %802 = load i32, ptr %32, align 4, !tbaa !5
  %803 = load i32, ptr %33, align 4, !tbaa !5
  %804 = mul nsw i32 %803, %47
  %805 = add nsw i32 %804, %802
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds double, ptr %49, i64 %806
  store double %801, ptr %807, align 8, !tbaa !9
  %808 = load i32, ptr %34, align 4, !tbaa !5
  %809 = add nsw i32 %808, 1
  store i32 %809, ptr %34, align 4, !tbaa !5
  %.not991.not = icmp slt i32 %808, %793
  br i1 %.not991.not, label %.lr.ph1331, label %._crit_edge1332.loopexit, !llvm.loop !54

._crit_edge1332.loopexit:                         ; preds = %800
  %.pre1504 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1505 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1332

._crit_edge1332:                                  ; preds = %._crit_edge1332.loopexit, %.lr.ph1336
  %810 = phi i32 [ %.pre1505, %._crit_edge1332.loopexit ], [ %790, %.lr.ph1336 ]
  %811 = phi i32 [ %.pre1504, %._crit_edge1332.loopexit ], [ %793, %.lr.ph1336 ]
  %812 = phi i32 [ %803, %._crit_edge1332.loopexit ], [ %791, %.lr.ph1336 ]
  %813 = phi i32 [ %802, %._crit_edge1332.loopexit ], [ %792, %.lr.ph1336 ]
  %814 = add nsw i32 %811, 1
  store i32 %814, ptr %35, align 4, !tbaa !5
  %.not989.not = icmp slt i32 %811, %810
  br i1 %.not989.not, label %.lr.ph1336, label %.loopexit1133, !llvm.loop !55

815:                                              ; preds = %787
  br i1 %158, label %816, label %883

816:                                              ; preds = %815
  br i1 %74, label %817, label %856

817:                                              ; preds = %816
  %818 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %818, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not9851325 = icmp slt i32 %818, 1
  br i1 %.not9851325, label %.loopexit1133.thread.thread.thread.thread.thread1523, label %.lr.ph1328

.lr.ph1328:                                       ; preds = %817, %._crit_edge1324
  %819 = phi i32 [ %853, %._crit_edge1324 ], [ %818, %817 ]
  %820 = phi i32 [ %855, %._crit_edge1324 ], [ 1, %817 ]
  store i32 %820, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not9871320 = icmp slt i32 %820, 1
  br i1 %.not9871320, label %._crit_edge1324, label %.lr.ph1323

.lr.ph1323:                                       ; preds = %.lr.ph1328, %837
  %storemerge9861321 = phi i32 [ %852, %837 ], [ 1, %.lr.ph1328 ]
  %821 = icmp eq i32 %storemerge9861321, 1
  br i1 %821, label %822, label %824

822:                                              ; preds = %.lr.ph1323
  %823 = load i32, ptr %35, align 4, !tbaa !5
  br label %837

824:                                              ; preds = %.lr.ph1323
  %825 = load i32, ptr %1, align 4, !tbaa !5
  %826 = add nsw i32 %825, 1
  %827 = mul nsw i32 %826, %825
  %828 = sdiv i32 %827, 2
  %829 = sub nsw i32 %825, %storemerge9861321
  %830 = add nsw i32 %829, 1
  %831 = add nsw i32 %829, 2
  %832 = mul nsw i32 %830, %831
  %.neg = sdiv i32 %832, -2
  %833 = load i32, ptr %35, align 4, !tbaa !5
  %reass.sub1399 = sub i32 %833, %storemerge9861321
  %834 = add i32 %reass.sub1399, 1
  %835 = add i32 %834, %828
  %836 = add i32 %835, %.neg
  br label %837

837:                                              ; preds = %824, %822
  %.1815 = phi i32 [ %823, %822 ], [ %836, %824 ]
  %838 = add nsw i32 %.1815, -1
  %839 = load i32, ptr %25, align 4, !tbaa !5
  %840 = sdiv i32 %838, %839
  %841 = add nsw i32 %840, 1
  store i32 %841, ptr %33, align 4, !tbaa !5
  %842 = mul nsw i32 %840, %839
  %843 = sub nsw i32 %.1815, %842
  store i32 %843, ptr %32, align 4, !tbaa !5
  %844 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %845 = load i32, ptr %32, align 4, !tbaa !5
  %846 = load i32, ptr %33, align 4, !tbaa !5
  %847 = mul nsw i32 %846, %47
  %848 = add nsw i32 %847, %845
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds double, ptr %49, i64 %849
  store double %844, ptr %850, align 8, !tbaa !9
  %851 = load i32, ptr %34, align 4, !tbaa !5
  %852 = add nsw i32 %851, 1
  store i32 %852, ptr %34, align 4, !tbaa !5
  %.not987.not = icmp slt i32 %851, %820
  br i1 %.not987.not, label %.lr.ph1323, label %._crit_edge1324.loopexit, !llvm.loop !56

._crit_edge1324.loopexit:                         ; preds = %837
  %.pre1502 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1503 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1324

._crit_edge1324:                                  ; preds = %._crit_edge1324.loopexit, %.lr.ph1328
  %853 = phi i32 [ %.pre1503, %._crit_edge1324.loopexit ], [ %819, %.lr.ph1328 ]
  %854 = phi i32 [ %.pre1502, %._crit_edge1324.loopexit ], [ %820, %.lr.ph1328 ]
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr %35, align 4, !tbaa !5
  %.not985.not = icmp slt i32 %854, %853
  br i1 %.not985.not, label %.lr.ph1328, label %.loopexit1133, !llvm.loop !57

856:                                              ; preds = %816
  store i32 0, ptr %32, align 4, !tbaa !5
  store i32 1, ptr %33, align 4, !tbaa !5
  %857 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %857, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not9801316 = icmp slt i32 %857, 1
  br i1 %.not9801316, label %.loopexit1133.thread.thread.thread.thread.thread1523, label %.lr.ph1319

.lr.ph1319:                                       ; preds = %856, %._crit_edge1315
  %858 = phi i32 [ %878, %._crit_edge1315 ], [ %857, %856 ]
  %859 = phi i32 [ %880, %._crit_edge1315 ], [ 1, %856 ]
  %860 = phi i32 [ %881, %._crit_edge1315 ], [ 0, %856 ]
  %storemerge9791317 = phi i32 [ %882, %._crit_edge1315 ], [ 1, %856 ]
  %861 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %861, ptr %30, align 4, !tbaa !5
  store i32 %storemerge9791317, ptr %34, align 4, !tbaa !5
  %.not9821312 = icmp sgt i32 %storemerge9791317, %861
  br i1 %.not9821312, label %._crit_edge1315, label %.lr.ph1314

.lr.ph1314:                                       ; preds = %.lr.ph1319, %868
  %862 = phi i32 [ %871, %868 ], [ %859, %.lr.ph1319 ]
  %863 = phi i32 [ %870, %868 ], [ %860, %.lr.ph1319 ]
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr %32, align 4, !tbaa !5
  %865 = load i32, ptr %25, align 4, !tbaa !5
  %.not983 = icmp slt i32 %863, %865
  br i1 %.not983, label %868, label %866

866:                                              ; preds = %.lr.ph1314
  store i32 1, ptr %32, align 4, !tbaa !5
  %867 = add nsw i32 %862, 1
  store i32 %867, ptr %33, align 4, !tbaa !5
  br label %868

868:                                              ; preds = %866, %.lr.ph1314
  %869 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %870 = load i32, ptr %32, align 4, !tbaa !5
  %871 = load i32, ptr %33, align 4, !tbaa !5
  %872 = mul nsw i32 %871, %47
  %873 = add nsw i32 %872, %870
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds double, ptr %49, i64 %874
  store double %869, ptr %875, align 8, !tbaa !9
  %876 = load i32, ptr %34, align 4, !tbaa !5
  %877 = add nsw i32 %876, 1
  store i32 %877, ptr %34, align 4, !tbaa !5
  %.not982.not = icmp slt i32 %876, %861
  br i1 %.not982.not, label %.lr.ph1314, label %._crit_edge1315.loopexit, !llvm.loop !58

._crit_edge1315.loopexit:                         ; preds = %868
  %.pre1500 = load i32, ptr %35, align 4, !tbaa !5
  %.pre1501 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1315

._crit_edge1315:                                  ; preds = %._crit_edge1315.loopexit, %.lr.ph1319
  %878 = phi i32 [ %.pre1501, %._crit_edge1315.loopexit ], [ %858, %.lr.ph1319 ]
  %879 = phi i32 [ %.pre1500, %._crit_edge1315.loopexit ], [ %storemerge9791317, %.lr.ph1319 ]
  %880 = phi i32 [ %871, %._crit_edge1315.loopexit ], [ %859, %.lr.ph1319 ]
  %881 = phi i32 [ %870, %._crit_edge1315.loopexit ], [ %860, %.lr.ph1319 ]
  %882 = add nsw i32 %879, 1
  store i32 %882, ptr %35, align 4, !tbaa !5
  %.not980.not = icmp slt i32 %879, %878
  br i1 %.not980.not, label %.lr.ph1319, label %.loopexit1133, !llvm.loop !59

883:                                              ; preds = %815
  br i1 %155, label %884, label %915

884:                                              ; preds = %883
  %885 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %885, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not9761308 = icmp slt i32 %885, 1
  br i1 %.not9761308, label %.loopexit1133.thread.thread.thread.thread.thread.thread1525, label %.lr.ph1311

.lr.ph1311:                                       ; preds = %884, %._crit_edge1307
  %886 = phi i32 [ %912, %._crit_edge1307 ], [ %885, %884 ]
  %887 = phi i32 [ %914, %._crit_edge1307 ], [ 1, %884 ]
  store i32 %887, ptr %30, align 4, !tbaa !5
  %888 = load i32, ptr %43, align 4, !tbaa !5
  %889 = sub nsw i32 %887, %888
  store i32 %889, ptr %34, align 4, !tbaa !5
  %.not9781303 = icmp slt i32 %888, 0
  br i1 %.not9781303, label %._crit_edge1307, label %.lr.ph1306

.lr.ph1306:                                       ; preds = %.lr.ph1311, %906
  %890 = phi i32 [ %908, %906 ], [ %887, %.lr.ph1311 ]
  %storemerge9771304 = phi i32 [ %911, %906 ], [ %889, %.lr.ph1311 ]
  %891 = icmp slt i32 %storemerge9771304, 1
  br i1 %891, label %892, label %898

892:                                              ; preds = %.lr.ph1306
  %893 = load i32, ptr %1, align 4, !tbaa !5
  %894 = add nsw i32 %893, %storemerge9771304
  %895 = mul nsw i32 %894, %47
  %reass.sub1398 = sub i32 %890, %storemerge9771304
  %896 = add i32 %reass.sub1398, 1
  %897 = add nsw i32 %896, %895
  br label %906

898:                                              ; preds = %.lr.ph1306
  %899 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %900 = load i32, ptr %35, align 4, !tbaa !5
  %901 = load i32, ptr %34, align 4, !tbaa !5
  %902 = mul nsw i32 %901, %47
  %903 = add i32 %900, 1
  %904 = sub i32 %903, %901
  %905 = add nsw i32 %904, %902
  br label %906

906:                                              ; preds = %892, %898
  %.sink1581 = phi i32 [ %897, %892 ], [ %905, %898 ]
  %.sink1578 = phi double [ 0.000000e+00, %892 ], [ %899, %898 ]
  %907 = phi i32 [ %storemerge9771304, %892 ], [ %901, %898 ]
  %908 = phi i32 [ %890, %892 ], [ %900, %898 ]
  %909 = sext i32 %.sink1581 to i64
  %910 = getelementptr inbounds double, ptr %49, i64 %909
  store double %.sink1578, ptr %910, align 8, !tbaa !9
  %911 = add nsw i32 %907, 1
  store i32 %911, ptr %34, align 4, !tbaa !5
  %.not978.not = icmp slt i32 %907, %887
  br i1 %.not978.not, label %.lr.ph1306, label %._crit_edge1307.loopexit, !llvm.loop !60

._crit_edge1307.loopexit:                         ; preds = %906
  %.pre1499 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1307

._crit_edge1307:                                  ; preds = %._crit_edge1307.loopexit, %.lr.ph1311
  %912 = phi i32 [ %.pre1499, %._crit_edge1307.loopexit ], [ %886, %.lr.ph1311 ]
  %913 = phi i32 [ %908, %._crit_edge1307.loopexit ], [ %887, %.lr.ph1311 ]
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr %35, align 4, !tbaa !5
  %.not976.not = icmp slt i32 %913, %912
  br i1 %.not976.not, label %.lr.ph1311, label %.loopexit1133, !llvm.loop !61

915:                                              ; preds = %883
  br i1 %156, label %916, label %937

916:                                              ; preds = %915
  %917 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %917, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not9721299 = icmp slt i32 %917, 1
  br i1 %.not9721299, label %.loopexit1133.thread.thread.thread.thread.thread.thread.thread1527, label %.lr.ph1302.preheader

.lr.ph1302.preheader:                             ; preds = %916
  %.pre1497 = load i32, ptr %43, align 4, !tbaa !5
  br label %.lr.ph1302

.lr.ph1302:                                       ; preds = %.lr.ph1302.preheader, %._crit_edge1298
  %918 = phi i32 [ %933, %._crit_edge1298 ], [ %917, %.lr.ph1302.preheader ]
  %919 = phi i32 [ %935, %._crit_edge1298 ], [ %.pre1497, %.lr.ph1302.preheader ]
  %920 = phi i32 [ %936, %._crit_edge1298 ], [ 1, %.lr.ph1302.preheader ]
  store i32 %920, ptr %30, align 4, !tbaa !5
  %921 = sub nsw i32 %920, %919
  store i32 %921, ptr %34, align 4, !tbaa !5
  %.not9741295 = icmp slt i32 %919, 0
  br i1 %.not9741295, label %._crit_edge1298, label %.lr.ph1297

.lr.ph1297:                                       ; preds = %.lr.ph1302, %.lr.ph1297
  %922 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %923 = load i32, ptr %34, align 4, !tbaa !5
  %924 = load i32, ptr %35, align 4, !tbaa !5
  %925 = load i32, ptr %43, align 4, !tbaa !5
  %926 = mul nsw i32 %924, %47
  %927 = add i32 %923, 1
  %928 = sub i32 %927, %924
  %929 = add i32 %928, %925
  %930 = add nsw i32 %929, %926
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds double, ptr %49, i64 %931
  store double %922, ptr %932, align 8, !tbaa !9
  store i32 %927, ptr %34, align 4, !tbaa !5
  %.not974.not = icmp slt i32 %923, %920
  br i1 %.not974.not, label %.lr.ph1297, label %._crit_edge1298.loopexit, !llvm.loop !62

._crit_edge1298.loopexit:                         ; preds = %.lr.ph1297
  %.pre1498 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1298

._crit_edge1298:                                  ; preds = %._crit_edge1298.loopexit, %.lr.ph1302
  %933 = phi i32 [ %.pre1498, %._crit_edge1298.loopexit ], [ %918, %.lr.ph1302 ]
  %934 = phi i32 [ %924, %._crit_edge1298.loopexit ], [ %920, %.lr.ph1302 ]
  %935 = phi i32 [ %925, %._crit_edge1298.loopexit ], [ %919, %.lr.ph1302 ]
  %936 = add nsw i32 %934, 1
  store i32 %936, ptr %35, align 4, !tbaa !5
  %.not972.not = icmp slt i32 %934, %933
  br i1 %.not972.not, label %.lr.ph1302, label %.loopexit1133, !llvm.loop !63

937:                                              ; preds = %915
  br i1 %159, label %938, label %.thread1110.thread1112

938:                                              ; preds = %937
  br i1 %74, label %939, label %978

939:                                              ; preds = %938
  %940 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %940, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not9671291 = icmp slt i32 %940, 1
  br i1 %.not9671291, label %.thread1110.thread, label %.lr.ph1294.preheader

.lr.ph1294.preheader:                             ; preds = %939
  %.pre1495 = load i32, ptr %43, align 4, !tbaa !5
  br label %.lr.ph1294

.lr.ph1294:                                       ; preds = %.lr.ph1294.preheader, %._crit_edge1290
  %941 = phi i32 [ %974, %._crit_edge1290 ], [ %940, %.lr.ph1294.preheader ]
  %942 = phi i32 [ %976, %._crit_edge1290 ], [ %.pre1495, %.lr.ph1294.preheader ]
  %943 = phi i32 [ %977, %._crit_edge1290 ], [ 1, %.lr.ph1294.preheader ]
  store i32 %943, ptr %30, align 4, !tbaa !5
  %944 = sub nsw i32 %943, %942
  store i32 %944, ptr %34, align 4, !tbaa !5
  %.not9691287 = icmp slt i32 %942, 0
  br i1 %.not9691287, label %._crit_edge1290, label %.lr.ph1289

.lr.ph1289:                                       ; preds = %.lr.ph1294, %972
  %945 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %946 = load i32, ptr %34, align 4, !tbaa !5
  %947 = load i32, ptr %35, align 4, !tbaa !5
  %948 = load i32, ptr %43, align 4, !tbaa !5
  %949 = mul nsw i32 %947, %47
  %950 = add i32 %948, 1
  %951 = add i32 %950, %946
  %952 = sub i32 %951, %947
  %953 = add nsw i32 %952, %949
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds double, ptr %49, i64 %954
  store double %945, ptr %955, align 8, !tbaa !9
  %956 = icmp slt i32 %946, 1
  br i1 %956, label %957, label %964

957:                                              ; preds = %.lr.ph1289
  %958 = load i32, ptr %1, align 4, !tbaa !5
  %959 = add nsw i32 %958, %946
  %960 = mul nsw i32 %959, %47
  %961 = sub i32 %950, %946
  %962 = add i32 %961, %947
  %963 = add nsw i32 %962, %960
  br label %.sink.split1582

964:                                              ; preds = %.lr.ph1289
  %.not970 = icmp eq i32 %946, %947
  br i1 %.not970, label %972, label %965

965:                                              ; preds = %964
  %966 = mul nsw i32 %946, %47
  %reass.sub1397 = sub i32 %947, %946
  %967 = add i32 %reass.sub1397, 1
  %968 = add i32 %967, %966
  %969 = add i32 %968, %948
  br label %.sink.split1582

.sink.split1582:                                  ; preds = %965, %957
  %.sink1586 = phi i32 [ %963, %957 ], [ %969, %965 ]
  %.sink1583 = phi double [ 0.000000e+00, %957 ], [ %945, %965 ]
  %970 = sext i32 %.sink1586 to i64
  %971 = getelementptr inbounds double, ptr %49, i64 %970
  store double %.sink1583, ptr %971, align 8, !tbaa !9
  br label %972

972:                                              ; preds = %.sink.split1582, %964
  %973 = add nsw i32 %946, 1
  store i32 %973, ptr %34, align 4, !tbaa !5
  %.not969.not = icmp slt i32 %946, %943
  br i1 %.not969.not, label %.lr.ph1289, label %._crit_edge1290.loopexit, !llvm.loop !64

._crit_edge1290.loopexit:                         ; preds = %972
  %.pre1496 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1290

._crit_edge1290:                                  ; preds = %._crit_edge1290.loopexit, %.lr.ph1294
  %974 = phi i32 [ %.pre1496, %._crit_edge1290.loopexit ], [ %941, %.lr.ph1294 ]
  %975 = phi i32 [ %947, %._crit_edge1290.loopexit ], [ %943, %.lr.ph1294 ]
  %976 = phi i32 [ %948, %._crit_edge1290.loopexit ], [ %942, %.lr.ph1294 ]
  %977 = add nsw i32 %975, 1
  store i32 %977, ptr %35, align 4, !tbaa !5
  %.not967.not = icmp slt i32 %975, %974
  br i1 %.not967.not, label %.lr.ph1294, label %.loopexit1133, !llvm.loop !65

978:                                              ; preds = %938
  br i1 %76, label %979, label %.thread1110.thread

979:                                              ; preds = %978
  %980 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %980, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not9631283 = icmp slt i32 %980, 1
  br i1 %.not9631283, label %.thread1110.thread, label %.lr.ph1286.preheader

.lr.ph1286.preheader:                             ; preds = %979
  %.pre1493 = load i32, ptr %43, align 4, !tbaa !5
  br label %.lr.ph1286

.lr.ph1286:                                       ; preds = %.lr.ph1286.preheader, %._crit_edge1282
  %981 = phi i32 [ %997, %._crit_edge1282 ], [ %980, %.lr.ph1286.preheader ]
  %982 = phi i32 [ %999, %._crit_edge1282 ], [ %.pre1493, %.lr.ph1286.preheader ]
  %storemerge9621284 = phi i32 [ %1000, %._crit_edge1282 ], [ 1, %.lr.ph1286.preheader ]
  %983 = load i32, ptr %42, align 4, !tbaa !5
  %984 = add nsw i32 %983, %storemerge9621284
  store i32 %984, ptr %30, align 4, !tbaa !5
  %985 = sub nsw i32 %storemerge9621284, %982
  store i32 %985, ptr %34, align 4, !tbaa !5
  %.not9651279 = icmp sgt i32 %985, %984
  br i1 %.not9651279, label %._crit_edge1282, label %.lr.ph1281

.lr.ph1281:                                       ; preds = %.lr.ph1286, %.lr.ph1281
  %986 = call double @dlatm2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %39, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %41, ptr noundef %26, ptr noundef nonnull %21) #4
  %987 = load i32, ptr %34, align 4, !tbaa !5
  %988 = load i32, ptr %35, align 4, !tbaa !5
  %989 = load i32, ptr %43, align 4, !tbaa !5
  %990 = mul nsw i32 %988, %47
  %991 = add i32 %987, 1
  %992 = sub i32 %991, %988
  %993 = add i32 %992, %989
  %994 = add nsw i32 %993, %990
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds double, ptr %49, i64 %995
  store double %986, ptr %996, align 8, !tbaa !9
  store i32 %991, ptr %34, align 4, !tbaa !5
  %.not965.not = icmp slt i32 %987, %984
  br i1 %.not965.not, label %.lr.ph1281, label %._crit_edge1282.loopexit, !llvm.loop !66

._crit_edge1282.loopexit:                         ; preds = %.lr.ph1281
  %.pre1494 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1282

._crit_edge1282:                                  ; preds = %._crit_edge1282.loopexit, %.lr.ph1286
  %997 = phi i32 [ %.pre1494, %._crit_edge1282.loopexit ], [ %981, %.lr.ph1286 ]
  %998 = phi i32 [ %988, %._crit_edge1282.loopexit ], [ %storemerge9621284, %.lr.ph1286 ]
  %999 = phi i32 [ %989, %._crit_edge1282.loopexit ], [ %982, %.lr.ph1286 ]
  %1000 = add nsw i32 %998, 1
  store i32 %1000, ptr %35, align 4, !tbaa !5
  %.not963.not = icmp slt i32 %998, %997
  br i1 %.not963.not, label %.lr.ph1286, label %.loopexit1133, !llvm.loop !67

.loopexit1133:                                    ; preds = %._crit_edge1202, %._crit_edge1210, %._crit_edge1218, %._crit_edge1227, %._crit_edge1235, %._crit_edge1243, %._crit_edge1251, %._crit_edge1259, %._crit_edge1267, %._crit_edge1274, %._crit_edge1282, %._crit_edge1290, %._crit_edge1298, %._crit_edge1307, %._crit_edge1315, %._crit_edge1324, %._crit_edge1332, %._crit_edge1340, %._crit_edge1348, %._crit_edge1356, %._crit_edge1363
  br i1 %.not909, label %.thread1104, label %.loopexit1133.thread

.thread1104:                                      ; preds = %707, %727, %420, %441, %440, %726, %.loopexit1133
  %1001 = call double @dlange_(ptr noundef nonnull @.str.15, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %36) #4
  br label %.thread1110.thread1112

.loopexit1133.thread:                             ; preds = %.loopexit1133
  br i1 %153, label %.loopexit1133.thread.thread1517, label %.loopexit1133.thread.thread

.loopexit1133.thread.thread1517:                  ; preds = %459, %744, %.loopexit1133.thread
  %1002 = call double @dlansy_(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %36) #4
  br label %.thread1110.thread1112

.loopexit1133.thread.thread:                      ; preds = %.loopexit1133.thread
  br i1 %154, label %.loopexit1133.thread.thread.thread1519, label %.loopexit1133.thread.thread.thread

.loopexit1133.thread.thread.thread1519:           ; preds = %766, %484, %.loopexit1133.thread.thread
  %1003 = call double @dlansy_(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.7, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %36) #4
  br label %.thread1110.thread1112

.loopexit1133.thread.thread.thread:               ; preds = %.loopexit1133.thread.thread
  br i1 %157, label %.loopexit1133.thread.thread.thread.thread1521, label %.loopexit1133.thread.thread.thread.thread

.loopexit1133.thread.thread.thread.thread1521:    ; preds = %509, %788, %.loopexit1133.thread.thread.thread
  %1004 = call double @dlansp_(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %36) #4
  br label %.thread1110.thread1112

.loopexit1133.thread.thread.thread.thread:        ; preds = %.loopexit1133.thread.thread.thread
  br i1 %158, label %.loopexit1133.thread.thread.thread.thread.thread1523, label %.loopexit1133.thread.thread.thread.thread.thread

.loopexit1133.thread.thread.thread.thread.thread1523: ; preds = %817, %856, %538, %.loopexit1133.thread.thread.thread.thread
  %1005 = call double @dlansp_(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.7, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %36) #4
  br label %.thread1110.thread1112

.loopexit1133.thread.thread.thread.thread.thread: ; preds = %.loopexit1133.thread.thread.thread.thread
  br i1 %155, label %.loopexit1133.thread.thread.thread.thread.thread.thread1525, label %.loopexit1133.thread.thread.thread.thread.thread.thread

.loopexit1133.thread.thread.thread.thread.thread.thread1525: ; preds = %578, %884, %.loopexit1133.thread.thread.thread.thread.thread
  %1006 = call double @dlansb_(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.7, ptr noundef nonnull %1, ptr noundef nonnull %42, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %36) #4
  br label %.thread1110.thread1112

.loopexit1133.thread.thread.thread.thread.thread.thread: ; preds = %.loopexit1133.thread.thread.thread.thread.thread
  br i1 %156, label %.loopexit1133.thread.thread.thread.thread.thread.thread.thread1527, label %.thread1110

.loopexit1133.thread.thread.thread.thread.thread.thread.thread1527: ; preds = %916, %612, %.loopexit1133.thread.thread.thread.thread.thread.thread
  %1007 = call double @dlansb_(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str, ptr noundef nonnull %1, ptr noundef nonnull %43, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %36) #4
  br label %.thread1110.thread1112

.thread1110:                                      ; preds = %.loopexit1133.thread.thread.thread.thread.thread.thread
  br i1 %159, label %.thread1110.thread, label %.thread1110.thread1112

.thread1110.thread:                               ; preds = %681, %638, %979, %939, %978, %680, %.thread1110
  %1008 = call double @dlangb_(ptr noundef nonnull @.str.15, ptr noundef nonnull %1, ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %36) #4
  br label %.thread1110.thread1112

.thread1110.thread1112:                           ; preds = %937, %636, %.loopexit1133.thread.thread1517, %.loopexit1133.thread.thread.thread.thread1521, %.loopexit1133.thread.thread.thread.thread.thread.thread1525, %.thread1110, %.thread1110.thread, %.loopexit1133.thread.thread.thread.thread.thread.thread.thread1527, %.loopexit1133.thread.thread.thread.thread.thread1523, %.loopexit1133.thread.thread.thread1519, %.thread1104
  %.0808 = phi double [ %1001, %.thread1104 ], [ %1002, %.loopexit1133.thread.thread1517 ], [ %1003, %.loopexit1133.thread.thread.thread1519 ], [ %1004, %.loopexit1133.thread.thread.thread.thread1521 ], [ %1005, %.loopexit1133.thread.thread.thread.thread.thread1523 ], [ %1006, %.loopexit1133.thread.thread.thread.thread.thread.thread1525 ], [ %1007, %.loopexit1133.thread.thread.thread.thread.thread.thread.thread1527 ], [ %1008, %.thread1110.thread ], [ undef, %.thread1110 ], [ undef, %636 ], [ undef, %937 ]
  %1009 = load double, ptr %22, align 8, !tbaa !9
  %1010 = fcmp ult double %1009, 0.000000e+00
  br i1 %1010, label %.loopexit, label %1011

1011:                                             ; preds = %.thread1110.thread1112
  %1012 = fcmp ogt double %1009, 0.000000e+00
  %1013 = fcmp oeq double %.0808, 0.000000e+00
  %or.cond61 = select i1 %1012, i1 %1013, i1 false
  br i1 %or.cond61, label %1014, label %1015

1014:                                             ; preds = %1011
  store i32 5, ptr %27, align 4, !tbaa !5
  br label %.loopexit

1015:                                             ; preds = %1011
  %1016 = fcmp ogt double %1009, 1.000000e+00
  %1017 = fcmp olt double %.0808, 1.000000e+00
  %or.cond63 = select i1 %1016, i1 %1017, i1 false
  br i1 %or.cond63, label %1021, label %1018

1018:                                             ; preds = %1015
  %1019 = fcmp olt double %1009, 1.000000e+00
  %1020 = fcmp ogt double %.0808, 1.000000e+00
  %or.cond65 = select i1 %1019, i1 %1020, i1 false
  br i1 %or.cond65, label %1021, label %1063

1021:                                             ; preds = %1018, %1015
  %1022 = load i32, ptr %1, align 4, !tbaa !5
  br i1 %160, label %1023, label %1034

1023:                                             ; preds = %1021
  store i32 %1022, ptr %29, align 4, !tbaa !5
  %invariant.gep1386 = getelementptr i8, ptr %49, i64 8
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10741390 = icmp slt i32 %1022, 1
  br i1 %.not10741390, label %.loopexit, label %.lr.ph1393

.lr.ph1393:                                       ; preds = %1023
  %1024 = fdiv double 1.000000e+00, %.0808
  br label %1025

1025:                                             ; preds = %.lr.ph1393, %1025
  %storemerge10731391 = phi i32 [ 1, %.lr.ph1393 ], [ %1032, %1025 ]
  store double %1024, ptr %31, align 8, !tbaa !9
  %1026 = mul nsw i32 %storemerge10731391, %47
  %1027 = sext i32 %1026 to i64
  %gep1387 = getelementptr double, ptr %invariant.gep1386, i64 %1027
  call void @dscal_(ptr noundef nonnull %0, ptr noundef nonnull %31, ptr noundef %gep1387, ptr noundef nonnull @c__1) #4
  %1028 = load i32, ptr %35, align 4, !tbaa !5
  %1029 = mul nsw i32 %1028, %47
  %1030 = sext i32 %1029 to i64
  %gep1389 = getelementptr double, ptr %invariant.gep1386, i64 %1030
  call void @dscal_(ptr noundef nonnull %0, ptr noundef nonnull %22, ptr noundef %gep1389, ptr noundef nonnull @c__1) #4
  %1031 = load i32, ptr %35, align 4, !tbaa !5
  %1032 = add nsw i32 %1031, 1
  store i32 %1032, ptr %35, align 4, !tbaa !5
  %1033 = load i32, ptr %29, align 4, !tbaa !5
  %.not1074.not = icmp slt i32 %1031, %1033
  br i1 %.not1074.not, label %1025, label %.loopexit, !llvm.loop !68

1034:                                             ; preds = %1021
  br i1 %or.cond49, label %1035, label %1044

1035:                                             ; preds = %1034
  %1036 = add nsw i32 %1022, 1
  %1037 = mul nsw i32 %1036, %1022
  %1038 = sdiv i32 %1037, 2
  store i32 %1038, ptr %29, align 4, !tbaa !5
  %1039 = fdiv double 1.000000e+00, %.0808
  store double %1039, ptr %31, align 8, !tbaa !9
  call void @dscal_(ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef %24, ptr noundef nonnull @c__1) #4
  %1040 = load i32, ptr %1, align 4, !tbaa !5
  %1041 = add nsw i32 %1040, 1
  %1042 = mul nsw i32 %1041, %1040
  %1043 = sdiv i32 %1042, 2
  store i32 %1043, ptr %29, align 4, !tbaa !5
  call void @dscal_(ptr noundef nonnull %29, ptr noundef nonnull %22, ptr noundef %24, ptr noundef nonnull @c__1) #4
  br label %.loopexit

1044:                                             ; preds = %1034
  store i32 %1022, ptr %29, align 4, !tbaa !5
  %invariant.gep1378 = getelementptr i8, ptr %49, i64 8
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10721382 = icmp slt i32 %1022, 1
  br i1 %.not10721382, label %.loopexit, label %.lr.ph1385

.lr.ph1385:                                       ; preds = %1044
  %1045 = fdiv double 1.000000e+00, %.0808
  br label %1046

1046:                                             ; preds = %.lr.ph1385, %1046
  %storemerge10711383 = phi i32 [ 1, %.lr.ph1385 ], [ %1061, %1046 ]
  %1047 = load i32, ptr %42, align 4, !tbaa !5
  %1048 = load i32, ptr %43, align 4, !tbaa !5
  %1049 = add i32 %1047, 1
  %1050 = add i32 %1049, %1048
  store i32 %1050, ptr %30, align 4, !tbaa !5
  store double %1045, ptr %31, align 8, !tbaa !9
  %1051 = mul nsw i32 %storemerge10711383, %47
  %1052 = sext i32 %1051 to i64
  %gep1379 = getelementptr double, ptr %invariant.gep1378, i64 %1052
  call void @dscal_(ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %gep1379, ptr noundef nonnull @c__1) #4
  %1053 = load i32, ptr %42, align 4, !tbaa !5
  %1054 = load i32, ptr %43, align 4, !tbaa !5
  %1055 = add i32 %1053, 1
  %1056 = add i32 %1055, %1054
  store i32 %1056, ptr %30, align 4, !tbaa !5
  %1057 = load i32, ptr %35, align 4, !tbaa !5
  %1058 = mul nsw i32 %1057, %47
  %1059 = sext i32 %1058 to i64
  %gep1381 = getelementptr double, ptr %invariant.gep1378, i64 %1059
  call void @dscal_(ptr noundef nonnull %30, ptr noundef nonnull %22, ptr noundef %gep1381, ptr noundef nonnull @c__1) #4
  %1060 = load i32, ptr %35, align 4, !tbaa !5
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr %35, align 4, !tbaa !5
  %1062 = load i32, ptr %29, align 4, !tbaa !5
  %.not1072.not = icmp slt i32 %1060, %1062
  br i1 %.not1072.not, label %1046, label %.loopexit, !llvm.loop !69

1063:                                             ; preds = %1018
  %1064 = load i32, ptr %1, align 4, !tbaa !5
  br i1 %160, label %1065, label %1073

1065:                                             ; preds = %1063
  store i32 %1064, ptr %29, align 4, !tbaa !5
  %invariant.gep1372 = getelementptr i8, ptr %49, i64 8
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10701374 = icmp slt i32 %1064, 1
  br i1 %.not10701374, label %.loopexit, label %.lr.ph1377

.lr.ph1377:                                       ; preds = %1065, %.lr.ph1377
  %storemerge10691375 = phi i32 [ %1071, %.lr.ph1377 ], [ 1, %1065 ]
  %1066 = load double, ptr %22, align 8, !tbaa !9
  %1067 = fdiv double %1066, %.0808
  store double %1067, ptr %31, align 8, !tbaa !9
  %1068 = mul nsw i32 %storemerge10691375, %47
  %1069 = sext i32 %1068 to i64
  %gep1373 = getelementptr double, ptr %invariant.gep1372, i64 %1069
  call void @dscal_(ptr noundef nonnull %0, ptr noundef nonnull %31, ptr noundef %gep1373, ptr noundef nonnull @c__1) #4
  %1070 = load i32, ptr %35, align 4, !tbaa !5
  %1071 = add nsw i32 %1070, 1
  store i32 %1071, ptr %35, align 4, !tbaa !5
  %1072 = load i32, ptr %29, align 4, !tbaa !5
  %.not1070.not = icmp slt i32 %1070, %1072
  br i1 %.not1070.not, label %.lr.ph1377, label %.loopexit, !llvm.loop !70

1073:                                             ; preds = %1063
  br i1 %or.cond49, label %1074, label %1079

1074:                                             ; preds = %1073
  %1075 = add nsw i32 %1064, 1
  %1076 = mul nsw i32 %1075, %1064
  %1077 = sdiv i32 %1076, 2
  store i32 %1077, ptr %29, align 4, !tbaa !5
  %1078 = fdiv double %1009, %.0808
  store double %1078, ptr %31, align 8, !tbaa !9
  call void @dscal_(ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef %24, ptr noundef nonnull @c__1) #4
  br label %.loopexit

1079:                                             ; preds = %1073
  store i32 %1064, ptr %29, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %49, i64 8
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not10681368 = icmp slt i32 %1064, 1
  br i1 %.not10681368, label %.loopexit, label %.lr.ph1371

.lr.ph1371:                                       ; preds = %1079, %.lr.ph1371
  %storemerge10671369 = phi i32 [ %1089, %.lr.ph1371 ], [ 1, %1079 ]
  %1080 = load i32, ptr %42, align 4, !tbaa !5
  %1081 = load i32, ptr %43, align 4, !tbaa !5
  %1082 = add i32 %1080, 1
  %1083 = add i32 %1082, %1081
  store i32 %1083, ptr %30, align 4, !tbaa !5
  %1084 = load double, ptr %22, align 8, !tbaa !9
  %1085 = fdiv double %1084, %.0808
  store double %1085, ptr %31, align 8, !tbaa !9
  %1086 = mul nsw i32 %storemerge10671369, %47
  %1087 = sext i32 %1086 to i64
  %gep = getelementptr double, ptr %invariant.gep, i64 %1087
  call void @dscal_(ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %gep, ptr noundef nonnull @c__1) #4
  %1088 = load i32, ptr %35, align 4, !tbaa !5
  %1089 = add nsw i32 %1088, 1
  store i32 %1089, ptr %35, align 4, !tbaa !5
  %1090 = load i32, ptr %29, align 4, !tbaa !5
  %.not1068.not = icmp slt i32 %1088, %1090
  br i1 %.not1068.not, label %.lr.ph1371, label %.loopexit, !llvm.loop !71

.loopexit:                                        ; preds = %.lr.ph1371, %.lr.ph1377, %1046, %1025, %1079, %1065, %1044, %1023, %.thread1110.thread1112, %1035, %1074, %28, %53, %1014, %371, %365, %344, %306, %.thread1095
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #4
  ret void
}

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

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

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

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

declare double @dlatm3_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @dlatm2_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare double @dlansy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @dlansp_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @dlansb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @dlangb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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

; 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.smin.i32(i32, i32) #3

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x i32> @llvm.abs.v2i32(<2 x i32>, i1 immarg) #3

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

!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, !18}
!18 = !{!"llvm.loop.unroll.disable"}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12, !13, !14}
!21 = distinct !{!21, !12, !14, !13}
!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}


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