; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4

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

226:                                              ; preds = %26
  %227 = load ptr, ptr %27, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = icmp sgt i32 %228, 1
  br i1 %229, label %230, label %232

230:                                              ; preds = %226, %26
  %231 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -1, ptr %231, align 4, !tbaa !9
  br label %291

232:                                              ; preds = %226
  %233 = load ptr, ptr %28, align 8, !tbaa !5
  %234 = load i32, ptr %233, align 4, !tbaa !9
  %235 = icmp slt i32 %234, 3
  br i1 %235, label %236, label %238

236:                                              ; preds = %232
  %237 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -2, ptr %237, align 4, !tbaa !9
  br label %290

238:                                              ; preds = %232
  %239 = load ptr, ptr %29, align 8, !tbaa !5
  %240 = load i32, ptr %239, align 4, !tbaa !9
  %241 = load ptr, ptr %28, align 8, !tbaa !5
  %242 = load i32, ptr %241, align 4, !tbaa !9
  %243 = icmp slt i32 %240, %242
  br i1 %243, label %244, label %246

244:                                              ; preds = %238
  %245 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -3, ptr %245, align 4, !tbaa !9
  br label %289

246:                                              ; preds = %238
  %247 = load ptr, ptr %30, align 8, !tbaa !5
  %248 = load i32, ptr %247, align 4, !tbaa !9
  %249 = icmp slt i32 %248, 1
  br i1 %249, label %250, label %252

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

252:                                              ; preds = %246
  %253 = load ptr, ptr %32, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  %255 = load ptr, ptr %29, align 8, !tbaa !5
  %256 = load i32, ptr %255, align 4, !tbaa !9
  %257 = icmp slt i32 %254, %256
  br i1 %257, label %258, label %260

258:                                              ; preds = %252
  %259 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -6, ptr %259, align 4, !tbaa !9
  br label %287

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

266:                                              ; preds = %260
  %267 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -8, ptr %267, align 4, !tbaa !9
  br label %286

268:                                              ; preds = %260
  %269 = load ptr, ptr %36, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = load ptr, ptr %29, align 8, !tbaa !5
  %272 = load i32, ptr %271, align 4, !tbaa !9
  %273 = icmp slt i32 %270, %272
  br i1 %273, label %274, label %276

274:                                              ; preds = %268
  %275 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -10, ptr %275, align 4, !tbaa !9
  br label %285

276:                                              ; preds = %268
  %277 = load ptr, ptr %45, align 8, !tbaa !5
  %278 = load i32, ptr %277, align 4, !tbaa !9
  %279 = load ptr, ptr %29, align 8, !tbaa !5
  %280 = load i32, ptr %279, align 4, !tbaa !9
  %281 = icmp slt i32 %278, %280
  br i1 %281, label %282, label %284

282:                                              ; preds = %276
  %283 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -19, ptr %283, align 4, !tbaa !9
  br label %284

284:                                              ; preds = %282, %276
  br label %285

285:                                              ; preds = %284, %274
  br label %286

286:                                              ; preds = %285, %266
  br label %287

287:                                              ; preds = %286, %258
  br label %288

288:                                              ; preds = %287, %250
  br label %289

289:                                              ; preds = %288, %244
  br label %290

290:                                              ; preds = %289, %236
  br label %291

291:                                              ; preds = %290, %230
  %292 = load ptr, ptr %52, align 8, !tbaa !5
  %293 = load i32, ptr %292, align 4, !tbaa !9
  %294 = icmp ne i32 %293, 0
  br i1 %294, label %295, label %300

295:                                              ; preds = %291
  %296 = load ptr, ptr %52, align 8, !tbaa !5
  %297 = load i32, ptr %296, align 4, !tbaa !9
  %298 = sub nsw i32 0, %297
  store i32 %298, ptr %75, align 4, !tbaa !9
  %299 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %75, i32 noundef 6)
  store i32 1, ptr %99, align 4
  br label %874

300:                                              ; preds = %291
  store i32 1, ptr %81, align 4, !tbaa !9
  %301 = load i32, ptr %81, align 4, !tbaa !9
  %302 = load ptr, ptr %29, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = add nsw i32 %301, %303
  store i32 %304, ptr %82, align 4, !tbaa !9
  %305 = load i32, ptr %82, align 4, !tbaa !9
  %306 = load ptr, ptr %29, align 8, !tbaa !5
  %307 = load i32, ptr %306, align 4, !tbaa !9
  %308 = add nsw i32 %305, %307
  store i32 %308, ptr %83, align 4, !tbaa !9
  %309 = load ptr, ptr %29, align 8, !tbaa !5
  %310 = load ptr, ptr %51, align 8, !tbaa !5
  %311 = load i32, ptr %81, align 4, !tbaa !9
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds i32, ptr %310, i64 %312
  %314 = load ptr, ptr %51, align 8, !tbaa !5
  %315 = load i32, ptr %82, align 4, !tbaa !9
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds i32, ptr %314, i64 %316
  %318 = load ptr, ptr %51, align 8, !tbaa !5
  %319 = load i32, ptr %83, align 4, !tbaa !9
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds i32, ptr %318, i64 %320
  %322 = load ptr, ptr %28, align 8, !tbaa !5
  call void @dlasdt_(ptr noundef %309, ptr noundef %77, ptr noundef %87, ptr noundef %313, ptr noundef %317, ptr noundef %321, ptr noundef %322)
  %323 = load ptr, ptr %27, align 8, !tbaa !5
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = icmp eq i32 %324, 1
  br i1 %325, label %326, label %327

326:                                              ; preds = %300
  br label %609

327:                                              ; preds = %300
  %328 = load i32, ptr %87, align 4, !tbaa !9
  %329 = add nsw i32 %328, 1
  %330 = sdiv i32 %329, 2
  store i32 %330, ptr %95, align 4, !tbaa !9
  %331 = load i32, ptr %87, align 4, !tbaa !9
  store i32 %331, ptr %75, align 4, !tbaa !9
  %332 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %332, ptr %79, align 4, !tbaa !9
  br label %333

333:                                              ; preds = %410, %327
  %334 = load i32, ptr %79, align 4, !tbaa !9
  %335 = load i32, ptr %75, align 4, !tbaa !9
  %336 = icmp sle i32 %334, %335
  br i1 %336, label %337, label %413

337:                                              ; preds = %333
  %338 = load i32, ptr %79, align 4, !tbaa !9
  %339 = sub nsw i32 %338, 1
  store i32 %339, ptr %84, align 4, !tbaa !9
  %340 = load ptr, ptr %51, align 8, !tbaa !5
  %341 = load i32, ptr %81, align 4, !tbaa !9
  %342 = load i32, ptr %84, align 4, !tbaa !9
  %343 = add nsw i32 %341, %342
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds i32, ptr %340, i64 %344
  %346 = load i32, ptr %345, align 4, !tbaa !9
  store i32 %346, ptr %85, align 4, !tbaa !9
  %347 = load ptr, ptr %51, align 8, !tbaa !5
  %348 = load i32, ptr %82, align 4, !tbaa !9
  %349 = load i32, ptr %84, align 4, !tbaa !9
  %350 = add nsw i32 %348, %349
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds i32, ptr %347, i64 %351
  %353 = load i32, ptr %352, align 4, !tbaa !9
  store i32 %353, ptr %89, align 4, !tbaa !9
  %354 = load ptr, ptr %51, align 8, !tbaa !5
  %355 = load i32, ptr %83, align 4, !tbaa !9
  %356 = load i32, ptr %84, align 4, !tbaa !9
  %357 = add nsw i32 %355, %356
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds i32, ptr %354, i64 %358
  %360 = load i32, ptr %359, align 4, !tbaa !9
  store i32 %360, ptr %90, align 4, !tbaa !9
  %361 = load i32, ptr %85, align 4, !tbaa !9
  %362 = load i32, ptr %89, align 4, !tbaa !9
  %363 = sub nsw i32 %361, %362
  store i32 %363, ptr %92, align 4, !tbaa !9
  %364 = load i32, ptr %85, align 4, !tbaa !9
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr %93, align 4, !tbaa !9
  %366 = load ptr, ptr %30, align 8, !tbaa !5
  %367 = load ptr, ptr %35, align 8, !tbaa !5
  %368 = load i32, ptr %92, align 4, !tbaa !9
  %369 = load i32, ptr %69, align 4, !tbaa !9
  %370 = add nsw i32 %368, %369
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds double, ptr %367, i64 %371
  %373 = load ptr, ptr %36, align 8, !tbaa !5
  %374 = load ptr, ptr %31, align 8, !tbaa !5
  %375 = load i32, ptr %92, align 4, !tbaa !9
  %376 = load i32, ptr %57, align 4, !tbaa !9
  %377 = add nsw i32 %375, %376
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds double, ptr %374, i64 %378
  %380 = load ptr, ptr %32, align 8, !tbaa !5
  %381 = load ptr, ptr %33, align 8, !tbaa !5
  %382 = load i32, ptr %92, align 4, !tbaa !9
  %383 = load i32, ptr %59, align 4, !tbaa !9
  %384 = add nsw i32 %382, %383
  %385 = sext i32 %384 to i64
  %386 = getelementptr inbounds double, ptr %381, i64 %385
  %387 = load ptr, ptr %34, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %89, ptr noundef %366, ptr noundef %89, ptr noundef @c_b7, ptr noundef %372, ptr noundef %373, ptr noundef %379, ptr noundef %380, ptr noundef @c_b8, ptr noundef %386, ptr noundef %387)
  %388 = load ptr, ptr %30, align 8, !tbaa !5
  %389 = load ptr, ptr %35, align 8, !tbaa !5
  %390 = load i32, ptr %93, align 4, !tbaa !9
  %391 = load i32, ptr %69, align 4, !tbaa !9
  %392 = add nsw i32 %390, %391
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds double, ptr %389, i64 %393
  %395 = load ptr, ptr %36, align 8, !tbaa !5
  %396 = load ptr, ptr %31, align 8, !tbaa !5
  %397 = load i32, ptr %93, align 4, !tbaa !9
  %398 = load i32, ptr %57, align 4, !tbaa !9
  %399 = add nsw i32 %397, %398
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds double, ptr %396, i64 %400
  %402 = load ptr, ptr %32, align 8, !tbaa !5
  %403 = load ptr, ptr %33, align 8, !tbaa !5
  %404 = load i32, ptr %93, align 4, !tbaa !9
  %405 = load i32, ptr %59, align 4, !tbaa !9
  %406 = add nsw i32 %404, %405
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds double, ptr %403, i64 %407
  %409 = load ptr, ptr %34, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %90, ptr noundef %388, ptr noundef %90, ptr noundef @c_b7, ptr noundef %394, ptr noundef %395, ptr noundef %401, ptr noundef %402, ptr noundef @c_b8, ptr noundef %408, ptr noundef %409)
  br label %410

410:                                              ; preds = %337
  %411 = load i32, ptr %79, align 4, !tbaa !9
  %412 = add nsw i32 %411, 1
  store i32 %412, ptr %79, align 4, !tbaa !9
  br label %333, !llvm.loop !11

413:                                              ; preds = %333
  %414 = load i32, ptr %87, align 4, !tbaa !9
  store i32 %414, ptr %75, align 4, !tbaa !9
  store i32 1, ptr %79, align 4, !tbaa !9
  br label %415

415:                                              ; preds = %443, %413
  %416 = load i32, ptr %79, align 4, !tbaa !9
  %417 = load i32, ptr %75, align 4, !tbaa !9
  %418 = icmp sle i32 %416, %417
  br i1 %418, label %419, label %446

419:                                              ; preds = %415
  %420 = load ptr, ptr %51, align 8, !tbaa !5
  %421 = load i32, ptr %81, align 4, !tbaa !9
  %422 = load i32, ptr %79, align 4, !tbaa !9
  %423 = add nsw i32 %421, %422
  %424 = sub nsw i32 %423, 1
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds i32, ptr %420, i64 %425
  %427 = load i32, ptr %426, align 4, !tbaa !9
  store i32 %427, ptr %85, align 4, !tbaa !9
  %428 = load ptr, ptr %30, align 8, !tbaa !5
  %429 = load ptr, ptr %31, align 8, !tbaa !5
  %430 = load i32, ptr %85, align 4, !tbaa !9
  %431 = load i32, ptr %57, align 4, !tbaa !9
  %432 = add nsw i32 %430, %431
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds double, ptr %429, i64 %433
  %435 = load ptr, ptr %32, align 8, !tbaa !5
  %436 = load ptr, ptr %33, align 8, !tbaa !5
  %437 = load i32, ptr %85, align 4, !tbaa !9
  %438 = load i32, ptr %59, align 4, !tbaa !9
  %439 = add nsw i32 %437, %438
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds double, ptr %436, i64 %440
  %442 = load ptr, ptr %34, align 8, !tbaa !5
  call void @dcopy_(ptr noundef %428, ptr noundef %434, ptr noundef %435, ptr noundef %441, ptr noundef %442)
  br label %443

443:                                              ; preds = %419
  %444 = load i32, ptr %79, align 4, !tbaa !9
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr %79, align 4, !tbaa !9
  br label %415, !llvm.loop !13

446:                                              ; preds = %415
  %447 = load i32, ptr @c__2, align 4, !tbaa !9
  %448 = load i32, ptr %77, align 4, !tbaa !9
  %449 = call i32 @pow_ii(i32 noundef %447, i32 noundef %448)
  store i32 %449, ptr %80, align 4, !tbaa !9
  store i32 0, ptr %78, align 4, !tbaa !9
  %450 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %450, ptr %94, align 4, !tbaa !9
  br label %451

451:                                              ; preds = %605, %446
  %452 = load i32, ptr %94, align 4, !tbaa !9
  %453 = icmp sge i32 %452, 1
  br i1 %453, label %454, label %608

454:                                              ; preds = %451
  %455 = load i32, ptr %94, align 4, !tbaa !9
  %456 = shl i32 %455, 1
  %457 = sub nsw i32 %456, 1
  store i32 %457, ptr %97, align 4, !tbaa !9
  %458 = load i32, ptr %94, align 4, !tbaa !9
  %459 = icmp eq i32 %458, 1
  br i1 %459, label %460, label %461

460:                                              ; preds = %454
  store i32 1, ptr %86, align 4, !tbaa !9
  store i32 1, ptr %88, align 4, !tbaa !9
  br label %470

461:                                              ; preds = %454
  %462 = load i32, ptr %94, align 4, !tbaa !9
  %463 = sub nsw i32 %462, 1
  store i32 %463, ptr %75, align 4, !tbaa !9
  %464 = load i32, ptr @c__2, align 4, !tbaa !9
  %465 = load i32, ptr %75, align 4, !tbaa !9
  %466 = call i32 @pow_ii(i32 noundef %464, i32 noundef %465)
  store i32 %466, ptr %86, align 4, !tbaa !9
  %467 = load i32, ptr %86, align 4, !tbaa !9
  %468 = shl i32 %467, 1
  %469 = sub nsw i32 %468, 1
  store i32 %469, ptr %88, align 4, !tbaa !9
  br label %470

470:                                              ; preds = %461, %460
  %471 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %471, ptr %75, align 4, !tbaa !9
  %472 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %472, ptr %79, align 4, !tbaa !9
  br label %473

473:                                              ; preds = %601, %470
  %474 = load i32, ptr %79, align 4, !tbaa !9
  %475 = load i32, ptr %75, align 4, !tbaa !9
  %476 = icmp sle i32 %474, %475
  br i1 %476, label %477, label %604

477:                                              ; preds = %473
  %478 = load i32, ptr %79, align 4, !tbaa !9
  %479 = sub nsw i32 %478, 1
  store i32 %479, ptr %91, align 4, !tbaa !9
  %480 = load ptr, ptr %51, align 8, !tbaa !5
  %481 = load i32, ptr %81, align 4, !tbaa !9
  %482 = load i32, ptr %91, align 4, !tbaa !9
  %483 = add nsw i32 %481, %482
  %484 = sext i32 %483 to i64
  %485 = getelementptr inbounds i32, ptr %480, i64 %484
  %486 = load i32, ptr %485, align 4, !tbaa !9
  store i32 %486, ptr %85, align 4, !tbaa !9
  %487 = load ptr, ptr %51, align 8, !tbaa !5
  %488 = load i32, ptr %82, align 4, !tbaa !9
  %489 = load i32, ptr %91, align 4, !tbaa !9
  %490 = add nsw i32 %488, %489
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds i32, ptr %487, i64 %491
  %493 = load i32, ptr %492, align 4, !tbaa !9
  store i32 %493, ptr %89, align 4, !tbaa !9
  %494 = load ptr, ptr %51, align 8, !tbaa !5
  %495 = load i32, ptr %83, align 4, !tbaa !9
  %496 = load i32, ptr %91, align 4, !tbaa !9
  %497 = add nsw i32 %495, %496
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds i32, ptr %494, i64 %498
  %500 = load i32, ptr %499, align 4, !tbaa !9
  store i32 %500, ptr %90, align 4, !tbaa !9
  %501 = load i32, ptr %85, align 4, !tbaa !9
  %502 = load i32, ptr %89, align 4, !tbaa !9
  %503 = sub nsw i32 %501, %502
  store i32 %503, ptr %92, align 4, !tbaa !9
  %504 = load i32, ptr %85, align 4, !tbaa !9
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr %93, align 4, !tbaa !9
  %506 = load i32, ptr %80, align 4, !tbaa !9
  %507 = add nsw i32 %506, -1
  store i32 %507, ptr %80, align 4, !tbaa !9
  %508 = load ptr, ptr %27, align 8, !tbaa !5
  %509 = load ptr, ptr %30, align 8, !tbaa !5
  %510 = load ptr, ptr %33, align 8, !tbaa !5
  %511 = load i32, ptr %92, align 4, !tbaa !9
  %512 = load i32, ptr %59, align 4, !tbaa !9
  %513 = add nsw i32 %511, %512
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds double, ptr %510, i64 %514
  %516 = load ptr, ptr %34, align 8, !tbaa !5
  %517 = load ptr, ptr %31, align 8, !tbaa !5
  %518 = load i32, ptr %92, align 4, !tbaa !9
  %519 = load i32, ptr %57, align 4, !tbaa !9
  %520 = add nsw i32 %518, %519
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds double, ptr %517, i64 %521
  %523 = load ptr, ptr %32, align 8, !tbaa !5
  %524 = load ptr, ptr %46, align 8, !tbaa !5
  %525 = load i32, ptr %92, align 4, !tbaa !9
  %526 = load i32, ptr %94, align 4, !tbaa !9
  %527 = load i32, ptr %55, align 4, !tbaa !9
  %528 = mul nsw i32 %526, %527
  %529 = add nsw i32 %525, %528
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds i32, ptr %524, i64 %530
  %532 = load ptr, ptr %43, align 8, !tbaa !5
  %533 = load i32, ptr %80, align 4, !tbaa !9
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds i32, ptr %532, i64 %534
  %536 = load ptr, ptr %44, align 8, !tbaa !5
  %537 = load i32, ptr %92, align 4, !tbaa !9
  %538 = load i32, ptr %97, align 4, !tbaa !9
  %539 = load i32, ptr %53, align 4, !tbaa !9
  %540 = mul nsw i32 %538, %539
  %541 = add nsw i32 %537, %540
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds i32, ptr %536, i64 %542
  %544 = load ptr, ptr %45, align 8, !tbaa !5
  %545 = load ptr, ptr %47, align 8, !tbaa !5
  %546 = load i32, ptr %92, align 4, !tbaa !9
  %547 = load i32, ptr %97, align 4, !tbaa !9
  %548 = load i32, ptr %65, align 4, !tbaa !9
  %549 = mul nsw i32 %547, %548
  %550 = add nsw i32 %546, %549
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds double, ptr %545, i64 %551
  %553 = load ptr, ptr %36, align 8, !tbaa !5
  %554 = load ptr, ptr %42, align 8, !tbaa !5
  %555 = load i32, ptr %92, align 4, !tbaa !9
  %556 = load i32, ptr %97, align 4, !tbaa !9
  %557 = load i32, ptr %67, align 4, !tbaa !9
  %558 = mul nsw i32 %556, %557
  %559 = add nsw i32 %555, %558
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds double, ptr %554, i64 %560
  %562 = load ptr, ptr %39, align 8, !tbaa !5
  %563 = load i32, ptr %92, align 4, !tbaa !9
  %564 = load i32, ptr %94, align 4, !tbaa !9
  %565 = load i32, ptr %61, align 4, !tbaa !9
  %566 = mul nsw i32 %564, %565
  %567 = add nsw i32 %563, %566
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds double, ptr %562, i64 %568
  %570 = load ptr, ptr %40, align 8, !tbaa !5
  %571 = load i32, ptr %92, align 4, !tbaa !9
  %572 = load i32, ptr %97, align 4, !tbaa !9
  %573 = load i32, ptr %63, align 4, !tbaa !9
  %574 = mul nsw i32 %572, %573
  %575 = add nsw i32 %571, %574
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds double, ptr %570, i64 %576
  %578 = load ptr, ptr %41, align 8, !tbaa !5
  %579 = load i32, ptr %92, align 4, !tbaa !9
  %580 = load i32, ptr %94, align 4, !tbaa !9
  %581 = load i32, ptr %73, align 4, !tbaa !9
  %582 = mul nsw i32 %580, %581
  %583 = add nsw i32 %579, %582
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds double, ptr %578, i64 %584
  %586 = load ptr, ptr %38, align 8, !tbaa !5
  %587 = load i32, ptr %80, align 4, !tbaa !9
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds i32, ptr %586, i64 %588
  %590 = load ptr, ptr %48, align 8, !tbaa !5
  %591 = load i32, ptr %80, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds double, ptr %590, i64 %592
  %594 = load ptr, ptr %49, align 8, !tbaa !5
  %595 = load i32, ptr %80, align 4, !tbaa !9
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds double, ptr %594, i64 %596
  %598 = load ptr, ptr %50, align 8, !tbaa !5
  %599 = getelementptr inbounds double, ptr %598, i64 1
  %600 = load ptr, ptr %52, align 8, !tbaa !5
  call void @dlals0_(ptr noundef %508, ptr noundef %89, ptr noundef %90, ptr noundef %78, ptr noundef %509, ptr noundef %515, ptr noundef %516, ptr noundef %522, ptr noundef %523, ptr noundef %531, ptr noundef %535, ptr noundef %543, ptr noundef %544, ptr noundef %552, ptr noundef %553, ptr noundef %561, ptr noundef %569, ptr noundef %577, ptr noundef %585, ptr noundef %589, ptr noundef %593, ptr noundef %597, ptr noundef %599, ptr noundef %600)
  br label %601

601:                                              ; preds = %477
  %602 = load i32, ptr %79, align 4, !tbaa !9
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr %79, align 4, !tbaa !9
  br label %473, !llvm.loop !14

604:                                              ; preds = %473
  br label %605

605:                                              ; preds = %604
  %606 = load i32, ptr %94, align 4, !tbaa !9
  %607 = add nsw i32 %606, -1
  store i32 %607, ptr %94, align 4, !tbaa !9
  br label %451, !llvm.loop !15

608:                                              ; preds = %451
  br label %873

609:                                              ; preds = %326
  store i32 0, ptr %80, align 4, !tbaa !9
  %610 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %610, ptr %75, align 4, !tbaa !9
  store i32 1, ptr %94, align 4, !tbaa !9
  br label %611

611:                                              ; preds = %772, %609
  %612 = load i32, ptr %94, align 4, !tbaa !9
  %613 = load i32, ptr %75, align 4, !tbaa !9
  %614 = icmp sle i32 %612, %613
  br i1 %614, label %615, label %775

615:                                              ; preds = %611
  %616 = load i32, ptr %94, align 4, !tbaa !9
  %617 = shl i32 %616, 1
  %618 = sub nsw i32 %617, 1
  store i32 %618, ptr %97, align 4, !tbaa !9
  %619 = load i32, ptr %94, align 4, !tbaa !9
  %620 = icmp eq i32 %619, 1
  br i1 %620, label %621, label %622

621:                                              ; preds = %615
  store i32 1, ptr %86, align 4, !tbaa !9
  store i32 1, ptr %88, align 4, !tbaa !9
  br label %631

622:                                              ; preds = %615
  %623 = load i32, ptr %94, align 4, !tbaa !9
  %624 = sub nsw i32 %623, 1
  store i32 %624, ptr %76, align 4, !tbaa !9
  %625 = load i32, ptr @c__2, align 4, !tbaa !9
  %626 = load i32, ptr %76, align 4, !tbaa !9
  %627 = call i32 @pow_ii(i32 noundef %625, i32 noundef %626)
  store i32 %627, ptr %86, align 4, !tbaa !9
  %628 = load i32, ptr %86, align 4, !tbaa !9
  %629 = shl i32 %628, 1
  %630 = sub nsw i32 %629, 1
  store i32 %630, ptr %88, align 4, !tbaa !9
  br label %631

631:                                              ; preds = %622, %621
  %632 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %632, ptr %76, align 4, !tbaa !9
  %633 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %633, ptr %79, align 4, !tbaa !9
  br label %634

634:                                              ; preds = %768, %631
  %635 = load i32, ptr %79, align 4, !tbaa !9
  %636 = load i32, ptr %76, align 4, !tbaa !9
  %637 = icmp sge i32 %635, %636
  br i1 %637, label %638, label %771

638:                                              ; preds = %634
  %639 = load i32, ptr %79, align 4, !tbaa !9
  %640 = sub nsw i32 %639, 1
  store i32 %640, ptr %91, align 4, !tbaa !9
  %641 = load ptr, ptr %51, align 8, !tbaa !5
  %642 = load i32, ptr %81, align 4, !tbaa !9
  %643 = load i32, ptr %91, align 4, !tbaa !9
  %644 = add nsw i32 %642, %643
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds i32, ptr %641, i64 %645
  %647 = load i32, ptr %646, align 4, !tbaa !9
  store i32 %647, ptr %85, align 4, !tbaa !9
  %648 = load ptr, ptr %51, align 8, !tbaa !5
  %649 = load i32, ptr %82, align 4, !tbaa !9
  %650 = load i32, ptr %91, align 4, !tbaa !9
  %651 = add nsw i32 %649, %650
  %652 = sext i32 %651 to i64
  %653 = getelementptr inbounds i32, ptr %648, i64 %652
  %654 = load i32, ptr %653, align 4, !tbaa !9
  store i32 %654, ptr %89, align 4, !tbaa !9
  %655 = load ptr, ptr %51, align 8, !tbaa !5
  %656 = load i32, ptr %83, align 4, !tbaa !9
  %657 = load i32, ptr %91, align 4, !tbaa !9
  %658 = add nsw i32 %656, %657
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds i32, ptr %655, i64 %659
  %661 = load i32, ptr %660, align 4, !tbaa !9
  store i32 %661, ptr %90, align 4, !tbaa !9
  %662 = load i32, ptr %85, align 4, !tbaa !9
  %663 = load i32, ptr %89, align 4, !tbaa !9
  %664 = sub nsw i32 %662, %663
  store i32 %664, ptr %92, align 4, !tbaa !9
  %665 = load i32, ptr %85, align 4, !tbaa !9
  %666 = add nsw i32 %665, 1
  store i32 %666, ptr %93, align 4, !tbaa !9
  %667 = load i32, ptr %79, align 4, !tbaa !9
  %668 = load i32, ptr %88, align 4, !tbaa !9
  %669 = icmp eq i32 %667, %668
  br i1 %669, label %670, label %671

670:                                              ; preds = %638
  store i32 0, ptr %78, align 4, !tbaa !9
  br label %672

671:                                              ; preds = %638
  store i32 1, ptr %78, align 4, !tbaa !9
  br label %672

672:                                              ; preds = %671, %670
  %673 = load i32, ptr %80, align 4, !tbaa !9
  %674 = add nsw i32 %673, 1
  store i32 %674, ptr %80, align 4, !tbaa !9
  %675 = load ptr, ptr %27, align 8, !tbaa !5
  %676 = load ptr, ptr %30, align 8, !tbaa !5
  %677 = load ptr, ptr %31, align 8, !tbaa !5
  %678 = load i32, ptr %92, align 4, !tbaa !9
  %679 = load i32, ptr %57, align 4, !tbaa !9
  %680 = add nsw i32 %678, %679
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds double, ptr %677, i64 %681
  %683 = load ptr, ptr %32, align 8, !tbaa !5
  %684 = load ptr, ptr %33, align 8, !tbaa !5
  %685 = load i32, ptr %92, align 4, !tbaa !9
  %686 = load i32, ptr %59, align 4, !tbaa !9
  %687 = add nsw i32 %685, %686
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds double, ptr %684, i64 %688
  %690 = load ptr, ptr %34, align 8, !tbaa !5
  %691 = load ptr, ptr %46, align 8, !tbaa !5
  %692 = load i32, ptr %92, align 4, !tbaa !9
  %693 = load i32, ptr %94, align 4, !tbaa !9
  %694 = load i32, ptr %55, align 4, !tbaa !9
  %695 = mul nsw i32 %693, %694
  %696 = add nsw i32 %692, %695
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds i32, ptr %691, i64 %697
  %699 = load ptr, ptr %43, align 8, !tbaa !5
  %700 = load i32, ptr %80, align 4, !tbaa !9
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds i32, ptr %699, i64 %701
  %703 = load ptr, ptr %44, align 8, !tbaa !5
  %704 = load i32, ptr %92, align 4, !tbaa !9
  %705 = load i32, ptr %97, align 4, !tbaa !9
  %706 = load i32, ptr %53, align 4, !tbaa !9
  %707 = mul nsw i32 %705, %706
  %708 = add nsw i32 %704, %707
  %709 = sext i32 %708 to i64
  %710 = getelementptr inbounds i32, ptr %703, i64 %709
  %711 = load ptr, ptr %45, align 8, !tbaa !5
  %712 = load ptr, ptr %47, align 8, !tbaa !5
  %713 = load i32, ptr %92, align 4, !tbaa !9
  %714 = load i32, ptr %97, align 4, !tbaa !9
  %715 = load i32, ptr %65, align 4, !tbaa !9
  %716 = mul nsw i32 %714, %715
  %717 = add nsw i32 %713, %716
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds double, ptr %712, i64 %718
  %720 = load ptr, ptr %36, align 8, !tbaa !5
  %721 = load ptr, ptr %42, align 8, !tbaa !5
  %722 = load i32, ptr %92, align 4, !tbaa !9
  %723 = load i32, ptr %97, align 4, !tbaa !9
  %724 = load i32, ptr %67, align 4, !tbaa !9
  %725 = mul nsw i32 %723, %724
  %726 = add nsw i32 %722, %725
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds double, ptr %721, i64 %727
  %729 = load ptr, ptr %39, align 8, !tbaa !5
  %730 = load i32, ptr %92, align 4, !tbaa !9
  %731 = load i32, ptr %94, align 4, !tbaa !9
  %732 = load i32, ptr %61, align 4, !tbaa !9
  %733 = mul nsw i32 %731, %732
  %734 = add nsw i32 %730, %733
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds double, ptr %729, i64 %735
  %737 = load ptr, ptr %40, align 8, !tbaa !5
  %738 = load i32, ptr %92, align 4, !tbaa !9
  %739 = load i32, ptr %97, align 4, !tbaa !9
  %740 = load i32, ptr %63, align 4, !tbaa !9
  %741 = mul nsw i32 %739, %740
  %742 = add nsw i32 %738, %741
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds double, ptr %737, i64 %743
  %745 = load ptr, ptr %41, align 8, !tbaa !5
  %746 = load i32, ptr %92, align 4, !tbaa !9
  %747 = load i32, ptr %94, align 4, !tbaa !9
  %748 = load i32, ptr %73, align 4, !tbaa !9
  %749 = mul nsw i32 %747, %748
  %750 = add nsw i32 %746, %749
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds double, ptr %745, i64 %751
  %753 = load ptr, ptr %38, align 8, !tbaa !5
  %754 = load i32, ptr %80, align 4, !tbaa !9
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds i32, ptr %753, i64 %755
  %757 = load ptr, ptr %48, align 8, !tbaa !5
  %758 = load i32, ptr %80, align 4, !tbaa !9
  %759 = sext i32 %758 to i64
  %760 = getelementptr inbounds double, ptr %757, i64 %759
  %761 = load ptr, ptr %49, align 8, !tbaa !5
  %762 = load i32, ptr %80, align 4, !tbaa !9
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds double, ptr %761, i64 %763
  %765 = load ptr, ptr %50, align 8, !tbaa !5
  %766 = getelementptr inbounds double, ptr %765, i64 1
  %767 = load ptr, ptr %52, align 8, !tbaa !5
  call void @dlals0_(ptr noundef %675, ptr noundef %89, ptr noundef %90, ptr noundef %78, ptr noundef %676, ptr noundef %682, ptr noundef %683, ptr noundef %689, ptr noundef %690, ptr noundef %698, ptr noundef %702, ptr noundef %710, ptr noundef %711, ptr noundef %719, ptr noundef %720, ptr noundef %728, ptr noundef %736, ptr noundef %744, ptr noundef %752, ptr noundef %756, ptr noundef %760, ptr noundef %764, ptr noundef %766, ptr noundef %767)
  br label %768

768:                                              ; preds = %672
  %769 = load i32, ptr %79, align 4, !tbaa !9
  %770 = add nsw i32 %769, -1
  store i32 %770, ptr %79, align 4, !tbaa !9
  br label %634, !llvm.loop !16

771:                                              ; preds = %634
  br label %772

772:                                              ; preds = %771
  %773 = load i32, ptr %94, align 4, !tbaa !9
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr %94, align 4, !tbaa !9
  br label %611, !llvm.loop !17

775:                                              ; preds = %611
  %776 = load i32, ptr %87, align 4, !tbaa !9
  %777 = add nsw i32 %776, 1
  %778 = sdiv i32 %777, 2
  store i32 %778, ptr %95, align 4, !tbaa !9
  %779 = load i32, ptr %87, align 4, !tbaa !9
  store i32 %779, ptr %75, align 4, !tbaa !9
  %780 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %780, ptr %79, align 4, !tbaa !9
  br label %781

781:                                              ; preds = %869, %775
  %782 = load i32, ptr %79, align 4, !tbaa !9
  %783 = load i32, ptr %75, align 4, !tbaa !9
  %784 = icmp sle i32 %782, %783
  br i1 %784, label %785, label %872

785:                                              ; preds = %781
  %786 = load i32, ptr %79, align 4, !tbaa !9
  %787 = sub nsw i32 %786, 1
  store i32 %787, ptr %84, align 4, !tbaa !9
  %788 = load ptr, ptr %51, align 8, !tbaa !5
  %789 = load i32, ptr %81, align 4, !tbaa !9
  %790 = load i32, ptr %84, align 4, !tbaa !9
  %791 = add nsw i32 %789, %790
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds i32, ptr %788, i64 %792
  %794 = load i32, ptr %793, align 4, !tbaa !9
  store i32 %794, ptr %85, align 4, !tbaa !9
  %795 = load ptr, ptr %51, align 8, !tbaa !5
  %796 = load i32, ptr %82, align 4, !tbaa !9
  %797 = load i32, ptr %84, align 4, !tbaa !9
  %798 = add nsw i32 %796, %797
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds i32, ptr %795, i64 %799
  %801 = load i32, ptr %800, align 4, !tbaa !9
  store i32 %801, ptr %89, align 4, !tbaa !9
  %802 = load ptr, ptr %51, align 8, !tbaa !5
  %803 = load i32, ptr %83, align 4, !tbaa !9
  %804 = load i32, ptr %84, align 4, !tbaa !9
  %805 = add nsw i32 %803, %804
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds i32, ptr %802, i64 %806
  %808 = load i32, ptr %807, align 4, !tbaa !9
  store i32 %808, ptr %90, align 4, !tbaa !9
  %809 = load i32, ptr %89, align 4, !tbaa !9
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr %96, align 4, !tbaa !9
  %811 = load i32, ptr %79, align 4, !tbaa !9
  %812 = load i32, ptr %87, align 4, !tbaa !9
  %813 = icmp eq i32 %811, %812
  br i1 %813, label %814, label %816

814:                                              ; preds = %785
  %815 = load i32, ptr %90, align 4, !tbaa !9
  store i32 %815, ptr %98, align 4, !tbaa !9
  br label %819

816:                                              ; preds = %785
  %817 = load i32, ptr %90, align 4, !tbaa !9
  %818 = add nsw i32 %817, 1
  store i32 %818, ptr %98, align 4, !tbaa !9
  br label %819

819:                                              ; preds = %816, %814
  %820 = load i32, ptr %85, align 4, !tbaa !9
  %821 = load i32, ptr %89, align 4, !tbaa !9
  %822 = sub nsw i32 %820, %821
  store i32 %822, ptr %92, align 4, !tbaa !9
  %823 = load i32, ptr %85, align 4, !tbaa !9
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr %93, align 4, !tbaa !9
  %825 = load ptr, ptr %30, align 8, !tbaa !5
  %826 = load ptr, ptr %37, align 8, !tbaa !5
  %827 = load i32, ptr %92, align 4, !tbaa !9
  %828 = load i32, ptr %71, align 4, !tbaa !9
  %829 = add nsw i32 %827, %828
  %830 = sext i32 %829 to i64
  %831 = getelementptr inbounds double, ptr %826, i64 %830
  %832 = load ptr, ptr %36, align 8, !tbaa !5
  %833 = load ptr, ptr %31, align 8, !tbaa !5
  %834 = load i32, ptr %92, align 4, !tbaa !9
  %835 = load i32, ptr %57, align 4, !tbaa !9
  %836 = add nsw i32 %834, %835
  %837 = sext i32 %836 to i64
  %838 = getelementptr inbounds double, ptr %833, i64 %837
  %839 = load ptr, ptr %32, align 8, !tbaa !5
  %840 = load ptr, ptr %33, align 8, !tbaa !5
  %841 = load i32, ptr %92, align 4, !tbaa !9
  %842 = load i32, ptr %59, align 4, !tbaa !9
  %843 = add nsw i32 %841, %842
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds double, ptr %840, i64 %844
  %846 = load ptr, ptr %34, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %96, ptr noundef %825, ptr noundef %96, ptr noundef @c_b7, ptr noundef %831, ptr noundef %832, ptr noundef %838, ptr noundef %839, ptr noundef @c_b8, ptr noundef %845, ptr noundef %846)
  %847 = load ptr, ptr %30, align 8, !tbaa !5
  %848 = load ptr, ptr %37, align 8, !tbaa !5
  %849 = load i32, ptr %93, align 4, !tbaa !9
  %850 = load i32, ptr %71, align 4, !tbaa !9
  %851 = add nsw i32 %849, %850
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds double, ptr %848, i64 %852
  %854 = load ptr, ptr %36, align 8, !tbaa !5
  %855 = load ptr, ptr %31, align 8, !tbaa !5
  %856 = load i32, ptr %93, align 4, !tbaa !9
  %857 = load i32, ptr %57, align 4, !tbaa !9
  %858 = add nsw i32 %856, %857
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds double, ptr %855, i64 %859
  %861 = load ptr, ptr %32, align 8, !tbaa !5
  %862 = load ptr, ptr %33, align 8, !tbaa !5
  %863 = load i32, ptr %93, align 4, !tbaa !9
  %864 = load i32, ptr %59, align 4, !tbaa !9
  %865 = add nsw i32 %863, %864
  %866 = sext i32 %865 to i64
  %867 = getelementptr inbounds double, ptr %862, i64 %866
  %868 = load ptr, ptr %34, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %98, ptr noundef %847, ptr noundef %98, ptr noundef @c_b7, ptr noundef %853, ptr noundef %854, ptr noundef %860, ptr noundef %861, ptr noundef @c_b8, ptr noundef %867, ptr noundef %868)
  br label %869

869:                                              ; preds = %819
  %870 = load i32, ptr %79, align 4, !tbaa !9
  %871 = add nsw i32 %870, 1
  store i32 %871, ptr %79, align 4, !tbaa !9
  br label %781, !llvm.loop !18

872:                                              ; preds = %781
  br label %873

873:                                              ; preds = %872, %608
  store i32 1, ptr %99, align 4
  br label %874

874:                                              ; preds = %873, %295
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #3
  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 4, 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 4, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 4, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 4, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #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 @xerbla_(ptr noundef, ptr noundef, i32 noundef) #2

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

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

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

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

declare void @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 = !{!"int", !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 local_unnamed_addr global i32, align 4

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

60:                                               ; preds = %26
  %61 = load i32, ptr %1, align 4, !tbaa !5
  %62 = icmp slt i32 %61, 3
  br i1 %62, label %.thread, label %63

63:                                               ; preds = %60
  %64 = load i32, ptr %2, align 4, !tbaa !5
  %65 = icmp slt i32 %64, %61
  br i1 %65, label %.thread, label %66

66:                                               ; preds = %63
  %67 = load i32, ptr %3, align 4, !tbaa !5
  %68 = icmp slt i32 %67, 1
  br i1 %68, label %.thread, label %69

69:                                               ; preds = %66
  %70 = load i32, ptr %5, align 4, !tbaa !5
  %71 = icmp slt i32 %70, %64
  br i1 %71, label %.thread, label %72

72:                                               ; preds = %69
  %73 = load i32, ptr %7, align 4, !tbaa !5
  %74 = icmp slt i32 %73, %64
  br i1 %74, label %.thread, label %75

75:                                               ; preds = %72
  %76 = load i32, ptr %9, align 4, !tbaa !5
  %77 = icmp slt i32 %76, %64
  br i1 %77, label %.thread, label %78

78:                                               ; preds = %75
  %79 = load i32, ptr %18, align 4, !tbaa !5
  %80 = icmp slt i32 %79, %64
  br i1 %80, label %.thread, label %82

.thread:                                          ; preds = %78, %75, %72, %69, %66, %63, %60, %26
  %.sink = phi i32 [ -1, %26 ], [ -2, %60 ], [ -3, %63 ], [ -4, %66 ], [ -6, %69 ], [ -8, %72 ], [ -10, %75 ], [ -19, %78 ]
  %.neg = phi i32 [ 1, %26 ], [ 2, %60 ], [ 3, %63 ], [ 4, %66 ], [ 6, %69 ], [ 8, %72 ], [ 10, %75 ], [ 19, %78 ]
  store i32 %.sink, ptr %25, align 4, !tbaa !5
  store i32 %.neg, ptr %27, align 4, !tbaa !5
  %81 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %27, i32 noundef 6) #3
  br label %.loopexit

82:                                               ; preds = %78
  %83 = add nuw nsw i32 %64, 1
  %84 = add nuw nsw i32 %83, %64
  %85 = zext nneg i32 %83 to i64
  %86 = getelementptr inbounds i32, ptr %58, i64 %85
  %87 = zext nneg i32 %84 to i64
  %88 = getelementptr inbounds i32, ptr %58, i64 %87
  call void @dlasdt_(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %30, ptr noundef %24, ptr noundef nonnull %86, ptr noundef nonnull %88, ptr noundef nonnull %1) #3
  %89 = load i32, ptr %0, align 4, !tbaa !5
  %90 = icmp eq i32 %89, 1
  br i1 %90, label %205, label %91

91:                                               ; preds = %82
  %92 = load i32, ptr %30, align 4, !tbaa !5
  %93 = add nsw i32 %92, 1
  %94 = sdiv i32 %93, 2
  %.not351360 = icmp sgt i32 %94, %92
  br i1 %.not351360, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %91
  %95 = shl nuw i32 %64, 1
  %96 = sext i32 %94 to i64
  %97 = sext i32 %92 to i64
  br label %98

98:                                               ; preds = %.lr.ph, %98
  %indvars.iv = phi i64 [ %96, %.lr.ph ], [ %indvars.iv.next, %98 ]
  %99 = getelementptr inbounds i32, ptr %58, i64 %indvars.iv
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = trunc nsw i64 %indvars.iv to i32
  %102 = add i32 %64, %101
  %103 = sext i32 %102 to i64
  %104 = getelementptr inbounds i32, ptr %58, i64 %103
  %105 = load i32, ptr %104, align 4, !tbaa !5
  store i32 %105, ptr %31, align 4, !tbaa !5
  %106 = add i32 %95, %101
  %107 = sext i32 %106 to i64
  %108 = getelementptr inbounds i32, ptr %58, i64 %107
  %109 = load i32, ptr %108, align 4, !tbaa !5
  store i32 %109, ptr %32, align 4, !tbaa !5
  %110 = sub nsw i32 %100, %105
  %111 = add nsw i32 %100, 1
  %112 = add nsw i32 %110, %41
  %113 = sext i32 %112 to i64
  %114 = getelementptr inbounds double, ptr %49, i64 %113
  %115 = add nsw i32 %110, %35
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds double, ptr %37, i64 %116
  %118 = add nsw i32 %110, %38
  %119 = sext i32 %118 to i64
  %120 = getelementptr inbounds double, ptr %40, i64 %119
  call void @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 %114, ptr noundef nonnull %9, ptr noundef %117, ptr noundef nonnull %5, ptr noundef nonnull @c_b8, ptr noundef %120, ptr noundef nonnull %7) #3
  %121 = add nsw i32 %111, %41
  %122 = sext i32 %121 to i64
  %123 = getelementptr inbounds double, ptr %49, i64 %122
  %124 = add nsw i32 %111, %35
  %125 = sext i32 %124 to i64
  %126 = getelementptr inbounds double, ptr %37, i64 %125
  %127 = add nsw i32 %111, %38
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds double, ptr %40, i64 %128
  call void @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 %123, ptr noundef nonnull %9, ptr noundef %126, ptr noundef nonnull %5, ptr noundef nonnull @c_b8, ptr noundef %129, ptr noundef nonnull %7) #3
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %.not351.not = icmp slt i64 %indvars.iv, %97
  br i1 %.not351.not, label %98, label %._crit_edge.loopexit, !llvm.loop !9

._crit_edge.loopexit:                             ; preds = %98
  %.pre = load i32, ptr %30, align 4, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %91
  %130 = phi i32 [ %.pre, %._crit_edge.loopexit ], [ %92, %91 ]
  %.not352362 = icmp slt i32 %130, 1
  br i1 %.not352362, label %._crit_edge366, label %.lr.ph365.preheader

.lr.ph365.preheader:                              ; preds = %._crit_edge
  %131 = zext nneg i32 %130 to i64
  br label %.lr.ph365

.lr.ph365:                                        ; preds = %.lr.ph365.preheader, %.lr.ph365
  %indvars.iv397 = phi i64 [ 1, %.lr.ph365.preheader ], [ %indvars.iv.next398, %.lr.ph365 ]
  %indvars.iv.next398 = add nuw nsw i64 %indvars.iv397, 1
  %132 = getelementptr inbounds i32, ptr %58, i64 %indvars.iv397
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = add nsw i32 %133, %35
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds double, ptr %37, i64 %135
  %137 = add nsw i32 %133, %38
  %138 = sext i32 %137 to i64
  %139 = getelementptr inbounds double, ptr %40, i64 %138
  call void @dcopy_(ptr noundef nonnull %3, ptr noundef %136, ptr noundef nonnull %5, ptr noundef %139, ptr noundef nonnull %7) #3
  %.not352.not = icmp ult i64 %indvars.iv397, %131
  br i1 %.not352.not, label %.lr.ph365, label %._crit_edge366, !llvm.loop !11

._crit_edge366:                                   ; preds = %.lr.ph365, %._crit_edge
  %140 = load i32, ptr @c__2, align 4, !tbaa !5
  %141 = load i32, ptr %28, align 4, !tbaa !5
  %142 = call i32 @pow_ii(i32 noundef %140, i32 noundef %141)
  store i32 0, ptr %29, align 4, !tbaa !5
  %143 = load i32, ptr %28, align 4, !tbaa !5
  %144 = icmp sgt i32 %143, 0
  br i1 %144, label %.lr.ph376, label %.loopexit

.lr.ph376:                                        ; preds = %._crit_edge366
  %145 = shl i32 %64, 1
  br label %146

146:                                              ; preds = %.lr.ph376, %._crit_edge372
  %.0374 = phi i32 [ %143, %.lr.ph376 ], [ %203, %._crit_edge372 ]
  %.0338373 = phi i32 [ %142, %.lr.ph376 ], [ %.1339.lcssa, %._crit_edge372 ]
  %147 = shl nuw i32 %.0374, 1
  %148 = add nsw i32 %147, -1
  %149 = icmp eq i32 %.0374, 1
  br i1 %149, label %.lr.ph371, label %150

150:                                              ; preds = %146
  %151 = add nsw i32 %.0374, -1
  %152 = load i32, ptr @c__2, align 4, !tbaa !5
  %153 = call i32 @pow_ii(i32 noundef %152, i32 noundef %151)
  %154 = shl i32 %153, 1
  %155 = add nsw i32 %154, -1
  %.not353367.not = icmp slt i32 %153, %154
  br i1 %.not353367.not, label %.lr.ph371, label %._crit_edge372

.lr.ph371:                                        ; preds = %146, %150
  %156 = phi i32 [ %155, %150 ], [ 1, %146 ]
  %.0336420 = phi i32 [ %153, %150 ], [ 1, %146 ]
  %157 = mul nsw i32 %.0374, %52
  %158 = mul nsw i32 %148, %52
  %159 = mul nsw i32 %148, %41
  %160 = mul nsw i32 %.0374, %41
  %161 = sext i32 %.0338373 to i64
  %162 = sext i32 %.0336420 to i64
  %163 = sext i32 %156 to i64
  br label %164

164:                                              ; preds = %.lr.ph371, %164
  %indvars.iv402 = phi i64 [ %162, %.lr.ph371 ], [ %indvars.iv.next403, %164 ]
  %indvars.iv400 = phi i64 [ %161, %.lr.ph371 ], [ %indvars.iv.next401, %164 ]
  %165 = getelementptr inbounds i32, ptr %58, i64 %indvars.iv402
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = trunc nsw i64 %indvars.iv402 to i32
  %168 = add i32 %64, %167
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds i32, ptr %58, i64 %169
  %171 = load i32, ptr %170, align 4, !tbaa !5
  store i32 %171, ptr %31, align 4, !tbaa !5
  %172 = add i32 %145, %167
  %173 = sext i32 %172 to i64
  %174 = getelementptr inbounds i32, ptr %58, i64 %173
  %175 = load i32, ptr %174, align 4, !tbaa !5
  store i32 %175, ptr %32, align 4, !tbaa !5
  %176 = sub nsw i32 %166, %171
  %indvars.iv.next401 = add nsw i64 %indvars.iv400, -1
  %177 = add nsw i32 %176, %38
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds double, ptr %40, i64 %178
  %180 = add nsw i32 %176, %35
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds double, ptr %37, i64 %181
  %183 = add nsw i32 %176, %157
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds i32, ptr %54, i64 %184
  %186 = getelementptr inbounds i32, ptr %51, i64 %indvars.iv.next401
  %187 = add nsw i32 %176, %158
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds i32, ptr %55, i64 %188
  %190 = add nsw i32 %176, %159
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds double, ptr %43, i64 %191
  %193 = getelementptr inbounds double, ptr %44, i64 %191
  %194 = add nsw i32 %176, %160
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds double, ptr %47, i64 %195
  %197 = getelementptr inbounds double, ptr %46, i64 %191
  %198 = getelementptr inbounds double, ptr %45, i64 %195
  %199 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv.next401
  %200 = getelementptr inbounds double, ptr %56, i64 %indvars.iv.next401
  %201 = getelementptr inbounds double, ptr %57, i64 %indvars.iv.next401
  call void @dlals0_(ptr noundef nonnull %0, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %29, ptr noundef nonnull %3, ptr noundef %179, ptr noundef nonnull %7, ptr noundef %182, ptr noundef nonnull %5, ptr noundef %185, ptr noundef nonnull %186, ptr noundef %189, ptr noundef nonnull %18, ptr noundef %192, ptr noundef nonnull %9, ptr noundef %193, ptr noundef %196, ptr noundef %197, ptr noundef %198, ptr noundef nonnull %199, ptr noundef nonnull %200, ptr noundef nonnull %201, ptr noundef %23, ptr noundef nonnull %25) #3
  %indvars.iv.next403 = add nsw i64 %indvars.iv402, 1
  %.not353.not = icmp slt i64 %indvars.iv402, %163
  br i1 %.not353.not, label %164, label %._crit_edge372.loopexit, !llvm.loop !12

._crit_edge372.loopexit:                          ; preds = %164
  %202 = trunc nsw i64 %indvars.iv.next401 to i32
  br label %._crit_edge372

._crit_edge372:                                   ; preds = %._crit_edge372.loopexit, %150
  %.1339.lcssa = phi i32 [ %.0338373, %150 ], [ %202, %._crit_edge372.loopexit ]
  %203 = add nsw i32 %.0374, -1
  %204 = icmp sgt i32 %.0374, 1
  br i1 %204, label %146, label %.loopexit, !llvm.loop !13

205:                                              ; preds = %82
  %206 = load i32, ptr %28, align 4, !tbaa !5
  %.not354384 = icmp slt i32 %206, 1
  br i1 %.not354384, label %._crit_edge389, label %.lr.ph388.preheader

.lr.ph388.preheader:                              ; preds = %205
  %invariant.gep = getelementptr i32, ptr %58, i64 %87
  br label %.lr.ph388

.lr.ph388:                                        ; preds = %.lr.ph388.preheader, %._crit_edge382
  %.1386 = phi i32 [ %260, %._crit_edge382 ], [ 1, %.lr.ph388.preheader ]
  %.2385 = phi i32 [ %.3.lcssa, %._crit_edge382 ], [ 0, %.lr.ph388.preheader ]
  %207 = shl nuw i32 %.1386, 1
  %208 = add nsw i32 %207, -1
  %209 = icmp eq i32 %.1386, 1
  br i1 %209, label %.lr.ph381, label %210

210:                                              ; preds = %.lr.ph388
  %211 = add nsw i32 %.1386, -1
  %212 = load i32, ptr @c__2, align 4, !tbaa !5
  %213 = call i32 @pow_ii(i32 noundef %212, i32 noundef %211)
  %214 = shl i32 %213, 1
  %215 = add nsw i32 %214, -1
  %.not356377.not = icmp sgt i32 %214, %213
  br i1 %.not356377.not, label %.lr.ph381, label %._crit_edge382

.lr.ph381:                                        ; preds = %.lr.ph388, %210
  %.1335426 = phi i32 [ %215, %210 ], [ 1, %.lr.ph388 ]
  %.1337425 = phi i32 [ %213, %210 ], [ 1, %.lr.ph388 ]
  %216 = mul nsw i32 %.1386, %52
  %217 = mul nsw i32 %208, %52
  %218 = mul nsw i32 %208, %41
  %219 = mul nsw i32 %.1386, %41
  %220 = sext i32 %.2385 to i64
  %221 = sext i32 %.1335426 to i64
  %222 = sext i32 %.1337425 to i64
  br label %223

223:                                              ; preds = %.lr.ph381, %223
  %indvars.iv409 = phi i64 [ %221, %.lr.ph381 ], [ %indvars.iv.next410, %223 ]
  %indvars.iv407 = phi i64 [ %220, %.lr.ph381 ], [ %indvars.iv.next408, %223 ]
  %indvars.iv.next410 = add nsw i64 %indvars.iv409, -1
  %224 = getelementptr inbounds i32, ptr %58, i64 %indvars.iv409
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = trunc nsw i64 %indvars.iv409 to i32
  %227 = add i32 %64, %226
  %228 = sext i32 %227 to i64
  %229 = getelementptr inbounds i32, ptr %58, i64 %228
  %230 = load i32, ptr %229, align 4, !tbaa !5
  store i32 %230, ptr %31, align 4, !tbaa !5
  %gep = getelementptr i32, ptr %invariant.gep, i64 %indvars.iv.next410
  %231 = load i32, ptr %gep, align 4, !tbaa !5
  store i32 %231, ptr %32, align 4, !tbaa !5
  %232 = sub nsw i32 %225, %230
  %233 = icmp ne i64 %indvars.iv409, %221
  %. = zext i1 %233 to i32
  store i32 %., ptr %29, align 4, !tbaa !5
  %indvars.iv.next408 = add nsw i64 %indvars.iv407, 1
  %234 = add nsw i32 %232, %35
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds double, ptr %37, i64 %235
  %237 = add nsw i32 %232, %38
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds double, ptr %40, i64 %238
  %240 = add nsw i32 %232, %216
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds i32, ptr %54, i64 %241
  %243 = getelementptr i32, ptr %16, i64 %indvars.iv407
  %244 = add nsw i32 %232, %217
  %245 = sext i32 %244 to i64
  %246 = getelementptr inbounds i32, ptr %55, i64 %245
  %247 = add nsw i32 %232, %218
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds double, ptr %43, i64 %248
  %250 = getelementptr inbounds double, ptr %44, i64 %248
  %251 = add nsw i32 %232, %219
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds double, ptr %47, i64 %252
  %254 = getelementptr inbounds double, ptr %46, i64 %248
  %255 = getelementptr inbounds double, ptr %45, i64 %252
  %256 = getelementptr i32, ptr %11, i64 %indvars.iv407
  %257 = getelementptr double, ptr %21, i64 %indvars.iv407
  %258 = getelementptr double, ptr %22, i64 %indvars.iv407
  call void @dlals0_(ptr noundef nonnull %0, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %29, ptr noundef nonnull %3, ptr noundef %236, ptr noundef nonnull %5, ptr noundef %239, ptr noundef nonnull %7, ptr noundef %242, ptr noundef nonnull %243, ptr noundef %246, ptr noundef nonnull %18, ptr noundef %249, ptr noundef nonnull %9, ptr noundef %250, ptr noundef %253, ptr noundef %254, ptr noundef %255, ptr noundef nonnull %256, ptr noundef nonnull %257, ptr noundef nonnull %258, ptr noundef %23, ptr noundef nonnull %25) #3
  %.not356.not = icmp sgt i64 %indvars.iv409, %222
  br i1 %.not356.not, label %223, label %._crit_edge382.loopexit, !llvm.loop !14

._crit_edge382.loopexit:                          ; preds = %223
  %259 = trunc nsw i64 %indvars.iv.next408 to i32
  br label %._crit_edge382

._crit_edge382:                                   ; preds = %._crit_edge382.loopexit, %210
  %.3.lcssa = phi i32 [ %.2385, %210 ], [ %259, %._crit_edge382.loopexit ]
  %260 = add nuw nsw i32 %.1386, 1
  %.not354.not = icmp slt i32 %.1386, %206
  br i1 %.not354.not, label %.lr.ph388, label %._crit_edge389, !llvm.loop !15

._crit_edge389:                                   ; preds = %._crit_edge382, %205
  %261 = load i32, ptr %30, align 4, !tbaa !5
  %262 = add nsw i32 %261, 1
  %263 = sdiv i32 %262, 2
  %.not355390 = icmp sgt i32 %263, %261
  br i1 %.not355390, label %.loopexit, label %.lr.ph393

.lr.ph393:                                        ; preds = %._crit_edge389
  %264 = shl i32 %64, 1
  %265 = sext i32 %263 to i64
  %266 = sext i32 %261 to i64
  br label %267

267:                                              ; preds = %.lr.ph393, %267
  %indvars.iv414 = phi i64 [ %265, %.lr.ph393 ], [ %indvars.iv.next415, %267 ]
  %268 = getelementptr inbounds i32, ptr %58, i64 %indvars.iv414
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = trunc nsw i64 %indvars.iv414 to i32
  %271 = add i32 %64, %270
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds i32, ptr %58, i64 %272
  %274 = load i32, ptr %273, align 4, !tbaa !5
  store i32 %274, ptr %31, align 4, !tbaa !5
  %275 = add i32 %264, %270
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds i32, ptr %58, i64 %276
  %278 = load i32, ptr %277, align 4, !tbaa !5
  store i32 %278, ptr %32, align 4, !tbaa !5
  %279 = add nsw i32 %274, 1
  store i32 %279, ptr %33, align 4, !tbaa !5
  %280 = load i32, ptr %30, align 4, !tbaa !5
  %281 = icmp ne i32 %280, %270
  %282 = zext i1 %281 to i32
  %storemerge = add nsw i32 %278, %282
  store i32 %storemerge, ptr %34, align 4, !tbaa !5
  %283 = sub nsw i32 %269, %274
  %284 = add nsw i32 %269, 1
  %285 = add nsw i32 %283, %41
  %286 = sext i32 %285 to i64
  %287 = getelementptr inbounds double, ptr %48, i64 %286
  %288 = add nsw i32 %283, %35
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds double, ptr %37, i64 %289
  %291 = add nsw i32 %283, %38
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds double, ptr %40, i64 %292
  call void @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 %287, ptr noundef nonnull %9, ptr noundef %290, ptr noundef nonnull %5, ptr noundef nonnull @c_b8, ptr noundef %293, ptr noundef nonnull %7) #3
  %294 = add nsw i32 %284, %41
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds double, ptr %48, i64 %295
  %297 = add nsw i32 %284, %35
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds double, ptr %37, i64 %298
  %300 = add nsw i32 %284, %38
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds double, ptr %40, i64 %301
  call void @dgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %34, ptr noundef nonnull %3, ptr noundef nonnull %34, ptr noundef nonnull @c_b7, ptr noundef %296, ptr noundef nonnull %9, ptr noundef %299, ptr noundef nonnull %5, ptr noundef nonnull @c_b8, ptr noundef %302, ptr noundef nonnull %7) #3
  %indvars.iv.next415 = add nsw i64 %indvars.iv414, 1
  %.not355.not = icmp slt i64 %indvars.iv414, %266
  br i1 %.not355.not, label %267, label %.loopexit, !llvm.loop !16

.loopexit:                                        ; preds = %._crit_edge372, %267, %._crit_edge366, %._crit_edge389, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #3
  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 @xerbla_(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

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

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

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

declare void @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 = !{!"int", !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,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass