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

; 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 [7 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
@c_b7 = external hidden global double, align 8
@c_b8 = external hidden global double, align 8
@c__2 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @dlalsa_(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) #0 {
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca i64, align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca i64, align 8
  %78 = alloca i64, align 8
  %79 = alloca i64, align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca i64, align 8
  %89 = alloca i64, align 8
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca i64, align 8
  %93 = alloca i64, align 8
  %94 = alloca i64, align 8
  %95 = alloca i64, align 8
  %96 = alloca i64, align 8
  %97 = alloca i64, align 8
  %98 = alloca i64, align 8
  %99 = alloca i64, align 8
  %100 = alloca i32, align 4
  store ptr %0, ptr %28, align 8, !tbaa !5
  store ptr %1, ptr %29, align 8, !tbaa !5
  store ptr %2, ptr %30, align 8, !tbaa !5
  store ptr %3, ptr %31, align 8, !tbaa !5
  store ptr %4, ptr %32, align 8, !tbaa !5
  store ptr %5, ptr %33, align 8, !tbaa !5
  store ptr %6, ptr %34, align 8, !tbaa !5
  store ptr %7, ptr %35, align 8, !tbaa !5
  store ptr %8, ptr %36, align 8, !tbaa !5
  store ptr %9, ptr %37, align 8, !tbaa !5
  store ptr %10, ptr %38, align 8, !tbaa !5
  store ptr %11, ptr %39, align 8, !tbaa !5
  store ptr %12, ptr %40, align 8, !tbaa !5
  store ptr %13, ptr %41, align 8, !tbaa !5
  store ptr %14, ptr %42, align 8, !tbaa !5
  store ptr %15, ptr %43, align 8, !tbaa !5
  store ptr %16, ptr %44, align 8, !tbaa !5
  store ptr %17, ptr %45, align 8, !tbaa !5
  store ptr %18, ptr %46, align 8, !tbaa !5
  store ptr %19, ptr %47, align 8, !tbaa !5
  store ptr %20, ptr %48, align 8, !tbaa !5
  store ptr %21, ptr %49, align 8, !tbaa !5
  store ptr %22, ptr %50, align 8, !tbaa !5
  store ptr %23, ptr %51, align 8, !tbaa !5
  store ptr %24, ptr %52, align 8, !tbaa !5
  store ptr %25, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %64) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #3
  %101 = load ptr, ptr %33, align 8, !tbaa !5
  %102 = load i64, ptr %101, align 8, !tbaa !9
  store i64 %102, ptr %58, align 8, !tbaa !9
  %103 = load i64, ptr %58, align 8, !tbaa !9
  %104 = add nsw i64 1, %103
  store i64 %104, ptr %59, align 8, !tbaa !9
  %105 = load i64, ptr %59, align 8, !tbaa !9
  %106 = load ptr, ptr %32, align 8, !tbaa !5
  %107 = sub i64 0, %105
  %108 = getelementptr inbounds double, ptr %106, i64 %107
  store ptr %108, ptr %32, align 8, !tbaa !5
  %109 = load ptr, ptr %35, align 8, !tbaa !5
  %110 = load i64, ptr %109, align 8, !tbaa !9
  store i64 %110, ptr %60, align 8, !tbaa !9
  %111 = load i64, ptr %60, align 8, !tbaa !9
  %112 = add nsw i64 1, %111
  store i64 %112, ptr %61, align 8, !tbaa !9
  %113 = load i64, ptr %61, align 8, !tbaa !9
  %114 = load ptr, ptr %34, align 8, !tbaa !5
  %115 = sub i64 0, %113
  %116 = getelementptr inbounds double, ptr %114, i64 %115
  store ptr %116, ptr %34, align 8, !tbaa !5
  %117 = load ptr, ptr %37, align 8, !tbaa !5
  %118 = load i64, ptr %117, align 8, !tbaa !9
  store i64 %118, ptr %66, align 8, !tbaa !9
  %119 = load i64, ptr %66, align 8, !tbaa !9
  %120 = add nsw i64 1, %119
  store i64 %120, ptr %67, align 8, !tbaa !9
  %121 = load i64, ptr %67, align 8, !tbaa !9
  %122 = load ptr, ptr %48, align 8, !tbaa !5
  %123 = sub i64 0, %121
  %124 = getelementptr inbounds double, ptr %122, i64 %123
  store ptr %124, ptr %48, align 8, !tbaa !5
  %125 = load ptr, ptr %37, align 8, !tbaa !5
  %126 = load i64, ptr %125, align 8, !tbaa !9
  store i64 %126, ptr %68, align 8, !tbaa !9
  %127 = load i64, ptr %68, align 8, !tbaa !9
  %128 = add nsw i64 1, %127
  store i64 %128, ptr %69, align 8, !tbaa !9
  %129 = load i64, ptr %69, align 8, !tbaa !9
  %130 = load ptr, ptr %43, align 8, !tbaa !5
  %131 = sub i64 0, %129
  %132 = getelementptr inbounds double, ptr %130, i64 %131
  store ptr %132, ptr %43, align 8, !tbaa !5
  %133 = load ptr, ptr %37, align 8, !tbaa !5
  %134 = load i64, ptr %133, align 8, !tbaa !9
  store i64 %134, ptr %74, align 8, !tbaa !9
  %135 = load i64, ptr %74, align 8, !tbaa !9
  %136 = add nsw i64 1, %135
  store i64 %136, ptr %75, align 8, !tbaa !9
  %137 = load i64, ptr %75, align 8, !tbaa !9
  %138 = load ptr, ptr %42, align 8, !tbaa !5
  %139 = sub i64 0, %137
  %140 = getelementptr inbounds double, ptr %138, i64 %139
  store ptr %140, ptr %42, align 8, !tbaa !5
  %141 = load ptr, ptr %37, align 8, !tbaa !5
  %142 = load i64, ptr %141, align 8, !tbaa !9
  store i64 %142, ptr %64, align 8, !tbaa !9
  %143 = load i64, ptr %64, align 8, !tbaa !9
  %144 = add nsw i64 1, %143
  store i64 %144, ptr %65, align 8, !tbaa !9
  %145 = load i64, ptr %65, align 8, !tbaa !9
  %146 = load ptr, ptr %41, align 8, !tbaa !5
  %147 = sub i64 0, %145
  %148 = getelementptr inbounds double, ptr %146, i64 %147
  store ptr %148, ptr %41, align 8, !tbaa !5
  %149 = load ptr, ptr %37, align 8, !tbaa !5
  %150 = load i64, ptr %149, align 8, !tbaa !9
  store i64 %150, ptr %62, align 8, !tbaa !9
  %151 = load i64, ptr %62, align 8, !tbaa !9
  %152 = add nsw i64 1, %151
  store i64 %152, ptr %63, align 8, !tbaa !9
  %153 = load i64, ptr %63, align 8, !tbaa !9
  %154 = load ptr, ptr %40, align 8, !tbaa !5
  %155 = sub i64 0, %153
  %156 = getelementptr inbounds double, ptr %154, i64 %155
  store ptr %156, ptr %40, align 8, !tbaa !5
  %157 = load ptr, ptr %37, align 8, !tbaa !5
  %158 = load i64, ptr %157, align 8, !tbaa !9
  store i64 %158, ptr %72, align 8, !tbaa !9
  %159 = load i64, ptr %72, align 8, !tbaa !9
  %160 = add nsw i64 1, %159
  store i64 %160, ptr %73, align 8, !tbaa !9
  %161 = load i64, ptr %73, align 8, !tbaa !9
  %162 = load ptr, ptr %38, align 8, !tbaa !5
  %163 = sub i64 0, %161
  %164 = getelementptr inbounds double, ptr %162, i64 %163
  store ptr %164, ptr %38, align 8, !tbaa !5
  %165 = load ptr, ptr %37, align 8, !tbaa !5
  %166 = load i64, ptr %165, align 8, !tbaa !9
  store i64 %166, ptr %70, align 8, !tbaa !9
  %167 = load i64, ptr %70, align 8, !tbaa !9
  %168 = add nsw i64 1, %167
  store i64 %168, ptr %71, align 8, !tbaa !9
  %169 = load i64, ptr %71, align 8, !tbaa !9
  %170 = load ptr, ptr %36, align 8, !tbaa !5
  %171 = sub i64 0, %169
  %172 = getelementptr inbounds double, ptr %170, i64 %171
  store ptr %172, ptr %36, align 8, !tbaa !5
  %173 = load ptr, ptr %39, align 8, !tbaa !5
  %174 = getelementptr inbounds i64, ptr %173, i32 -1
  store ptr %174, ptr %39, align 8, !tbaa !5
  %175 = load ptr, ptr %44, align 8, !tbaa !5
  %176 = getelementptr inbounds i64, ptr %175, i32 -1
  store ptr %176, ptr %44, align 8, !tbaa !5
  %177 = load ptr, ptr %46, align 8, !tbaa !5
  %178 = load i64, ptr %177, align 8, !tbaa !9
  store i64 %178, ptr %56, align 8, !tbaa !9
  %179 = load i64, ptr %56, align 8, !tbaa !9
  %180 = add nsw i64 1, %179
  store i64 %180, ptr %57, align 8, !tbaa !9
  %181 = load i64, ptr %57, align 8, !tbaa !9
  %182 = load ptr, ptr %47, align 8, !tbaa !5
  %183 = sub i64 0, %181
  %184 = getelementptr inbounds i64, ptr %182, i64 %183
  store ptr %184, ptr %47, align 8, !tbaa !5
  %185 = load ptr, ptr %46, align 8, !tbaa !5
  %186 = load i64, ptr %185, align 8, !tbaa !9
  store i64 %186, ptr %54, align 8, !tbaa !9
  %187 = load i64, ptr %54, align 8, !tbaa !9
  %188 = add nsw i64 1, %187
  store i64 %188, ptr %55, align 8, !tbaa !9
  %189 = load i64, ptr %55, align 8, !tbaa !9
  %190 = load ptr, ptr %45, align 8, !tbaa !5
  %191 = sub i64 0, %189
  %192 = getelementptr inbounds i64, ptr %190, i64 %191
  store ptr %192, ptr %45, align 8, !tbaa !5
  %193 = load ptr, ptr %49, align 8, !tbaa !5
  %194 = getelementptr inbounds double, ptr %193, i32 -1
  store ptr %194, ptr %49, align 8, !tbaa !5
  %195 = load ptr, ptr %50, align 8, !tbaa !5
  %196 = getelementptr inbounds double, ptr %195, i32 -1
  store ptr %196, ptr %50, align 8, !tbaa !5
  %197 = load ptr, ptr %51, align 8, !tbaa !5
  %198 = getelementptr inbounds double, ptr %197, i32 -1
  store ptr %198, ptr %51, align 8, !tbaa !5
  %199 = load ptr, ptr %52, align 8, !tbaa !5
  %200 = getelementptr inbounds i64, ptr %199, i32 -1
  store ptr %200, ptr %52, align 8, !tbaa !5
  %201 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 0, ptr %201, align 8, !tbaa !9
  %202 = load ptr, ptr %28, align 8, !tbaa !5
  %203 = load i64, ptr %202, align 8, !tbaa !9
  %204 = icmp slt i64 %203, 0
  br i1 %204, label %209, label %205

205:                                              ; preds = %26
  %206 = load ptr, ptr %28, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = icmp sgt i64 %207, 1
  br i1 %208, label %209, label %211

209:                                              ; preds = %205, %26
  %210 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -1, ptr %210, align 8, !tbaa !9
  br label %270

211:                                              ; preds = %205
  %212 = load ptr, ptr %29, align 8, !tbaa !5
  %213 = load i64, ptr %212, align 8, !tbaa !9
  %214 = icmp slt i64 %213, 3
  br i1 %214, label %215, label %217

215:                                              ; preds = %211
  %216 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -2, ptr %216, align 8, !tbaa !9
  br label %269

217:                                              ; preds = %211
  %218 = load ptr, ptr %30, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !9
  %220 = load ptr, ptr %29, align 8, !tbaa !5
  %221 = load i64, ptr %220, align 8, !tbaa !9
  %222 = icmp slt i64 %219, %221
  br i1 %222, label %223, label %225

223:                                              ; preds = %217
  %224 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -3, ptr %224, align 8, !tbaa !9
  br label %268

225:                                              ; preds = %217
  %226 = load ptr, ptr %31, align 8, !tbaa !5
  %227 = load i64, ptr %226, align 8, !tbaa !9
  %228 = icmp slt i64 %227, 1
  br i1 %228, label %229, label %231

229:                                              ; preds = %225
  %230 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -4, ptr %230, align 8, !tbaa !9
  br label %267

231:                                              ; preds = %225
  %232 = load ptr, ptr %33, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  %234 = load ptr, ptr %30, align 8, !tbaa !5
  %235 = load i64, ptr %234, align 8, !tbaa !9
  %236 = icmp slt i64 %233, %235
  br i1 %236, label %237, label %239

237:                                              ; preds = %231
  %238 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -6, ptr %238, align 8, !tbaa !9
  br label %266

239:                                              ; preds = %231
  %240 = load ptr, ptr %35, align 8, !tbaa !5
  %241 = load i64, ptr %240, align 8, !tbaa !9
  %242 = load ptr, ptr %30, align 8, !tbaa !5
  %243 = load i64, ptr %242, align 8, !tbaa !9
  %244 = icmp slt i64 %241, %243
  br i1 %244, label %245, label %247

245:                                              ; preds = %239
  %246 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -8, ptr %246, align 8, !tbaa !9
  br label %265

247:                                              ; preds = %239
  %248 = load ptr, ptr %37, align 8, !tbaa !5
  %249 = load i64, ptr %248, align 8, !tbaa !9
  %250 = load ptr, ptr %30, align 8, !tbaa !5
  %251 = load i64, ptr %250, align 8, !tbaa !9
  %252 = icmp slt i64 %249, %251
  br i1 %252, label %253, label %255

253:                                              ; preds = %247
  %254 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -10, ptr %254, align 8, !tbaa !9
  br label %264

255:                                              ; preds = %247
  %256 = load ptr, ptr %46, align 8, !tbaa !5
  %257 = load i64, ptr %256, align 8, !tbaa !9
  %258 = load ptr, ptr %30, align 8, !tbaa !5
  %259 = load i64, ptr %258, align 8, !tbaa !9
  %260 = icmp slt i64 %257, %259
  br i1 %260, label %261, label %263

261:                                              ; preds = %255
  %262 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -19, ptr %262, align 8, !tbaa !9
  br label %263

263:                                              ; preds = %261, %255
  br label %264

264:                                              ; preds = %263, %253
  br label %265

265:                                              ; preds = %264, %245
  br label %266

266:                                              ; preds = %265, %237
  br label %267

267:                                              ; preds = %266, %229
  br label %268

268:                                              ; preds = %267, %223
  br label %269

269:                                              ; preds = %268, %215
  br label %270

270:                                              ; preds = %269, %209
  %271 = load ptr, ptr %53, align 8, !tbaa !5
  %272 = load i64, ptr %271, align 8, !tbaa !9
  %273 = icmp ne i64 %272, 0
  br i1 %273, label %274, label %279

274:                                              ; preds = %270
  %275 = load ptr, ptr %53, align 8, !tbaa !5
  %276 = load i64, ptr %275, align 8, !tbaa !9
  %277 = sub nsw i64 0, %276
  store i64 %277, ptr %76, align 8, !tbaa !9
  %278 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %76)
  store i32 0, ptr %27, align 4
  store i32 1, ptr %100, align 4
  br label %799

279:                                              ; preds = %270
  store i64 1, ptr %97, align 8, !tbaa !9
  %280 = load i64, ptr %97, align 8, !tbaa !9
  %281 = load ptr, ptr %30, align 8, !tbaa !5
  %282 = load i64, ptr %281, align 8, !tbaa !9
  %283 = add nsw i64 %280, %282
  store i64 %283, ptr %98, align 8, !tbaa !9
  %284 = load i64, ptr %98, align 8, !tbaa !9
  %285 = load ptr, ptr %30, align 8, !tbaa !5
  %286 = load i64, ptr %285, align 8, !tbaa !9
  %287 = add nsw i64 %284, %286
  store i64 %287, ptr %99, align 8, !tbaa !9
  %288 = load ptr, ptr %30, align 8, !tbaa !5
  %289 = load ptr, ptr %52, align 8, !tbaa !5
  %290 = load i64, ptr %97, align 8, !tbaa !9
  %291 = getelementptr inbounds i64, ptr %289, i64 %290
  %292 = load ptr, ptr %52, align 8, !tbaa !5
  %293 = load i64, ptr %98, align 8, !tbaa !9
  %294 = getelementptr inbounds i64, ptr %292, i64 %293
  %295 = load ptr, ptr %52, align 8, !tbaa !5
  %296 = load i64, ptr %99, align 8, !tbaa !9
  %297 = getelementptr inbounds i64, ptr %295, i64 %296
  %298 = load ptr, ptr %29, align 8, !tbaa !5
  %299 = call i32 @dlasdt_(ptr noundef %288, ptr noundef %95, ptr noundef %83, ptr noundef %291, ptr noundef %294, ptr noundef %297, ptr noundef %298)
  %300 = load ptr, ptr %28, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  %302 = icmp eq i64 %301, 1
  br i1 %302, label %303, label %304

303:                                              ; preds = %279
  br label %558

304:                                              ; preds = %279
  %305 = load i64, ptr %83, align 8, !tbaa !9
  %306 = add nsw i64 %305, 1
  %307 = sdiv i64 %306, 2
  store i64 %307, ptr %91, align 8, !tbaa !9
  %308 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %308, ptr %76, align 8, !tbaa !9
  %309 = load i64, ptr %91, align 8, !tbaa !9
  store i64 %309, ptr %78, align 8, !tbaa !9
  br label %310

310:                                              ; preds = %380, %304
  %311 = load i64, ptr %78, align 8, !tbaa !9
  %312 = load i64, ptr %76, align 8, !tbaa !9
  %313 = icmp sle i64 %311, %312
  br i1 %313, label %314, label %383

