; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/LAPACKE/src (lapacke_cgedmdq_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_cgedmdq_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, i32 noundef %21, ptr noundef %22, ptr noundef %23, i32 noundef %24, ptr noundef %25, i32 noundef %26, ptr noundef %27, i32 noundef %28, ptr noundef %29, i32 noundef %30, ptr noundef %31, i32 noundef %32, ptr noundef %33, i32 noundef %34) #0 {
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %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 i8, align 1
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %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 ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca 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 ptr, align 8
  %86 = alloca ptr, align 8
  %87 = alloca i32, align 4
  store i32 %0, ptr %37, align 4, !tbaa !5
  store i8 %1, ptr %38, align 1, !tbaa !9
  store i8 %2, ptr %39, align 1, !tbaa !9
  store i8 %3, ptr %40, align 1, !tbaa !9
  store i8 %4, ptr %41, align 1, !tbaa !9
  store i8 %5, ptr %42, align 1, !tbaa !9
  store i8 %6, ptr %43, align 1, !tbaa !9
  store i32 %7, ptr %44, align 4, !tbaa !5
  store i32 %8, ptr %45, align 4, !tbaa !5
  store i32 %9, ptr %46, align 4, !tbaa !5
  store ptr %10, ptr %47, align 8, !tbaa !10
  store i32 %11, ptr %48, align 4, !tbaa !5
  store ptr %12, ptr %49, align 8, !tbaa !10
  store i32 %13, ptr %50, align 4, !tbaa !5
  store ptr %14, ptr %51, align 8, !tbaa !10
  store i32 %15, ptr %52, align 4, !tbaa !5
  store i32 %16, ptr %53, align 4, !tbaa !5
  store ptr %17, ptr %54, align 8, !tbaa !10
  store i32 %18, ptr %55, align 4, !tbaa !5
  store ptr %19, ptr %56, align 8, !tbaa !10
  store ptr %20, ptr %57, align 8, !tbaa !10
  store i32 %21, ptr %58, align 4, !tbaa !5
  store ptr %22, ptr %59, align 8, !tbaa !10
  store ptr %23, ptr %60, align 8, !tbaa !10
  store i32 %24, ptr %61, align 4, !tbaa !5
  store ptr %25, ptr %62, align 8, !tbaa !10
  store i32 %26, ptr %63, align 4, !tbaa !5
  store ptr %27, ptr %64, align 8, !tbaa !10
  store i32 %28, ptr %65, align 4, !tbaa !5
  store ptr %29, ptr %66, align 8, !tbaa !10
  store i32 %30, ptr %67, align 4, !tbaa !5
  store ptr %31, ptr %68, align 8, !tbaa !10
  store i32 %32, ptr %69, align 4, !tbaa !5
  store ptr %33, ptr %70, align 8, !tbaa !10
  store i32 %34, ptr %71, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  store i32 0, ptr %72, align 4, !tbaa !5
  %88 = load i32, ptr %37, align 4, !tbaa !5
  %89 = icmp eq i32 %88, 102
  br i1 %89, label %90, label %110

90:                                               ; preds = %35
  %91 = load ptr, ptr %47, align 8, !tbaa !10
  %92 = load ptr, ptr %49, align 8, !tbaa !10
  %93 = load ptr, ptr %51, align 8, !tbaa !10
  %94 = load ptr, ptr %54, align 8, !tbaa !10
  %95 = load ptr, ptr %56, align 8, !tbaa !10
  %96 = load ptr, ptr %57, align 8, !tbaa !10
  %97 = load ptr, ptr %59, align 8, !tbaa !10
  %98 = load ptr, ptr %60, align 8, !tbaa !10
  %99 = load ptr, ptr %62, align 8, !tbaa !10
  %100 = load ptr, ptr %64, align 8, !tbaa !10
  %101 = load ptr, ptr %66, align 8, !tbaa !10
  %102 = load ptr, ptr %68, align 8, !tbaa !10
  %103 = load ptr, ptr %70, align 8, !tbaa !10
  call void @cgedmdq_(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 %46, ptr noundef %91, ptr noundef %48, ptr noundef %92, ptr noundef %50, ptr noundef %93, ptr noundef %52, ptr noundef %53, ptr noundef %94, ptr noundef %55, ptr noundef %95, ptr noundef %96, ptr noundef %58, ptr noundef %97, ptr noundef %98, ptr noundef %61, ptr noundef %99, ptr noundef %63, ptr noundef %100, ptr noundef %65, ptr noundef %101, ptr noundef %67, ptr noundef %102, ptr noundef %69, ptr noundef %103, ptr noundef %71, ptr noundef %72, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1)
  %104 = load i32, ptr %72, align 4, !tbaa !5
  %105 = icmp slt i32 %104, 0
  br i1 %105, label %106, label %109

106:                                              ; preds = %90
  %107 = load i32, ptr %72, align 4, !tbaa !5
  %108 = sub nsw i32 %107, 1
  store i32 %108, ptr %72, align 4, !tbaa !5
  br label %109

109:                                              ; preds = %106, %90
  br label %498

110:                                              ; preds = %35
  %111 = load i32, ptr %37, align 4, !tbaa !5
  %112 = icmp eq i32 %111, 101
  br i1 %112, label %113, label %495

113:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #5
  %114 = load i32, ptr %45, align 4, !tbaa !5
  %115 = icmp sgt i32 1, %114
  br i1 %115, label %116, label %117

116:                                              ; preds = %113
  br label %119

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

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

123:                                              ; preds = %119
  br label %126

124:                                              ; preds = %119
  %125 = load i32, ptr %45, align 4, !tbaa !5
  br label %126

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

130:                                              ; preds = %126
  br label %133

131:                                              ; preds = %126
  %132 = load i32, ptr %45, align 4, !tbaa !5
  br label %133

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

137:                                              ; preds = %133
  br label %140

138:                                              ; preds = %133
  %139 = load i32, ptr %45, align 4, !tbaa !5
  br label %140

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

144:                                              ; preds = %140
  br label %147

145:                                              ; preds = %140
  %146 = load i32, ptr %45, align 4, !tbaa !5
  br label %147

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

151:                                              ; preds = %147
  br label %154

152:                                              ; preds = %147
  %153 = load i32, ptr %45, align 4, !tbaa !5
  br label %154

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

158:                                              ; preds = %154
  br label %161

159:                                              ; preds = %154
  %160 = load i32, ptr %45, align 4, !tbaa !5
  br label %161

161:                                              ; preds = %159, %158
  %162 = phi i32 [ 1, %158 ], [ %160, %159 ]
  store i32 %162, ptr %79, align 4, !tbaa !5
  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
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #5
  store ptr null, ptr %85, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  store ptr null, ptr %86, align 8, !tbaa !10
  %163 = load i32, ptr %48, align 4, !tbaa !5
  %164 = load i32, ptr %46, align 4, !tbaa !5
  %165 = icmp slt i32 %163, %164
  br i1 %165, label %166, label %169

166:                                              ; preds = %161
  store i32 -12, ptr %72, align 4, !tbaa !5
  %167 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %167)
  %168 = load i32, ptr %72, align 4, !tbaa !5
  store i32 %168, ptr %36, align 4
  store i32 1, ptr %87, align 4
  br label %492

169:                                              ; preds = %161
  %170 = load i32, ptr %50, align 4, !tbaa !5
  %171 = load i32, ptr %46, align 4, !tbaa !5
  %172 = icmp slt i32 %170, %171
  br i1 %172, label %173, label %176

173:                                              ; preds = %169
  store i32 -14, ptr %72, align 4, !tbaa !5
  %174 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %174)
  %175 = load i32, ptr %72, align 4, !tbaa !5
  store i32 %175, ptr %36, align 4
  store i32 1, ptr %87, align 4
  br label %492

176:                                              ; preds = %169
  %177 = load i32, ptr %52, align 4, !tbaa !5
  %178 = load i32, ptr %46, align 4, !tbaa !5
  %179 = icmp slt i32 %177, %178
  br i1 %179, label %180, label %183

180:                                              ; preds = %176
  store i32 -16, ptr %72, align 4, !tbaa !5
  %181 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %181)
  %182 = load i32, ptr %72, align 4, !tbaa !5
  store i32 %182, ptr %36, align 4
  store i32 1, ptr %87, align 4
  br label %492

183:                                              ; preds = %176
  %184 = load i32, ptr %58, align 4, !tbaa !5
  %185 = load i32, ptr %46, align 4, !tbaa !5
  %186 = icmp slt i32 %184, %185
  br i1 %186, label %187, label %190

187:                                              ; preds = %183
  store i32 -23, ptr %72, align 4, !tbaa !5
  %188 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %188)
  %189 = load i32, ptr %72, align 4, !tbaa !5
  store i32 %189, ptr %36, align 4
  store i32 1, ptr %87, align 4
  br label %492

190:                                              ; preds = %183
  %191 = load i32, ptr %61, align 4, !tbaa !5
  %192 = load i32, ptr %46, align 4, !tbaa !5
  %193 = icmp slt i32 %191, %192
  br i1 %193, label %194, label %197

194:                                              ; preds = %190
  store i32 -26, ptr %72, align 4, !tbaa !5
  %195 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %195)
  %196 = load i32, ptr %72, align 4, !tbaa !5
  store i32 %196, ptr %36, align 4
  store i32 1, ptr %87, align 4
  br label %492

197:                                              ; preds = %190
  %198 = load i32, ptr %63, align 4, !tbaa !5
  %199 = load i32, ptr %46, align 4, !tbaa !5
  %200 = icmp slt i32 %198, %199
  br i1 %200, label %201, label %204

201:                                              ; preds = %197
  store i32 -28, ptr %72, align 4, !tbaa !5
  %202 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %202)
  %203 = load i32, ptr %72, align 4, !tbaa !5
  store i32 %203, ptr %36, align 4
  store i32 1, ptr %87, align 4
  br label %492

204:                                              ; preds = %197
  %205 = load i32, ptr %65, align 4, !tbaa !5
  %206 = load i32, ptr %46, align 4, !tbaa !5
  %207 = icmp slt i32 %205, %206
  br i1 %207, label %208, label %211

208:                                              ; preds = %204
  store i32 -30, ptr %72, align 4, !tbaa !5
  %209 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %209)
  %210 = load i32, ptr %72, align 4, !tbaa !5
  store i32 %210, ptr %36, align 4
  store i32 1, ptr %87, align 4
  br label %492

211:                                              ; preds = %204
  %212 = load i32, ptr %67, align 4, !tbaa !5
  %213 = icmp eq i32 %212, -1
  br i1 %213, label %220, label %214

214:                                              ; preds = %211
  %215 = load i32, ptr %69, align 4, !tbaa !5
  %216 = icmp eq i32 %215, -1
  br i1 %216, label %220, label %217

217:                                              ; preds = %214
  %218 = load i32, ptr %71, align 4, !tbaa !5
  %219 = icmp eq i32 %218, -1
  br i1 %219, label %220, label %243

220:                                              ; preds = %217, %214, %211
  %221 = load ptr, ptr %47, align 8, !tbaa !10
  %222 = load ptr, ptr %49, align 8, !tbaa !10
  %223 = load ptr, ptr %51, align 8, !tbaa !10
  %224 = load ptr, ptr %54, align 8, !tbaa !10
  %225 = load ptr, ptr %56, align 8, !tbaa !10
  %226 = load ptr, ptr %57, align 8, !tbaa !10
  %227 = load ptr, ptr %59, align 8, !tbaa !10
  %228 = load ptr, ptr %60, align 8, !tbaa !10
  %229 = load ptr, ptr %62, align 8, !tbaa !10
  %230 = load ptr, ptr %64, align 8, !tbaa !10
  %231 = load ptr, ptr %66, align 8, !tbaa !10
  %232 = load ptr, ptr %68, align 8, !tbaa !10
  %233 = load ptr, ptr %70, align 8, !tbaa !10
  call void @cgedmdq_(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 %46, ptr noundef %221, ptr noundef %48, ptr noundef %222, ptr noundef %50, ptr noundef %223, ptr noundef %52, ptr noundef %53, ptr noundef %224, ptr noundef %55, ptr noundef %225, ptr noundef %226, ptr noundef %58, ptr noundef %227, ptr noundef %228, ptr noundef %61, ptr noundef %229, ptr noundef %63, ptr noundef %230, ptr noundef %65, ptr noundef %231, ptr noundef %67, ptr noundef %232, ptr noundef %69, ptr noundef %233, ptr noundef %71, ptr noundef %72, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1)
  %234 = load i32, ptr %72, align 4, !tbaa !5
  %235 = icmp slt i32 %234, 0
  br i1 %235, label %236, label %239

236:                                              ; preds = %220
  %237 = load i32, ptr %72, align 4, !tbaa !5
  %238 = sub nsw i32 %237, 1
  br label %241

239:                                              ; preds = %220
  %240 = load i32, ptr %72, align 4, !tbaa !5
  br label %241

241:                                              ; preds = %239, %236
  %242 = phi i32 [ %238, %236 ], [ %240, %239 ]
  store i32 %242, ptr %36, align 4
  store i32 1, ptr %87, align 4
  br label %492

243:                                              ; preds = %217
  %244 = load i32, ptr %73, align 4, !tbaa !5
  %245 = sext i32 %244 to i64
  %246 = mul i64 8, %245
  %247 = load i32, ptr %46, 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 %46, 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 %80, align 8, !tbaa !10
  %257 = load ptr, ptr %80, align 8, !tbaa !10
  %258 = icmp eq ptr %257, null
  br i1 %258, label %259, label %260

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

260:                                              ; preds = %252
  %261 = load i32, ptr %74, align 4, !tbaa !5
  %262 = sext i32 %261 to i64
  %263 = mul i64 8, %262
  %264 = load i32, ptr %46, 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 %46, 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 %81, align 8, !tbaa !10
  %274 = load ptr, ptr %81, align 8, !tbaa !10
  %275 = icmp eq ptr %274, null
  br i1 %275, label %276, label %277

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

277:                                              ; preds = %269
  %278 = load i32, ptr %75, align 4, !tbaa !5
  %279 = sext i32 %278 to i64
  %280 = mul i64 8, %279
  %281 = load i32, ptr %46, 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 %46, 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 %82, align 8, !tbaa !10
  %291 = load ptr, ptr %82, align 8, !tbaa !10
  %292 = icmp eq ptr %291, null
  br i1 %292, label %293, label %294

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

294:                                              ; preds = %286
  %295 = load i32, ptr %76, align 4, !tbaa !5
  %296 = sext i32 %295 to i64
  %297 = mul i64 8, %296
  %298 = load i32, ptr %46, 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 %46, 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 %83, align 8, !tbaa !10
  %308 = load ptr, ptr %83, align 8, !tbaa !10
  %309 = icmp eq ptr %308, null
  br i1 %309, label %310, label %311

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

311:                                              ; preds = %303
  %312 = load i32, ptr %77, align 4, !tbaa !5
  %313 = sext i32 %312 to i64
  %314 = mul i64 8, %313
  %315 = load i32, ptr %46, align 4, !tbaa !5
  %316 = icmp sgt i32 1, %315
  br i1 %316, label %317, label %318

317:                                              ; preds = %311
  br label %320

318:                                              ; preds = %311
  %319 = load i32, ptr %46, align 4, !tbaa !5
  br label %320

320:                                              ; preds = %318, %317
  %321 = phi i32 [ 1, %317 ], [ %319, %318 ]
  %322 = sext i32 %321 to i64
  %323 = mul i64 %314, %322
  %324 = call noalias ptr @malloc(i64 noundef %323) #6
  store ptr %324, ptr %84, align 8, !tbaa !10
  %325 = load ptr, ptr %84, align 8, !tbaa !10
  %326 = icmp eq ptr %325, null
  br i1 %326, label %327, label %328

327:                                              ; preds = %320
  store i32 -1011, ptr %72, align 4, !tbaa !5
  br label %478

328:                                              ; preds = %320
  %329 = load i32, ptr %78, align 4, !tbaa !5
  %330 = sext i32 %329 to i64
  %331 = mul i64 8, %330
  %332 = load i32, ptr %46, align 4, !tbaa !5
  %333 = icmp sgt i32 1, %332
  br i1 %333, label %334, label %335

334:                                              ; preds = %328
  br label %337

335:                                              ; preds = %328
  %336 = load i32, ptr %46, align 4, !tbaa !5
  br label %337

337:                                              ; preds = %335, %334
  %338 = phi i32 [ 1, %334 ], [ %336, %335 ]
  %339 = sext i32 %338 to i64
  %340 = mul i64 %331, %339
  %341 = call noalias ptr @malloc(i64 noundef %340) #6
  store ptr %341, ptr %85, align 8, !tbaa !10
  %342 = load ptr, ptr %85, align 8, !tbaa !10
  %343 = icmp eq ptr %342, null
  br i1 %343, label %344, label %345

344:                                              ; preds = %337
  store i32 -1011, ptr %72, align 4, !tbaa !5
  br label %476

345:                                              ; preds = %337
  %346 = load i32, ptr %79, align 4, !tbaa !5
  %347 = sext i32 %346 to i64
  %348 = mul i64 8, %347
  %349 = load i32, ptr %46, align 4, !tbaa !5
  %350 = icmp sgt i32 1, %349
  br i1 %350, label %351, label %352

351:                                              ; preds = %345
  br label %354

352:                                              ; preds = %345
  %353 = load i32, ptr %46, align 4, !tbaa !5
  br label %354

354:                                              ; preds = %352, %351
  %355 = phi i32 [ 1, %351 ], [ %353, %352 ]
  %356 = sext i32 %355 to i64
  %357 = mul i64 %348, %356
  %358 = call noalias ptr @malloc(i64 noundef %357) #6
  store ptr %358, ptr %86, align 8, !tbaa !10
  %359 = load ptr, ptr %86, align 8, !tbaa !10
  %360 = icmp eq ptr %359, null
  br i1 %360, label %361, label %362

361:                                              ; preds = %354
  store i32 -1011, ptr %72, align 4, !tbaa !5
  br label %474

362:                                              ; preds = %354
  %363 = load i32, ptr %37, align 4, !tbaa !5
  %364 = load i32, ptr %45, align 4, !tbaa !5
  %365 = load i32, ptr %46, align 4, !tbaa !5
  %366 = load ptr, ptr %47, align 8, !tbaa !10
  %367 = load i32, ptr %48, align 4, !tbaa !5
  %368 = load ptr, ptr %80, align 8, !tbaa !10
  %369 = load i32, ptr %73, align 4, !tbaa !5
  call void @LAPACKE_cge_trans(i32 noundef %363, i32 noundef %364, i32 noundef %365, ptr noundef %366, i32 noundef %367, ptr noundef %368, i32 noundef %369)
  %370 = load i32, ptr %37, align 4, !tbaa !5
  %371 = load i32, ptr %45, align 4, !tbaa !5
  %372 = load i32, ptr %46, align 4, !tbaa !5
  %373 = load ptr, ptr %49, align 8, !tbaa !10
  %374 = load i32, ptr %50, align 4, !tbaa !5
  %375 = load ptr, ptr %81, align 8, !tbaa !10
  %376 = load i32, ptr %74, align 4, !tbaa !5
  call void @LAPACKE_cge_trans(i32 noundef %370, i32 noundef %371, i32 noundef %372, ptr noundef %373, i32 noundef %374, ptr noundef %375, i32 noundef %376)
  %377 = load i32, ptr %37, align 4, !tbaa !5
  %378 = load i32, ptr %45, align 4, !tbaa !5
  %379 = load i32, ptr %46, align 4, !tbaa !5
  %380 = load ptr, ptr %51, align 8, !tbaa !10
  %381 = load i32, ptr %52, align 4, !tbaa !5
  %382 = load ptr, ptr %82, align 8, !tbaa !10
  %383 = load i32, ptr %75, align 4, !tbaa !5
  call void @LAPACKE_cge_trans(i32 noundef %377, i32 noundef %378, i32 noundef %379, ptr noundef %380, i32 noundef %381, ptr noundef %382, i32 noundef %383)
  %384 = load i32, ptr %37, align 4, !tbaa !5
  %385 = load i32, ptr %45, align 4, !tbaa !5
  %386 = load i32, ptr %46, align 4, !tbaa !5
  %387 = load ptr, ptr %57, align 8, !tbaa !10
  %388 = load i32, ptr %58, align 4, !tbaa !5
  %389 = load ptr, ptr %83, align 8, !tbaa !10
  %390 = load i32, ptr %76, align 4, !tbaa !5
  call void @LAPACKE_cge_trans(i32 noundef %384, i32 noundef %385, i32 noundef %386, ptr noundef %387, i32 noundef %388, ptr noundef %389, i32 noundef %390)
  %391 = load i32, ptr %37, align 4, !tbaa !5
  %392 = load i32, ptr %45, align 4, !tbaa !5
  %393 = load i32, ptr %46, align 4, !tbaa !5
  %394 = load ptr, ptr %60, align 8, !tbaa !10
  %395 = load i32, ptr %61, align 4, !tbaa !5
  %396 = load ptr, ptr %84, align 8, !tbaa !10
  %397 = load i32, ptr %77, align 4, !tbaa !5
  call void @LAPACKE_cge_trans(i32 noundef %391, i32 noundef %392, i32 noundef %393, ptr noundef %394, i32 noundef %395, ptr noundef %396, i32 noundef %397)
  %398 = load i32, ptr %37, align 4, !tbaa !5
  %399 = load i32, ptr %45, align 4, !tbaa !5
  %400 = load i32, ptr %46, align 4, !tbaa !5
  %401 = load ptr, ptr %62, align 8, !tbaa !10
  %402 = load i32, ptr %63, align 4, !tbaa !5
  %403 = load ptr, ptr %85, align 8, !tbaa !10
  %404 = load i32, ptr %78, align 4, !tbaa !5
  call void @LAPACKE_cge_trans(i32 noundef %398, i32 noundef %399, i32 noundef %400, ptr noundef %401, i32 noundef %402, ptr noundef %403, i32 noundef %404)
  %405 = load i32, ptr %37, align 4, !tbaa !5
  %406 = load i32, ptr %45, align 4, !tbaa !5
  %407 = load i32, ptr %46, align 4, !tbaa !5
  %408 = load ptr, ptr %64, align 8, !tbaa !10
  %409 = load i32, ptr %65, align 4, !tbaa !5
  %410 = load ptr, ptr %86, align 8, !tbaa !10
  %411 = load i32, ptr %79, align 4, !tbaa !5
  call void @LAPACKE_cge_trans(i32 noundef %405, i32 noundef %406, i32 noundef %407, ptr noundef %408, i32 noundef %409, ptr noundef %410, i32 noundef %411)
  %412 = load ptr, ptr %47, align 8, !tbaa !10
  %413 = load ptr, ptr %49, align 8, !tbaa !10
  %414 = load ptr, ptr %51, align 8, !tbaa !10
  %415 = load ptr, ptr %54, align 8, !tbaa !10
  %416 = load ptr, ptr %56, align 8, !tbaa !10
  %417 = load ptr, ptr %57, align 8, !tbaa !10
  %418 = load ptr, ptr %59, align 8, !tbaa !10
  %419 = load ptr, ptr %60, align 8, !tbaa !10
  %420 = load ptr, ptr %62, align 8, !tbaa !10
  %421 = load ptr, ptr %64, align 8, !tbaa !10
  %422 = load ptr, ptr %66, align 8, !tbaa !10
  %423 = load ptr, ptr %68, align 8, !tbaa !10
  %424 = load ptr, ptr %70, align 8, !tbaa !10
  call void @cgedmdq_(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 %46, ptr noundef %412, ptr noundef %48, ptr noundef %413, ptr noundef %50, ptr noundef %414, ptr noundef %52, ptr noundef %53, ptr noundef %415, ptr noundef %55, ptr noundef %416, ptr noundef %417, ptr noundef %58, ptr noundef %418, ptr noundef %419, ptr noundef %61, ptr noundef %420, ptr noundef %63, ptr noundef %421, ptr noundef %65, ptr noundef %422, ptr noundef %67, ptr noundef %423, ptr noundef %69, ptr noundef %424, ptr noundef %71, ptr noundef %72, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1)
  %425 = load i32, ptr %72, align 4, !tbaa !5
  %426 = icmp slt i32 %425, 0
  br i1 %426, label %427, label %430

427:                                              ; preds = %362
  %428 = load i32, ptr %72, align 4, !tbaa !5
  %429 = sub nsw i32 %428, 1
  store i32 %429, ptr %72, align 4, !tbaa !5
  br label %430

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

474:                                              ; preds = %430, %361
  %475 = load ptr, ptr %85, align 8, !tbaa !10
  call void @free(ptr noundef %475) #5
  br label %476

476:                                              ; preds = %474, %344
  %477 = load ptr, ptr %84, align 8, !tbaa !10
  call void @free(ptr noundef %477) #5
  br label %478

478:                                              ; preds = %476, %327
  %479 = load ptr, ptr %83, align 8, !tbaa !10
  call void @free(ptr noundef %479) #5
  br label %480

480:                                              ; preds = %478, %310
  %481 = load ptr, ptr %82, align 8, !tbaa !10
  call void @free(ptr noundef %481) #5
  br label %482

482:                                              ; preds = %480, %293
  %483 = load ptr, ptr %81, align 8, !tbaa !10
  call void @free(ptr noundef %483) #5
  br label %484

484:                                              ; preds = %482, %276
  %485 = load ptr, ptr %80, align 8, !tbaa !10
  call void @free(ptr noundef %485) #5
  br label %486

486:                                              ; preds = %484, %259
  %487 = load i32, ptr %72, align 4, !tbaa !5
  %488 = icmp eq i32 %487, -1011
  br i1 %488, label %489, label %491

489:                                              ; preds = %486
  %490 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %490)
  br label %491

491:                                              ; preds = %489, %486
  store i32 0, ptr %87, align 4
  br label %492

492:                                              ; preds = %491, %241, %208, %201, %194, %187, %180, %173, %166
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #5
  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 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, 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
  %493 = load i32, ptr %87, align 4
  switch i32 %493, label %500 [
    i32 0, label %494
  ]

494:                                              ; preds = %492
  br label %497

495:                                              ; preds = %110
  store i32 -1, ptr %72, align 4, !tbaa !5
  %496 = load i32, ptr %72, align 4, !tbaa !5
  call void @LAPACKE_xerbla(ptr noundef @.str, i32 noundef %496)
  br label %497

497:                                              ; preds = %495, %494
  br label %498

498:                                              ; preds = %497, %109
  %499 = load i32, ptr %72, align 4, !tbaa !5
  store i32 %499, ptr %36, align 4
  store i32 1, ptr %87, align 4
  br label %500

500:                                              ; preds = %498, %492
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  %501 = load i32, ptr %36, align 4
  ret i32 %501
}

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

declare void @cgedmdq_(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, 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_cge_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_cgedmdq_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, i32 noundef %21, ptr noundef %22, ptr noundef %23, i32 noundef %24, ptr noundef %25, i32 noundef %26, ptr noundef %27, i32 noundef %28, ptr noundef %29, i32 noundef %30, ptr noundef %31, i32 noundef %32, ptr noundef %33, i32 noundef %34) local_unnamed_addr #0 {
  %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 i8, align 1
  %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
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  store i8 %1, ptr %36, align 1, !tbaa !5
  store i8 %2, ptr %37, align 1, !tbaa !5
  store i8 %3, ptr %38, align 1, !tbaa !5
  store i8 %4, ptr %39, align 1, !tbaa !5
  store i8 %5, ptr %40, align 1, !tbaa !5
  store i8 %6, ptr %41, align 1, !tbaa !5
  store i32 %7, ptr %42, align 4, !tbaa !8
  store i32 %8, ptr %43, align 4, !tbaa !8
  store i32 %9, ptr %44, align 4, !tbaa !8
  store i32 %11, ptr %45, align 4, !tbaa !8
  store i32 %13, ptr %46, align 4, !tbaa !8
  store i32 %15, ptr %47, align 4, !tbaa !8
  store i32 %16, ptr %48, align 4, !tbaa !8
  store i32 %18, ptr %49, align 4, !tbaa !8
  store i32 %21, ptr %50, align 4, !tbaa !8
  store i32 %24, ptr %51, align 4, !tbaa !8
  store i32 %26, ptr %52, align 4, !tbaa !8
  store i32 %28, ptr %53, align 4, !tbaa !8
  store i32 %30, ptr %54, align 4, !tbaa !8
  store i32 %32, ptr %55, align 4, !tbaa !8
  store i32 %34, ptr %56, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %57) #6
  store i32 0, ptr %57, align 4, !tbaa !8
  switch i32 %0, label %152 [
    i32 102, label %58
    i32 101, label %60
  ]

58:                                               ; preds = %35
  call void @cgedmdq_(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 nonnull %44, ptr noundef %10, ptr noundef nonnull %45, ptr noundef %12, ptr noundef nonnull %46, ptr noundef %14, ptr noundef nonnull %47, ptr noundef nonnull %48, ptr noundef %17, ptr noundef nonnull %49, ptr noundef %19, ptr noundef %20, ptr noundef nonnull %50, ptr noundef %22, ptr noundef %23, ptr noundef nonnull %51, ptr noundef %25, ptr noundef nonnull %52, ptr noundef %27, ptr noundef nonnull %53, ptr noundef %29, ptr noundef nonnull %54, ptr noundef %31, ptr noundef nonnull %55, ptr noundef %33, ptr noundef nonnull %56, ptr noundef nonnull %57, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1) #6
  %59 = load i32, ptr %57, align 4, !tbaa !8
  %.lobit137 = ashr i32 %59, 31
  %spec.select = add nsw i32 %59, %.lobit137
  br label %.thread130

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

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

64:                                               ; preds = %60
  %65 = icmp slt i32 %13, %9
  br i1 %65, label %66, label %67

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

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

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

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

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

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

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

76:                                               ; preds = %73
  %77 = icmp slt i32 %26, %9
  br i1 %77, label %78, label %79

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

79:                                               ; preds = %76
  %80 = icmp slt i32 %28, %9
  br i1 %80, label %81, label %82

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

82:                                               ; preds = %79
  %83 = icmp eq i32 %30, -1
  %84 = icmp eq i32 %32, -1
  %or.cond = or i1 %83, %84
  %85 = icmp eq i32 %34, -1
  %or.cond3 = or i1 %or.cond, %85
  br i1 %or.cond3, label %86, label %89

86:                                               ; preds = %82
  call void @cgedmdq_(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 nonnull %44, ptr noundef %10, ptr noundef nonnull %45, ptr noundef %12, ptr noundef nonnull %46, ptr noundef %14, ptr noundef nonnull %47, ptr noundef nonnull %48, ptr noundef %17, ptr noundef nonnull %49, ptr noundef %19, ptr noundef %20, ptr noundef nonnull %50, ptr noundef %22, ptr noundef %23, ptr noundef nonnull %51, ptr noundef %25, ptr noundef nonnull %52, ptr noundef %27, ptr noundef nonnull %53, ptr noundef %29, ptr noundef nonnull %54, ptr noundef %31, ptr noundef nonnull %55, ptr noundef %33, ptr noundef nonnull %56, ptr noundef nonnull %57, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1) #6
  %87 = load i32, ptr %57, align 4
  %.lobit = ashr i32 %87, 31
  %88 = add nsw i32 %.lobit, %87
  br label %.thread130

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

.thread:                                          ; preds = %89
  store i32 -1011, ptr %57, align 4, !tbaa !8
  br label %151

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

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

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

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

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

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

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

110:                                              ; preds = %107
  store i32 -1011, ptr %57, align 4, !tbaa !8
  br label %148

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

114:                                              ; preds = %111
  store i32 -1011, ptr %57, align 4, !tbaa !8
  br label %147

115:                                              ; preds = %111
  %116 = tail call noalias ptr @malloc(i64 noundef %94) #7
  %117 = icmp eq ptr %116, null
  br i1 %117, label %118, label %119

118:                                              ; preds = %115
  store i32 -1011, ptr %57, align 4, !tbaa !8
  br label %146

119:                                              ; preds = %115
  tail call void @LAPACKE_cge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %10, i32 noundef %11, ptr noundef nonnull %95, i32 noundef %61) #6
  tail call void @LAPACKE_cge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %12, i32 noundef %13, ptr noundef nonnull %98, i32 noundef %61) #6
  tail call void @LAPACKE_cge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %14, i32 noundef %15, ptr noundef nonnull %101, i32 noundef %61) #6
  tail call void @LAPACKE_cge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %20, i32 noundef %21, ptr noundef nonnull %104, i32 noundef %61) #6
  tail call void @LAPACKE_cge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %23, i32 noundef %24, ptr noundef nonnull %108, i32 noundef %61) #6
  tail call void @LAPACKE_cge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %25, i32 noundef %26, ptr noundef nonnull %112, i32 noundef %61) #6
  tail call void @LAPACKE_cge_trans(i32 noundef 101, i32 noundef %8, i32 noundef %9, ptr noundef %27, i32 noundef %28, ptr noundef nonnull %116, i32 noundef %61) #6
  call void @cgedmdq_(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 nonnull %44, ptr noundef %10, ptr noundef nonnull %45, ptr noundef %12, ptr noundef nonnull %46, ptr noundef %14, ptr noundef nonnull %47, ptr noundef nonnull %48, ptr noundef %17, ptr noundef nonnull %49, ptr noundef %19, ptr noundef %20, ptr noundef nonnull %50, ptr noundef %22, ptr noundef %23, ptr noundef nonnull %51, ptr noundef %25, ptr noundef nonnull %52, ptr noundef %27, ptr noundef nonnull %53, ptr noundef %29, ptr noundef nonnull %54, ptr noundef %31, ptr noundef nonnull %55, ptr noundef %33, ptr noundef nonnull %56, ptr noundef nonnull %57, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1, i64 noundef 1) #6
  %120 = load i32, ptr %57, align 4, !tbaa !8
  %121 = icmp slt i32 %120, 0
  br i1 %121, label %122, label %124

122:                                              ; preds = %119
  %123 = add nsw i32 %120, -1
  store i32 %123, ptr %57, align 4, !tbaa !8
  br label %124

124:                                              ; preds = %122, %119
  %125 = load i32, ptr %43, align 4, !tbaa !8
  %126 = load i32, ptr %44, align 4, !tbaa !8
  %127 = load i32, ptr %45, align 4, !tbaa !8
  call void @LAPACKE_cge_trans(i32 noundef 102, i32 noundef %125, i32 noundef %126, ptr noundef nonnull %95, i32 noundef %61, ptr noundef %10, i32 noundef %127) #6
  %128 = load i32, ptr %43, align 4, !tbaa !8
  %129 = load i32, ptr %44, align 4, !tbaa !8
  %130 = load i32, ptr %46, align 4, !tbaa !8
  call void @LAPACKE_cge_trans(i32 noundef 102, i32 noundef %128, i32 noundef %129, ptr noundef nonnull %98, i32 noundef %61, ptr noundef %12, i32 noundef %130) #6
  %131 = load i32, ptr %43, align 4, !tbaa !8
  %132 = load i32, ptr %44, align 4, !tbaa !8
  %133 = load i32, ptr %47, align 4, !tbaa !8
  call void @LAPACKE_cge_trans(i32 noundef 102, i32 noundef %131, i32 noundef %132, ptr noundef nonnull %101, i32 noundef %61, ptr noundef %14, i32 noundef %133) #6
  %134 = load i32, ptr %43, align 4, !tbaa !8
  %135 = load i32, ptr %44, align 4, !tbaa !8
  %136 = load i32, ptr %50, align 4, !tbaa !8
  call void @LAPACKE_cge_trans(i32 noundef 102, i32 noundef %134, i32 noundef %135, ptr noundef nonnull %104, i32 noundef %61, ptr noundef %20, i32 noundef %136) #6
  %137 = load i32, ptr %43, align 4, !tbaa !8
  %138 = load i32, ptr %44, align 4, !tbaa !8
  %139 = load i32, ptr %51, align 4, !tbaa !8
  call void @LAPACKE_cge_trans(i32 noundef 102, i32 noundef %137, i32 noundef %138, ptr noundef nonnull %108, i32 noundef %61, ptr noundef %23, i32 noundef %139) #6
  %140 = load i32, ptr %43, align 4, !tbaa !8
  %141 = load i32, ptr %44, align 4, !tbaa !8
  %142 = load i32, ptr %52, align 4, !tbaa !8
  call void @LAPACKE_cge_trans(i32 noundef 102, i32 noundef %140, i32 noundef %141, ptr noundef nonnull %112, i32 noundef %61, ptr noundef %25, i32 noundef %142) #6
  %143 = load i32, ptr %43, align 4, !tbaa !8
  %144 = load i32, ptr %44, align 4, !tbaa !8
  %145 = load i32, ptr %53, align 4, !tbaa !8
  call void @LAPACKE_cge_trans(i32 noundef 102, i32 noundef %143, i32 noundef %144, ptr noundef nonnull %116, i32 noundef %61, ptr noundef %27, i32 noundef %145) #6
  call void @free(ptr noundef nonnull %116) #6
  %.pr.pr.pr.pre.pre.pre.pre = load i32, ptr %57, align 4, !tbaa !8
  br label %146

146:                                              ; preds = %124, %118
  %.pr.pr.pr.pre.pre.pre = phi i32 [ %.pr.pr.pr.pre.pre.pre.pre, %124 ], [ -1011, %118 ]
  call void @free(ptr noundef nonnull %112) #6
  br label %147

147:                                              ; preds = %146, %114
  %.pr.pr.pr.pre.pre = phi i32 [ %.pr.pr.pr.pre.pre.pre, %146 ], [ -1011, %114 ]
  call void @free(ptr noundef nonnull %108) #6
  br label %148

148:                                              ; preds = %147, %110
  %.pr.pr.pr.pre = phi i32 [ %.pr.pr.pr.pre.pre, %147 ], [ -1011, %110 ]
  call void @free(ptr noundef nonnull %104) #6
  br label %149

149:                                              ; preds = %148, %106
  %.pr.pr.pr = phi i32 [ %.pr.pr.pr.pre, %148 ], [ -1011, %106 ]
  call void @free(ptr noundef nonnull %101) #6
  %150 = icmp eq i32 %.pr.pr.pr, -1011
  call void @free(ptr noundef nonnull %98) #6
  call void @free(ptr noundef nonnull %95) #6
  br i1 %150, label %151, label %.thread130

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

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

.thread130:                                       ; preds = %58, %152, %149, %151, %86, %81, %78, %75, %72, %69, %66, %63
  %.1 = phi i32 [ %88, %86 ], [ -30, %81 ], [ -28, %78 ], [ -26, %75 ], [ -23, %72 ], [ -16, %69 ], [ -14, %66 ], [ -12, %63 ], [ %.pre, %151 ], [ %.pr.pr.pr, %149 ], [ -1, %152 ], [ %spec.select, %58 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #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 @cgedmdq_(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, 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_cge_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