; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/LAPACKE/src (lapacke_dgedmdq_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 [21 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @LAPACKE_dgedmdq_work(i32 noundef %0, i8 noundef signext %1, i8 noundef signext %2, i8 noundef signext %3, i8 noundef signext %4, i8 noundef signext %5, i8 noundef signext %6, i32 noundef %7, i32 noundef %8, i32 noundef %9, ptr noundef %10, i32 noundef %11, ptr noundef %12, i32 noundef %13, ptr noundef %14, i32 noundef %15, i32 noundef %16, ptr noundef %17, i32 noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, i32 noundef %22, ptr noundef %23, ptr noundef %24, i32 noundef %25, ptr noundef %26, i32 noundef %27, ptr noundef %28, i32 noundef %29, ptr noundef %30, i32 noundef %31, ptr noundef %32, i32 noundef %33) #0 {
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i8, align 1
  %38 = alloca i8, align 1
  %39 = alloca i8, align 1
  %40 = alloca i8, align 1
  %41 = alloca i8, align 1
  %42 = alloca i8, align 1
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca i32, align 4
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca i32, align 4
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %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 ptr, align 8
  %79 = alloca ptr, align 8
  %80 = alloca ptr, align 8
  %81 = alloca ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca ptr, align 8
  %85 = alloca i32, align 4
  store i32 %0, ptr %36, align 4, !tbaa !5
  store i8 %1, ptr %37, align 1, !tbaa !9
  store i8 %2, ptr %38, align 1, !tbaa !9
  store i8 %3, ptr %39, align 1, !tbaa !9
  store i8 %4, ptr %40, align 1, !tbaa !9
  store i8 %5, ptr %41, align 1, !tbaa !9
  store i8 %6, ptr %42, align 1, !tbaa !9
  store i32 %7, ptr %43, align 4, !tbaa !5
  store i32 %8, ptr %44, align 4, !tbaa !5
  store i32 %9, ptr %45, align 4, !tbaa !5
  store ptr %10, ptr %46, align 8, !tbaa !10
  store i32 %11, ptr %47, align 4, !tbaa !5
  store ptr %12, ptr %48, align 8, !tbaa !10
  store i32 %13, ptr %49, align 4, !tbaa !5
  store ptr %14, ptr %50, align 8, !tbaa !10
  store i32 %15, ptr %51, align 4, !tbaa !5
  store i32 %16, ptr %52, align 4, !tbaa !5
  store ptr %17, ptr %53, align 8, !tbaa !10
  store i32 %18, ptr %54, align 4, !tbaa !5
  store ptr %19, ptr %55, align 8, !tbaa !10
  store ptr %20, ptr %56, align 8, !tbaa !10
  store ptr %21, ptr %57, align 8, !tbaa !10
  store i32 %22, ptr %58, align 4, !tbaa !5
  store ptr %23, ptr %59, align 8, !tbaa !10
  store ptr %24, ptr %60, align 8, !tbaa !10
  store i32 %25, ptr %61, align 4, !tbaa !5
  store ptr %26, ptr %62, align 8, !tbaa !10
  store i32 %27, ptr %63, align 4, !tbaa !5
  store ptr %28, ptr %64, align 8, !tbaa !10
  store i32 %29, ptr %65, align 4, !tbaa !5
  store ptr %30, ptr %66, align 8, !tbaa !10
  store i32 %31, ptr %67, align 4, !tbaa !5
  store ptr %32, ptr %68, align 8, !tbaa !10
  store i32 %33, ptr %69, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #5
  store i32 0, ptr %70, align 4, !tbaa !5
  %86 = load i32, ptr %36, align 4, !tbaa !5
  %87 = icmp eq i32 %86, 102
  br i1 %87, label %88, label %108

88:                                               ; preds = %34
  %89 = load ptr, ptr %46, align 8, !tbaa !10
  %90 = load ptr, ptr %48, align 8, !tbaa !10
  %91 = load ptr, ptr %50, align 8, !tbaa !10
  %92 = load ptr, ptr %53, align 8, !tbaa !10
  %93 = load ptr, ptr %55, align 8, !tbaa !10
  %94 = load ptr, ptr %56, align 8, !tbaa !10
  %95 = load ptr, ptr %57, align 8, !tbaa !10
  %96 = load ptr, ptr %59, align 8, !tbaa !10
  %97 = load ptr, ptr %60, align 8, !tbaa !10
  %98 = load ptr, ptr %62, align 8, !tbaa !10
  %99 = load ptr, ptr %64, align 8, !tbaa !10
  %100 = load ptr, ptr %66, align 8, !tbaa !10
  %101 = load ptr, ptr %68, align 8, !tbaa !10
  call void @dgedmdq_(ptr noundef %37, ptr noundef %38, ptr noundef %39, ptr noundef %40, ptr noundef %41, ptr noundef %42, ptr noundef %43, ptr noundef %44, ptr noundef %45, ptr noundef %89, ptr noundef %47, ptr noundef %90, ptr noundef %49, ptr noundef %91, ptr noundef %51, ptr noundef %52, ptr noundef %92, ptr noundef %54, ptr noundef %93, ptr noundef %94, ptr noundef %95, ptr noundef %58, ptr noundef %96, ptr noundef %97, ptr noundef %61, ptr noundef %98, ptr noundef %63, ptr noundef %99, ptr noundef %65, ptr noundef %100, ptr noundef %67, ptr noundef %101, ptr noundef %69, ptr noundef %70, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1)
  %102 = load i32, ptr %70, align 4, !tbaa !5
  %103 = icmp slt i32 %102, 0
  br i1 %103, label %104, label %107

104:                                              ; preds = %88
  %105 = load i32, ptr %70, align 4, !tbaa !5
  %106 = sub nsw i32 %105, 1
  store i32 %106, ptr %70, align 4, !tbaa !5
  br label %107

107:                                              ; preds = %104, %88
  br label %493

108:                                              ; preds = %34
  %109 = load i32, ptr %36, align 4, !tbaa !5
  %110 = icmp eq i32 %109, 101
  br i1 %110, label %111, label %490

111:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #5
  %112 = load i32, ptr %44, align 4, !tbaa !5
  %113 = icmp sgt i32 1, %112
  br i1 %113, label %114, label %115

114:                                              ; preds = %111
  br label %117

115:                                              ; preds = %111
  %116 = load i32, ptr %44, align 4, !tbaa !5
  br label %117

117:                                              ; preds = %115, %114
  %118 = phi i32 [ 1, %114 ], [ %116, %115 ]
  store i32 %118, ptr %71, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  %119 = load i32, ptr %44, align 4, !tbaa !5
  %120 = icmp sgt i32 1, %119
  br i1 %120, label %121, label %122

121:                                              ; preds = %117
  br label %124

122:                                              ; preds = %117
  %123 = load i32, ptr %44, align 4, !tbaa !5
  br label %124

124:                                              ; preds = %122, %121
  %125 = phi i32 [ 1, %121 ], [ %123, %122 ]
  store i32 %125, ptr %72, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #5
  %126 = load i32, ptr %44, align 4, !tbaa !5
  %127 = icmp sgt i32 1, %126
  br i1 %127, label %128, label %129

128:                                              ; preds = %124
  br label %131

129:                                              ; preds = %124
  %130 = load i32, ptr %44, align 4, !tbaa !5
  br label %131

131:                                              ; preds = %129, %128
  %132 = phi i32 [ 1, %128 ], [ %130, %129 ]
  store i32 %132, ptr %73, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #5
  %133 = load i32, ptr %44, align 4, !tbaa !5
  %134 = icmp sgt i32 1, %133
  br i1 %134, label %135, label %136

135:                                              ; preds = %131
  br label %138

136:                                              ; preds = %131
  %137 = load i32, ptr %44, align 4, !tbaa !5
  br label %138

138:                                              ; preds = %136, %135
  %139 = phi i32 [ 1, %135 ], [ %137, %136 ]
  store i32 %139, ptr %74, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #5
  %140 = load i32, ptr %44, align 4, !tbaa !5
  %141 = icmp sgt i32 1, %140
  br i1 %141, label %142, label %143

142:                                              ; preds = %138
  br label %145

143:                                              ; preds = %138
  %144 = load i32, ptr %44, align 4, !tbaa !5
  br label %145

145:                                              ; preds = %143, %142
  %146 = phi i32 [ 1, %142 ], [ %144, %143 ]
  store i32 %146, ptr %75, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #5
  %147 = load i32, ptr %44, align 4, !tbaa !5
  %148 = icmp sgt i32 1, %147
  br i1 %148, label %149, label %150

149:                                              ; preds = %145
  br label %152

150:                                              ; preds = %145
  %151 = load i32, ptr %44, align 4, !tbaa !5
  br label %152

152:                                              ; preds = %150, %149
  %153 = phi i32 [ 1, %149 ], [ %151, %150 ]
  store i32 %153, ptr %76, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #5
  %154 = load i32, ptr %44, align 4, !tbaa !5
  %155 = icmp sgt i32 1, %154
  br i1 %155, label %156, label %157

156:                                              ; preds = %152
  br label %159

157:                                              ; preds = %152
  %158 = load i32, ptr %44, align 4, !tbaa !5
  br label %159

159:                                              ; preds = %157, %156
  %160 = phi i32 [ 1, %156 ], [ %158, %157 ]
  store i32 %160, ptr %77, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #5
  store ptr null, ptr %78, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  store ptr null, ptr %79, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  store ptr null, ptr %80, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  store ptr null, ptr %81, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  store ptr null, ptr %82, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  store ptr null, ptr %83, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  store ptr null, ptr %84, align 8, !tbaa !10
  %161 = load i32, ptr %47, align 4, !tbaa !5
  %162 = load i32, ptr %45, align 4, !tbaa !5
  %163 = icmp slt i32 %161, %162
  br i1 %163, label %164, label %167

164:                                              ; preds = %159
  store i32 -12, ptr %70, align 4, !tbaa !5
  %165 = load i32, ptr %70, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %165)
  %166 = load i32, ptr %70, align 4, !tbaa !5
  store i32 %166, ptr %35, align 4
  store i32 1, ptr %85, align 4
  br label %487

167:                                              ; preds = %159
  %168 = load i32, ptr %49, align 4, !tbaa !5
  %169 = load i32, ptr %45, align 4, !tbaa !5
  %170 = icmp slt i32 %168, %169
  br i1 %170, label %171, label %174

171:                                              ; preds = %167
  store i32 -14, ptr %70, align 4, !tbaa !5
  %172 = load i32, ptr %70, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %172)
  %173 = load i32, ptr %70, align 4, !tbaa !5
  store i32 %173, ptr %35, align 4
  store i32 1, ptr %85, align 4
  br label %487

174:                                              ; preds = %167
  %175 = load i32, ptr %51, align 4, !tbaa !5
  %176 = load i32, ptr %45, align 4, !tbaa !5
  %177 = icmp slt i32 %175, %176
  br i1 %177, label %178, label %181

178:                                              ; preds = %174
  store i32 -16, ptr %70, align 4, !tbaa !5
  %179 = load i32, ptr %70, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %179)
  %180 = load i32, ptr %70, align 4, !tbaa !5
  store i32 %180, ptr %35, align 4
  store i32 1, ptr %85, align 4
  br label %487

181:                                              ; preds = %174
  %182 = load i32, ptr %58, align 4, !tbaa !5
  %183 = load i32, ptr %45, align 4, !tbaa !5
  %184 = icmp slt i32 %182, %183
  br i1 %184, label %185, label %188

185:                                              ; preds = %181
  store i32 -23, ptr %70, align 4, !tbaa !5
  %186 = load i32, ptr %70, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %186)
  %187 = load i32, ptr %70, align 4, !tbaa !5
  store i32 %187, ptr %35, align 4
  store i32 1, ptr %85, align 4
  br label %487

188:                                              ; preds = %181
  %189 = load i32, ptr %61, align 4, !tbaa !5
  %190 = load i32, ptr %45, align 4, !tbaa !5
  %191 = icmp slt i32 %189, %190
  br i1 %191, label %192, label %195

192:                                              ; preds = %188
  store i32 -26, ptr %70, align 4, !tbaa !5
  %193 = load i32, ptr %70, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %193)
  %194 = load i32, ptr %70, align 4, !tbaa !5
  store i32 %194, ptr %35, align 4
  store i32 1, ptr %85, align 4
  br label %487

195:                                              ; preds = %188
  %196 = load i32, ptr %63, align 4, !tbaa !5
  %197 = load i32, ptr %45, align 4, !tbaa !5
  %198 = icmp slt i32 %196, %197
  br i1 %198, label %199, label %202

199:                                              ; preds = %195
  store i32 -28, ptr %70, align 4, !tbaa !5
  %200 = load i32, ptr %70, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %200)
  %201 = load i32, ptr %70, align 4, !tbaa !5
  store i32 %201, ptr %35, align 4
  store i32 1, ptr %85, align 4
  br label %487

202:                                              ; preds = %195
  %203 = load i32, ptr %65, align 4, !tbaa !5
  %204 = load i32, ptr %45, align 4, !tbaa !5
  %205 = icmp slt i32 %203, %204
  br i1 %205, label %206, label %209

206:                                              ; preds = %202
  store i32 -30, ptr %70, align 4, !tbaa !5
  %207 = load i32, ptr %70, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %207)
  %208 = load i32, ptr %70, align 4, !tbaa !5
  store i32 %208, ptr %35, align 4
  store i32 1, ptr %85, align 4
  br label %487

209:                                              ; preds = %202
  %210 = load i32, ptr %67, align 4, !tbaa !5
  %211 = icmp eq i32 %210, -1
  br i1 %211, label %215, label %212

212:                                              ; preds = %209
  %213 = load i32, ptr %69, align 4, !tbaa !5
  %214 = icmp eq i32 %213, -1
  br i1 %214, label %215, label %238

215:                                              ; preds = %212, %209
  %216 = load ptr, ptr %46, align 8, !tbaa !10
  %217 = load ptr, ptr %48, align 8, !tbaa !10
  %218 = load ptr, ptr %50, align 8, !tbaa !10
  %219 = load ptr, ptr %53, align 8, !tbaa !10
  %220 = load ptr, ptr %55, align 8, !tbaa !10
  %221 = load ptr, ptr %56, align 8, !tbaa !10
  %222 = load ptr, ptr %57, align 8, !tbaa !10
  %223 = load ptr, ptr %59, align 8, !tbaa !10
  %224 = load ptr, ptr %60, align 8, !tbaa !10
  %225 = load ptr, ptr %62, align 8, !tbaa !10
  %226 = load ptr, ptr %64, align 8, !tbaa !10
  %227 = load ptr, ptr %66, align 8, !tbaa !10
  %228 = load ptr, ptr %68, align 8, !tbaa !10
  call void @dgedmdq_(ptr noundef %37, ptr noundef %38, ptr noundef %39, ptr noundef %40, ptr noundef %41, ptr noundef %42, ptr noundef %43, ptr noundef %44, ptr noundef %45, ptr noundef %216, ptr noundef %47, ptr noundef %217, ptr noundef %49, ptr noundef %218, ptr noundef %51, ptr noundef %52, ptr noundef %219, ptr noundef %54, ptr noundef %220, ptr noundef %221, ptr noundef %222, ptr noundef %58, ptr noundef %223, ptr noundef %224, ptr noundef %61, ptr noundef %225, ptr noundef %63, ptr noundef %226, ptr noundef %65, ptr noundef %227, ptr noundef %67, ptr noundef %228, ptr noundef %69, ptr noundef %70, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1)
  %229 = load i32, ptr %70, align 4, !tbaa !5
  %230 = icmp slt i32 %229, 0
  br i1 %230, label %231, label %234

231:                                              ; preds = %215
  %232 = load i32, ptr %70, align 4, !tbaa !5
  %233 = sub nsw i32 %232, 1
  br label %236

234:                                              ; preds = %215
  %235 = load i32, ptr %70, align 4, !tbaa !5
  br label %236

236:                                              ; preds = %234, %231
  %237 = phi i32 [ %233, %231 ], [ %235, %234 ]
  store i32 %237, ptr %35, align 4
  store i32 1, ptr %85, align 4
  br label %487

238:                                              ; preds = %212
  %239 = load i32, ptr %71, align 4, !tbaa !5
  %240 = sext i32 %239 to i64
  %241 = mul i64 8, %240
  %242 = load i32, ptr %45, align 4, !tbaa !5
  %243 = icmp sgt i32 1, %242
  br i1 %243, label %244, label %245

244:                                              ; preds = %238
  br label %247

245:                                              ; preds = %238
  %246 = load i32, ptr %45, align 4, !tbaa !5
  br label %247

247:                                              ; preds = %245, %244
  %248 = phi i32 [ 1, %244 ], [ %246, %245 ]
  %249 = sext i32 %248 to i64
  %250 = mul i64 %241, %249
  %251 = call noalias ptr @malloc(i64 noundef %250) #6
  store ptr %251, ptr %78, align 8, !tbaa !10
  %252 = load ptr, ptr %78, align 8, !tbaa !10
  %253 = icmp eq ptr %252, null
  br i1 %253, label %254, label %255

254:                                              ; preds = %247
  store i32 -1011, ptr %70, align 4, !tbaa !5
  br label %481

255:                                              ; preds = %247
  %256 = load i32, ptr %72, align 4, !tbaa !5
  %257 = sext i32 %256 to i64
  %258 = mul i64 8, %257
  %259 = load i32, ptr %45, align 4, !tbaa !5
  %260 = icmp sgt i32 1, %259
  br i1 %260, label %261, label %262

261:                                              ; preds = %255
  br label %264

262:                                              ; preds = %255
  %263 = load i32, ptr %45, align 4, !tbaa !5
  br label %264

264:                                              ; preds = %262, %261
  %265 = phi i32 [ 1, %261 ], [ %263, %262 ]
  %266 = sext i32 %265 to i64
  %267 = mul i64 %258, %266
  %268 = call noalias ptr @malloc(i64 noundef %267) #6
  store ptr %268, ptr %79, align 8, !tbaa !10
  %269 = load ptr, ptr %79, align 8, !tbaa !10
  %270 = icmp eq ptr %269, null
  br i1 %270, label %271, label %272

271:                                              ; preds = %264
  store i32 -1011, ptr %70, align 4, !tbaa !5
  br label %479

272:                                              ; preds = %264
  %273 = load i32, ptr %73, align 4, !tbaa !5
  %274 = sext i32 %273 to i64
  %275 = mul i64 8, %274
  %276 = load i32, ptr %45, align 4, !tbaa !5
  %277 = icmp sgt i32 1, %276
  br i1 %277, label %278, label %279

278:                                              ; preds = %272
  br label %281

279:                                              ; preds = %272
  %280 = load i32, ptr %45, align 4, !tbaa !5
  br label %281

281:                                              ; preds = %279, %278
  %282 = phi i32 [ 1, %278 ], [ %280, %279 ]
  %283 = sext i32 %282 to i64
  %284 = mul i64 %275, %283
  %285 = call noalias ptr @malloc(i64 noundef %284) #6
  store ptr %285, ptr %80, align 8, !tbaa !10
  %286 = load ptr, ptr %80, align 8, !tbaa !10
  %287 = icmp eq ptr %286, null
  br i1 %287, label %288, label %289

288:                                              ; preds = %281
  store i32 -1011, ptr %70, align 4, !tbaa !5
  br label %477

289:                                              ; preds = %281
  %290 = load i32, ptr %74, align 4, !tbaa !5
  %291 = sext i32 %290 to i64
  %292 = mul i64 8, %291
  %293 = load i32, ptr %45, align 4, !tbaa !5
  %294 = icmp sgt i32 1, %293
  br i1 %294, label %295, label %296

295:                                              ; preds = %289
  br label %298

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

298:                                              ; preds = %296, %295
  %299 = phi i32 [ 1, %295 ], [ %297, %296 ]
  %300 = sext i32 %299 to i64
  %301 = mul i64 %292, %300
  %302 = call noalias ptr @malloc(i64 noundef %301) #6
  store ptr %302, ptr %81, align 8, !tbaa !10
  %303 = load ptr, ptr %81, align 8, !tbaa !10
  %304 = icmp eq ptr %303, null
  br i1 %304, label %305, label %306

305:                                              ; preds = %298
  store i32 -1011, ptr %70, align 4, !tbaa !5
  br label %475

306:                                              ; preds = %298
  %307 = load i32, ptr %75, align 4, !tbaa !5
  %308 = sext i32 %307 to i64
  %309 = mul i64 8, %308
  %310 = load i32, ptr %45, align 4, !tbaa !5
  %311 = icmp sgt i32 1, %310
  br i1 %311, label %312, label %313

312:                                              ; preds = %306
  br label %315

313:                                              ; preds = %306
  %314 = load i32, ptr %45, align 4, !tbaa !5
  br label %315

315:                                              ; preds = %313, %312
  %316 = phi i32 [ 1, %312 ], [ %314, %313 ]
  %317 = sext i32 %316 to i64
  %318 = mul i64 %309, %317
  %319 = call noalias ptr @malloc(i64 noundef %318) #6
  store ptr %319, ptr %82, align 8, !tbaa !10
  %320 = load ptr, ptr %82, align 8, !tbaa !10
  %321 = icmp eq ptr %320, null
  br i1 %321, label %322, label %323

322:                                              ; preds = %315
  store i32 -1011, ptr %70, align 4, !tbaa !5
  br label %473

323:                                              ; preds = %315
  %324 = load i32, ptr %76, align 4, !tbaa !5
  %325 = sext i32 %324 to i64
  %326 = mul i64 8, %325
  %327 = load i32, ptr %45, align 4, !tbaa !5
  %328 = icmp sgt i32 1, %327
  br i1 %328, label %329, label %330

329:                                              ; preds = %323
  br label %332

330:                                              ; preds = %323
  %331 = load i32, ptr %45, align 4, !tbaa !5
  br label %332

332:                                              ; preds = %330, %329
  %333 = phi i32 [ 1, %329 ], [ %331, %330 ]
  %334 = sext i32 %333 to i64
  %335 = mul i64 %326, %334
  %336 = call noalias ptr @malloc(i64 noundef %335) #6
  store ptr %336, ptr %83, align 8, !tbaa !10
  %337 = load ptr, ptr %83, align 8, !tbaa !10
  %338 = icmp eq ptr %337, null
  br i1 %338, label %339, label %340

339:                                              ; preds = %332
  store i32 -1011, ptr %70, align 4, !tbaa !5
  br label %471

340:                                              ; preds = %332
  %341 = load i32, ptr %77, align 4, !tbaa !5
  %342 = sext i32 %341 to i64
  %343 = mul i64 8, %342
  %344 = load i32, ptr %45, align 4, !tbaa !5
  %345 = icmp sgt i32 1, %344
  br i1 %345, label %346, label %347

346:                                              ; preds = %340
  br label %349

347:                                              ; preds = %340
  %348 = load i32, ptr %45, align 4, !tbaa !5
  br label %349

349:                                              ; preds = %347, %346
  %350 = phi i32 [ 1, %346 ], [ %348, %347 ]
  %351 = sext i32 %350 to i64
  %352 = mul i64 %343, %351
  %353 = call noalias ptr @malloc(i64 noundef %352) #6
  store ptr %353, ptr %84, align 8, !tbaa !10
  %354 = load ptr, ptr %84, align 8, !tbaa !10
  %355 = icmp eq ptr %354, null
  br i1 %355, label %356, label %357

356:                                              ; preds = %349
  store i32 -1011, ptr %70, align 4, !tbaa !5
  br label %469

357:                                              ; preds = %349
  %358 = load i32, ptr %36, align 4, !tbaa !5
  %359 = load i32, ptr %44, align 4, !tbaa !5
  %360 = load i32, ptr %45, align 4, !tbaa !5
  %361 = load ptr, ptr %46, align 8, !tbaa !10
  %362 = load i32, ptr %47, align 4, !tbaa !5
  %363 = load ptr, ptr %78, align 8, !tbaa !10
  %364 = load i32, ptr %71, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %358, i32 noundef %359, i32 noundef %360, ptr noundef %361, i32 noundef %362, ptr noundef %363, i32 noundef %364)
  %365 = load i32, ptr %36, align 4, !tbaa !5
  %366 = load i32, ptr %44, align 4, !tbaa !5
  %367 = load i32, ptr %45, align 4, !tbaa !5
  %368 = load ptr, ptr %48, align 8, !tbaa !10
  %369 = load i32, ptr %49, align 4, !tbaa !5
  %370 = load ptr, ptr %79, align 8, !tbaa !10
  %371 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %365, i32 noundef %366, i32 noundef %367, ptr noundef %368, i32 noundef %369, ptr noundef %370, i32 noundef %371)
  %372 = load i32, ptr %36, align 4, !tbaa !5
  %373 = load i32, ptr %44, align 4, !tbaa !5
  %374 = load i32, ptr %45, align 4, !tbaa !5
  %375 = load ptr, ptr %50, align 8, !tbaa !10
  %376 = load i32, ptr %51, align 4, !tbaa !5
  %377 = load ptr, ptr %80, align 8, !tbaa !10
  %378 = load i32, ptr %73, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %372, i32 noundef %373, i32 noundef %374, ptr noundef %375, i32 noundef %376, ptr noundef %377, i32 noundef %378)
  %379 = load i32, ptr %36, align 4, !tbaa !5
  %380 = load i32, ptr %44, align 4, !tbaa !5
  %381 = load i32, ptr %45, align 4, !tbaa !5
  %382 = load ptr, ptr %57, align 8, !tbaa !10
  %383 = load i32, ptr %58, align 4, !tbaa !5
  %384 = load ptr, ptr %81, align 8, !tbaa !10
  %385 = load i32, ptr %74, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %379, i32 noundef %380, i32 noundef %381, ptr noundef %382, i32 noundef %383, ptr noundef %384, i32 noundef %385)
  %386 = load i32, ptr %36, align 4, !tbaa !5
  %387 = load i32, ptr %44, align 4, !tbaa !5
  %388 = load i32, ptr %45, align 4, !tbaa !5
  %389 = load ptr, ptr %60, align 8, !tbaa !10
  %390 = load i32, ptr %61, align 4, !tbaa !5
  %391 = load ptr, ptr %82, align 8, !tbaa !10
  %392 = load i32, ptr %75, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %386, i32 noundef %387, i32 noundef %388, ptr noundef %389, i32 noundef %390, ptr noundef %391, i32 noundef %392)
  %393 = load i32, ptr %36, align 4, !tbaa !5
  %394 = load i32, ptr %44, align 4, !tbaa !5
  %395 = load i32, ptr %45, align 4, !tbaa !5
  %396 = load ptr, ptr %62, align 8, !tbaa !10
  %397 = load i32, ptr %63, align 4, !tbaa !5
  %398 = load ptr, ptr %83, align 8, !tbaa !10
  %399 = load i32, ptr %76, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %393, i32 noundef %394, i32 noundef %395, ptr noundef %396, i32 noundef %397, ptr noundef %398, i32 noundef %399)
  %400 = load i32, ptr %36, align 4, !tbaa !5
  %401 = load i32, ptr %44, align 4, !tbaa !5
  %402 = load i32, ptr %45, align 4, !tbaa !5
  %403 = load ptr, ptr %64, align 8, !tbaa !10
  %404 = load i32, ptr %65, align 4, !tbaa !5
  %405 = load ptr, ptr %84, align 8, !tbaa !10
  %406 = load i32, ptr %77, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef %400, i32 noundef %401, i32 noundef %402, ptr noundef %403, i32 noundef %404, ptr noundef %405, i32 noundef %406)
  %407 = load ptr, ptr %46, align 8, !tbaa !10
  %408 = load ptr, ptr %48, align 8, !tbaa !10
  %409 = load ptr, ptr %50, align 8, !tbaa !10
  %410 = load ptr, ptr %53, align 8, !tbaa !10
  %411 = load ptr, ptr %55, align 8, !tbaa !10
  %412 = load ptr, ptr %56, align 8, !tbaa !10
  %413 = load ptr, ptr %57, align 8, !tbaa !10
  %414 = load ptr, ptr %59, align 8, !tbaa !10
  %415 = load ptr, ptr %60, align 8, !tbaa !10
  %416 = load ptr, ptr %62, align 8, !tbaa !10
  %417 = load ptr, ptr %64, align 8, !tbaa !10
  %418 = load ptr, ptr %66, align 8, !tbaa !10
  %419 = load ptr, ptr %68, align 8, !tbaa !10
  call void @dgedmdq_(ptr noundef %37, ptr noundef %38, ptr noundef %39, ptr noundef %40, ptr noundef %41, ptr noundef %42, ptr noundef %43, ptr noundef %44, ptr noundef %45, ptr noundef %407, ptr noundef %47, ptr noundef %408, ptr noundef %49, ptr noundef %409, ptr noundef %51, ptr noundef %52, ptr noundef %410, ptr noundef %54, ptr noundef %411, ptr noundef %412, ptr noundef %413, ptr noundef %58, ptr noundef %414, ptr noundef %415, ptr noundef %61, ptr noundef %416, ptr noundef %63, ptr noundef %417, ptr noundef %65, ptr noundef %418, ptr noundef %67, ptr noundef %419, ptr noundef %69, ptr noundef %70, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1)
  %420 = load i32, ptr %70, align 4, !tbaa !5
  %421 = icmp slt i32 %420, 0
  br i1 %421, label %422, label %425

422:                                              ; preds = %357
  %423 = load i32, ptr %70, align 4, !tbaa !5
  %424 = sub nsw i32 %423, 1
  store i32 %424, ptr %70, align 4, !tbaa !5
  br label %425

425:                                              ; preds = %422, %357
  %426 = load i32, ptr %44, align 4, !tbaa !5
  %427 = load i32, ptr %45, align 4, !tbaa !5
  %428 = load ptr, ptr %78, align 8, !tbaa !10
  %429 = load i32, ptr %71, align 4, !tbaa !5
  %430 = load ptr, ptr %46, align 8, !tbaa !10
  %431 = load i32, ptr %47, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %426, i32 noundef %427, ptr noundef %428, i32 noundef %429, ptr noundef %430, i32 noundef %431)
  %432 = load i32, ptr %44, align 4, !tbaa !5
  %433 = load i32, ptr %45, align 4, !tbaa !5
  %434 = load ptr, ptr %79, align 8, !tbaa !10
  %435 = load i32, ptr %72, align 4, !tbaa !5
  %436 = load ptr, ptr %48, align 8, !tbaa !10
  %437 = load i32, ptr %49, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %432, i32 noundef %433, ptr noundef %434, i32 noundef %435, ptr noundef %436, i32 noundef %437)
  %438 = load i32, ptr %44, align 4, !tbaa !5
  %439 = load i32, ptr %45, align 4, !tbaa !5
  %440 = load ptr, ptr %80, align 8, !tbaa !10
  %441 = load i32, ptr %73, align 4, !tbaa !5
  %442 = load ptr, ptr %50, align 8, !tbaa !10
  %443 = load i32, ptr %51, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %438, i32 noundef %439, ptr noundef %440, i32 noundef %441, ptr noundef %442, i32 noundef %443)
  %444 = load i32, ptr %44, align 4, !tbaa !5
  %445 = load i32, ptr %45, align 4, !tbaa !5
  %446 = load ptr, ptr %81, align 8, !tbaa !10
  %447 = load i32, ptr %74, align 4, !tbaa !5
  %448 = load ptr, ptr %57, align 8, !tbaa !10
  %449 = load i32, ptr %58, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %444, i32 noundef %445, ptr noundef %446, i32 noundef %447, ptr noundef %448, i32 noundef %449)
  %450 = load i32, ptr %44, align 4, !tbaa !5
  %451 = load i32, ptr %45, align 4, !tbaa !5
  %452 = load ptr, ptr %82, align 8, !tbaa !10
  %453 = load i32, ptr %75, align 4, !tbaa !5
  %454 = load ptr, ptr %60, align 8, !tbaa !10
  %455 = load i32, ptr %61, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %450, i32 noundef %451, ptr noundef %452, i32 noundef %453, ptr noundef %454, i32 noundef %455)
  %456 = load i32, ptr %44, align 4, !tbaa !5
  %457 = load i32, ptr %45, align 4, !tbaa !5
  %458 = load ptr, ptr %83, align 8, !tbaa !10
  %459 = load i32, ptr %76, align 4, !tbaa !5
  %460 = load ptr, ptr %62, align 8, !tbaa !10
  %461 = load i32, ptr %63, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %456, i32 noundef %457, ptr noundef %458, i32 noundef %459, ptr noundef %460, i32 noundef %461)
  %462 = load i32, ptr %44, align 4, !tbaa !5
  %463 = load i32, ptr %45, align 4, !tbaa !5
  %464 = load ptr, ptr %84, align 8, !tbaa !10
  %465 = load i32, ptr %77, align 4, !tbaa !5
  %466 = load ptr, ptr %64, align 8, !tbaa !10
  %467 = load i32, ptr %65, align 4, !tbaa !5
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %462, i32 noundef %463, ptr noundef %464, i32 noundef %465, ptr noundef %466, i32 noundef %467)
  %468 = load ptr, ptr %84, align 8, !tbaa !10
  call void @free(ptr noundef %468) #5
  br label %469

469:                                              ; preds = %425, %356
  %470 = load ptr, ptr %83, align 8, !tbaa !10
  call void @free(ptr noundef %470) #5
  br label %471

471:                                              ; preds = %469, %339
  %472 = load ptr, ptr %82, align 8, !tbaa !10
  call void @free(ptr noundef %472) #5
  br label %473

473:                                              ; preds = %471, %322
  %474 = load ptr, ptr %81, align 8, !tbaa !10
  call void @free(ptr noundef %474) #5
  br label %475

475:                                              ; preds = %473, %305
  %476 = load ptr, ptr %80, align 8, !tbaa !10
  call void @free(ptr noundef %476) #5
  br label %477

477:                                              ; preds = %475, %288
  %478 = load ptr, ptr %79, align 8, !tbaa !10
  call void @free(ptr noundef %478) #5
  br label %479

479:                                              ; preds = %477, %271
  %480 = load ptr, ptr %78, align 8, !tbaa !10
  call void @free(ptr noundef %480) #5
  br label %481

481:                                              ; preds = %479, %254
  %482 = load i32, ptr %70, align 4, !tbaa !5
  %483 = icmp eq i32 %482, -1011
  br i1 %483, label %484, label %486

484:                                              ; preds = %481
  %485 = load i32, ptr %70, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %485)
  br label %486

486:                                              ; preds = %484, %481
  store i32 0, ptr %85, align 4
  br label %487

487:                                              ; preds = %486, %236, %206, %199, %192, %185, %178, %171, %164
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  %488 = load i32, ptr %85, align 4
  switch i32 %488, label %495 [
    i32 0, label %489
  ]

489:                                              ; preds = %487
  br label %492

490:                                              ; preds = %108
  store i32 -1, ptr %70, align 4, !tbaa !5
  %491 = load i32, ptr %70, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %491)
  br label %492

492:                                              ; preds = %490, %489
  br label %493

493:                                              ; preds = %492, %107
  %494 = load i32, ptr %70, align 4, !tbaa !5
  store i32 %494, ptr %35, align 4
  store i32 1, ptr %85, align 4
  br label %495

495:                                              ; preds = %493, %487
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  %496 = load i32, ptr %35, align 4
  ret i32 %496
}

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

declare void @dgedmdq_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 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 [21 x i8], align 1

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

56:                                               ; preds = %34
  call void @dgedmdq_(ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef %10, ptr noundef nonnull %44, ptr noundef %12, ptr noundef nonnull %45, ptr noundef %14, ptr noundef nonnull %46, ptr noundef nonnull %47, ptr noundef %17, ptr noundef nonnull %48, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef nonnull %49, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %50, ptr noundef %26, ptr noundef nonnull %51, ptr noundef %28, ptr noundef nonnull %52, ptr noundef %30, ptr noundef nonnull %53, ptr noundef %32, ptr noundef nonnull %54, ptr noundef nonnull %55, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1) #6
  %57 = load i32, ptr %55, align 4, !tbaa !8
  %.lobit135 = ashr i32 %57, 31
  %spec.select = add nsw i32 %57, %.lobit135
  br label %.thread128

58:                                               ; preds = %34
  %59 = tail call i32 @llvm.smax.i32(i32 %8, i32 1)
  %60 = icmp slt i32 %11, %9
  br i1 %60, label %61, label %62

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

62:                                               ; preds = %58
  %63 = icmp slt i32 %13, %9
  br i1 %63, label %64, label %65

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

65:                                               ; preds = %62
  %66 = icmp slt i32 %15, %9
  br i1 %66, label %67, label %68

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

68:                                               ; preds = %65
  %69 = icmp slt i32 %22, %9
  br i1 %69, label %70, label %71

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

71:                                               ; preds = %68
  %72 = icmp slt i32 %25, %9
  br i1 %72, label %73, label %74

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

74:                                               ; preds = %71
  %75 = icmp slt i32 %27, %9
  br i1 %75, label %76, label %77

76:                                               ; preds = %74
  tail call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -28) #6
  br label %.thread128

77:                                               ; preds = %74
  %78 = icmp slt i32 %29, %9
  br i1 %78, label %79, label %80

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

80:                                               ; preds = %77
  %81 = icmp eq i32 %31, -1
  %82 = icmp eq i32 %33, -1
  %or.cond = or i1 %81, %82
  br i1 %or.cond, label %83, label %86

83:                                               ; preds = %80
  call void @dgedmdq_(ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef %10, ptr noundef nonnull %44, ptr noundef %12, ptr noundef nonnull %45, ptr noundef %14, ptr noundef nonnull %46, ptr noundef nonnull %47, ptr noundef %17, ptr noundef nonnull %48, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef nonnull %49, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %50, ptr noundef %26, ptr noundef nonnull %51, ptr noundef %28, ptr noundef nonnull %52, ptr noundef %30, ptr noundef nonnull %53, ptr noundef %32, ptr noundef nonnull %54, ptr noundef nonnull %55, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1) #6
  %84 = load i32, ptr %55, align 4
  %.lobit = ashr i32 %84, 31
  %85 = add nsw i32 %.lobit, %84
  br label %.thread128

86:                                               ; preds = %80
  %87 = zext nneg i32 %59 to i64
  %88 = shl nuw nsw i64 %87, 3
  %89 = tail call i32 @llvm.smax.i32(i32 %9, i32 1)
  %90 = zext nneg i32 %89 to i64
  %91 = mul i64 %88, %90
  %92 = tail call noalias ptr @malloc(i64 noundef %91) #7
  %93 = icmp eq ptr %92, null
  br i1 %93, label %.thread, label %94

.thread:                                          ; preds = %86
  store i32 -1011, ptr %55, align 4, !tbaa !8
  br label %148

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

.thread126:                                       ; preds = %94
  store i32 -1011, ptr %55, align 4, !tbaa !8
  tail call void @free(ptr noundef nonnull %92) #6
  br label %148

97:                                               ; preds = %94
  %98 = tail call noalias ptr @malloc(i64 noundef %91) #7
  %99 = icmp eq ptr %98, null
  br i1 %99, label %.critedge, label %100

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

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

103:                                              ; preds = %100
  store i32 -1011, ptr %55, align 4, !tbaa !8
  br label %146

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

107:                                              ; preds = %104
  store i32 -1011, ptr %55, align 4, !tbaa !8
  br label %145

108:                                              ; preds = %104
  %109 = tail call noalias ptr @malloc(i64 noundef %91) #7
  %110 = icmp eq ptr %109, null
  br i1 %110, label %111, label %112

111:                                              ; preds = %108
  store i32 -1011, ptr %55, align 4, !tbaa !8
  br label %144

112:                                              ; preds = %108
  %113 = tail call noalias ptr @malloc(i64 noundef %91) #7
  %114 = icmp eq ptr %113, null
  br i1 %114, label %115, label %116

115:                                              ; preds = %112
  store i32 -1011, ptr %55, align 4, !tbaa !8
  br label %143

116:                                              ; preds = %112
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %10, i32 noundef %11, ptr noundef nonnull %92, i32 noundef %59) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %12, i32 noundef %13, ptr noundef nonnull %95, i32 noundef %59) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %14, i32 noundef %15, ptr noundef nonnull %98, i32 noundef %59) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %21, i32 noundef %22, ptr noundef nonnull %101, i32 noundef %59) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %24, i32 noundef %25, ptr noundef nonnull %105, i32 noundef %59) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %26, i32 noundef %27, ptr noundef nonnull %109, i32 noundef %59) #6
  tail call void @LAPACKE_dge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %28, i32 noundef %29, ptr noundef nonnull %113, i32 noundef %59) #6
  call void @dgedmdq_(ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef %10, ptr noundef nonnull %44, ptr noundef %12, ptr noundef nonnull %45, ptr noundef %14, ptr noundef nonnull %46, ptr noundef nonnull %47, ptr noundef %17, ptr noundef nonnull %48, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef nonnull %49, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %50, ptr noundef %26, ptr noundef nonnull %51, ptr noundef %28, ptr noundef nonnull %52, ptr noundef %30, ptr noundef nonnull %53, ptr noundef %32, ptr noundef nonnull %54, ptr noundef nonnull %55, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1) #6
  %117 = load i32, ptr %55, align 4, !tbaa !8
  %118 = icmp slt i32 %117, 0
  br i1 %118, label %119, label %121

119:                                              ; preds = %116
  %120 = add nsw i32 %117, -1
  store i32 %120, ptr %55, align 4, !tbaa !8
  br label %121

121:                                              ; preds = %119, %116
  %122 = load i32, ptr %42, align 4, !tbaa !8
  %123 = load i32, ptr %43, align 4, !tbaa !8
  %124 = load i32, ptr %44, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %122, i32 noundef %123, ptr noundef nonnull %92, i32 noundef %59, ptr noundef %10, i32 noundef %124) #6
  %125 = load i32, ptr %42, align 4, !tbaa !8
  %126 = load i32, ptr %43, align 4, !tbaa !8
  %127 = load i32, ptr %45, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %125, i32 noundef %126, ptr noundef nonnull %95, i32 noundef %59, ptr noundef %12, i32 noundef %127) #6
  %128 = load i32, ptr %42, align 4, !tbaa !8
  %129 = load i32, ptr %43, align 4, !tbaa !8
  %130 = load i32, ptr %46, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %128, i32 noundef %129, ptr noundef nonnull %98, i32 noundef %59, ptr noundef %14, i32 noundef %130) #6
  %131 = load i32, ptr %42, align 4, !tbaa !8
  %132 = load i32, ptr %43, align 4, !tbaa !8
  %133 = load i32, ptr %49, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %131, i32 noundef %132, ptr noundef nonnull %101, i32 noundef %59, ptr noundef %21, i32 noundef %133) #6
  %134 = load i32, ptr %42, align 4, !tbaa !8
  %135 = load i32, ptr %43, align 4, !tbaa !8
  %136 = load i32, ptr %50, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %134, i32 noundef %135, ptr noundef nonnull %105, i32 noundef %59, ptr noundef %24, i32 noundef %136) #6
  %137 = load i32, ptr %42, align 4, !tbaa !8
  %138 = load i32, ptr %43, align 4, !tbaa !8
  %139 = load i32, ptr %51, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %137, i32 noundef %138, ptr noundef nonnull %109, i32 noundef %59, ptr noundef %26, i32 noundef %139) #6
  %140 = load i32, ptr %42, align 4, !tbaa !8
  %141 = load i32, ptr %43, align 4, !tbaa !8
  %142 = load i32, ptr %52, align 4, !tbaa !8
  call void @LAPACKE_dge_trans(i32 noundef 102, i32 noundef %140, i32 noundef %141, ptr noundef nonnull %113, i32 noundef %59, ptr noundef %28, i32 noundef %142) #6
  call void @free(ptr noundef nonnull %113) #6
  %.pr.pr.pr.pre.pre.pre.pre = load i32, ptr %55, align 4, !tbaa !8
  br label %143

143:                                              ; preds = %121, %115
  %.pr.pr.pr.pre.pre.pre = phi i32 [ %.pr.pr.pr.pre.pre.pre.pre, %121 ], [ -1011, %115 ]
  call void @free(ptr noundef nonnull %109) #6
  br label %144

144:                                              ; preds = %143, %111
  %.pr.pr.pr.pre.pre = phi i32 [ %.pr.pr.pr.pre.pre.pre, %143 ], [ -1011, %111 ]
  call void @free(ptr noundef nonnull %105) #6
  br label %145

145:                                              ; preds = %144, %107
  %.pr.pr.pr.pre = phi i32 [ %.pr.pr.pr.pre.pre, %144 ], [ -1011, %107 ]
  call void @free(ptr noundef nonnull %101) #6
  br label %146

146:                                              ; preds = %145, %103
  %.pr.pr.pr = phi i32 [ %.pr.pr.pr.pre, %145 ], [ -1011, %103 ]
  call void @free(ptr noundef nonnull %98) #6
  %147 = icmp eq i32 %.pr.pr.pr, -1011
  call void @free(ptr noundef nonnull %95) #6
  call void @free(ptr noundef nonnull %92) #6
  br i1 %147, label %148, label %.thread128

148:                                              ; preds = %.critedge, %.thread126, %.thread, %146
  call void @LAPACKE_xerbla(ptr noundef nonnull @.str, i32 noundef -1011) #6
  %.pre = load i32, ptr %55, align 4, !tbaa !8
  br label %.thread128

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

.thread128:                                       ; preds = %56, %149, %146, %148, %83, %79, %76, %73, %70, %67, %64, %61
  %.1 = phi i32 [ %85, %83 ], [ -30, %79 ], [ -28, %76 ], [ -26, %73 ], [ -23, %70 ], [ -16, %67 ], [ -14, %64 ], [ -12, %61 ], [ %.pre, %148 ], [ %.pr.pr.pr, %146 ], [ -1, %149 ], [ %spec.select, %56 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #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 @dgedmdq_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 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