314:                                              ; preds = %310
  %315 = load i64, ptr %78, align 8, !tbaa !9
  %316 = sub nsw i64 %315, 1
  store i64 %316, ptr %80, align 8, !tbaa !9
  %317 = load ptr, ptr %52, align 8, !tbaa !5
  %318 = load i64, ptr %97, align 8, !tbaa !9
  %319 = load i64, ptr %80, align 8, !tbaa !9
  %320 = add nsw i64 %318, %319
  %321 = getelementptr inbounds i64, ptr %317, i64 %320
  %322 = load i64, ptr %321, align 8, !tbaa !9
  store i64 %322, ptr %81, align 8, !tbaa !9
  %323 = load ptr, ptr %52, align 8, !tbaa !5
  %324 = load i64, ptr %98, align 8, !tbaa !9
  %325 = load i64, ptr %80, align 8, !tbaa !9
  %326 = add nsw i64 %324, %325
  %327 = getelementptr inbounds i64, ptr %323, i64 %326
  %328 = load i64, ptr %327, align 8, !tbaa !9
  store i64 %328, ptr %85, align 8, !tbaa !9
  %329 = load ptr, ptr %52, align 8, !tbaa !5
  %330 = load i64, ptr %99, align 8, !tbaa !9
  %331 = load i64, ptr %80, align 8, !tbaa !9
  %332 = add nsw i64 %330, %331
  %333 = getelementptr inbounds i64, ptr %329, i64 %332
  %334 = load i64, ptr %333, align 8, !tbaa !9
  store i64 %334, ptr %86, align 8, !tbaa !9
  %335 = load i64, ptr %81, align 8, !tbaa !9
  %336 = load i64, ptr %85, align 8, !tbaa !9
  %337 = sub nsw i64 %335, %336
  store i64 %337, ptr %88, align 8, !tbaa !9
  %338 = load i64, ptr %81, align 8, !tbaa !9
  %339 = add nsw i64 %338, 1
  store i64 %339, ptr %89, align 8, !tbaa !9
  %340 = load ptr, ptr %31, align 8, !tbaa !5
  %341 = load ptr, ptr %36, align 8, !tbaa !5
  %342 = load i64, ptr %88, align 8, !tbaa !9
  %343 = load i64, ptr %70, align 8, !tbaa !9
  %344 = add nsw i64 %342, %343
  %345 = getelementptr inbounds double, ptr %341, i64 %344
  %346 = load ptr, ptr %37, align 8, !tbaa !5
  %347 = load ptr, ptr %32, align 8, !tbaa !5
  %348 = load i64, ptr %88, align 8, !tbaa !9
  %349 = load i64, ptr %58, align 8, !tbaa !9
  %350 = add nsw i64 %348, %349
  %351 = getelementptr inbounds double, ptr %347, i64 %350
  %352 = load ptr, ptr %33, align 8, !tbaa !5
  %353 = load ptr, ptr %34, align 8, !tbaa !5
  %354 = load i64, ptr %88, align 8, !tbaa !9
  %355 = load i64, ptr %60, align 8, !tbaa !9
  %356 = add nsw i64 %354, %355
  %357 = getelementptr inbounds double, ptr %353, i64 %356
  %358 = load ptr, ptr %35, align 8, !tbaa !5
  %359 = call i32 @f2c_dgemm(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %85, ptr noundef %340, ptr noundef %85, ptr noundef @c_b7, ptr noundef %345, ptr noundef %346, ptr noundef %351, ptr noundef %352, ptr noundef @c_b8, ptr noundef %357, ptr noundef %358)
  %360 = load ptr, ptr %31, align 8, !tbaa !5
  %361 = load ptr, ptr %36, align 8, !tbaa !5
  %362 = load i64, ptr %89, align 8, !tbaa !9
  %363 = load i64, ptr %70, align 8, !tbaa !9
  %364 = add nsw i64 %362, %363
  %365 = getelementptr inbounds double, ptr %361, i64 %364
  %366 = load ptr, ptr %37, align 8, !tbaa !5
  %367 = load ptr, ptr %32, align 8, !tbaa !5
  %368 = load i64, ptr %89, align 8, !tbaa !9
  %369 = load i64, ptr %58, align 8, !tbaa !9
  %370 = add nsw i64 %368, %369
  %371 = getelementptr inbounds double, ptr %367, i64 %370
  %372 = load ptr, ptr %33, align 8, !tbaa !5
  %373 = load ptr, ptr %34, align 8, !tbaa !5
  %374 = load i64, ptr %89, align 8, !tbaa !9
  %375 = load i64, ptr %60, align 8, !tbaa !9
  %376 = add nsw i64 %374, %375
  %377 = getelementptr inbounds double, ptr %373, i64 %376
  %378 = load ptr, ptr %35, align 8, !tbaa !5
  %379 = call i32 @f2c_dgemm(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %86, ptr noundef %360, ptr noundef %86, ptr noundef @c_b7, ptr noundef %365, ptr noundef %366, ptr noundef %371, ptr noundef %372, ptr noundef @c_b8, ptr noundef %377, ptr noundef %378)
  br label %380

380:                                              ; preds = %314
  %381 = load i64, ptr %78, align 8, !tbaa !9
  %382 = add nsw i64 %381, 1
  store i64 %382, ptr %78, align 8, !tbaa !9
  br label %310, !llvm.loop !11

383:                                              ; preds = %310
  %384 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %384, ptr %76, align 8, !tbaa !9
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %385

385:                                              ; preds = %411, %383
  %386 = load i64, ptr %78, align 8, !tbaa !9
  %387 = load i64, ptr %76, align 8, !tbaa !9
  %388 = icmp sle i64 %386, %387
  br i1 %388, label %389, label %414

389:                                              ; preds = %385
  %390 = load ptr, ptr %52, align 8, !tbaa !5
  %391 = load i64, ptr %97, align 8, !tbaa !9
  %392 = load i64, ptr %78, align 8, !tbaa !9
  %393 = add nsw i64 %391, %392
  %394 = sub nsw i64 %393, 1
  %395 = getelementptr inbounds i64, ptr %390, i64 %394
  %396 = load i64, ptr %395, align 8, !tbaa !9
  store i64 %396, ptr %81, align 8, !tbaa !9
  %397 = load ptr, ptr %31, align 8, !tbaa !5
  %398 = load ptr, ptr %32, align 8, !tbaa !5
  %399 = load i64, ptr %81, align 8, !tbaa !9
  %400 = load i64, ptr %58, align 8, !tbaa !9
  %401 = add nsw i64 %399, %400
  %402 = getelementptr inbounds double, ptr %398, i64 %401
  %403 = load ptr, ptr %33, align 8, !tbaa !5
  %404 = load ptr, ptr %34, align 8, !tbaa !5
  %405 = load i64, ptr %81, align 8, !tbaa !9
  %406 = load i64, ptr %60, align 8, !tbaa !9
  %407 = add nsw i64 %405, %406
  %408 = getelementptr inbounds double, ptr %404, i64 %407
  %409 = load ptr, ptr %35, align 8, !tbaa !5
  %410 = call i32 @f2c_dcopy(ptr noundef %397, ptr noundef %402, ptr noundef %403, ptr noundef %408, ptr noundef %409)
  br label %411

411:                                              ; preds = %389
  %412 = load i64, ptr %78, align 8, !tbaa !9
  %413 = add nsw i64 %412, 1
  store i64 %413, ptr %78, align 8, !tbaa !9
  br label %385, !llvm.loop !13

414:                                              ; preds = %385
  %415 = call i64 @pow_ii(ptr noundef @c__2, ptr noundef %95)
  store i64 %415, ptr %79, align 8, !tbaa !9
  store i64 0, ptr %96, align 8, !tbaa !9
  %416 = load i64, ptr %95, align 8, !tbaa !9
  store i64 %416, ptr %90, align 8, !tbaa !9
  br label %417

417:                                              ; preds = %554, %414
  %418 = load i64, ptr %90, align 8, !tbaa !9
  %419 = icmp sge i64 %418, 1
  br i1 %419, label %420, label %557

420:                                              ; preds = %417
  %421 = load i64, ptr %90, align 8, !tbaa !9
  %422 = shl i64 %421, 1
  %423 = sub nsw i64 %422, 1
  store i64 %423, ptr %93, align 8, !tbaa !9
  %424 = load i64, ptr %90, align 8, !tbaa !9
  %425 = icmp eq i64 %424, 1
  br i1 %425, label %426, label %427

426:                                              ; preds = %420
  store i64 1, ptr %82, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %434

427:                                              ; preds = %420
  %428 = load i64, ptr %90, align 8, !tbaa !9
  %429 = sub nsw i64 %428, 1
  store i64 %429, ptr %76, align 8, !tbaa !9
  %430 = call i64 @pow_ii(ptr noundef @c__2, ptr noundef %76)
  store i64 %430, ptr %82, align 8, !tbaa !9
  %431 = load i64, ptr %82, align 8, !tbaa !9
  %432 = shl i64 %431, 1
  %433 = sub nsw i64 %432, 1
  store i64 %433, ptr %84, align 8, !tbaa !9
  br label %434

434:                                              ; preds = %427, %426
  %435 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %435, ptr %76, align 8, !tbaa !9
  %436 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %436, ptr %78, align 8, !tbaa !9
  br label %437

437:                                              ; preds = %550, %434
  %438 = load i64, ptr %78, align 8, !tbaa !9
  %439 = load i64, ptr %76, align 8, !tbaa !9
  %440 = icmp sle i64 %438, %439
  br i1 %440, label %441, label %553

441:                                              ; preds = %437
  %442 = load i64, ptr %78, align 8, !tbaa !9
  %443 = sub nsw i64 %442, 1
  store i64 %443, ptr %87, align 8, !tbaa !9
  %444 = load ptr, ptr %52, align 8, !tbaa !5
  %445 = load i64, ptr %97, align 8, !tbaa !9
  %446 = load i64, ptr %87, align 8, !tbaa !9
  %447 = add nsw i64 %445, %446
  %448 = getelementptr inbounds i64, ptr %444, i64 %447
  %449 = load i64, ptr %448, align 8, !tbaa !9
  store i64 %449, ptr %81, align 8, !tbaa !9
  %450 = load ptr, ptr %52, align 8, !tbaa !5
  %451 = load i64, ptr %98, align 8, !tbaa !9
  %452 = load i64, ptr %87, align 8, !tbaa !9
  %453 = add nsw i64 %451, %452
  %454 = getelementptr inbounds i64, ptr %450, i64 %453
  %455 = load i64, ptr %454, align 8, !tbaa !9
  store i64 %455, ptr %85, align 8, !tbaa !9
  %456 = load ptr, ptr %52, align 8, !tbaa !5
  %457 = load i64, ptr %99, align 8, !tbaa !9
  %458 = load i64, ptr %87, align 8, !tbaa !9
  %459 = add nsw i64 %457, %458
  %460 = getelementptr inbounds i64, ptr %456, i64 %459
  %461 = load i64, ptr %460, align 8, !tbaa !9
  store i64 %461, ptr %86, align 8, !tbaa !9
  %462 = load i64, ptr %81, align 8, !tbaa !9
  %463 = load i64, ptr %85, align 8, !tbaa !9
  %464 = sub nsw i64 %462, %463
  store i64 %464, ptr %88, align 8, !tbaa !9
  %465 = load i64, ptr %81, align 8, !tbaa !9
  %466 = add nsw i64 %465, 1
  store i64 %466, ptr %89, align 8, !tbaa !9
  %467 = load i64, ptr %79, align 8, !tbaa !9
  %468 = add nsw i64 %467, -1
  store i64 %468, ptr %79, align 8, !tbaa !9
  %469 = load ptr, ptr %28, align 8, !tbaa !5
  %470 = load ptr, ptr %31, align 8, !tbaa !5
  %471 = load ptr, ptr %34, align 8, !tbaa !5
  %472 = load i64, ptr %88, align 8, !tbaa !9
  %473 = load i64, ptr %60, align 8, !tbaa !9
  %474 = add nsw i64 %472, %473
  %475 = getelementptr inbounds double, ptr %471, i64 %474
  %476 = load ptr, ptr %35, align 8, !tbaa !5
  %477 = load ptr, ptr %32, align 8, !tbaa !5
  %478 = load i64, ptr %88, align 8, !tbaa !9
  %479 = load i64, ptr %58, align 8, !tbaa !9
  %480 = add nsw i64 %478, %479
  %481 = getelementptr inbounds double, ptr %477, i64 %480
  %482 = load ptr, ptr %33, align 8, !tbaa !5
  %483 = load ptr, ptr %47, align 8, !tbaa !5
  %484 = load i64, ptr %88, align 8, !tbaa !9
  %485 = load i64, ptr %90, align 8, !tbaa !9
  %486 = load i64, ptr %56, align 8, !tbaa !9
  %487 = mul nsw i64 %485, %486
  %488 = add nsw i64 %484, %487
  %489 = getelementptr inbounds i64, ptr %483, i64 %488
  %490 = load ptr, ptr %44, align 8, !tbaa !5
  %491 = load i64, ptr %79, align 8, !tbaa !9
  %492 = getelementptr inbounds i64, ptr %490, i64 %491
  %493 = load ptr, ptr %45, align 8, !tbaa !5
  %494 = load i64, ptr %88, align 8, !tbaa !9
  %495 = load i64, ptr %93, align 8, !tbaa !9
  %496 = load i64, ptr %54, align 8, !tbaa !9
  %497 = mul nsw i64 %495, %496
  %498 = add nsw i64 %494, %497
  %499 = getelementptr inbounds i64, ptr %493, i64 %498
  %500 = load ptr, ptr %46, align 8, !tbaa !5
  %501 = load ptr, ptr %48, align 8, !tbaa !5
  %502 = load i64, ptr %88, align 8, !tbaa !9
  %503 = load i64, ptr %93, align 8, !tbaa !9
  %504 = load i64, ptr %66, align 8, !tbaa !9
  %505 = mul nsw i64 %503, %504
  %506 = add nsw i64 %502, %505
  %507 = getelementptr inbounds double, ptr %501, i64 %506
  %508 = load ptr, ptr %37, align 8, !tbaa !5
  %509 = load ptr, ptr %43, align 8, !tbaa !5
  %510 = load i64, ptr %88, align 8, !tbaa !9
  %511 = load i64, ptr %93, align 8, !tbaa !9
  %512 = load i64, ptr %68, align 8, !tbaa !9
  %513 = mul nsw i64 %511, %512
  %514 = add nsw i64 %510, %513
  %515 = getelementptr inbounds double, ptr %509, i64 %514
  %516 = load ptr, ptr %40, align 8, !tbaa !5
  %517 = load i64, ptr %88, align 8, !tbaa !9
  %518 = load i64, ptr %90, align 8, !tbaa !9
  %519 = load i64, ptr %62, align 8, !tbaa !9
  %520 = mul nsw i64 %518, %519
  %521 = add nsw i64 %517, %520
  %522 = getelementptr inbounds double, ptr %516, i64 %521
  %523 = load ptr, ptr %41, align 8, !tbaa !5
  %524 = load i64, ptr %88, align 8, !tbaa !9
  %525 = load i64, ptr %93, align 8, !tbaa !9
  %526 = load i64, ptr %64, align 8, !tbaa !9
  %527 = mul nsw i64 %525, %526
  %528 = add nsw i64 %524, %527
  %529 = getelementptr inbounds double, ptr %523, i64 %528
  %530 = load ptr, ptr %42, align 8, !tbaa !5
  %531 = load i64, ptr %88, align 8, !tbaa !9
  %532 = load i64, ptr %90, align 8, !tbaa !9
  %533 = load i64, ptr %74, align 8, !tbaa !9
  %534 = mul nsw i64 %532, %533
  %535 = add nsw i64 %531, %534
  %536 = getelementptr inbounds double, ptr %530, i64 %535
  %537 = load ptr, ptr %39, align 8, !tbaa !5
  %538 = load i64, ptr %79, align 8, !tbaa !9
  %539 = getelementptr inbounds i64, ptr %537, i64 %538
  %540 = load ptr, ptr %49, align 8, !tbaa !5
  %541 = load i64, ptr %79, align 8, !tbaa !9
  %542 = getelementptr inbounds double, ptr %540, i64 %541
  %543 = load ptr, ptr %50, align 8, !tbaa !5
  %544 = load i64, ptr %79, align 8, !tbaa !9
  %545 = getelementptr inbounds double, ptr %543, i64 %544
  %546 = load ptr, ptr %51, align 8, !tbaa !5
  %547 = getelementptr inbounds double, ptr %546, i64 1
  %548 = load ptr, ptr %53, align 8, !tbaa !5
  %549 = call i32 @dlals0_(ptr noundef %469, ptr noundef %85, ptr noundef %86, ptr noundef %96, ptr noundef %470, ptr noundef %475, ptr noundef %476, ptr noundef %481, ptr noundef %482, ptr noundef %489, ptr noundef %492, ptr noundef %499, ptr noundef %500, ptr noundef %507, ptr noundef %508, ptr noundef %515, ptr noundef %522, ptr noundef %529, ptr noundef %536, ptr noundef %539, ptr noundef %542, ptr noundef %545, ptr noundef %547, ptr noundef %548)
  br label %550

550:                                              ; preds = %441
  %551 = load i64, ptr %78, align 8, !tbaa !9
  %552 = add nsw i64 %551, 1
  store i64 %552, ptr %78, align 8, !tbaa !9
  br label %437, !llvm.loop !14

553:                                              ; preds = %437
  br label %554

554:                                              ; preds = %553
  %555 = load i64, ptr %90, align 8, !tbaa !9
  %556 = add nsw i64 %555, -1
  store i64 %556, ptr %90, align 8, !tbaa !9
  br label %417, !llvm.loop !15

557:                                              ; preds = %417
  br label %798

558:                                              ; preds = %303
  store i64 0, ptr %79, align 8, !tbaa !9
  %559 = load i64, ptr %95, align 8, !tbaa !9
  store i64 %559, ptr %76, align 8, !tbaa !9
  store i64 1, ptr %90, align 8, !tbaa !9
  br label %560

560:                                              ; preds = %704, %558
  %561 = load i64, ptr %90, align 8, !tbaa !9
  %562 = load i64, ptr %76, align 8, !tbaa !9
  %563 = icmp sle i64 %561, %562
  br i1 %563, label %564, label %707

564:                                              ; preds = %560
  %565 = load i64, ptr %90, align 8, !tbaa !9
  %566 = shl i64 %565, 1
  %567 = sub nsw i64 %566, 1
  store i64 %567, ptr %93, align 8, !tbaa !9
  %568 = load i64, ptr %90, align 8, !tbaa !9
  %569 = icmp eq i64 %568, 1
  br i1 %569, label %570, label %571

570:                                              ; preds = %564
  store i64 1, ptr %82, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %578

571:                                              ; preds = %564
  %572 = load i64, ptr %90, align 8, !tbaa !9
  %573 = sub nsw i64 %572, 1
  store i64 %573, ptr %77, align 8, !tbaa !9
  %574 = call i64 @pow_ii(ptr noundef @c__2, ptr noundef %77)
  store i64 %574, ptr %82, align 8, !tbaa !9
  %575 = load i64, ptr %82, align 8, !tbaa !9
  %576 = shl i64 %575, 1
  %577 = sub nsw i64 %576, 1
  store i64 %577, ptr %84, align 8, !tbaa !9
  br label %578

578:                                              ; preds = %571, %570
  %579 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %579, ptr %77, align 8, !tbaa !9
  %580 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %580, ptr %78, align 8, !tbaa !9
  br label %581

581:                                              ; preds = %700, %578
  %582 = load i64, ptr %78, align 8, !tbaa !9
  %583 = load i64, ptr %77, align 8, !tbaa !9
  %584 = icmp sge i64 %582, %583
  br i1 %584, label %585, label %703

585:                                              ; preds = %581
  %586 = load i64, ptr %78, align 8, !tbaa !9
  %587 = sub nsw i64 %586, 1
  store i64 %587, ptr %87, align 8, !tbaa !9
  %588 = load ptr, ptr %52, align 8, !tbaa !5
  %589 = load i64, ptr %97, align 8, !tbaa !9
  %590 = load i64, ptr %87, align 8, !tbaa !9
  %591 = add nsw i64 %589, %590
  %592 = getelementptr inbounds i64, ptr %588, i64 %591
  %593 = load i64, ptr %592, align 8, !tbaa !9
  store i64 %593, ptr %81, align 8, !tbaa !9
  %594 = load ptr, ptr %52, align 8, !tbaa !5
  %595 = load i64, ptr %98, align 8, !tbaa !9
  %596 = load i64, ptr %87, align 8, !tbaa !9
  %597 = add nsw i64 %595, %596
  %598 = getelementptr inbounds i64, ptr %594, i64 %597
  %599 = load i64, ptr %598, align 8, !tbaa !9
  store i64 %599, ptr %85, align 8, !tbaa !9
  %600 = load ptr, ptr %52, align 8, !tbaa !5
  %601 = load i64, ptr %99, align 8, !tbaa !9
  %602 = load i64, ptr %87, align 8, !tbaa !9
  %603 = add nsw i64 %601, %602
  %604 = getelementptr inbounds i64, ptr %600, i64 %603
  %605 = load i64, ptr %604, align 8, !tbaa !9
  store i64 %605, ptr %86, align 8, !tbaa !9
  %606 = load i64, ptr %81, align 8, !tbaa !9
  %607 = load i64, ptr %85, align 8, !tbaa !9
  %608 = sub nsw i64 %606, %607
  store i64 %608, ptr %88, align 8, !tbaa !9
  %609 = load i64, ptr %81, align 8, !tbaa !9
  %610 = add nsw i64 %609, 1
  store i64 %610, ptr %89, align 8, !tbaa !9
  %611 = load i64, ptr %78, align 8, !tbaa !9
  %612 = load i64, ptr %84, align 8, !tbaa !9
  %613 = icmp eq i64 %611, %612
  br i1 %613, label %614, label %615

614:                                              ; preds = %585
  store i64 0, ptr %96, align 8, !tbaa !9
  br label %616

615:                                              ; preds = %585
  store i64 1, ptr %96, align 8, !tbaa !9
  br label %616

616:                                              ; preds = %615, %614
  %617 = load i64, ptr %79, align 8, !tbaa !9
  %618 = add nsw i64 %617, 1
  store i64 %618, ptr %79, align 8, !tbaa !9
  %619 = load ptr, ptr %28, align 8, !tbaa !5
  %620 = load ptr, ptr %31, align 8, !tbaa !5
  %621 = load ptr, ptr %32, align 8, !tbaa !5
  %622 = load i64, ptr %88, align 8, !tbaa !9
  %623 = load i64, ptr %58, align 8, !tbaa !9
  %624 = add nsw i64 %622, %623
  %625 = getelementptr inbounds double, ptr %621, i64 %624
  %626 = load ptr, ptr %33, align 8, !tbaa !5
  %627 = load ptr, ptr %34, align 8, !tbaa !5
  %628 = load i64, ptr %88, align 8, !tbaa !9
  %629 = load i64, ptr %60, align 8, !tbaa !9
  %630 = add nsw i64 %628, %629
  %631 = getelementptr inbounds double, ptr %627, i64 %630
  %632 = load ptr, ptr %35, align 8, !tbaa !5
  %633 = load ptr, ptr %47, align 8, !tbaa !5
  %634 = load i64, ptr %88, align 8, !tbaa !9
  %635 = load i64, ptr %90, align 8, !tbaa !9
  %636 = load i64, ptr %56, align 8, !tbaa !9
  %637 = mul nsw i64 %635, %636
  %638 = add nsw i64 %634, %637
  %639 = getelementptr inbounds i64, ptr %633, i64 %638
  %640 = load ptr, ptr %44, align 8, !tbaa !5
  %641 = load i64, ptr %79, align 8, !tbaa !9
  %642 = getelementptr inbounds i64, ptr %640, i64 %641
  %643 = load ptr, ptr %45, align 8, !tbaa !5
  %644 = load i64, ptr %88, align 8, !tbaa !9
  %645 = load i64, ptr %93, align 8, !tbaa !9
  %646 = load i64, ptr %54, align 8, !tbaa !9
  %647 = mul nsw i64 %645, %646
  %648 = add nsw i64 %644, %647
  %649 = getelementptr inbounds i64, ptr %643, i64 %648
  %650 = load ptr, ptr %46, align 8, !tbaa !5
  %651 = load ptr, ptr %48, align 8, !tbaa !5
  %652 = load i64, ptr %88, align 8, !tbaa !9
  %653 = load i64, ptr %93, align 8, !tbaa !9
  %654 = load i64, ptr %66, align 8, !tbaa !9
  %655 = mul nsw i64 %653, %654
  %656 = add nsw i64 %652, %655
  %657 = getelementptr inbounds double, ptr %651, i64 %656
  %658 = load ptr, ptr %37, align 8, !tbaa !5
  %659 = load ptr, ptr %43, align 8, !tbaa !5
  %660 = load i64, ptr %88, align 8, !tbaa !9
  %661 = load i64, ptr %93, align 8, !tbaa !9
  %662 = load i64, ptr %68, align 8, !tbaa !9
  %663 = mul nsw i64 %661, %662
  %664 = add nsw i64 %660, %663
  %665 = getelementptr inbounds double, ptr %659, i64 %664
  %666 = load ptr, ptr %40, align 8, !tbaa !5
  %667 = load i64, ptr %88, align 8, !tbaa !9
  %668 = load i64, ptr %90, align 8, !tbaa !9
  %669 = load i64, ptr %62, align 8, !tbaa !9
  %670 = mul nsw i64 %668, %669
  %671 = add nsw i64 %667, %670
  %672 = getelementptr inbounds double, ptr %666, i64 %671
  %673 = load ptr, ptr %41, align 8, !tbaa !5
  %674 = load i64, ptr %88, align 8, !tbaa !9
  %675 = load i64, ptr %93, align 8, !tbaa !9
  %676 = load i64, ptr %64, align 8, !tbaa !9
  %677 = mul nsw i64 %675, %676
  %678 = add nsw i64 %674, %677
  %679 = getelementptr inbounds double, ptr %673, i64 %678
  %680 = load ptr, ptr %42, align 8, !tbaa !5
  %681 = load i64, ptr %88, align 8, !tbaa !9
  %682 = load i64, ptr %90, align 8, !tbaa !9
  %683 = load i64, ptr %74, align 8, !tbaa !9
  %684 = mul nsw i64 %682, %683
  %685 = add nsw i64 %681, %684
  %686 = getelementptr inbounds double, ptr %680, i64 %685
  %687 = load ptr, ptr %39, align 8, !tbaa !5
  %688 = load i64, ptr %79, align 8, !tbaa !9
  %689 = getelementptr inbounds i64, ptr %687, i64 %688
  %690 = load ptr, ptr %49, align 8, !tbaa !5
  %691 = load i64, ptr %79, align 8, !tbaa !9
  %692 = getelementptr inbounds double, ptr %690, i64 %691
  %693 = load ptr, ptr %50, align 8, !tbaa !5
  %694 = load i64, ptr %79, align 8, !tbaa !9
  %695 = getelementptr inbounds double, ptr %693, i64 %694
  %696 = load ptr, ptr %51, align 8, !tbaa !5
  %697 = getelementptr inbounds double, ptr %696, i64 1
  %698 = load ptr, ptr %53, align 8, !tbaa !5
  %699 = call i32 @dlals0_(ptr noundef %619, ptr noundef %85, ptr noundef %86, ptr noundef %96, ptr noundef %620, ptr noundef %625, ptr noundef %626, ptr noundef %631, ptr noundef %632, ptr noundef %639, ptr noundef %642, ptr noundef %649, ptr noundef %650, ptr noundef %657, ptr noundef %658, ptr noundef %665, ptr noundef %672, ptr noundef %679, ptr noundef %686, ptr noundef %689, ptr noundef %692, ptr noundef %695, ptr noundef %697, ptr noundef %698)
  br label %700

700:                                              ; preds = %616
  %701 = load i64, ptr %78, align 8, !tbaa !9
  %702 = add nsw i64 %701, -1
  store i64 %702, ptr %78, align 8, !tbaa !9
  br label %581, !llvm.loop !16

703:                                              ; preds = %581
  br label %704

704:                                              ; preds = %703
  %705 = load i64, ptr %90, align 8, !tbaa !9
  %706 = add nsw i64 %705, 1
  store i64 %706, ptr %90, align 8, !tbaa !9
  br label %560, !llvm.loop !17

707:                                              ; preds = %560
  %708 = load i64, ptr %83, align 8, !tbaa !9
  %709 = add nsw i64 %708, 1
  %710 = sdiv i64 %709, 2
  store i64 %710, ptr %91, align 8, !tbaa !9
  %711 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %711, ptr %76, align 8, !tbaa !9
  %712 = load i64, ptr %91, align 8, !tbaa !9
  store i64 %712, ptr %78, align 8, !tbaa !9
  br label %713

713:                                              ; preds = %794, %707
  %714 = load i64, ptr %78, align 8, !tbaa !9
  %715 = load i64, ptr %76, align 8, !tbaa !9
  %716 = icmp sle i64 %714, %715
  br i1 %716, label %717, label %797

717:                                              ; preds = %713
  %718 = load i64, ptr %78, align 8, !tbaa !9
  %719 = sub nsw i64 %718, 1
  store i64 %719, ptr %80, align 8, !tbaa !9
  %720 = load ptr, ptr %52, align 8, !tbaa !5
  %721 = load i64, ptr %97, align 8, !tbaa !9
  %722 = load i64, ptr %80, align 8, !tbaa !9
  %723 = add nsw i64 %721, %722
  %724 = getelementptr inbounds i64, ptr %720, i64 %723
  %725 = load i64, ptr %724, align 8, !tbaa !9
  store i64 %725, ptr %81, align 8, !tbaa !9
  %726 = load ptr, ptr %52, align 8, !tbaa !5
  %727 = load i64, ptr %98, align 8, !tbaa !9
  %728 = load i64, ptr %80, align 8, !tbaa !9
  %729 = add nsw i64 %727, %728
  %730 = getelementptr inbounds i64, ptr %726, i64 %729
  %731 = load i64, ptr %730, align 8, !tbaa !9
  store i64 %731, ptr %85, align 8, !tbaa !9
  %732 = load ptr, ptr %52, align 8, !tbaa !5
  %733 = load i64, ptr %99, align 8, !tbaa !9
  %734 = load i64, ptr %80, align 8, !tbaa !9
  %735 = add nsw i64 %733, %734
  %736 = getelementptr inbounds i64, ptr %732, i64 %735
  %737 = load i64, ptr %736, align 8, !tbaa !9
  store i64 %737, ptr %86, align 8, !tbaa !9
  %738 = load i64, ptr %85, align 8, !tbaa !9
  %739 = add nsw i64 %738, 1
  store i64 %739, ptr %92, align 8, !tbaa !9
  %740 = load i64, ptr %78, align 8, !tbaa !9
  %741 = load i64, ptr %83, align 8, !tbaa !9
  %742 = icmp eq i64 %740, %741
  br i1 %742, label %743, label %745

743:                                              ; preds = %717
  %744 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %744, ptr %94, align 8, !tbaa !9
  br label %748

745:                                              ; preds = %717
  %746 = load i64, ptr %86, align 8, !tbaa !9
  %747 = add nsw i64 %746, 1
  store i64 %747, ptr %94, align 8, !tbaa !9
  br label %748

748:                                              ; preds = %745, %743
  %749 = load i64, ptr %81, align 8, !tbaa !9
  %750 = load i64, ptr %85, align 8, !tbaa !9
  %751 = sub nsw i64 %749, %750
  store i64 %751, ptr %88, align 8, !tbaa !9
  %752 = load i64, ptr %81, align 8, !tbaa !9
  %753 = add nsw i64 %752, 1
  store i64 %753, ptr %89, align 8, !tbaa !9
  %754 = load ptr, ptr %31, align 8, !tbaa !5
  %755 = load ptr, ptr %38, align 8, !tbaa !5
  %756 = load i64, ptr %88, align 8, !tbaa !9
  %757 = load i64, ptr %72, align 8, !tbaa !9
  %758 = add nsw i64 %756, %757
  %759 = getelementptr inbounds double, ptr %755, i64 %758
  %760 = load ptr, ptr %37, align 8, !tbaa !5
  %761 = load ptr, ptr %32, align 8, !tbaa !5
  %762 = load i64, ptr %88, align 8, !tbaa !9
  %763 = load i64, ptr %58, align 8, !tbaa !9
  %764 = add nsw i64 %762, %763
  %765 = getelementptr inbounds double, ptr %761, i64 %764
  %766 = load ptr, ptr %33, align 8, !tbaa !5
  %767 = load ptr, ptr %34, align 8, !tbaa !5
  %768 = load i64, ptr %88, align 8, !tbaa !9
  %769 = load i64, ptr %60, align 8, !tbaa !9
  %770 = add nsw i64 %768, %769
  %771 = getelementptr inbounds double, ptr %767, i64 %770
  %772 = load ptr, ptr %35, align 8, !tbaa !5
  %773 = call i32 @f2c_dgemm(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %92, ptr noundef %754, ptr noundef %92, ptr noundef @c_b7, ptr noundef %759, ptr noundef %760, ptr noundef %765, ptr noundef %766, ptr noundef @c_b8, ptr noundef %771, ptr noundef %772)
  %774 = load ptr, ptr %31, align 8, !tbaa !5
  %775 = load ptr, ptr %38, align 8, !tbaa !5
  %776 = load i64, ptr %89, align 8, !tbaa !9
  %777 = load i64, ptr %72, align 8, !tbaa !9
  %778 = add nsw i64 %776, %777
  %779 = getelementptr inbounds double, ptr %775, i64 %778
  %780 = load ptr, ptr %37, align 8, !tbaa !5
  %781 = load ptr, ptr %32, align 8, !tbaa !5
  %782 = load i64, ptr %89, align 8, !tbaa !9
  %783 = load i64, ptr %58, align 8, !tbaa !9
  %784 = add nsw i64 %782, %783
  %785 = getelementptr inbounds double, ptr %781, i64 %784
  %786 = load ptr, ptr %33, align 8, !tbaa !5
  %787 = load ptr, ptr %34, align 8, !tbaa !5
  %788 = load i64, ptr %89, align 8, !tbaa !9
  %789 = load i64, ptr %60, align 8, !tbaa !9
  %790 = add nsw i64 %788, %789
  %791 = getelementptr inbounds double, ptr %787, i64 %790
  %792 = load ptr, ptr %35, align 8, !tbaa !5
  %793 = call i32 @f2c_dgemm(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %94, ptr noundef %774, ptr noundef %94, ptr noundef @c_b7, ptr noundef %779, ptr noundef %780, ptr noundef %785, ptr noundef %786, ptr noundef @c_b8, ptr noundef %791, ptr noundef %792)
  br label %794

794:                                              ; preds = %748
  %795 = load i64, ptr %78, align 8, !tbaa !9
  %796 = add nsw i64 %795, 1
  store i64 %796, ptr %78, align 8, !tbaa !9
  br label %713, !llvm.loop !18

797:                                              ; preds = %713
  br label %798

798:                                              ; preds = %797, %557
  store i32 0, ptr %27, align 4
  store i32 1, ptr %100, align 4
  br label %799

799:                                              ; preds = %798, %274
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #3
  %800 = load i32, ptr %27, align 4
  ret i32 %800
}

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

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

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

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

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

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

declare i32 @dlals0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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 = !{!"long", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}


; 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 [7 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
@c_b7 = external hidden global double, align 8
@c_b8 = external hidden global double, align 8
@c__2 = external hidden global i64, align 8

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

53:                                               ; preds = %26
  %54 = load i64, ptr %1, align 8, !tbaa !5
  %55 = icmp slt i64 %54, 3
  br i1 %55, label %.thread, label %56

56:                                               ; preds = %53
  %57 = load i64, ptr %2, align 8, !tbaa !5
  %58 = icmp slt i64 %57, %54
  br i1 %58, label %.thread, label %59

59:                                               ; preds = %56
  %60 = load i64, ptr %3, align 8, !tbaa !5
  %61 = icmp slt i64 %60, 1
  br i1 %61, label %.thread, label %62

62:                                               ; preds = %59
  %63 = load i64, ptr %5, align 8, !tbaa !5
  %64 = icmp slt i64 %63, %57
  br i1 %64, label %.thread, label %65

65:                                               ; preds = %62
  %66 = load i64, ptr %7, align 8, !tbaa !5
  %67 = icmp slt i64 %66, %57
  br i1 %67, label %.thread, label %68

68:                                               ; preds = %65
  %69 = load i64, ptr %9, align 8, !tbaa !5
  %70 = icmp slt i64 %69, %57
  br i1 %70, label %.thread, label %71

71:                                               ; preds = %68
  %72 = load i64, ptr %18, align 8, !tbaa !5
  %73 = icmp slt i64 %72, %57
  br i1 %73, label %.thread, label %75

.thread:                                          ; preds = %71, %68, %65, %62, %59, %56, %53, %26
  %.sink = phi i64 [ -1, %26 ], [ -2, %53 ], [ -3, %56 ], [ -4, %59 ], [ -6, %62 ], [ -8, %65 ], [ -10, %68 ], [ -19, %71 ]
  %.neg = phi i64 [ 1, %26 ], [ 2, %53 ], [ 3, %56 ], [ 4, %59 ], [ 6, %62 ], [ 8, %65 ], [ 10, %68 ], [ 19, %71 ]
  store i64 %.sink, ptr %25, align 8, !tbaa !5
  store i64 %.neg, ptr %27, align 8, !tbaa !5
  %74 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %27) #3
  br label %.loopexit

75:                                               ; preds = %71
  %76 = getelementptr i64, ptr %24, i64 %57
  %.idx = shl i64 %57, 4
  %77 = getelementptr i8, ptr %24, i64 %.idx
  %78 = call i32 @dlasdt_(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef nonnull %29, ptr noundef %24, ptr noundef %76, ptr noundef nonnull %77, ptr noundef nonnull %1) #3
  %79 = load i64, ptr %0, align 8, !tbaa !5
  %80 = icmp eq i64 %79, 1
  br i1 %80, label %147, label %81

81:                                               ; preds = %75
  %82 = load i64, ptr %29, align 8, !tbaa !5
  %83 = add nsw i64 %82, 1
  %84 = sdiv i64 %83, 2
  store i64 %82, ptr %27, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %77, i64 -8
  %invariant.gep356 = getelementptr i8, ptr %8, i64 -8
  %invariant.gep358 = getelementptr i8, ptr %4, i64 -8
  %invariant.gep360 = getelementptr i8, ptr %6, i64 -8
  %.not347362 = icmp sgt i64 %84, %82
  br i1 %.not347362, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %81
  %85 = getelementptr i64, ptr %51, i64 %57
  br label %86

86:                                               ; preds = %.lr.ph, %86
  %.0340363 = phi i64 [ %84, %.lr.ph ], [ %98, %86 ]
  %87 = getelementptr inbounds i64, ptr %51, i64 %.0340363
  %88 = load i64, ptr %87, align 8, !tbaa !5
  %89 = getelementptr i64, ptr %85, i64 %.0340363
  %90 = load i64, ptr %89, align 8, !tbaa !5
  store i64 %90, ptr %30, align 8, !tbaa !5
  %gep = getelementptr i64, ptr %invariant.gep, i64 %.0340363
  %91 = load i64, ptr %gep, align 8, !tbaa !5
  store i64 %91, ptr %31, align 8, !tbaa !5
  %92 = sub nsw i64 %88, %90
  %gep357 = getelementptr double, ptr %invariant.gep356, i64 %92
  %gep359 = getelementptr double, ptr %invariant.gep358, i64 %92
  %gep361 = getelementptr double, ptr %invariant.gep360, i64 %92
  %93 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %30, ptr noundef nonnull %3, ptr noundef nonnull %30, ptr noundef nonnull @c_b7, ptr noundef %gep357, ptr noundef nonnull %9, ptr noundef %gep359, ptr noundef nonnull %5, ptr noundef nonnull @c_b8, ptr noundef %gep361, ptr noundef nonnull %7) #3
  %94 = getelementptr inbounds double, ptr %8, i64 %88
  %95 = getelementptr inbounds double, ptr %4, i64 %88
  %96 = getelementptr inbounds double, ptr %6, i64 %88
  %97 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %31, ptr noundef nonnull %3, ptr noundef nonnull %31, ptr noundef nonnull @c_b7, ptr noundef %94, ptr noundef nonnull %9, ptr noundef %95, ptr noundef nonnull %5, ptr noundef nonnull @c_b8, ptr noundef %96, ptr noundef nonnull %7) #3
  %98 = add nsw i64 %.0340363, 1
  %99 = load i64, ptr %27, align 8, !tbaa !5
  %.not347.not = icmp slt i64 %.0340363, %99
  br i1 %.not347.not, label %86, label %._crit_edge.loopexit, !llvm.loop !9

._crit_edge.loopexit:                             ; preds = %86
  %.pre = load i64, ptr %29, align 8, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %81
  %100 = phi i64 [ %.pre, %._crit_edge.loopexit ], [ %82, %81 ]
  store i64 %100, ptr %27, align 8, !tbaa !5
  %.not348368 = icmp slt i64 %100, 1
  br i1 %.not348368, label %._crit_edge372, label %.lr.ph371

.lr.ph371:                                        ; preds = %._crit_edge, %.lr.ph371
  %.1341369 = phi i64 [ %101, %.lr.ph371 ], [ 1, %._crit_edge ]
  %101 = add nuw nsw i64 %.1341369, 1
  %102 = getelementptr inbounds i64, ptr %51, i64 %.1341369
  %103 = load i64, ptr %102, align 8, !tbaa !5
  %gep365 = getelementptr double, ptr %invariant.gep358, i64 %103
  %gep367 = getelementptr double, ptr %invariant.gep360, i64 %103
  %104 = call i32 @f2c_dcopy(ptr noundef nonnull %3, ptr noundef %gep365, ptr noundef nonnull %5, ptr noundef %gep367, ptr noundef nonnull %7) #3
  %105 = load i64, ptr %27, align 8, !tbaa !5
  %.not348.not = icmp slt i64 %.1341369, %105
  br i1 %.not348.not, label %.lr.ph371, label %._crit_edge372, !llvm.loop !11

._crit_edge372:                                   ; preds = %.lr.ph371, %._crit_edge
  %106 = call i64 @pow_ii(ptr noundef nonnull @c__2, ptr noundef nonnull %34) #3
  store i64 0, ptr %35, align 8, !tbaa !5
  %107 = load i64, ptr %34, align 8, !tbaa !5
  %108 = icmp sgt i64 %107, 0
  br i1 %108, label %.lr.ph392, label %.loopexit

.lr.ph392:                                        ; preds = %._crit_edge372
  %109 = getelementptr i64, ptr %51, i64 %57
  br label %110

110:                                              ; preds = %.lr.ph392, %._crit_edge384
  %.0333390 = phi i64 [ %107, %.lr.ph392 ], [ %145, %._crit_edge384 ]
  %.0338389 = phi i64 [ %106, %.lr.ph392 ], [ %.1339.lcssa, %._crit_edge384 ]
  %111 = shl nuw i64 %.0333390, 1
  %112 = add nsw i64 %111, -1
  %113 = icmp eq i64 %.0333390, 1
  br i1 %113, label %.thread430, label %114

.thread430:                                       ; preds = %110
  store i64 1, ptr %27, align 8, !tbaa !5
  br label %.lr.ph383

114:                                              ; preds = %110
  %115 = add nsw i64 %.0333390, -1
  store i64 %115, ptr %27, align 8, !tbaa !5
  %116 = call i64 @pow_ii(ptr noundef nonnull @c__2, ptr noundef nonnull %27) #3
  %117 = shl i64 %116, 1
  %118 = add nsw i64 %117, -1
  store i64 %118, ptr %27, align 8, !tbaa !5
  %.not349379.not = icmp slt i64 %116, %117
  br i1 %.not349379.not, label %.lr.ph383, label %._crit_edge384

.lr.ph383:                                        ; preds = %.thread430, %114
  %.0336434 = phi i64 [ 1, %.thread430 ], [ %116, %114 ]
  %119 = mul nsw i64 %.0333390, %45
  %invariant.gep385 = getelementptr i64, ptr %47, i64 %119
  %120 = mul nsw i64 %112, %45
  %invariant.gep387 = getelementptr i64, ptr %48, i64 %120
  %121 = mul nsw i64 %112, %36
  %122 = mul nsw i64 %.0333390, %36
  br label %123

123:                                              ; preds = %.lr.ph383, %123
  %.1339381 = phi i64 [ %.0338389, %.lr.ph383 ], [ %130, %123 ]
  %.2342380 = phi i64 [ %.0336434, %.lr.ph383 ], [ %143, %123 ]
  %124 = getelementptr inbounds i64, ptr %51, i64 %.2342380
  %125 = load i64, ptr %124, align 8, !tbaa !5
  %126 = getelementptr i64, ptr %109, i64 %.2342380
  %127 = load i64, ptr %126, align 8, !tbaa !5
  store i64 %127, ptr %30, align 8, !tbaa !5
  %gep374 = getelementptr i64, ptr %invariant.gep, i64 %.2342380
  %128 = load i64, ptr %gep374, align 8, !tbaa !5
  store i64 %128, ptr %31, align 8, !tbaa !5
  %129 = sub nsw i64 %125, %127
  %130 = add nsw i64 %.1339381, -1
  %gep376 = getelementptr double, ptr %invariant.gep360, i64 %129
  %gep378 = getelementptr double, ptr %invariant.gep358, i64 %129
  %gep386 = getelementptr i64, ptr %invariant.gep385, i64 %129
  %131 = getelementptr inbounds i64, ptr %44, i64 %130
  %gep388 = getelementptr i64, ptr %invariant.gep387, i64 %129
  %132 = add nsw i64 %129, %121
  %133 = getelementptr inbounds double, ptr %38, i64 %132
  %134 = getelementptr inbounds double, ptr %39, i64 %132
  %135 = add nsw i64 %129, %122
  %136 = getelementptr inbounds double, ptr %42, i64 %135
  %137 = getelementptr inbounds double, ptr %41, i64 %132
  %138 = getelementptr inbounds double, ptr %40, i64 %135
  %139 = getelementptr inbounds i64, ptr %43, i64 %130
  %140 = getelementptr inbounds double, ptr %49, i64 %130
  %141 = getelementptr inbounds double, ptr %50, i64 %130
  %142 = call i32 @dlals0_(ptr noundef nonnull %0, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %35, ptr noundef nonnull %3, ptr noundef %gep376, ptr noundef nonnull %7, ptr noundef %gep378, ptr noundef nonnull %5, ptr noundef %gep386, ptr noundef nonnull %131, ptr noundef %gep388, ptr noundef nonnull %18, ptr noundef %133, ptr noundef nonnull %9, ptr noundef %134, ptr noundef %136, ptr noundef %137, ptr noundef %138, ptr noundef nonnull %139, ptr noundef nonnull %140, ptr noundef nonnull %141, ptr noundef %23, ptr noundef nonnull %25) #3
  %143 = add nsw i64 %.2342380, 1
  %144 = load i64, ptr %27, align 8, !tbaa !5
  %.not349.not = icmp slt i64 %.2342380, %144
  br i1 %.not349.not, label %123, label %._crit_edge384, !llvm.loop !12

._crit_edge384:                                   ; preds = %123, %114
  %.1339.lcssa = phi i64 [ %.0338389, %114 ], [ %130, %123 ]
  %145 = add nsw i64 %.0333390, -1
  %146 = icmp sgt i64 %.0333390, 1
  br i1 %146, label %110, label %.loopexit, !llvm.loop !13

147:                                              ; preds = %75
  %148 = load i64, ptr %34, align 8, !tbaa !5
  store i64 %148, ptr %27, align 8, !tbaa !5
  %.not350410 = icmp slt i64 %148, 1
  br i1 %.not350410, label %._crit_edge415, label %.lr.ph414

.lr.ph414:                                        ; preds = %147
  %invariant.gep393 = getelementptr i8, ptr %77, i64 -8
  %invariant.gep395 = getelementptr i8, ptr %4, i64 -8
  %invariant.gep397 = getelementptr i8, ptr %6, i64 -8
  %149 = getelementptr i64, ptr %51, i64 %57
  br label %150

150:                                              ; preds = %.lr.ph414, %._crit_edge404
  %.1412 = phi i64 [ 1, %.lr.ph414 ], [ %186, %._crit_edge404 ]
  %.2411 = phi i64 [ 0, %.lr.ph414 ], [ %.3.lcssa, %._crit_edge404 ]
  %151 = shl nuw i64 %.1412, 1
  %152 = add nsw i64 %151, -1
  %153 = icmp eq i64 %.1412, 1
  br i1 %153, label %.thread435, label %154

.thread435:                                       ; preds = %150
  store i64 1, ptr %28, align 8, !tbaa !5
  br label %.lr.ph403

154:                                              ; preds = %150
  %155 = add nsw i64 %.1412, -1
  store i64 %155, ptr %28, align 8, !tbaa !5
  %156 = call i64 @pow_ii(ptr noundef nonnull @c__2, ptr noundef nonnull %28) #3
  %157 = shl i64 %156, 1
  %158 = add nsw i64 %157, -1
  store i64 %156, ptr %28, align 8, !tbaa !5
  %.not352399.not = icmp sgt i64 %157, %156
  br i1 %.not352399.not, label %.lr.ph403, label %._crit_edge404

.lr.ph403:                                        ; preds = %.thread435, %154
  %.1335439 = phi i64 [ 1, %.thread435 ], [ %158, %154 ]
  %159 = mul nsw i64 %.1412, %45
  %invariant.gep406 = getelementptr i64, ptr %47, i64 %159
  %160 = mul nsw i64 %152, %45
  %invariant.gep408 = getelementptr i64, ptr %48, i64 %160
  %161 = mul nsw i64 %152, %36
  %162 = mul nsw i64 %.1412, %36
  br label %163

163:                                              ; preds = %.lr.ph403, %163
  %.3401 = phi i64 [ %.2411, %.lr.ph403 ], [ %171, %163 ]
  %.3343400 = phi i64 [ %.1335439, %.lr.ph403 ], [ %184, %163 ]
  %164 = getelementptr inbounds i64, ptr %51, i64 %.3343400
  %165 = load i64, ptr %164, align 8, !tbaa !5
  %166 = getelementptr i64, ptr %149, i64 %.3343400
  %167 = load i64, ptr %166, align 8, !tbaa !5
  store i64 %167, ptr %30, align 8, !tbaa !5
  %gep394 = getelementptr i64, ptr %invariant.gep393, i64 %.3343400
  %168 = load i64, ptr %gep394, align 8, !tbaa !5
  store i64 %168, ptr %31, align 8, !tbaa !5
  %169 = sub nsw i64 %165, %167
  %170 = icmp ne i64 %.3343400, %.1335439
  %. = zext i1 %170 to i64
  store i64 %., ptr %35, align 8, !tbaa !5
  %171 = add nsw i64 %.3401, 1
  %gep396 = getelementptr double, ptr %invariant.gep395, i64 %169
  %gep398 = getelementptr double, ptr %invariant.gep397, i64 %169
  %gep407 = getelementptr i64, ptr %invariant.gep406, i64 %169
  %172 = getelementptr i64, ptr %16, i64 %.3401
  %gep409 = getelementptr i64, ptr %invariant.gep408, i64 %169
  %173 = add nsw i64 %169, %161
  %174 = getelementptr inbounds double, ptr %38, i64 %173
  %175 = getelementptr inbounds double, ptr %39, i64 %173
  %176 = add nsw i64 %169, %162
  %177 = getelementptr inbounds double, ptr %42, i64 %176
  %178 = getelementptr inbounds double, ptr %41, i64 %173
  %179 = getelementptr inbounds double, ptr %40, i64 %176
  %180 = getelementptr i64, ptr %11, i64 %.3401
  %181 = getelementptr double, ptr %21, i64 %.3401
  %182 = getelementptr double, ptr %22, i64 %.3401
  %183 = call i32 @dlals0_(ptr noundef nonnull %0, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %35, ptr noundef nonnull %3, ptr noundef %gep396, ptr noundef nonnull %5, ptr noundef %gep398, ptr noundef nonnull %7, ptr noundef %gep407, ptr noundef %172, ptr noundef %gep409, ptr noundef nonnull %18, ptr noundef %174, ptr noundef nonnull %9, ptr noundef %175, ptr noundef %177, ptr noundef %178, ptr noundef %179, ptr noundef %180, ptr noundef %181, ptr noundef %182, ptr noundef %23, ptr noundef nonnull %25) #3
  %184 = add nsw i64 %.3343400, -1
  %185 = load i64, ptr %28, align 8, !tbaa !5
  %.not352.not = icmp sgt i64 %.3343400, %185
  br i1 %.not352.not, label %163, label %._crit_edge404, !llvm.loop !14

._crit_edge404:                                   ; preds = %163, %154
  %.3.lcssa = phi i64 [ %.2411, %154 ], [ %171, %163 ]
  %186 = add nuw nsw i64 %.1412, 1
  %187 = load i64, ptr %27, align 8, !tbaa !5
  %.not350.not = icmp slt i64 %.1412, %187
  br i1 %.not350.not, label %150, label %._crit_edge415, !llvm.loop !15

._crit_edge415:                                   ; preds = %._crit_edge404, %147
  %188 = load i64, ptr %29, align 8, !tbaa !5
  %189 = add nsw i64 %188, 1
  %190 = sdiv i64 %189, 2
  store i64 %188, ptr %27, align 8, !tbaa !5
  %invariant.gep416 = getelementptr i8, ptr %77, i64 -8
  %invariant.gep418 = getelementptr i8, ptr %10, i64 -8
  %invariant.gep420 = getelementptr i8, ptr %4, i64 -8
  %invariant.gep422 = getelementptr i8, ptr %6, i64 -8
  %.not351424 = icmp sgt i64 %190, %188
  br i1 %.not351424, label %.loopexit, label %.lr.ph427

.lr.ph427:                                        ; preds = %._crit_edge415
  %191 = getelementptr i64, ptr %51, i64 %57
  br label %192

192:                                              ; preds = %.lr.ph427, %192
  %.4425 = phi i64 [ %190, %.lr.ph427 ], [ %208, %192 ]
  %193 = getelementptr inbounds i64, ptr %51, i64 %.4425
  %194 = load i64, ptr %193, align 8, !tbaa !5
  %195 = getelementptr i64, ptr %191, i64 %.4425
  %196 = load i64, ptr %195, align 8, !tbaa !5
  store i64 %196, ptr %30, align 8, !tbaa !5
  %gep417 = getelementptr i64, ptr %invariant.gep416, i64 %.4425
  %197 = load i64, ptr %gep417, align 8, !tbaa !5
  store i64 %197, ptr %31, align 8, !tbaa !5
  %198 = add nsw i64 %196, 1
  store i64 %198, ptr %32, align 8, !tbaa !5
  %199 = load i64, ptr %29, align 8, !tbaa !5
  %200 = icmp ne i64 %.4425, %199
  %201 = zext i1 %200 to i64
  %storemerge = add nsw i64 %197, %201
  store i64 %storemerge, ptr %33, align 8, !tbaa !5
  %202 = sub nsw i64 %194, %196
  %gep419 = getelementptr double, ptr %invariant.gep418, i64 %202
  %gep421 = getelementptr double, ptr %invariant.gep420, i64 %202
  %gep423 = getelementptr double, ptr %invariant.gep422, i64 %202
  %203 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %32, ptr noundef nonnull %3, ptr noundef nonnull %32, ptr noundef nonnull @c_b7, ptr noundef %gep419, ptr noundef nonnull %9, ptr noundef %gep421, ptr noundef nonnull %5, ptr noundef nonnull @c_b8, ptr noundef %gep423, ptr noundef nonnull %7) #3
  %204 = getelementptr inbounds double, ptr %10, i64 %194
  %205 = getelementptr inbounds double, ptr %4, i64 %194
  %206 = getelementptr inbounds double, ptr %6, i64 %194
  %207 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %33, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull @c_b7, ptr noundef %204, ptr noundef nonnull %9, ptr noundef %205, ptr noundef nonnull %5, ptr noundef nonnull @c_b8, ptr noundef %206, ptr noundef nonnull %7) #3
  %208 = add nsw i64 %.4425, 1
  %209 = load i64, ptr %27, align 8, !tbaa !5
  %.not351.not = icmp slt i64 %.4425, %209
  br i1 %.not351.not, label %192, label %.loopexit, !llvm.loop !16

.loopexit:                                        ; preds = %._crit_edge384, %192, %._crit_edge372, %._crit_edge415, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #3
  ret i32 0
}

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

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

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

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

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

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

declare i32 @dlals0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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

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 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = distinct !{!12, !10}
!13 = distinct !{!13, !10}
!14 = distinct !{!14, !10}
!15 = distinct !{!15, !10}
!16 = distinct !{!16, !10}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass