; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/LAPACKE/src (lapacke_dgedmd_work)

; 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 [20 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @LAPACKE_dgedmd_work(i32 noundef %0, i8 noundef signext %1, i8 noundef signext %2, i8 noundef signext %3, i8 noundef signext %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, ptr noundef %8, i32 noundef %9, ptr noundef %10, i32 noundef %11, i32 noundef %12, ptr noundef %13, i32 noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, i32 noundef %18, ptr noundef %19, ptr noundef %20, i32 noundef %21, ptr noundef %22, i32 noundef %23, ptr noundef %24, i32 noundef %25, ptr noundef %26, i32 noundef %27, ptr noundef %28, i32 noundef %29) #0 {
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i8, align 1
  %34 = alloca i8, align 1
  %35 = alloca i8, align 1
  %36 = alloca i8, align 1
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  store i32 %0, ptr %32, align 4, !tbaa !5
  store i8 %1, ptr %33, align 1, !tbaa !9
  store i8 %2, ptr %34, align 1, !tbaa !9
  store i8 %3, ptr %35, align 1, !tbaa !9
  store i8 %4, ptr %36, align 1, !tbaa !9
  store i32 %5, ptr %37, align 4, !tbaa !5
  store i32 %6, ptr %38, align 4, !tbaa !5
  store i32 %7, ptr %39, align 4, !tbaa !5
  store ptr %8, ptr %40, align 8, !tbaa !10
  store i32 %9, ptr %41, align 4, !tbaa !5
  store ptr %10, ptr %42, align 8, !tbaa !10
  store i32 %11, ptr %43, align 4, !tbaa !5
  store i32 %12, ptr %44, align 4, !tbaa !5
  store ptr %13, ptr %45, align 8, !tbaa !10
  store i32 %14, ptr %46, align 4, !tbaa !5
  store ptr %15, ptr %47, align 8, !tbaa !10
  store ptr %16, ptr %48, align 8, !tbaa !10
  store ptr %17, ptr %49, align 8, !tbaa !10
  store i32 %18, ptr %50, align 4, !tbaa !5
  store ptr %19, ptr %51, align 8, !tbaa !10
  store ptr %20, ptr %52, align 8, !tbaa !10
  store i32 %21, ptr %53, align 4, !tbaa !5
  store ptr %22, ptr %54, align 8, !tbaa !10
  store i32 %23, ptr %55, align 4, !tbaa !5
  store ptr %24, ptr %56, align 8, !tbaa !10
  store i32 %25, ptr %57, align 4, !tbaa !5
  store ptr %26, ptr %58, align 8, !tbaa !10
  store i32 %27, ptr %59, align 4, !tbaa !5
  store ptr %28, ptr %60, align 8, !tbaa !10
  store i32 %29, ptr %61, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  store i32 0, ptr %62, align 4, !tbaa !5
  %76 = load i32, ptr %32, align 4, !tbaa !5
  %77 = icmp eq i32 %76, 102
  br i1 %77, label %78, label %97

78:                                               ; preds = %30
  %79 = load ptr, ptr %40, align 8, !tbaa !10
  %80 = load ptr, ptr %42, align 8, !tbaa !10
  %81 = load ptr, ptr %45, align 8, !tbaa !10
  %82 = load ptr, ptr %47, align 8, !tbaa !10
  %83 = load ptr, ptr %48, align 8, !tbaa !10
  %84 = load ptr, ptr %49, align 8, !tbaa !10
  %85 = load ptr, ptr %51, align 8, !tbaa !10
  %86 = load ptr, ptr %52, align 8, !tbaa !10
  %87 = load ptr, ptr %54, align 8, !tbaa !10
  %88 = load ptr, ptr %56, align 8, !tbaa !10
  %89 = load ptr, ptr %58, align 8, !tbaa !10
  %90 = load ptr, ptr %60, align 8, !tbaa !10
  call void @dgedmd_(ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %39, ptr noundef %79, ptr noundef %41, ptr noundef %80, ptr noundef %43, ptr noundef %44, ptr noundef %81, ptr noundef %46, ptr noundef %82, ptr noundef %83, ptr noundef %84, ptr noundef %50, ptr noundef %85, ptr noundef %86, ptr noundef %53, ptr noundef %87, ptr noundef %55, ptr noundef %88, ptr noundef %57, ptr noundef %89, ptr noundef %59, ptr noundef %90, ptr noundef %61, ptr noundef %62, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1)
  %91 = load i32, ptr %62, align 4, !tbaa !5
  %92 = icmp slt i32 %91, 0
  br i1 %92, label %93, label %96

93:                                               ; preds = %78
  %94 = load i32, ptr %62, align 4, !tbaa !5
  %95 = sub nsw i32 %94, 1
  store i32 %95, ptr %62, align 4, !tbaa !5
  br label %96

96:                                               ; preds = %93, %78
  br label %431

97:                                               ; preds = %30
  %98 = load i32, ptr %32, align 4, !tbaa !5
  %99 = icmp eq i32 %98, 101
  br i1 %99, label %100, label %428

100:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #5
  %101 = load i32, ptr %38, align 4, !tbaa !5
  %102 = icmp sgt i32 1, %101
  br i1 %102, label %103, label %104

103:                                              ; preds = %100
  br label %106

104:                                              ; preds = %100
  %105 = load i32, ptr %38, align 4, !tbaa !5
  br label %106

106:                                              ; preds = %104, %103
  %107 = phi i32 [ 1, %103 ], [ %105, %104 ]
  store i32 %107, ptr %63, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #5
  %108 = load i32, ptr %38, align 4, !tbaa !5
  %109 = icmp sgt i32 1, %108
  br i1 %109, label %110, label %111

110:                                              ; preds = %106
  br label %113

111:                                              ; preds = %106
  %112 = load i32, ptr %38, align 4, !tbaa !5
  br label %113

113:                                              ; preds = %111, %110
  %114 = phi i32 [ 1, %110 ], [ %112, %111 ]
  store i32 %114, ptr %64, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #5
  %115 = load i32, ptr %38, align 4, !tbaa !5
  %116 = icmp sgt i32 1, %115
  br i1 %116, label %117, label %118

117:                                              ; preds = %113
  br label %120

118:                                              ; preds = %113
  %119 = load i32, ptr %38, align 4, !tbaa !5
  br label %120

120:                                              ; preds = %118, %117
  %121 = phi i32 [ 1, %117 ], [ %119, %118 ]
  store i32 %121, ptr %65, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  %122 = load i32, ptr %38, align 4, !tbaa !5
  %123 = icmp sgt i32 1, %122
  br i1 %123, label %124, label %125

124:                                              ; preds = %120
  br label %127

125:                                              ; preds = %120
  %126 = load i32, ptr %38, align 4, !tbaa !5
  br label %127

127:                                              ; preds = %125, %124
  %128 = phi i32 [ 1, %124 ], [ %126, %125 ]
  store i32 %128, ptr %66, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  %129 = load i32, ptr %38, align 4, !tbaa !5
  %130 = icmp sgt i32 1, %129
  br i1 %130, label %131, label %132

131:                                              ; preds = %127
  br label %134

132:                                              ; preds = %127
  %133 = load i32, ptr %38, align 4, !tbaa !5
  br label %134

134:                                              ; preds = %132, %131
  %135 = phi i32 [ 1, %131 ], [ %133, %132 ]
  store i32 %135, ptr %67, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #5
  %136 = load i32, ptr %38, align 4, !tbaa !5
  %137 = icmp sgt i32 1, %136
  br i1 %137, label %138, label %139

138:                                              ; preds = %134
  br label %141

139:                                              ; preds = %134
  %140 = load i32, ptr %38, align 4, !tbaa !5
  br label %141

141:                                              ; preds = %139, %138
  %142 = phi i32 [ 1, %138 ], [ %140, %139 ]
  store i32 %142, ptr %68, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  store ptr null, ptr %69, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  store ptr null, ptr %70, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  store ptr null, ptr %71, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  store ptr null, ptr %72, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  store ptr null, ptr %73, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #5
  store ptr null, ptr %74, align 8, !tbaa !10
  %143 = load i32, ptr %41, align 4, !tbaa !5
  %144 = load i32, ptr %39, align 4, !tbaa !5
  %145 = icmp slt i32 %143, %144
  br i1 %145, label %146, label %149

146:                                              ; preds = %141
  store i32 -9, ptr %62, align 4, !tbaa !5
  %147 = load i32, ptr %62, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %147)
  %148 = load i32, ptr %62, align 4, !tbaa !5
  store i32 %148, ptr %31, align 4
  store i32 1, ptr %75, align 4
  br label %425

149:                                              ; preds = %141
  %150 = load i32, ptr %43, align 4, !tbaa !5
  %151 = load i32, ptr %39, align 4, !tbaa !5
  %152 = icmp slt i32 %150, %151
  br i1 %152, label %153, label %156

153:                                              ; preds = %149
  store i32 -11, ptr %62, align 4, !tbaa !5
  %154 = load i32, ptr %62, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %154)
  %155 = load i32, ptr %62, align 4, !tbaa !5
  store i32 %155, ptr %31, align 4
  store i32 1, ptr %75, align 4
  br label %425

156:                                              ; preds = %149
  %157 = load i32, ptr %50, align 4, !tbaa !5
  %158 = load i32, ptr %39, align 4, !tbaa !5
  %159 = icmp slt i32 %157, %158
  br i1 %159, label %160, label %163

160:                                              ; preds = %156
  store i32 -16, ptr %62, align 4, !tbaa !5
  %161 = load i32, ptr %62, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %161)
  %162 = load i32, ptr %62, align 4, !tbaa !5
  store i32 %162, ptr %31, align 4
  store i32 1, ptr %75, align 4
  br label %425

163:                                              ; preds = %156
  %164 = load i32, ptr %53, align 4, !tbaa !5
  %165 = load i32, ptr %39, align 4, !tbaa !5
  %166 = icmp slt i32 %164, %165
  br i1 %166, label %167, label %170

167:                                              ; preds = %163
  store i32 -19, ptr %62, align 4, !tbaa !5
  %168 = load i32, ptr %62, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %168)
  %169 = load i32, ptr %62, align 4, !tbaa !5
  store i32 %169, ptr %31, align 4
  store i32 1, ptr %75, align 4
  br label %425

170:                                              ; preds = %163
  %171 = load i32, ptr %55, align 4, !tbaa !5
  %172 = load i32, ptr %39, align 4, !tbaa !5
  %173 = icmp slt i32 %171, %172
  br i1 %173, label %174, label %177

174:                                              ; preds = %170
  store i32 -21, ptr %62, align 4, !tbaa !5
  %175 = load i32, ptr %62, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %175)
  %176 = load i32, ptr %62, align 4, !tbaa !5
  store i32 %176, ptr %31, align 4
  store i32 1, ptr %75, align 4
  br label %425

177:                                              ; preds = %170
  %178 = load i32, ptr %57, align 4, !tbaa !5
  %179 = load i32, ptr %39, align 4, !tbaa !5
  %180 = icmp slt i32 %178, %179
  br i1 %180, label %181, label %184

181:                                              ; preds = %177
  store i32 -23, ptr %62, align 4, !tbaa !5
  %182 = load i32, ptr %62, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %182)
  %183 = load i32, ptr %62, align 4, !tbaa !5
  store i32 %183, ptr %31, align 4
  store i32 1, ptr %75, align 4
  br label %425

184:                                              ; preds = %177
  %185 = load i32, ptr %59, align 4, !tbaa !5
  %186 = icmp eq i32 %185, -1
  br i1 %186, label %187, label %209

187:                                              ; preds = %184
  %188 = load ptr, ptr %40, align 8, !tbaa !10
  %189 = load ptr, ptr %42, align 8, !tbaa !10
  %190 = load ptr, ptr %45, align 8, !tbaa !10
  %191 = load ptr, ptr %47, align 8, !tbaa !10
  %192 = load ptr, ptr %48, align 8, !tbaa !10
  %193 = load ptr, ptr %49, align 8, !tbaa !10
  %194 = load ptr, ptr %51, align 8, !tbaa !10
  %195 = load ptr, ptr %52, align 8, !tbaa !10
  %196 = load ptr, ptr %54, align 8, !tbaa !10
  %197 = load ptr, ptr %56, align 8, !tbaa !10
  %198 = load ptr, ptr %58, align 8, !tbaa !10
  %199 = load ptr, ptr %60, align 8, !tbaa !10
  call void @dgedmd_(ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %39, ptr noundef %188, ptr noundef %41, ptr noundef %189, ptr noundef %43, ptr noundef %44, ptr noundef %190, ptr noundef %46, ptr noundef %191, ptr noundef %192, ptr noundef %193, ptr noundef %50, ptr noundef %194, ptr noundef %195, ptr noundef %53, ptr noundef %196, ptr noundef %55, ptr noundef %197, ptr noundef %57, ptr noundef %198, ptr noundef %59, ptr noundef %199, ptr noundef %61, ptr noundef %62, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1)
  %200 = load i32, ptr %62, align 4, !tbaa !5
  %201 = icmp slt i32 %200, 0
  br i1 %201, label %202, label %205

202:                                              ; preds = %187
  %203 = load i32, ptr %62, align 4, !tbaa !5
  %204 = sub nsw i32 %203, 1
  br label %207

205:                                              ; preds = %187
  %206 = load i32, ptr %62, align 4, !tbaa !5
  br label %207

207:                                              ; preds = %205, %202
  %208 = phi i32 [ %204, %202 ], [ %206, %205 ]
  store i32 %208, ptr %31, align 4
  store i32 1, ptr %75, align 4
  br label %425

209:                                              ; preds = %184
  %210 = load i32, ptr %63, align 4, !tbaa !5
  %211 = sext i32 %210 to i64
  %212 = mul i64 8, %211
  %213 = load i32, ptr %39, align 4, !tbaa !5
  %214 = icmp sgt i32 1, %213
  br i1 %214, label %215, label %216

215:                                              ; preds = %209
  br label %218

216:                                              ; preds = %209
  %217 = load i32, ptr %39, align 4, !tbaa !5
  br label %218

218:                                              ; preds = %216, %215
  %219 = phi i32 [ 1, %215 ], [ %217, %216 ]
  %220 = sext i32 %219 to i64
  %221 = mul i64 %212, %220
  %222 = call noalias ptr @malloc(i64 noundef %221) #6
  store ptr %222, ptr %69, align 8, !tbaa !10
  %223 = load ptr, ptr %69, align 8, !tbaa !10
  %224 = icmp eq ptr %223, null
  br i1 %224, label %225, label %226

225:                                              ; preds = %218
  store i32 -1011, ptr %62, align 4, !tbaa !5
  br label %419

226:                                              ; preds = %218
  %227 = load i32, ptr %64, align 4, !tbaa !5
  %228 = sext i32 %227 to i64
  %229 = mul i64 8, %228
  %230 = load i32, ptr %39, align 4, !tbaa !5
  %231 = icmp sgt i32 1, %230
  br i1 %231, label %232, label %233

232:                                              ; preds = %226
  br label %235

233:                                              ; preds = %226
  %234 = load i32, ptr %39, align 4, !tbaa !5
  br label %235

235:                                              ; preds = %233, %232
  %236 = phi i32 [ 1, %232 ], [ %234, %233 ]
  %237 = sext i32 %236 to i64
  %238 = mul i64 %229, %237
  %239 = call noalias ptr @malloc(i64 noundef %238) #6
  store ptr %239, ptr %70, align 8, !tbaa !10
  %240 = load ptr, ptr %70, align 8, !tbaa !10
  %241 = icmp eq ptr %240, null
  br i1 %241, label %242, label %243

242:                                              ; preds = %235
  store i32 -1011, ptr %62, align 4, !tbaa !5
  br label %417

243:                                              ; preds = %235
  %244 = load i32, ptr %65, align 4, !tbaa !5
  %245 = sext i32 %244 to i64
  %246 = mul i64 8, %245
  %247 = load i32, ptr %39, align 4, !tbaa !5
  %248 = icmp sgt i32 1, %247
  br i1 %248, label %249, label %250

249:                                              ; preds = %243
  br label %252

250:                                              ; preds = %243
  %251 = load i32, ptr %39, align 4, !tbaa !5
  br label %252

252:                                              ; preds = %250, %249
  %253 = phi i32 [ 1, %249 ], [ %251, %250 ]
  %254 = sext i32 %253 to i64
  %255 = mul i64 %246, %254
  %256 = call noalias ptr @malloc(i64 noundef %255) #6
  store ptr %256, ptr %71, align 8, !tbaa !10
  %257 = load ptr, ptr %71, align 8, !tbaa !10
  %258 = icmp eq ptr %257, null
  br i1 %258, label %259, label %260

259:                                              ; preds = %252
  store i32 -1011, ptr %62, align 4, !tbaa !5
  br label %415

260:                                              ; preds = %252
  %261 = load i32, ptr %66, align 4, !tbaa !5
  %262 = sext i32 %261 to i64
  %263 = mul i64 8, %262
  %264 = load i32, ptr %39, align 4, !tbaa !5
  %265 = icmp sgt i32 1, %264
  br i1 %265, label %266, label %267

266:                                              ; preds = %260
  br label %269

267:                                              ; preds = %260
  %268 = load i32, ptr %39, align 4, !tbaa !5
  br label %269

269:                                              ; preds = %267, %266
  %270 = phi i32 [ 1, %266 ], [ %268, %267 ]
  %271 = sext i32 %270 to i64
  %272 = mul i64 %263, %271
  %273 = call noalias ptr @malloc(i64 noundef %272) #6
  store ptr %273, ptr %72, align 8, !tbaa !10
  %274 = load ptr, ptr %72, align 8, !tbaa !10
  %275 = icmp eq ptr %274, null
  br i1 %275, label %276, label %277

276:                                              ; preds = %269
  store i32 -1011, ptr %62, align 4, !tbaa !5
  br label %413

277:                                              ; preds = %269
  %278 = load i32, ptr %67, align 4, !tbaa !5
  %279 = sext i32 %278 to i64
  %280 = mul i64 8, %279
  %281 = load i32, ptr %39, align 4, !tbaa !5
  %282 = icmp sgt i32 1, %281
  br i1 %282, label %283, label %284

283:                                              ; preds = %277
  br label %286

284:                                              ; preds = %277
  %285 = load i32, ptr %39, align 4, !tbaa !5
  br label %286

286:                                              ; preds = %284, %283
  %287 = phi i32 [ 1, %283 ], [ %285, %284 ]
  %288 = sext i32 %287 to i64
  %289 = mul i64 %280, %288
  %290 = call noalias ptr @malloc(i64 noundef %289) #6
  store ptr %290, ptr %73, align 8, !tbaa !10
  %291 = load ptr, ptr %73, align 8, !tbaa !10
  %292 = icmp eq ptr %291, null
  br i1 %292, label %293, label %294

293:                                              ; preds = %286
  store i32 -1011, ptr %62, align 4, !tbaa !5
  br label %411

294:                                              ; preds = %286
  %295 = load i32, ptr %68, align 4, !tbaa !5
  %296 = sext i32 %295 to i64
  %297 = mul i64 8, %296
  %298 = load i32, ptr %39, align 4, !tbaa !5
  %299 = icmp sgt i32 1, %298
  br i1 %299, label %300, label %301

300:                                              ; preds = %294
  br label %303

301:                                              ; preds = %294
  %302 = load i32, ptr %39, align 4, !tbaa !5
  br label %303

303:                                              ; preds = %301, %300
  %304 = phi i32 [ 1, %300 ], [ %302, %301 ]
  %305 = sext i32 %304 to i64
  %306 = mul i64 %297, %305
  %307 = call noalias ptr @malloc(i64 noundef %306) #6
  store ptr %307, ptr %74, align 8, !tbaa !10
  %308 = load ptr, ptr %74, align 8, !tbaa !10
  %309 = icmp eq ptr %308, null
  br i1 %309, label %310, label %311

310:                                              ; preds = %303
  store i32 -1011, ptr %62, align 4, !tbaa !5
  br label %409

311:                                              ; preds = %303
  %312 = load i32, ptr %32, align 4, !tbaa !5
  %313 = load i32, ptr %38, align 4, !tbaa !5
  %314 = load i32, ptr %39, align 4, !tbaa !5
  %315 = load ptr, ptr %40, align 8, !tbaa !10
  %316 = load i32, ptr %41, align 4, !tbaa !5
  %317 = load ptr, ptr %69, align 8, !tbaa !10
  %318 = load i32, ptr %63, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %312, i32 noundef %313, i32 noundef %314, ptr noundef %315, i32 noundef %316, ptr noundef %317, i32 noundef %318)
  %319 = load i32, ptr %32, align 4, !tbaa !5
  %320 = load i32, ptr %38, align 4, !tbaa !5
  %321 = load i32, ptr %39, align 4, !tbaa !5
  %322 = load ptr, ptr %42, align 8, !tbaa !10
  %323 = load i32, ptr %43, align 4, !tbaa !5
  %324 = load ptr, ptr %70, align 8, !tbaa !10
  %325 = load i32, ptr %64, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %319, i32 noundef %320, i32 noundef %321, ptr noundef %322, i32 noundef %323, ptr noundef %324, i32 noundef %325)
  %326 = load i32, ptr %32, align 4, !tbaa !5
  %327 = load i32, ptr %38, align 4, !tbaa !5
  %328 = load i32, ptr %39, align 4, !tbaa !5
  %329 = load ptr, ptr %49, align 8, !tbaa !10
  %330 = load i32, ptr %50, align 4, !tbaa !5
  %331 = load ptr, ptr %71, align 8, !tbaa !10
  %332 = load i32, ptr %65, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %326, i32 noundef %327, i32 noundef %328, ptr noundef %329, i32 noundef %330, ptr noundef %331, i32 noundef %332)
  %333 = load i32, ptr %32, align 4, !tbaa !5
  %334 = load i32, ptr %38, align 4, !tbaa !5
  %335 = load i32, ptr %39, align 4, !tbaa !5
  %336 = load ptr, ptr %52, align 8, !tbaa !10
  %337 = load i32, ptr %53, align 4, !tbaa !5
  %338 = load ptr, ptr %72, align 8, !tbaa !10
  %339 = load i32, ptr %66, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %333, i32 noundef %334, i32 noundef %335, ptr noundef %336, i32 noundef %337, ptr noundef %338, i32 noundef %339)
  %340 = load i32, ptr %32, align 4, !tbaa !5
  %341 = load i32, ptr %38, align 4, !tbaa !5
  %342 = load i32, ptr %39, align 4, !tbaa !5
  %343 = load ptr, ptr %54, align 8, !tbaa !10
  %344 = load i32, ptr %55, align 4, !tbaa !5
  %345 = load ptr, ptr %73, align 8, !tbaa !10
  %346 = load i32, ptr %67, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %340, i32 noundef %341, i32 noundef %342, ptr noundef %343, i32 noundef %344, ptr noundef %345, i32 noundef %346)
  %347 = load i32, ptr %32, align 4, !tbaa !5
  %348 = load i32, ptr %38, align 4, !tbaa !5
  %349 = load i32, ptr %39, align 4, !tbaa !5
  %350 = load ptr, ptr %56, align 8, !tbaa !10
  %351 = load i32, ptr %57, align 4, !tbaa !5
  %352 = load ptr, ptr %74, align 8, !tbaa !10
  %353 = load i32, ptr %68, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %347, i32 noundef %348, i32 noundef %349, ptr noundef %350, i32 noundef %351, ptr noundef %352, i32 noundef %353)
  %354 = load ptr, ptr %69, align 8, !tbaa !10
  %355 = load ptr, ptr %70, align 8, !tbaa !10
  %356 = load ptr, ptr %45, align 8, !tbaa !10
  %357 = load ptr, ptr %47, align 8, !tbaa !10
  %358 = load ptr, ptr %48, align 8, !tbaa !10
  %359 = load ptr, ptr %71, align 8, !tbaa !10
  %360 = load ptr, ptr %51, align 8, !tbaa !10
  %361 = load ptr, ptr %72, align 8, !tbaa !10
  %362 = load ptr, ptr %73, align 8, !tbaa !10
  %363 = load ptr, ptr %74, align 8, !tbaa !10
  %364 = load ptr, ptr %58, align 8, !tbaa !10
  %365 = load ptr, ptr %60, align 8, !tbaa !10
  call void @dgedmd_(ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %39, ptr noundef %354, ptr noundef %63, ptr noundef %355, ptr noundef %64, ptr noundef %44, ptr noundef %356, ptr noundef %46, ptr noundef %357, ptr noundef %358, ptr noundef %359, ptr noundef %65, ptr noundef %360, ptr noundef %361, ptr noundef %66, ptr noundef %362, ptr noundef %67, ptr noundef %363, ptr noundef %68, ptr noundef %364, ptr noundef %59, ptr noundef %365, ptr noundef %61, ptr noundef %62, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1)
  %366 = load i32, ptr %62, align 4, !tbaa !5
  %367 = icmp slt i32 %366, 0
  br i1 %367, label %368, label %371

368:                                              ; preds = %311
  %369 = load i32, ptr %62, align 4, !tbaa !5
  %370 = sub nsw i32 %369, 1
  store i32 %370, ptr %62, align 4, !tbaa !5
  br label %371

371:                                              ; preds = %368, %311
  %372 = load i32, ptr %38, align 4, !tbaa !5
  %373 = load i32, ptr %39, align 4, !tbaa !5
  %374 = load ptr, ptr %69, align 8, !tbaa !10
  %375 = load i32, ptr %63, align 4, !tbaa !5
  %376 = load ptr, ptr %40, align 8, !tbaa !10
  %377 = load i32, ptr %41, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %372, i32 noundef %373, ptr noundef %374, i32 noundef %375, ptr noundef %376, i32 noundef %377)
  %378 = load i32, ptr %38, align 4, !tbaa !5
  %379 = load i32, ptr %39, align 4, !tbaa !5
  %380 = load ptr, ptr %70, align 8, !tbaa !10
  %381 = load i32, ptr %64, align 4, !tbaa !5
  %382 = load ptr, ptr %42, align 8, !tbaa !10
  %383 = load i32, ptr %43, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %378, i32 noundef %379, ptr noundef %380, i32 noundef %381, ptr noundef %382, i32 noundef %383)
  %384 = load i32, ptr %38, align 4, !tbaa !5
  %385 = load i32, ptr %39, align 4, !tbaa !5
  %386 = load ptr, ptr %71, align 8, !tbaa !10
  %387 = load i32, ptr %65, align 4, !tbaa !5
  %388 = load ptr, ptr %49, align 8, !tbaa !10
  %389 = load i32, ptr %50, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %384, i32 noundef %385, ptr noundef %386, i32 noundef %387, ptr noundef %388, i32 noundef %389)
  %390 = load i32, ptr %38, align 4, !tbaa !5
  %391 = load i32, ptr %39, align 4, !tbaa !5
  %392 = load ptr, ptr %72, align 8, !tbaa !10
  %393 = load i32, ptr %66, align 4, !tbaa !5
  %394 = load ptr, ptr %52, align 8, !tbaa !10
  %395 = load i32, ptr %53, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %390, i32 noundef %391, ptr noundef %392, i32 noundef %393, ptr noundef %394, i32 noundef %395)
  %396 = load i32, ptr %38, align 4, !tbaa !5
  %397 = load i32, ptr %39, align 4, !tbaa !5
  %398 = load ptr, ptr %73, align 8, !tbaa !10
  %399 = load i32, ptr %67, align 4, !tbaa !5
  %400 = load ptr, ptr %54, align 8, !tbaa !10
  %401 = load i32, ptr %55, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %396, i32 noundef %397, ptr noundef %398, i32 noundef %399, ptr noundef %400, i32 noundef %401)
  %402 = load i32, ptr %38, align 4, !tbaa !5
  %403 = load i32, ptr %39, align 4, !tbaa !5
  %404 = load ptr, ptr %74, align 8, !tbaa !10
  %405 = load i32, ptr %68, align 4, !tbaa !5
  %406 = load ptr, ptr %56, align 8, !tbaa !10
  %407 = load i32, ptr %57, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %402, i32 noundef %403, ptr noundef %404, i32 noundef %405, ptr noundef %406, i32 noundef %407)
  %408 = load ptr, ptr %74, align 8, !tbaa !10
  call void @free(ptr noundef %408) #5
  br label %409

409:                                              ; preds = %371, %310
  %410 = load ptr, ptr %73, align 8, !tbaa !10
  call void @free(ptr noundef %410) #5
  br label %411

411:                                              ; preds = %409, %293
  %412 = load ptr, ptr %72, align 8, !tbaa !10
  call void @free(ptr noundef %412) #5
  br label %413

413:                                              ; preds = %411, %276
  %414 = load ptr, ptr %71, align 8, !tbaa !10
  call void @free(ptr noundef %414) #5
  br label %415

415:                                              ; preds = %413, %259
  %416 = load ptr, ptr %70, align 8, !tbaa !10
  call void @free(ptr noundef %416) #5
  br label %417

417:                                              ; preds = %415, %242
  %418 = load ptr, ptr %69, align 8, !tbaa !10
  call void @free(ptr noundef %418) #5
  br label %419

419:                                              ; preds = %417, %225
  %420 = load i32, ptr %62, align 4, !tbaa !5
  %421 = icmp eq i32 %420, -1011
  br i1 %421, label %422, label %424

422:                                              ; preds = %419
  %423 = load i32, ptr %62, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %423)
  br label %424

424:                                              ; preds = %422, %419
  store i32 0, ptr %75, align 4
  br label %425

425:                                              ; preds = %424, %207, %181, %174, %167, %160, %153, %146
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  %426 = load i32, ptr %75, align 4
  switch i32 %426, label %433 [
    i32 0, label %427
  ]

427:                                              ; preds = %425
  br label %430

428:                                              ; preds = %97
  store i32 -1, ptr %62, align 4, !tbaa !5
  %429 = load i32, ptr %62, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %429)
  br label %430

430:                                              ; preds = %428, %427
  br label %431

431:                                              ; preds = %430, %96
  %432 = load i32, ptr %62, align 4, !tbaa !5
  store i32 %432, ptr %31, align 4
  store i32 1, ptr %75, align 4
  br label %433

433:                                              ; preds = %431, %425
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  %434 = load i32, ptr %31, align 4
  ret i32 %434
}

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

declare void @dgedmd_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef) #2

declare void @LAPACKE_xerbla(ptr noundef, i32 noundef) #2

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

declare void @LAPACKE_dge_trans(i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) #2

; Function Attrs: nounwind
declare void @free(ptr noundef) #4

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }
attributes #6 = { nounwind allocsize(0) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"any pointer", !7, i64 0}


; 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 [20 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @LAPACKE_dgedmd_work(i32 noundef %0, i8 noundef signext %1, i8 noundef signext %2, i8 noundef signext %3, i8 noundef signext %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, ptr noundef %8, i32 noundef %9, ptr noundef %10, i32 noundef %11, i32 noundef %12, ptr noundef %13, i32 noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, i32 noundef %18, ptr noundef %19, ptr noundef %20, i32 noundef %21, ptr noundef %22, i32 noundef %23, ptr noundef %24, i32 noundef %25, ptr noundef %26, i32 noundef %27, ptr noundef %28, i32 noundef %29) local_unnamed_addr #0 {
  %31 = alloca i8, align 1
  %32 = alloca i8, align 1
  %33 = alloca i8, align 1
  %34 = alloca i8, align 1
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  store i8 %1, ptr %31, align 1, !tbaa !5
  store i8 %2, ptr %32, align 1, !tbaa !5
  store i8 %3, ptr %33, align 1, !tbaa !5
  store i8 %4, ptr %34, align 1, !tbaa !5
  store i32 %5, ptr %35, align 4, !tbaa !8
  store i32 %6, ptr %36, align 4, !tbaa !8
  store i32 %7, ptr %37, align 4, !tbaa !8
  store i32 %9, ptr %38, align 4, !tbaa !8
  store i32 %11, ptr %39, align 4, !tbaa !8
  store i32 %12, ptr %40, align 4, !tbaa !8
  store i32 %14, ptr %41, align 4, !tbaa !8
  store i32 %18, ptr %42, align 4, !tbaa !8
  store i32 %21, ptr %43, align 4, !tbaa !8
  store i32 %23, ptr %44, align 4, !tbaa !8
  store i32 %25, ptr %45, align 4, !tbaa !8
  store i32 %27, ptr %46, align 4, !tbaa !8
  store i32 %29, ptr %47, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #6
  store i32 0, ptr %48, align 4, !tbaa !8
  switch i32 %0, label %143 [
    i32 102, label %55
    i32 101, label %57
  ]

55:                                               ; preds = %30
  call void @dgedmd_(ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %8, ptr noundef nonnull %38, ptr noundef %10, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %13, ptr noundef nonnull %41, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef nonnull %42, ptr noundef %19, ptr noundef %20, ptr noundef nonnull %43, ptr noundef %22, ptr noundef nonnull %44, ptr noundef %24, ptr noundef nonnull %45, ptr noundef %26, ptr noundef nonnull %46, ptr noundef %28, ptr noundef nonnull %47, ptr noundef nonnull %48, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1) #6
  %56 = load i32, ptr %48, align 4, !tbaa !8
  %.lobit102 = ashr i32 %56, 31
  %spec.select = add nsw i32 %56, %.lobit102
  br label %144

57:                                               ; preds = %30
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #6
  %58 = tail call i32 @llvm.smax.i32(i32 %6, i32 1)
  store i32 %58, ptr %49, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #6
  store i32 %58, ptr %50, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #6
  store i32 %58, ptr %51, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #6
  store i32 %58, ptr %52, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #6
  store i32 %58, ptr %53, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %54) #6
  store i32 %58, ptr %54, align 4, !tbaa !8
  %59 = icmp slt i32 %9, %7
  br i1 %59, label %60, label %61

60:                                               ; preds = %57
  tail call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -9) #6
  br label %.thread95

61:                                               ; preds = %57
  %62 = icmp slt i32 %11, %7
  br i1 %62, label %63, label %64

63:                                               ; preds = %61
  tail call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -11) #6
  br label %.thread95

64:                                               ; preds = %61
  %65 = icmp slt i32 %18, %7
  br i1 %65, label %66, label %67

66:                                               ; preds = %64
  tail call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -16) #6
  br label %.thread95

67:                                               ; preds = %64
  %68 = icmp slt i32 %21, %7
  br i1 %68, label %69, label %70

69:                                               ; preds = %67
  tail call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -19) #6
  br label %.thread95

70:                                               ; preds = %67
  %71 = icmp slt i32 %23, %7
  br i1 %71, label %72, label %73

72:                                               ; preds = %70
  tail call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -21) #6
  br label %.thread95

73:                                               ; preds = %70
  %74 = icmp slt i32 %25, %7
  br i1 %74, label %75, label %76

75:                                               ; preds = %73
  tail call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -23) #6
  br label %.thread95

76:                                               ; preds = %73
  %77 = icmp eq i32 %27, -1
  br i1 %77, label %78, label %81

78:                                               ; preds = %76
  call void @dgedmd_(ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %8, ptr noundef nonnull %38, ptr noundef %10, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %13, ptr noundef nonnull %41, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef nonnull %42, ptr noundef %19, ptr noundef %20, ptr noundef nonnull %43, ptr noundef %22, ptr noundef nonnull %44, ptr noundef %24, ptr noundef nonnull %45, ptr noundef %26, ptr noundef nonnull %46, ptr noundef %28, ptr noundef nonnull %47, ptr noundef nonnull %48, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1) #6
  %79 = load i32, ptr %48, align 4
  %.lobit = ashr i32 %79, 31
  %80 = add nsw i32 %.lobit, %79
  br label %.thread95

81:                                               ; preds = %76
  %82 = zext nneg i32 %58 to i64
  %83 = shl nuw nsw i64 %82, 3
  %84 = tail call i32 @llvm.smax.i32(i32 %7, i32 1)
  %85 = zext nneg i32 %84 to i64
  %86 = mul i64 %83, %85
  %87 = tail call noalias ptr @malloc(i64 noundef %86) #7
  %88 = icmp eq ptr %87, null
  br i1 %88, label %.thread, label %89

.thread:                                          ; preds = %81
  store i32 -1011, ptr %48, align 4, !tbaa !8
  br label %141

89:                                               ; preds = %81
  %90 = tail call noalias ptr @malloc(i64 noundef %86) #7
  %91 = icmp eq ptr %90, null
  br i1 %91, label %.thread93, label %92

.thread93:                                        ; preds = %89
  store i32 -1011, ptr %48, align 4, !tbaa !8
  tail call void @free(ptr noundef nonnull %87) #6
  br label %141

92:                                               ; preds = %89
  %93 = tail call noalias ptr @malloc(i64 noundef %86) #7
  %94 = icmp eq ptr %93, null
  br i1 %94, label %.critedge, label %95

.critedge:                                        ; preds = %92
  store i32 -1011, ptr %48, align 4, !tbaa !8
  tail call void @free(ptr noundef nonnull %90) #6
  tail call void @free(ptr noundef nonnull %87) #6
  br label %141

95:                                               ; preds = %92
  %96 = tail call noalias ptr @malloc(i64 noundef %86) #7
  %97 = icmp eq ptr %96, null
  br i1 %97, label %98, label %99

98:                                               ; preds = %95
  store i32 -1011, ptr %48, align 4, !tbaa !8
  br label %139

99:                                               ; preds = %95
  %100 = tail call noalias ptr @malloc(i64 noundef %86) #7
  %101 = icmp eq ptr %100, null
  br i1 %101, label %102, label %103

102:                                              ; preds = %99
  store i32 -1011, ptr %48, align 4, !tbaa !8
  br label %138

103:                                              ; preds = %99
  %104 = tail call noalias ptr @malloc(i64 noundef %86) #7
  %105 = icmp eq ptr %104, null
  br i1 %105, label %106, label %107

106:                                              ; preds = %103
  store i32 -1011, ptr %48, align 4, !tbaa !8
  br label %137

107:                                              ; preds = %103
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %6, i32 noundef %7, ptr noundef %8, i32 noundef %9, ptr noundef nonnull %87, i32 noundef %58) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %6, i32 noundef %7, ptr noundef %10, i32 noundef %11, ptr noundef nonnull %90, i32 noundef %58) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %6, i32 noundef %7, ptr noundef %17, i32 noundef %18, ptr noundef nonnull %93, i32 noundef %58) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %6, i32 noundef %7, ptr noundef %20, i32 noundef %21, ptr noundef nonnull %96, i32 noundef %58) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %6, i32 noundef %7, ptr noundef %22, i32 noundef %23, ptr noundef nonnull %100, i32 noundef %58) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %6, i32 noundef %7, ptr noundef %24, i32 noundef %25, ptr noundef nonnull %104, i32 noundef %58) #6
  call void @dgedmd_(ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %87, ptr noundef nonnull %49, ptr noundef nonnull %90, ptr noundef nonnull %50, ptr noundef nonnull %40, ptr noundef %13, ptr noundef nonnull %41, ptr noundef %15, ptr noundef %16, ptr noundef nonnull %93, ptr noundef nonnull %51, ptr noundef %19, ptr noundef nonnull %96, ptr noundef nonnull %52, ptr noundef nonnull %100, ptr noundef nonnull %53, ptr noundef nonnull %104, ptr noundef nonnull %54, ptr noundef %26, ptr noundef nonnull %46, ptr noundef %28, ptr noundef nonnull %47, ptr noundef nonnull %48, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1) #6
  %108 = load i32, ptr %48, align 4, !tbaa !8
  %109 = icmp slt i32 %108, 0
  br i1 %109, label %110, label %112

110:                                              ; preds = %107
  %111 = add nsw i32 %108, -1
  store i32 %111, ptr %48, align 4, !tbaa !8
  br label %112

112:                                              ; preds = %110, %107
  %113 = load i32, ptr %36, align 4, !tbaa !8
  %114 = load i32, ptr %37, align 4, !tbaa !8
  %115 = load i32, ptr %49, align 4, !tbaa !8
  %116 = load i32, ptr %38, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %113, i32 noundef %114, ptr noundef nonnull %87, i32 noundef %115, ptr noundef %8, i32 noundef %116) #6
  %117 = load i32, ptr %36, align 4, !tbaa !8
  %118 = load i32, ptr %37, align 4, !tbaa !8
  %119 = load i32, ptr %50, align 4, !tbaa !8
  %120 = load i32, ptr %39, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %117, i32 noundef %118, ptr noundef nonnull %90, i32 noundef %119, ptr noundef %10, i32 noundef %120) #6
  %121 = load i32, ptr %36, align 4, !tbaa !8
  %122 = load i32, ptr %37, align 4, !tbaa !8
  %123 = load i32, ptr %51, align 4, !tbaa !8
  %124 = load i32, ptr %42, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %121, i32 noundef %122, ptr noundef nonnull %93, i32 noundef %123, ptr noundef %17, i32 noundef %124) #6
  %125 = load i32, ptr %36, align 4, !tbaa !8
  %126 = load i32, ptr %37, align 4, !tbaa !8
  %127 = load i32, ptr %52, align 4, !tbaa !8
  %128 = load i32, ptr %43, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %125, i32 noundef %126, ptr noundef nonnull %96, i32 noundef %127, ptr noundef %20, i32 noundef %128) #6
  %129 = load i32, ptr %36, align 4, !tbaa !8
  %130 = load i32, ptr %37, align 4, !tbaa !8
  %131 = load i32, ptr %53, align 4, !tbaa !8
  %132 = load i32, ptr %44, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %129, i32 noundef %130, ptr noundef nonnull %100, i32 noundef %131, ptr noundef %22, i32 noundef %132) #6
  %133 = load i32, ptr %36, align 4, !tbaa !8
  %134 = load i32, ptr %37, align 4, !tbaa !8
  %135 = load i32, ptr %54, align 4, !tbaa !8
  %136 = load i32, ptr %45, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %133, i32 noundef %134, ptr noundef nonnull %104, i32 noundef %135, ptr noundef %24, i32 noundef %136) #6
  call void @free(ptr noundef nonnull %104) #6
  %.pr.pr.pr.pre.pre.pre = load i32, ptr %48, align 4, !tbaa !8
  br label %137

137:                                              ; preds = %112, %106
  %.pr.pr.pr.pre.pre = phi i32 [ %.pr.pr.pr.pre.pre.pre, %112 ], [ -1011, %106 ]
  call void @free(ptr noundef nonnull %100) #6
  br label %138

138:                                              ; preds = %137, %102
  %.pr.pr.pr.pre = phi i32 [ %.pr.pr.pr.pre.pre, %137 ], [ -1011, %102 ]
  call void @free(ptr noundef nonnull %96) #6
  br label %139

139:                                              ; preds = %138, %98
  %.pr.pr.pr = phi i32 [ %.pr.pr.pr.pre, %138 ], [ -1011, %98 ]
  call void @free(ptr noundef nonnull %93) #6
  %140 = icmp eq i32 %.pr.pr.pr, -1011
  call void @free(ptr noundef nonnull %90) #6
  call void @free(ptr noundef nonnull %87) #6
  br i1 %140, label %141, label %142

141:                                              ; preds = %.critedge, %.thread93, %.thread, %139
  call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -1011) #6
  %.pre.pre = load i32, ptr %48, align 4, !tbaa !8
  br label %142

.thread95:                                        ; preds = %60, %63, %66, %69, %72, %75, %78
  %.081.ph = phi i32 [ %80, %78 ], [ -23, %75 ], [ -21, %72 ], [ -19, %69 ], [ -16, %66 ], [ -11, %63 ], [ -9, %60 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #6
  br label %144

142:                                              ; preds = %139, %141
  %.pre = phi i32 [ %.pr.pr.pr, %139 ], [ %.pre.pre, %141 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #6
  br label %144

143:                                              ; preds = %30
  tail call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -1) #6
  br label %144

144:                                              ; preds = %55, %143, %142, %.thread95
  %.1 = phi i32 [ %.081.ph, %.thread95 ], [ %.pre, %142 ], [ -1, %143 ], [ %spec.select, %55 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #6
  ret i32 %.1
}

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

declare void @dgedmd_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #2

declare void @LAPACKE_xerbla(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #3

declare void @LAPACKE_dge_trans(i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #4

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind }
attributes #7 = { nounwind allocsize(0) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !6, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass