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

; 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"

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c_true = external hidden global i64, align 8
@c_false = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @cgbrfsx_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26) #0 {
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca float, align 4
  %70 = alloca float, align 4
  %71 = alloca float, align 4
  %72 = alloca float, align 4
  %73 = alloca float, align 4
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca float, align 4
  %77 = alloca i64, align 8
  %78 = alloca i64, align 8
  %79 = alloca float, align 4
  %80 = alloca [1 x i8], align 1
  %81 = alloca i64, align 8
  %82 = alloca float, align 4
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca float, align 4
  %89 = alloca i32, align 4
  store ptr %0, ptr %29, align 8, !tbaa !5
  store ptr %1, ptr %30, align 8, !tbaa !5
  store ptr %2, ptr %31, align 8, !tbaa !5
  store ptr %3, ptr %32, align 8, !tbaa !5
  store ptr %4, ptr %33, align 8, !tbaa !5
  store ptr %5, ptr %34, align 8, !tbaa !5
  store ptr %6, ptr %35, align 8, !tbaa !5
  store ptr %7, ptr %36, align 8, !tbaa !5
  store ptr %8, ptr %37, align 8, !tbaa !5
  store ptr %9, ptr %38, align 8, !tbaa !5
  store ptr %10, ptr %39, align 8, !tbaa !5
  store ptr %11, ptr %40, align 8, !tbaa !5
  store ptr %12, ptr %41, align 8, !tbaa !5
  store ptr %13, ptr %42, align 8, !tbaa !5
  store ptr %14, ptr %43, align 8, !tbaa !5
  store ptr %15, ptr %44, align 8, !tbaa !5
  store ptr %16, ptr %45, align 8, !tbaa !5
  store ptr %17, ptr %46, align 8, !tbaa !5
  store ptr %18, ptr %47, align 8, !tbaa !5
  store ptr %19, ptr %48, align 8, !tbaa !5
  store ptr %20, ptr %49, align 8, !tbaa !5
  store ptr %21, ptr %50, align 8, !tbaa !5
  store ptr %22, ptr %51, align 8, !tbaa !5
  store ptr %23, ptr %52, align 8, !tbaa !5
  store ptr %24, ptr %53, align 8, !tbaa !5
  store ptr %25, ptr %54, align 8, !tbaa !5
  store ptr %26, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #4
  %90 = load ptr, ptr %34, align 8, !tbaa !5
  %91 = load i64, ptr %90, align 8, !tbaa !9
  store i64 %91, ptr %66, align 8, !tbaa !9
  %92 = load i64, ptr %66, align 8, !tbaa !9
  %93 = add nsw i64 1, %92
  store i64 %93, ptr %67, align 8, !tbaa !9
  %94 = load i64, ptr %67, align 8, !tbaa !9
  %95 = load ptr, ptr %50, align 8, !tbaa !5
  %96 = sub i64 0, %94
  %97 = getelementptr inbounds float, ptr %95, i64 %96
  store ptr %97, ptr %50, align 8, !tbaa !5
  %98 = load ptr, ptr %34, align 8, !tbaa !5
  %99 = load i64, ptr %98, align 8, !tbaa !9
  store i64 %99, ptr %64, align 8, !tbaa !9
  %100 = load i64, ptr %64, align 8, !tbaa !9
  %101 = add nsw i64 1, %100
  store i64 %101, ptr %65, align 8, !tbaa !9
  %102 = load i64, ptr %65, align 8, !tbaa !9
  %103 = load ptr, ptr %49, align 8, !tbaa !5
  %104 = sub i64 0, %102
  %105 = getelementptr inbounds float, ptr %103, i64 %104
  store ptr %105, ptr %49, align 8, !tbaa !5
  %106 = load ptr, ptr %36, align 8, !tbaa !5
  %107 = load i64, ptr %106, align 8, !tbaa !9
  store i64 %107, ptr %56, align 8, !tbaa !9
  %108 = load i64, ptr %56, align 8, !tbaa !9
  %109 = add nsw i64 1, %108
  store i64 %109, ptr %57, align 8, !tbaa !9
  %110 = load i64, ptr %57, align 8, !tbaa !9
  %111 = load ptr, ptr %35, align 8, !tbaa !5
  %112 = sub i64 0, %110
  %113 = getelementptr inbounds %struct.complex, ptr %111, i64 %112
  store ptr %113, ptr %35, align 8, !tbaa !5
  %114 = load ptr, ptr %38, align 8, !tbaa !5
  %115 = load i64, ptr %114, align 8, !tbaa !9
  store i64 %115, ptr %58, align 8, !tbaa !9
  %116 = load i64, ptr %58, align 8, !tbaa !9
  %117 = add nsw i64 1, %116
  store i64 %117, ptr %59, align 8, !tbaa !9
  %118 = load i64, ptr %59, align 8, !tbaa !9
  %119 = load ptr, ptr %37, align 8, !tbaa !5
  %120 = sub i64 0, %118
  %121 = getelementptr inbounds %struct.complex, ptr %119, i64 %120
  store ptr %121, ptr %37, align 8, !tbaa !5
  %122 = load ptr, ptr %39, align 8, !tbaa !5
  %123 = getelementptr inbounds i64, ptr %122, i32 -1
  store ptr %123, ptr %39, align 8, !tbaa !5
  %124 = load ptr, ptr %40, align 8, !tbaa !5
  %125 = getelementptr inbounds float, ptr %124, i32 -1
  store ptr %125, ptr %40, align 8, !tbaa !5
  %126 = load ptr, ptr %41, align 8, !tbaa !5
  %127 = getelementptr inbounds float, ptr %126, i32 -1
  store ptr %127, ptr %41, align 8, !tbaa !5
  %128 = load ptr, ptr %43, align 8, !tbaa !5
  %129 = load i64, ptr %128, align 8, !tbaa !9
  store i64 %129, ptr %60, align 8, !tbaa !9
  %130 = load i64, ptr %60, align 8, !tbaa !9
  %131 = add nsw i64 1, %130
  store i64 %131, ptr %61, align 8, !tbaa !9
  %132 = load i64, ptr %61, align 8, !tbaa !9
  %133 = load ptr, ptr %42, align 8, !tbaa !5
  %134 = sub i64 0, %132
  %135 = getelementptr inbounds %struct.complex, ptr %133, i64 %134
  store ptr %135, ptr %42, align 8, !tbaa !5
  %136 = load ptr, ptr %45, align 8, !tbaa !5
  %137 = load i64, ptr %136, align 8, !tbaa !9
  store i64 %137, ptr %62, align 8, !tbaa !9
  %138 = load i64, ptr %62, align 8, !tbaa !9
  %139 = add nsw i64 1, %138
  store i64 %139, ptr %63, align 8, !tbaa !9
  %140 = load i64, ptr %63, align 8, !tbaa !9
  %141 = load ptr, ptr %44, align 8, !tbaa !5
  %142 = sub i64 0, %140
  %143 = getelementptr inbounds %struct.complex, ptr %141, i64 %142
  store ptr %143, ptr %44, align 8, !tbaa !5
  %144 = load ptr, ptr %47, align 8, !tbaa !5
  %145 = getelementptr inbounds float, ptr %144, i32 -1
  store ptr %145, ptr %47, align 8, !tbaa !5
  %146 = load ptr, ptr %52, align 8, !tbaa !5
  %147 = getelementptr inbounds float, ptr %146, i32 -1
  store ptr %147, ptr %52, align 8, !tbaa !5
  %148 = load ptr, ptr %53, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.complex, ptr %148, i32 -1
  store ptr %149, ptr %53, align 8, !tbaa !5
  %150 = load ptr, ptr %54, align 8, !tbaa !5
  %151 = getelementptr inbounds float, ptr %150, i32 -1
  store ptr %151, ptr %54, align 8, !tbaa !5
  %152 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 0, ptr %152, align 8, !tbaa !9
  %153 = load ptr, ptr %29, align 8, !tbaa !5
  %154 = call i64 @ilatrans_(ptr noundef %153)
  store i64 %154, ptr %78, align 8, !tbaa !9
  store i64 1, ptr %74, align 8, !tbaa !9
  %155 = load ptr, ptr %51, align 8, !tbaa !5
  %156 = load i64, ptr %155, align 8, !tbaa !9
  %157 = icmp sge i64 %156, 1
  br i1 %157, label %158, label %172

158:                                              ; preds = %27
  %159 = load ptr, ptr %52, align 8, !tbaa !5
  %160 = getelementptr inbounds float, ptr %159, i64 1
  %161 = load float, ptr %160, align 4, !tbaa !11
  %162 = fcmp olt float %161, 0.000000e+00
  br i1 %162, label %163, label %166

163:                                              ; preds = %158
  %164 = load ptr, ptr %52, align 8, !tbaa !5
  %165 = getelementptr inbounds float, ptr %164, i64 1
  store float 1.000000e+00, ptr %165, align 4, !tbaa !11
  br label %171

166:                                              ; preds = %158
  %167 = load ptr, ptr %52, align 8, !tbaa !5
  %168 = getelementptr inbounds float, ptr %167, i64 1
  %169 = load float, ptr %168, align 4, !tbaa !11
  %170 = fptosi float %169 to i64
  store i64 %170, ptr %74, align 8, !tbaa !9
  br label %171

171:                                              ; preds = %166, %163
  br label %172

172:                                              ; preds = %171, %27
  %173 = load ptr, ptr %31, align 8, !tbaa !5
  %174 = load i64, ptr %173, align 8, !tbaa !9
  %175 = sitofp i64 %174 to float
  %176 = fpext float %175 to double
  %177 = call double @slamch_(ptr noundef @.str)
  %178 = fmul double %176, %177
  %179 = fptrunc double %178 to float
  store float %179, ptr %71, align 4, !tbaa !11
  store i64 10, ptr %86, align 8, !tbaa !9
  store float 5.000000e-01, ptr %88, align 4, !tbaa !11
  store float 2.500000e-01, ptr %72, align 4, !tbaa !11
  store i64 0, ptr %81, align 8, !tbaa !9
  %180 = load ptr, ptr %51, align 8, !tbaa !5
  %181 = load i64, ptr %180, align 8, !tbaa !9
  %182 = icmp sge i64 %181, 2
  br i1 %182, label %183, label %199

183:                                              ; preds = %172
  %184 = load ptr, ptr %52, align 8, !tbaa !5
  %185 = getelementptr inbounds float, ptr %184, i64 2
  %186 = load float, ptr %185, align 4, !tbaa !11
  %187 = fcmp olt float %186, 0.000000e+00
  br i1 %187, label %188, label %193

188:                                              ; preds = %183
  %189 = load i64, ptr %86, align 8, !tbaa !9
  %190 = sitofp i64 %189 to float
  %191 = load ptr, ptr %52, align 8, !tbaa !5
  %192 = getelementptr inbounds float, ptr %191, i64 2
  store float %190, ptr %192, align 4, !tbaa !11
  br label %198

193:                                              ; preds = %183
  %194 = load ptr, ptr %52, align 8, !tbaa !5
  %195 = getelementptr inbounds float, ptr %194, i64 2
  %196 = load float, ptr %195, align 4, !tbaa !11
  %197 = fptosi float %196 to i64
  store i64 %197, ptr %86, align 8, !tbaa !9
  br label %198

198:                                              ; preds = %193, %188
  br label %199

199:                                              ; preds = %198, %172
  %200 = load ptr, ptr %51, align 8, !tbaa !5
  %201 = load i64, ptr %200, align 8, !tbaa !9
  %202 = icmp sge i64 %201, 3
  br i1 %202, label %203, label %226

203:                                              ; preds = %199
  %204 = load ptr, ptr %52, align 8, !tbaa !5
  %205 = getelementptr inbounds float, ptr %204, i64 3
  %206 = load float, ptr %205, align 4, !tbaa !11
  %207 = fcmp olt float %206, 0.000000e+00
  br i1 %207, label %208, label %218

208:                                              ; preds = %203
  %209 = load i64, ptr %81, align 8, !tbaa !9
  %210 = icmp ne i64 %209, 0
  br i1 %210, label %211, label %214

211:                                              ; preds = %208
  %212 = load ptr, ptr %52, align 8, !tbaa !5
  %213 = getelementptr inbounds float, ptr %212, i64 3
  store float 0.000000e+00, ptr %213, align 4, !tbaa !11
  br label %217

214:                                              ; preds = %208
  %215 = load ptr, ptr %52, align 8, !tbaa !5
  %216 = getelementptr inbounds float, ptr %215, i64 3
  store float 1.000000e+00, ptr %216, align 4, !tbaa !11
  br label %217

217:                                              ; preds = %214, %211
  br label %225

218:                                              ; preds = %203
  %219 = load ptr, ptr %52, align 8, !tbaa !5
  %220 = getelementptr inbounds float, ptr %219, i64 3
  %221 = load float, ptr %220, align 4, !tbaa !11
  %222 = fcmp oeq float %221, 0.000000e+00
  %223 = zext i1 %222 to i32
  %224 = sext i32 %223 to i64
  store i64 %224, ptr %81, align 8, !tbaa !9
  br label %225

225:                                              ; preds = %218, %217
  br label %226

226:                                              ; preds = %225, %199
  %227 = load i64, ptr %74, align 8, !tbaa !9
  %228 = icmp eq i64 %227, 0
  br i1 %228, label %233, label %229

229:                                              ; preds = %226
  %230 = load ptr, ptr %48, align 8, !tbaa !5
  %231 = load i64, ptr %230, align 8, !tbaa !9
  %232 = icmp eq i64 %231, 0
  br i1 %232, label %233, label %234

233:                                              ; preds = %229, %226
  store i64 0, ptr %87, align 8, !tbaa !9
  br label %240

234:                                              ; preds = %229
  %235 = load i64, ptr %81, align 8, !tbaa !9
  %236 = icmp ne i64 %235, 0
  br i1 %236, label %237, label %238

237:                                              ; preds = %234
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %239

238:                                              ; preds = %234
  store i64 2, ptr %87, align 8, !tbaa !9
  br label %239

239:                                              ; preds = %238, %237
  br label %240

240:                                              ; preds = %239, %233
  %241 = load ptr, ptr %29, align 8, !tbaa !5
  %242 = call i64 @lsame_(ptr noundef %241, ptr noundef @.str.1)
  store i64 %242, ptr %84, align 8, !tbaa !9
  %243 = load ptr, ptr %30, align 8, !tbaa !5
  %244 = call i64 @lsame_(ptr noundef %243, ptr noundef @.str.2)
  %245 = icmp ne i64 %244, 0
  br i1 %245, label %250, label %246

246:                                              ; preds = %240
  %247 = load ptr, ptr %30, align 8, !tbaa !5
  %248 = call i64 @lsame_(ptr noundef %247, ptr noundef @.str.3)
  %249 = icmp ne i64 %248, 0
  br label %250

250:                                              ; preds = %246, %240
  %251 = phi i1 [ true, %240 ], [ %249, %246 ]
  %252 = zext i1 %251 to i32
  %253 = sext i32 %252 to i64
  store i64 %253, ptr %85, align 8, !tbaa !9
  %254 = load ptr, ptr %30, align 8, !tbaa !5
  %255 = call i64 @lsame_(ptr noundef %254, ptr noundef @.str.4)
  %256 = icmp ne i64 %255, 0
  br i1 %256, label %261, label %257

257:                                              ; preds = %250
  %258 = load ptr, ptr %30, align 8, !tbaa !5
  %259 = call i64 @lsame_(ptr noundef %258, ptr noundef @.str.3)
  %260 = icmp ne i64 %259, 0
  br label %261

261:                                              ; preds = %257, %250
  %262 = phi i1 [ true, %250 ], [ %260, %257 ]
  %263 = zext i1 %262 to i32
  %264 = sext i32 %263 to i64
  store i64 %264, ptr %83, align 8, !tbaa !9
  %265 = load i64, ptr %78, align 8, !tbaa !9
  %266 = icmp eq i64 %265, -1
  br i1 %266, label %267, label %269

267:                                              ; preds = %261
  %268 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -1, ptr %268, align 8, !tbaa !9
  br label %369

269:                                              ; preds = %261
  %270 = load i64, ptr %85, align 8, !tbaa !9
  %271 = icmp ne i64 %270, 0
  br i1 %271, label %281, label %272

272:                                              ; preds = %269
  %273 = load i64, ptr %83, align 8, !tbaa !9
  %274 = icmp ne i64 %273, 0
  br i1 %274, label %281, label %275

275:                                              ; preds = %272
  %276 = load ptr, ptr %30, align 8, !tbaa !5
  %277 = call i64 @lsame_(ptr noundef %276, ptr noundef @.str.1)
  %278 = icmp ne i64 %277, 0
  br i1 %278, label %281, label %279

279:                                              ; preds = %275
  %280 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -2, ptr %280, align 8, !tbaa !9
  br label %368

281:                                              ; preds = %275, %272, %269
  %282 = load ptr, ptr %31, align 8, !tbaa !5
  %283 = load i64, ptr %282, align 8, !tbaa !9
  %284 = icmp slt i64 %283, 0
  br i1 %284, label %285, label %287

285:                                              ; preds = %281
  %286 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -3, ptr %286, align 8, !tbaa !9
  br label %367

287:                                              ; preds = %281
  %288 = load ptr, ptr %32, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  %290 = icmp slt i64 %289, 0
  br i1 %290, label %291, label %293

291:                                              ; preds = %287
  %292 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -4, ptr %292, align 8, !tbaa !9
  br label %366

293:                                              ; preds = %287
  %294 = load ptr, ptr %33, align 8, !tbaa !5
  %295 = load i64, ptr %294, align 8, !tbaa !9
  %296 = icmp slt i64 %295, 0
  br i1 %296, label %297, label %299

297:                                              ; preds = %293
  %298 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -5, ptr %298, align 8, !tbaa !9
  br label %365

299:                                              ; preds = %293
  %300 = load ptr, ptr %34, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  %302 = icmp slt i64 %301, 0
  br i1 %302, label %303, label %305

303:                                              ; preds = %299
  %304 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -6, ptr %304, align 8, !tbaa !9
  br label %364

305:                                              ; preds = %299
  %306 = load ptr, ptr %36, align 8, !tbaa !5
  %307 = load i64, ptr %306, align 8, !tbaa !9
  %308 = load ptr, ptr %32, align 8, !tbaa !5
  %309 = load i64, ptr %308, align 8, !tbaa !9
  %310 = load ptr, ptr %33, align 8, !tbaa !5
  %311 = load i64, ptr %310, align 8, !tbaa !9
  %312 = add nsw i64 %309, %311
  %313 = add nsw i64 %312, 1
  %314 = icmp slt i64 %307, %313
  br i1 %314, label %315, label %317

315:                                              ; preds = %305
  %316 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -8, ptr %316, align 8, !tbaa !9
  br label %363

317:                                              ; preds = %305
  %318 = load ptr, ptr %38, align 8, !tbaa !5
  %319 = load i64, ptr %318, align 8, !tbaa !9
  %320 = load ptr, ptr %32, align 8, !tbaa !5
  %321 = load i64, ptr %320, align 8, !tbaa !9
  %322 = shl i64 %321, 1
  %323 = load ptr, ptr %33, align 8, !tbaa !5
  %324 = load i64, ptr %323, align 8, !tbaa !9
  %325 = add nsw i64 %322, %324
  %326 = add nsw i64 %325, 1
  %327 = icmp slt i64 %319, %326
  br i1 %327, label %328, label %330

328:                                              ; preds = %317
  %329 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -10, ptr %329, align 8, !tbaa !9
  br label %362

330:                                              ; preds = %317
  %331 = load ptr, ptr %43, align 8, !tbaa !5
  %332 = load i64, ptr %331, align 8, !tbaa !9
  %333 = load ptr, ptr %31, align 8, !tbaa !5
  %334 = load i64, ptr %333, align 8, !tbaa !9
  %335 = icmp sge i64 1, %334
  br i1 %335, label %336, label %337

336:                                              ; preds = %330
  br label %340

337:                                              ; preds = %330
  %338 = load ptr, ptr %31, align 8, !tbaa !5
  %339 = load i64, ptr %338, align 8, !tbaa !9
  br label %340

340:                                              ; preds = %337, %336
  %341 = phi i64 [ 1, %336 ], [ %339, %337 ]
  %342 = icmp slt i64 %332, %341
  br i1 %342, label %343, label %345

343:                                              ; preds = %340
  %344 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -13, ptr %344, align 8, !tbaa !9
  br label %361

345:                                              ; preds = %340
  %346 = load ptr, ptr %45, align 8, !tbaa !5
  %347 = load i64, ptr %346, align 8, !tbaa !9
  %348 = load ptr, ptr %31, align 8, !tbaa !5
  %349 = load i64, ptr %348, align 8, !tbaa !9
  %350 = icmp sge i64 1, %349
  br i1 %350, label %351, label %352

351:                                              ; preds = %345
  br label %355

352:                                              ; preds = %345
  %353 = load ptr, ptr %31, align 8, !tbaa !5
  %354 = load i64, ptr %353, align 8, !tbaa !9
  br label %355

355:                                              ; preds = %352, %351
  %356 = phi i64 [ 1, %351 ], [ %354, %352 ]
  %357 = icmp slt i64 %347, %356
  br i1 %357, label %358, label %360

358:                                              ; preds = %355
  %359 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -15, ptr %359, align 8, !tbaa !9
  br label %360

360:                                              ; preds = %358, %355
  br label %361

361:                                              ; preds = %360, %343
  br label %362

362:                                              ; preds = %361, %328
  br label %363

363:                                              ; preds = %362, %315
  br label %364

364:                                              ; preds = %363, %303
  br label %365

365:                                              ; preds = %364, %297
  br label %366

366:                                              ; preds = %365, %291
  br label %367

367:                                              ; preds = %366, %285
  br label %368

368:                                              ; preds = %367, %279
  br label %369

369:                                              ; preds = %368, %267
  %370 = load ptr, ptr %55, align 8, !tbaa !5
  %371 = load i64, ptr %370, align 8, !tbaa !9
  %372 = icmp ne i64 %371, 0
  br i1 %372, label %373, label %378

373:                                              ; preds = %369
  %374 = load ptr, ptr %55, align 8, !tbaa !5
  %375 = load i64, ptr %374, align 8, !tbaa !9
  %376 = sub nsw i64 0, %375
  store i64 %376, ptr %68, align 8, !tbaa !9
  %377 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %68)
  store i32 0, ptr %28, align 4
  store i32 1, ptr %89, align 4
  br label %1017

378:                                              ; preds = %369
  %379 = load ptr, ptr %31, align 8, !tbaa !5
  %380 = load i64, ptr %379, align 8, !tbaa !9
  %381 = icmp eq i64 %380, 0
  br i1 %381, label %386, label %382

382:                                              ; preds = %378
  %383 = load ptr, ptr %34, align 8, !tbaa !5
  %384 = load i64, ptr %383, align 8, !tbaa !9
  %385 = icmp eq i64 %384, 0
  br i1 %385, label %386, label %453

386:                                              ; preds = %382, %378
  %387 = load ptr, ptr %46, align 8, !tbaa !5
  store float 1.000000e+00, ptr %387, align 4, !tbaa !11
  %388 = load ptr, ptr %34, align 8, !tbaa !5
  %389 = load i64, ptr %388, align 8, !tbaa !9
  store i64 %389, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %390

390:                                              ; preds = %449, %386
  %391 = load i64, ptr %75, align 8, !tbaa !9
  %392 = load i64, ptr %68, align 8, !tbaa !9
  %393 = icmp sle i64 %391, %392
  br i1 %393, label %394, label %452

394:                                              ; preds = %390
  %395 = load ptr, ptr %47, align 8, !tbaa !5
  %396 = load i64, ptr %75, align 8, !tbaa !9
  %397 = getelementptr inbounds float, ptr %395, i64 %396
  store float 0.000000e+00, ptr %397, align 4, !tbaa !11
  %398 = load ptr, ptr %48, align 8, !tbaa !5
  %399 = load i64, ptr %398, align 8, !tbaa !9
  %400 = icmp sge i64 %399, 1
  br i1 %400, label %401, label %412

401:                                              ; preds = %394
  %402 = load ptr, ptr %49, align 8, !tbaa !5
  %403 = load i64, ptr %75, align 8, !tbaa !9
  %404 = load i64, ptr %64, align 8, !tbaa !9
  %405 = add nsw i64 %403, %404
  %406 = getelementptr inbounds float, ptr %402, i64 %405
  store float 1.000000e+00, ptr %406, align 4, !tbaa !11
  %407 = load ptr, ptr %50, align 8, !tbaa !5
  %408 = load i64, ptr %75, align 8, !tbaa !9
  %409 = load i64, ptr %66, align 8, !tbaa !9
  %410 = add nsw i64 %408, %409
  %411 = getelementptr inbounds float, ptr %407, i64 %410
  store float 1.000000e+00, ptr %411, align 4, !tbaa !11
  br label %448

412:                                              ; preds = %394
  %413 = load ptr, ptr %48, align 8, !tbaa !5
  %414 = load i64, ptr %413, align 8, !tbaa !9
  %415 = icmp sge i64 %414, 2
  br i1 %415, label %416, label %429

416:                                              ; preds = %412
  %417 = load ptr, ptr %49, align 8, !tbaa !5
  %418 = load i64, ptr %75, align 8, !tbaa !9
  %419 = load i64, ptr %64, align 8, !tbaa !9
  %420 = shl i64 %419, 1
  %421 = add nsw i64 %418, %420
  %422 = getelementptr inbounds float, ptr %417, i64 %421
  store float 0.000000e+00, ptr %422, align 4, !tbaa !11
  %423 = load ptr, ptr %50, align 8, !tbaa !5
  %424 = load i64, ptr %75, align 8, !tbaa !9
  %425 = load i64, ptr %66, align 8, !tbaa !9
  %426 = shl i64 %425, 1
  %427 = add nsw i64 %424, %426
  %428 = getelementptr inbounds float, ptr %423, i64 %427
  store float 0.000000e+00, ptr %428, align 4, !tbaa !11
  br label %447

429:                                              ; preds = %412
  %430 = load ptr, ptr %48, align 8, !tbaa !5
  %431 = load i64, ptr %430, align 8, !tbaa !9
  %432 = icmp sge i64 %431, 3
  br i1 %432, label %433, label %446

433:                                              ; preds = %429
  %434 = load ptr, ptr %49, align 8, !tbaa !5
  %435 = load i64, ptr %75, align 8, !tbaa !9
  %436 = load i64, ptr %64, align 8, !tbaa !9
  %437 = mul nsw i64 %436, 3
  %438 = add nsw i64 %435, %437
  %439 = getelementptr inbounds float, ptr %434, i64 %438
  store float 1.000000e+00, ptr %439, align 4, !tbaa !11
  %440 = load ptr, ptr %50, align 8, !tbaa !5
  %441 = load i64, ptr %75, align 8, !tbaa !9
  %442 = load i64, ptr %66, align 8, !tbaa !9
  %443 = mul nsw i64 %442, 3
  %444 = add nsw i64 %441, %443
  %445 = getelementptr inbounds float, ptr %440, i64 %444
  store float 1.000000e+00, ptr %445, align 4, !tbaa !11
  br label %446

446:                                              ; preds = %433, %429
  br label %447

447:                                              ; preds = %446, %416
  br label %448

448:                                              ; preds = %447, %401
  br label %449

449:                                              ; preds = %448
  %450 = load i64, ptr %75, align 8, !tbaa !9
  %451 = add nsw i64 %450, 1
  store i64 %451, ptr %75, align 8, !tbaa !9
  br label %390, !llvm.loop !13

452:                                              ; preds = %390
  store i32 0, ptr %28, align 4
  store i32 1, ptr %89, align 4
  br label %1017

453:                                              ; preds = %382
  %454 = load ptr, ptr %46, align 8, !tbaa !5
  store float 0.000000e+00, ptr %454, align 4, !tbaa !11
  %455 = load ptr, ptr %34, align 8, !tbaa !5
  %456 = load i64, ptr %455, align 8, !tbaa !9
  store i64 %456, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %457

457:                                              ; preds = %516, %453
  %458 = load i64, ptr %75, align 8, !tbaa !9
  %459 = load i64, ptr %68, align 8, !tbaa !9
  %460 = icmp sle i64 %458, %459
  br i1 %460, label %461, label %519

461:                                              ; preds = %457
  %462 = load ptr, ptr %47, align 8, !tbaa !5
  %463 = load i64, ptr %75, align 8, !tbaa !9
  %464 = getelementptr inbounds float, ptr %462, i64 %463
  store float 1.000000e+00, ptr %464, align 4, !tbaa !11
  %465 = load ptr, ptr %48, align 8, !tbaa !5
  %466 = load i64, ptr %465, align 8, !tbaa !9
  %467 = icmp sge i64 %466, 1
  br i1 %467, label %468, label %479

468:                                              ; preds = %461
  %469 = load ptr, ptr %49, align 8, !tbaa !5
  %470 = load i64, ptr %75, align 8, !tbaa !9
  %471 = load i64, ptr %64, align 8, !tbaa !9
  %472 = add nsw i64 %470, %471
  %473 = getelementptr inbounds float, ptr %469, i64 %472
  store float 1.000000e+00, ptr %473, align 4, !tbaa !11
  %474 = load ptr, ptr %50, align 8, !tbaa !5
  %475 = load i64, ptr %75, align 8, !tbaa !9
  %476 = load i64, ptr %66, align 8, !tbaa !9
  %477 = add nsw i64 %475, %476
  %478 = getelementptr inbounds float, ptr %474, i64 %477
  store float 1.000000e+00, ptr %478, align 4, !tbaa !11
  br label %515

479:                                              ; preds = %461
  %480 = load ptr, ptr %48, align 8, !tbaa !5
  %481 = load i64, ptr %480, align 8, !tbaa !9
  %482 = icmp sge i64 %481, 2
  br i1 %482, label %483, label %496

483:                                              ; preds = %479
  %484 = load ptr, ptr %49, align 8, !tbaa !5
  %485 = load i64, ptr %75, align 8, !tbaa !9
  %486 = load i64, ptr %64, align 8, !tbaa !9
  %487 = shl i64 %486, 1
  %488 = add nsw i64 %485, %487
  %489 = getelementptr inbounds float, ptr %484, i64 %488
  store float 1.000000e+00, ptr %489, align 4, !tbaa !11
  %490 = load ptr, ptr %50, align 8, !tbaa !5
  %491 = load i64, ptr %75, align 8, !tbaa !9
  %492 = load i64, ptr %66, align 8, !tbaa !9
  %493 = shl i64 %492, 1
  %494 = add nsw i64 %491, %493
  %495 = getelementptr inbounds float, ptr %490, i64 %494
  store float 1.000000e+00, ptr %495, align 4, !tbaa !11
  br label %514

496:                                              ; preds = %479
  %497 = load ptr, ptr %48, align 8, !tbaa !5
  %498 = load i64, ptr %497, align 8, !tbaa !9
  %499 = icmp sge i64 %498, 3
  br i1 %499, label %500, label %513

500:                                              ; preds = %496
  %501 = load ptr, ptr %49, align 8, !tbaa !5
  %502 = load i64, ptr %75, align 8, !tbaa !9
  %503 = load i64, ptr %64, align 8, !tbaa !9
  %504 = mul nsw i64 %503, 3
  %505 = add nsw i64 %502, %504
  %506 = getelementptr inbounds float, ptr %501, i64 %505
  store float 0.000000e+00, ptr %506, align 4, !tbaa !11
  %507 = load ptr, ptr %50, align 8, !tbaa !5
  %508 = load i64, ptr %75, align 8, !tbaa !9
  %509 = load i64, ptr %66, align 8, !tbaa !9
  %510 = mul nsw i64 %509, 3
  %511 = add nsw i64 %508, %510
  %512 = getelementptr inbounds float, ptr %507, i64 %511
  store float 0.000000e+00, ptr %512, align 4, !tbaa !11
  br label %513

513:                                              ; preds = %500, %496
  br label %514

514:                                              ; preds = %513, %483
  br label %515

515:                                              ; preds = %514, %468
  br label %516

516:                                              ; preds = %515
  %517 = load i64, ptr %75, align 8, !tbaa !9
  %518 = add nsw i64 %517, 1
  store i64 %518, ptr %75, align 8, !tbaa !9
  br label %457, !llvm.loop !15

519:                                              ; preds = %457
  %520 = load i64, ptr %84, align 8, !tbaa !9
  %521 = icmp ne i64 %520, 0
  br i1 %521, label %522, label %524

522:                                              ; preds = %519
  %523 = getelementptr inbounds [1 x i8], ptr %80, i64 0, i64 0
  store i8 73, ptr %523, align 1, !tbaa !16
  br label %526

524:                                              ; preds = %519
  %525 = getelementptr inbounds [1 x i8], ptr %80, i64 0, i64 0
  store i8 49, ptr %525, align 1, !tbaa !16
  br label %526

526:                                              ; preds = %524, %522
  %527 = getelementptr inbounds [1 x i8], ptr %80, i64 0, i64 0
  %528 = load ptr, ptr %31, align 8, !tbaa !5
  %529 = load ptr, ptr %32, align 8, !tbaa !5
  %530 = load ptr, ptr %33, align 8, !tbaa !5
  %531 = load ptr, ptr %35, align 8, !tbaa !5
  %532 = load i64, ptr %57, align 8, !tbaa !9
  %533 = getelementptr inbounds %struct.complex, ptr %531, i64 %532
  %534 = load ptr, ptr %36, align 8, !tbaa !5
  %535 = load ptr, ptr %54, align 8, !tbaa !5
  %536 = getelementptr inbounds float, ptr %535, i64 1
  %537 = call double @clangb_(ptr noundef %527, ptr noundef %528, ptr noundef %529, ptr noundef %530, ptr noundef %533, ptr noundef %534, ptr noundef %536)
  %538 = fptrunc double %537 to float
  store float %538, ptr %82, align 4, !tbaa !11
  %539 = getelementptr inbounds [1 x i8], ptr %80, i64 0, i64 0
  %540 = load ptr, ptr %31, align 8, !tbaa !5
  %541 = load ptr, ptr %32, align 8, !tbaa !5
  %542 = load ptr, ptr %33, align 8, !tbaa !5
  %543 = load ptr, ptr %37, align 8, !tbaa !5
  %544 = load i64, ptr %59, align 8, !tbaa !9
  %545 = getelementptr inbounds %struct.complex, ptr %543, i64 %544
  %546 = load ptr, ptr %38, align 8, !tbaa !5
  %547 = load ptr, ptr %39, align 8, !tbaa !5
  %548 = getelementptr inbounds i64, ptr %547, i64 1
  %549 = load ptr, ptr %46, align 8, !tbaa !5
  %550 = load ptr, ptr %53, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.complex, ptr %550, i64 1
  %552 = load ptr, ptr %54, align 8, !tbaa !5
  %553 = getelementptr inbounds float, ptr %552, i64 1
  %554 = load ptr, ptr %55, align 8, !tbaa !5
  %555 = call i32 @cgbcon_(ptr noundef %539, ptr noundef %540, ptr noundef %541, ptr noundef %542, ptr noundef %545, ptr noundef %546, ptr noundef %548, ptr noundef %82, ptr noundef %549, ptr noundef %551, ptr noundef %553, ptr noundef %554)
  %556 = load i64, ptr %74, align 8, !tbaa !9
  %557 = icmp ne i64 %556, 0
  br i1 %557, label %558, label %657

558:                                              ; preds = %526
  %559 = call i64 @ilaprec_(ptr noundef @.str.6)
  store i64 %559, ptr %77, align 8, !tbaa !9
  %560 = load i64, ptr %84, align 8, !tbaa !9
  %561 = icmp ne i64 %560, 0
  br i1 %561, label %562, label %609

562:                                              ; preds = %558
  %563 = load ptr, ptr %31, align 8, !tbaa !5
  %564 = load ptr, ptr %32, align 8, !tbaa !5
  %565 = load ptr, ptr %33, align 8, !tbaa !5
  %566 = load ptr, ptr %34, align 8, !tbaa !5
  %567 = load ptr, ptr %35, align 8, !tbaa !5
  %568 = load i64, ptr %57, align 8, !tbaa !9
  %569 = getelementptr inbounds %struct.complex, ptr %567, i64 %568
  %570 = load ptr, ptr %36, align 8, !tbaa !5
  %571 = load ptr, ptr %37, align 8, !tbaa !5
  %572 = load i64, ptr %59, align 8, !tbaa !9
  %573 = getelementptr inbounds %struct.complex, ptr %571, i64 %572
  %574 = load ptr, ptr %38, align 8, !tbaa !5
  %575 = load ptr, ptr %39, align 8, !tbaa !5
  %576 = getelementptr inbounds i64, ptr %575, i64 1
  %577 = load ptr, ptr %41, align 8, !tbaa !5
  %578 = getelementptr inbounds float, ptr %577, i64 1
  %579 = load ptr, ptr %42, align 8, !tbaa !5
  %580 = load i64, ptr %61, align 8, !tbaa !9
  %581 = getelementptr inbounds %struct.complex, ptr %579, i64 %580
  %582 = load ptr, ptr %43, align 8, !tbaa !5
  %583 = load ptr, ptr %44, align 8, !tbaa !5
  %584 = load i64, ptr %63, align 8, !tbaa !9
  %585 = getelementptr inbounds %struct.complex, ptr %583, i64 %584
  %586 = load ptr, ptr %45, align 8, !tbaa !5
  %587 = load ptr, ptr %47, align 8, !tbaa !5
  %588 = getelementptr inbounds float, ptr %587, i64 1
  %589 = load ptr, ptr %49, align 8, !tbaa !5
  %590 = load i64, ptr %65, align 8, !tbaa !9
  %591 = getelementptr inbounds float, ptr %589, i64 %590
  %592 = load ptr, ptr %50, align 8, !tbaa !5
  %593 = load i64, ptr %67, align 8, !tbaa !9
  %594 = getelementptr inbounds float, ptr %592, i64 %593
  %595 = load ptr, ptr %53, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.complex, ptr %595, i64 1
  %597 = load ptr, ptr %54, align 8, !tbaa !5
  %598 = getelementptr inbounds float, ptr %597, i64 1
  %599 = load ptr, ptr %53, align 8, !tbaa !5
  %600 = load ptr, ptr %31, align 8, !tbaa !5
  %601 = load i64, ptr %600, align 8, !tbaa !9
  %602 = add nsw i64 %601, 1
  %603 = getelementptr inbounds %struct.complex, ptr %599, i64 %602
  %604 = load ptr, ptr %54, align 8, !tbaa !5
  %605 = getelementptr inbounds float, ptr %604, i64 1
  %606 = load ptr, ptr %46, align 8, !tbaa !5
  %607 = load ptr, ptr %55, align 8, !tbaa !5
  %608 = call i32 @cla_gbrfsx_extended__(ptr noundef %77, ptr noundef %78, ptr noundef %563, ptr noundef %564, ptr noundef %565, ptr noundef %566, ptr noundef %569, ptr noundef %570, ptr noundef %573, ptr noundef %574, ptr noundef %576, ptr noundef %83, ptr noundef %578, ptr noundef %581, ptr noundef %582, ptr noundef %585, ptr noundef %586, ptr noundef %588, ptr noundef %87, ptr noundef %591, ptr noundef %594, ptr noundef %596, ptr noundef %598, ptr noundef %603, ptr noundef %605, ptr noundef %606, ptr noundef %86, ptr noundef %88, ptr noundef %72, ptr noundef %81, ptr noundef %607)
  br label %656

609:                                              ; preds = %558
  %610 = load ptr, ptr %31, align 8, !tbaa !5
  %611 = load ptr, ptr %32, align 8, !tbaa !5
  %612 = load ptr, ptr %33, align 8, !tbaa !5
  %613 = load ptr, ptr %34, align 8, !tbaa !5
  %614 = load ptr, ptr %35, align 8, !tbaa !5
  %615 = load i64, ptr %57, align 8, !tbaa !9
  %616 = getelementptr inbounds %struct.complex, ptr %614, i64 %615
  %617 = load ptr, ptr %36, align 8, !tbaa !5
  %618 = load ptr, ptr %37, align 8, !tbaa !5
  %619 = load i64, ptr %59, align 8, !tbaa !9
  %620 = getelementptr inbounds %struct.complex, ptr %618, i64 %619
  %621 = load ptr, ptr %38, align 8, !tbaa !5
  %622 = load ptr, ptr %39, align 8, !tbaa !5
  %623 = getelementptr inbounds i64, ptr %622, i64 1
  %624 = load ptr, ptr %40, align 8, !tbaa !5
  %625 = getelementptr inbounds float, ptr %624, i64 1
  %626 = load ptr, ptr %42, align 8, !tbaa !5
  %627 = load i64, ptr %61, align 8, !tbaa !9
  %628 = getelementptr inbounds %struct.complex, ptr %626, i64 %627
  %629 = load ptr, ptr %43, align 8, !tbaa !5
  %630 = load ptr, ptr %44, align 8, !tbaa !5
  %631 = load i64, ptr %63, align 8, !tbaa !9
  %632 = getelementptr inbounds %struct.complex, ptr %630, i64 %631
  %633 = load ptr, ptr %45, align 8, !tbaa !5
  %634 = load ptr, ptr %47, align 8, !tbaa !5
  %635 = getelementptr inbounds float, ptr %634, i64 1
  %636 = load ptr, ptr %49, align 8, !tbaa !5
  %637 = load i64, ptr %65, align 8, !tbaa !9
  %638 = getelementptr inbounds float, ptr %636, i64 %637
  %639 = load ptr, ptr %50, align 8, !tbaa !5
  %640 = load i64, ptr %67, align 8, !tbaa !9
  %641 = getelementptr inbounds float, ptr %639, i64 %640
  %642 = load ptr, ptr %53, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.complex, ptr %642, i64 1
  %644 = load ptr, ptr %54, align 8, !tbaa !5
  %645 = getelementptr inbounds float, ptr %644, i64 1
  %646 = load ptr, ptr %53, align 8, !tbaa !5
  %647 = load ptr, ptr %31, align 8, !tbaa !5
  %648 = load i64, ptr %647, align 8, !tbaa !9
  %649 = add nsw i64 %648, 1
  %650 = getelementptr inbounds %struct.complex, ptr %646, i64 %649
  %651 = load ptr, ptr %54, align 8, !tbaa !5
  %652 = getelementptr inbounds float, ptr %651, i64 1
  %653 = load ptr, ptr %46, align 8, !tbaa !5
  %654 = load ptr, ptr %55, align 8, !tbaa !5
  %655 = call i32 @cla_gbrfsx_extended__(ptr noundef %77, ptr noundef %78, ptr noundef %610, ptr noundef %611, ptr noundef %612, ptr noundef %613, ptr noundef %616, ptr noundef %617, ptr noundef %620, ptr noundef %621, ptr noundef %623, ptr noundef %85, ptr noundef %625, ptr noundef %628, ptr noundef %629, ptr noundef %632, ptr noundef %633, ptr noundef %635, ptr noundef %87, ptr noundef %638, ptr noundef %641, ptr noundef %643, ptr noundef %645, ptr noundef %650, ptr noundef %652, ptr noundef %653, ptr noundef %86, ptr noundef %88, ptr noundef %72, ptr noundef %81, ptr noundef %654)
  br label %656

656:                                              ; preds = %609, %562
  br label %657

657:                                              ; preds = %656, %526
  store float 1.000000e+01, ptr %69, align 4, !tbaa !11
  %658 = load ptr, ptr %31, align 8, !tbaa !5
  %659 = load i64, ptr %658, align 8, !tbaa !9
  %660 = sitofp i64 %659 to float
  %661 = fpext float %660 to double
  %662 = call double @sqrt(double noundef %661) #4
  %663 = fptrunc double %662 to float
  store float %663, ptr %70, align 4, !tbaa !11
  %664 = load float, ptr %69, align 4, !tbaa !11
  %665 = load float, ptr %70, align 4, !tbaa !11
  %666 = fcmp oge float %664, %665
  br i1 %666, label %667, label %669

667:                                              ; preds = %657
  %668 = load float, ptr %69, align 4, !tbaa !11
  br label %671

669:                                              ; preds = %657
  %670 = load float, ptr %70, align 4, !tbaa !11
  br label %671

671:                                              ; preds = %669, %667
  %672 = phi float [ %668, %667 ], [ %670, %669 ]
  %673 = fpext float %672 to double
  %674 = call double @slamch_(ptr noundef @.str)
  %675 = fmul double %673, %674
  %676 = fptrunc double %675 to float
  store float %676, ptr %73, align 4, !tbaa !11
  %677 = load ptr, ptr %48, align 8, !tbaa !5
  %678 = load i64, ptr %677, align 8, !tbaa !9
  %679 = icmp sge i64 %678, 1
  br i1 %679, label %680, label %864

680:                                              ; preds = %671
  %681 = load i64, ptr %87, align 8, !tbaa !9
  %682 = icmp sge i64 %681, 1
  br i1 %682, label %683, label %864

683:                                              ; preds = %680
  %684 = load i64, ptr %83, align 8, !tbaa !9
  %685 = icmp ne i64 %684, 0
  br i1 %685, label %686, label %713

686:                                              ; preds = %683
  %687 = load i64, ptr %84, align 8, !tbaa !9
  %688 = icmp ne i64 %687, 0
  br i1 %688, label %689, label %713

689:                                              ; preds = %686
  %690 = load ptr, ptr %29, align 8, !tbaa !5
  %691 = load ptr, ptr %31, align 8, !tbaa !5
  %692 = load ptr, ptr %32, align 8, !tbaa !5
  %693 = load ptr, ptr %33, align 8, !tbaa !5
  %694 = load ptr, ptr %35, align 8, !tbaa !5
  %695 = load i64, ptr %57, align 8, !tbaa !9
  %696 = getelementptr inbounds %struct.complex, ptr %694, i64 %695
  %697 = load ptr, ptr %36, align 8, !tbaa !5
  %698 = load ptr, ptr %37, align 8, !tbaa !5
  %699 = load i64, ptr %59, align 8, !tbaa !9
  %700 = getelementptr inbounds %struct.complex, ptr %698, i64 %699
  %701 = load ptr, ptr %38, align 8, !tbaa !5
  %702 = load ptr, ptr %39, align 8, !tbaa !5
  %703 = getelementptr inbounds i64, ptr %702, i64 1
  %704 = load ptr, ptr %41, align 8, !tbaa !5
  %705 = getelementptr inbounds float, ptr %704, i64 1
  %706 = load ptr, ptr %55, align 8, !tbaa !5
  %707 = load ptr, ptr %53, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.complex, ptr %707, i64 1
  %709 = load ptr, ptr %54, align 8, !tbaa !5
  %710 = getelementptr inbounds float, ptr %709, i64 1
  %711 = call double @cla_gbrcond_c__(ptr noundef %690, ptr noundef %691, ptr noundef %692, ptr noundef %693, ptr noundef %696, ptr noundef %697, ptr noundef %700, ptr noundef %701, ptr noundef %703, ptr noundef %705, ptr noundef @c_true, ptr noundef %706, ptr noundef %708, ptr noundef %710, i64 noundef 1)
  %712 = fptrunc double %711 to float
  store float %712, ptr %76, align 4, !tbaa !11
  br label %768

713:                                              ; preds = %686, %683
  %714 = load i64, ptr %85, align 8, !tbaa !9
  %715 = icmp ne i64 %714, 0
  br i1 %715, label %716, label %743

716:                                              ; preds = %713
  %717 = load i64, ptr %84, align 8, !tbaa !9
  %718 = icmp ne i64 %717, 0
  br i1 %718, label %743, label %719

719:                                              ; preds = %716
  %720 = load ptr, ptr %29, align 8, !tbaa !5
  %721 = load ptr, ptr %31, align 8, !tbaa !5
  %722 = load ptr, ptr %32, align 8, !tbaa !5
  %723 = load ptr, ptr %33, align 8, !tbaa !5
  %724 = load ptr, ptr %35, align 8, !tbaa !5
  %725 = load i64, ptr %57, align 8, !tbaa !9
  %726 = getelementptr inbounds %struct.complex, ptr %724, i64 %725
  %727 = load ptr, ptr %36, align 8, !tbaa !5
  %728 = load ptr, ptr %37, align 8, !tbaa !5
  %729 = load i64, ptr %59, align 8, !tbaa !9
  %730 = getelementptr inbounds %struct.complex, ptr %728, i64 %729
  %731 = load ptr, ptr %38, align 8, !tbaa !5
  %732 = load ptr, ptr %39, align 8, !tbaa !5
  %733 = getelementptr inbounds i64, ptr %732, i64 1
  %734 = load ptr, ptr %40, align 8, !tbaa !5
  %735 = getelementptr inbounds float, ptr %734, i64 1
  %736 = load ptr, ptr %55, align 8, !tbaa !5
  %737 = load ptr, ptr %53, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.complex, ptr %737, i64 1
  %739 = load ptr, ptr %54, align 8, !tbaa !5
  %740 = getelementptr inbounds float, ptr %739, i64 1
  %741 = call double @cla_gbrcond_c__(ptr noundef %720, ptr noundef %721, ptr noundef %722, ptr noundef %723, ptr noundef %726, ptr noundef %727, ptr noundef %730, ptr noundef %731, ptr noundef %733, ptr noundef %735, ptr noundef @c_true, ptr noundef %736, ptr noundef %738, ptr noundef %740, i64 noundef 1)
  %742 = fptrunc double %741 to float
  store float %742, ptr %76, align 4, !tbaa !11
  br label %767

743:                                              ; preds = %716, %713
  %744 = load ptr, ptr %29, align 8, !tbaa !5
  %745 = load ptr, ptr %31, align 8, !tbaa !5
  %746 = load ptr, ptr %32, align 8, !tbaa !5
  %747 = load ptr, ptr %33, align 8, !tbaa !5
  %748 = load ptr, ptr %35, align 8, !tbaa !5
  %749 = load i64, ptr %57, align 8, !tbaa !9
  %750 = getelementptr inbounds %struct.complex, ptr %748, i64 %749
  %751 = load ptr, ptr %36, align 8, !tbaa !5
  %752 = load ptr, ptr %37, align 8, !tbaa !5
  %753 = load i64, ptr %59, align 8, !tbaa !9
  %754 = getelementptr inbounds %struct.complex, ptr %752, i64 %753
  %755 = load ptr, ptr %38, align 8, !tbaa !5
  %756 = load ptr, ptr %39, align 8, !tbaa !5
  %757 = getelementptr inbounds i64, ptr %756, i64 1
  %758 = load ptr, ptr %41, align 8, !tbaa !5
  %759 = getelementptr inbounds float, ptr %758, i64 1
  %760 = load ptr, ptr %55, align 8, !tbaa !5
  %761 = load ptr, ptr %53, align 8, !tbaa !5
  %762 = getelementptr inbounds %struct.complex, ptr %761, i64 1
  %763 = load ptr, ptr %54, align 8, !tbaa !5
  %764 = getelementptr inbounds float, ptr %763, i64 1
  %765 = call double @cla_gbrcond_c__(ptr noundef %744, ptr noundef %745, ptr noundef %746, ptr noundef %747, ptr noundef %750, ptr noundef %751, ptr noundef %754, ptr noundef %755, ptr noundef %757, ptr noundef %759, ptr noundef @c_false, ptr noundef %760, ptr noundef %762, ptr noundef %764, i64 noundef 1)
  %766 = fptrunc double %765 to float
  store float %766, ptr %76, align 4, !tbaa !11
  br label %767

767:                                              ; preds = %743, %719
  br label %768

768:                                              ; preds = %767, %689
  %769 = load ptr, ptr %34, align 8, !tbaa !5
  %770 = load i64, ptr %769, align 8, !tbaa !9
  store i64 %770, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %771

771:                                              ; preds = %860, %768
  %772 = load i64, ptr %75, align 8, !tbaa !9
  %773 = load i64, ptr %68, align 8, !tbaa !9
  %774 = icmp sle i64 %772, %773
  br i1 %774, label %775, label %863

775:                                              ; preds = %771
  %776 = load ptr, ptr %48, align 8, !tbaa !5
  %777 = load i64, ptr %776, align 8, !tbaa !9
  %778 = icmp sge i64 %777, 2
  br i1 %778, label %779, label %795

779:                                              ; preds = %775
  %780 = load ptr, ptr %49, align 8, !tbaa !5
  %781 = load i64, ptr %75, align 8, !tbaa !9
  %782 = load i64, ptr %64, align 8, !tbaa !9
  %783 = shl i64 %782, 1
  %784 = add nsw i64 %781, %783
  %785 = getelementptr inbounds float, ptr %780, i64 %784
  %786 = load float, ptr %785, align 4, !tbaa !11
  %787 = fcmp ogt float %786, 1.000000e+00
  br i1 %787, label %788, label %795

788:                                              ; preds = %779
  %789 = load ptr, ptr %49, align 8, !tbaa !5
  %790 = load i64, ptr %75, align 8, !tbaa !9
  %791 = load i64, ptr %64, align 8, !tbaa !9
  %792 = shl i64 %791, 1
  %793 = add nsw i64 %790, %792
  %794 = getelementptr inbounds float, ptr %789, i64 %793
  store float 1.000000e+00, ptr %794, align 4, !tbaa !11
  br label %795

795:                                              ; preds = %788, %779, %775
  %796 = load float, ptr %76, align 4, !tbaa !11
  %797 = load float, ptr %71, align 4, !tbaa !11
  %798 = fcmp olt float %796, %797
  br i1 %798, label %799, label %823

799:                                              ; preds = %795
  %800 = load ptr, ptr %49, align 8, !tbaa !5
  %801 = load i64, ptr %75, align 8, !tbaa !9
  %802 = load i64, ptr %64, align 8, !tbaa !9
  %803 = shl i64 %802, 1
  %804 = add nsw i64 %801, %803
  %805 = getelementptr inbounds float, ptr %800, i64 %804
  store float 1.000000e+00, ptr %805, align 4, !tbaa !11
  %806 = load ptr, ptr %49, align 8, !tbaa !5
  %807 = load i64, ptr %75, align 8, !tbaa !9
  %808 = load i64, ptr %64, align 8, !tbaa !9
  %809 = add nsw i64 %807, %808
  %810 = getelementptr inbounds float, ptr %806, i64 %809
  store float 0.000000e+00, ptr %810, align 4, !tbaa !11
  %811 = load ptr, ptr %55, align 8, !tbaa !5
  %812 = load i64, ptr %811, align 8, !tbaa !9
  %813 = load ptr, ptr %31, align 8, !tbaa !5
  %814 = load i64, ptr %813, align 8, !tbaa !9
  %815 = icmp sle i64 %812, %814
  br i1 %815, label %816, label %822

816:                                              ; preds = %799
  %817 = load ptr, ptr %31, align 8, !tbaa !5
  %818 = load i64, ptr %817, align 8, !tbaa !9
  %819 = load i64, ptr %75, align 8, !tbaa !9
  %820 = add nsw i64 %818, %819
  %821 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 %820, ptr %821, align 8, !tbaa !9
  br label %822

822:                                              ; preds = %816, %799
  br label %847

823:                                              ; preds = %795
  %824 = load ptr, ptr %49, align 8, !tbaa !5
  %825 = load i64, ptr %75, align 8, !tbaa !9
  %826 = load i64, ptr %64, align 8, !tbaa !9
  %827 = shl i64 %826, 1
  %828 = add nsw i64 %825, %827
  %829 = getelementptr inbounds float, ptr %824, i64 %828
  %830 = load float, ptr %829, align 4, !tbaa !11
  %831 = load float, ptr %73, align 4, !tbaa !11
  %832 = fcmp olt float %830, %831
  br i1 %832, label %833, label %846

833:                                              ; preds = %823
  %834 = load float, ptr %73, align 4, !tbaa !11
  %835 = load ptr, ptr %49, align 8, !tbaa !5
  %836 = load i64, ptr %75, align 8, !tbaa !9
  %837 = load i64, ptr %64, align 8, !tbaa !9
  %838 = shl i64 %837, 1
  %839 = add nsw i64 %836, %838
  %840 = getelementptr inbounds float, ptr %835, i64 %839
  store float %834, ptr %840, align 4, !tbaa !11
  %841 = load ptr, ptr %49, align 8, !tbaa !5
  %842 = load i64, ptr %75, align 8, !tbaa !9
  %843 = load i64, ptr %64, align 8, !tbaa !9
  %844 = add nsw i64 %842, %843
  %845 = getelementptr inbounds float, ptr %841, i64 %844
  store float 1.000000e+00, ptr %845, align 4, !tbaa !11
  br label %846

846:                                              ; preds = %833, %823
  br label %847

847:                                              ; preds = %846, %822
  %848 = load ptr, ptr %48, align 8, !tbaa !5
  %849 = load i64, ptr %848, align 8, !tbaa !9
  %850 = icmp sge i64 %849, 3
  br i1 %850, label %851, label %859

851:                                              ; preds = %847
  %852 = load float, ptr %76, align 4, !tbaa !11
  %853 = load ptr, ptr %49, align 8, !tbaa !5
  %854 = load i64, ptr %75, align 8, !tbaa !9
  %855 = load i64, ptr %64, align 8, !tbaa !9
  %856 = mul nsw i64 %855, 3
  %857 = add nsw i64 %854, %856
  %858 = getelementptr inbounds float, ptr %853, i64 %857
  store float %852, ptr %858, align 4, !tbaa !11
  br label %859

859:                                              ; preds = %851, %847
  br label %860

860:                                              ; preds = %859
  %861 = load i64, ptr %75, align 8, !tbaa !9
  %862 = add nsw i64 %861, 1
  store i64 %862, ptr %75, align 8, !tbaa !9
  br label %771, !llvm.loop !17

863:                                              ; preds = %771
  br label %864

864:                                              ; preds = %863, %680, %671
  %865 = load ptr, ptr %48, align 8, !tbaa !5
  %866 = load i64, ptr %865, align 8, !tbaa !9
  %867 = icmp sge i64 %866, 1
  br i1 %867, label %868, label %1016

868:                                              ; preds = %864
  %869 = load i64, ptr %87, align 8, !tbaa !9
  %870 = icmp sge i64 %869, 2
  br i1 %870, label %871, label %1016

871:                                              ; preds = %868
  %872 = call double @slamch_(ptr noundef @.str)
  %873 = call double @sqrt(double noundef %872) #4
  %874 = fptrunc double %873 to float
  store float %874, ptr %79, align 4, !tbaa !11
  %875 = load ptr, ptr %34, align 8, !tbaa !5
  %876 = load i64, ptr %875, align 8, !tbaa !9
  store i64 %876, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %877

877:                                              ; preds = %1012, %871
  %878 = load i64, ptr %75, align 8, !tbaa !9
  %879 = load i64, ptr %68, align 8, !tbaa !9
  %880 = icmp sle i64 %878, %879
  br i1 %880, label %881, label %1015

881:                                              ; preds = %877
  %882 = load ptr, ptr %50, align 8, !tbaa !5
  %883 = load i64, ptr %75, align 8, !tbaa !9
  %884 = load i64, ptr %66, align 8, !tbaa !9
  %885 = shl i64 %884, 1
  %886 = add nsw i64 %883, %885
  %887 = getelementptr inbounds float, ptr %882, i64 %886
  %888 = load float, ptr %887, align 4, !tbaa !11
  %889 = load float, ptr %79, align 4, !tbaa !11
  %890 = fcmp olt float %888, %889
  br i1 %890, label %891, label %919

891:                                              ; preds = %881
  %892 = load ptr, ptr %29, align 8, !tbaa !5
  %893 = load ptr, ptr %31, align 8, !tbaa !5
  %894 = load ptr, ptr %32, align 8, !tbaa !5
  %895 = load ptr, ptr %33, align 8, !tbaa !5
  %896 = load ptr, ptr %35, align 8, !tbaa !5
  %897 = load i64, ptr %57, align 8, !tbaa !9
  %898 = getelementptr inbounds %struct.complex, ptr %896, i64 %897
  %899 = load ptr, ptr %36, align 8, !tbaa !5
  %900 = load ptr, ptr %37, align 8, !tbaa !5
  %901 = load i64, ptr %59, align 8, !tbaa !9
  %902 = getelementptr inbounds %struct.complex, ptr %900, i64 %901
  %903 = load ptr, ptr %38, align 8, !tbaa !5
  %904 = load ptr, ptr %39, align 8, !tbaa !5
  %905 = getelementptr inbounds i64, ptr %904, i64 1
  %906 = load ptr, ptr %44, align 8, !tbaa !5
  %907 = load i64, ptr %75, align 8, !tbaa !9
  %908 = load i64, ptr %62, align 8, !tbaa !9
  %909 = mul nsw i64 %907, %908
  %910 = add nsw i64 %909, 1
  %911 = getelementptr inbounds %struct.complex, ptr %906, i64 %910
  %912 = load ptr, ptr %55, align 8, !tbaa !5
  %913 = load ptr, ptr %53, align 8, !tbaa !5
  %914 = getelementptr inbounds %struct.complex, ptr %913, i64 1
  %915 = load ptr, ptr %54, align 8, !tbaa !5
  %916 = getelementptr inbounds float, ptr %915, i64 1
  %917 = call double @cla_gbrcond_x__(ptr noundef %892, ptr noundef %893, ptr noundef %894, ptr noundef %895, ptr noundef %898, ptr noundef %899, ptr noundef %902, ptr noundef %903, ptr noundef %905, ptr noundef %911, ptr noundef %912, ptr noundef %914, ptr noundef %916, i64 noundef 1)
  %918 = fptrunc double %917 to float
  store float %918, ptr %76, align 4, !tbaa !11
  br label %920

919:                                              ; preds = %881
  store float 0.000000e+00, ptr %76, align 4, !tbaa !11
  br label %920

920:                                              ; preds = %919, %891
  %921 = load ptr, ptr %48, align 8, !tbaa !5
  %922 = load i64, ptr %921, align 8, !tbaa !9
  %923 = icmp sge i64 %922, 2
  br i1 %923, label %924, label %940

924:                                              ; preds = %920
  %925 = load ptr, ptr %50, align 8, !tbaa !5
  %926 = load i64, ptr %75, align 8, !tbaa !9
  %927 = load i64, ptr %66, align 8, !tbaa !9
  %928 = shl i64 %927, 1
  %929 = add nsw i64 %926, %928
  %930 = getelementptr inbounds float, ptr %925, i64 %929
  %931 = load float, ptr %930, align 4, !tbaa !11
  %932 = fcmp ogt float %931, 1.000000e+00
  br i1 %932, label %933, label %940

933:                                              ; preds = %924
  %934 = load ptr, ptr %50, align 8, !tbaa !5
  %935 = load i64, ptr %75, align 8, !tbaa !9
  %936 = load i64, ptr %66, align 8, !tbaa !9
  %937 = shl i64 %936, 1
  %938 = add nsw i64 %935, %937
  %939 = getelementptr inbounds float, ptr %934, i64 %938
  store float 1.000000e+00, ptr %939, align 4, !tbaa !11
  br label %940

940:                                              ; preds = %933, %924, %920
  %941 = load float, ptr %76, align 4, !tbaa !11
  %942 = load float, ptr %71, align 4, !tbaa !11
  %943 = fcmp olt float %941, %942
  br i1 %943, label %944, label %975

944:                                              ; preds = %940
  %945 = load ptr, ptr %50, align 8, !tbaa !5
  %946 = load i64, ptr %75, align 8, !tbaa !9
  %947 = load i64, ptr %66, align 8, !tbaa !9
  %948 = shl i64 %947, 1
  %949 = add nsw i64 %946, %948
  %950 = getelementptr inbounds float, ptr %945, i64 %949
  store float 1.000000e+00, ptr %950, align 4, !tbaa !11
  %951 = load ptr, ptr %50, align 8, !tbaa !5
  %952 = load i64, ptr %75, align 8, !tbaa !9
  %953 = load i64, ptr %66, align 8, !tbaa !9
  %954 = add nsw i64 %952, %953
  %955 = getelementptr inbounds float, ptr %951, i64 %954
  store float 0.000000e+00, ptr %955, align 4, !tbaa !11
  %956 = load ptr, ptr %52, align 8, !tbaa !5
  %957 = getelementptr inbounds float, ptr %956, i64 3
  %958 = load float, ptr %957, align 4, !tbaa !11
  %959 = fcmp oeq float %958, 1.000000e+00
  br i1 %959, label %960, label %974

960:                                              ; preds = %944
  %961 = load ptr, ptr %55, align 8, !tbaa !5
  %962 = load i64, ptr %961, align 8, !tbaa !9
  %963 = load ptr, ptr %31, align 8, !tbaa !5
  %964 = load i64, ptr %963, align 8, !tbaa !9
  %965 = load i64, ptr %75, align 8, !tbaa !9
  %966 = add nsw i64 %964, %965
  %967 = icmp slt i64 %962, %966
  br i1 %967, label %968, label %974

968:                                              ; preds = %960
  %969 = load ptr, ptr %31, align 8, !tbaa !5
  %970 = load i64, ptr %969, align 8, !tbaa !9
  %971 = load i64, ptr %75, align 8, !tbaa !9
  %972 = add nsw i64 %970, %971
  %973 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 %972, ptr %973, align 8, !tbaa !9
  br label %974

974:                                              ; preds = %968, %960, %944
  br label %999

975:                                              ; preds = %940
  %976 = load ptr, ptr %50, align 8, !tbaa !5
  %977 = load i64, ptr %75, align 8, !tbaa !9
  %978 = load i64, ptr %66, align 8, !tbaa !9
  %979 = shl i64 %978, 1
  %980 = add nsw i64 %977, %979
  %981 = getelementptr inbounds float, ptr %976, i64 %980
  %982 = load float, ptr %981, align 4, !tbaa !11
  %983 = load float, ptr %73, align 4, !tbaa !11
  %984 = fcmp olt float %982, %983
  br i1 %984, label %985, label %998

985:                                              ; preds = %975
  %986 = load float, ptr %73, align 4, !tbaa !11
  %987 = load ptr, ptr %50, align 8, !tbaa !5
  %988 = load i64, ptr %75, align 8, !tbaa !9
  %989 = load i64, ptr %66, align 8, !tbaa !9
  %990 = shl i64 %989, 1
  %991 = add nsw i64 %988, %990
  %992 = getelementptr inbounds float, ptr %987, i64 %991
  store float %986, ptr %992, align 4, !tbaa !11
  %993 = load ptr, ptr %50, align 8, !tbaa !5
  %994 = load i64, ptr %75, align 8, !tbaa !9
  %995 = load i64, ptr %66, align 8, !tbaa !9
  %996 = add nsw i64 %994, %995
  %997 = getelementptr inbounds float, ptr %993, i64 %996
  store float 1.000000e+00, ptr %997, align 4, !tbaa !11
  br label %998

998:                                              ; preds = %985, %975
  br label %999

999:                                              ; preds = %998, %974
  %1000 = load ptr, ptr %48, align 8, !tbaa !5
  %1001 = load i64, ptr %1000, align 8, !tbaa !9
  %1002 = icmp sge i64 %1001, 3
  br i1 %1002, label %1003, label %1011

1003:                                             ; preds = %999
  %1004 = load float, ptr %76, align 4, !tbaa !11
  %1005 = load ptr, ptr %50, align 8, !tbaa !5
  %1006 = load i64, ptr %75, align 8, !tbaa !9
  %1007 = load i64, ptr %66, align 8, !tbaa !9
  %1008 = mul nsw i64 %1007, 3
  %1009 = add nsw i64 %1006, %1008
  %1010 = getelementptr inbounds float, ptr %1005, i64 %1009
  store float %1004, ptr %1010, align 4, !tbaa !11
  br label %1011

1011:                                             ; preds = %1003, %999
  br label %1012

1012:                                             ; preds = %1011
  %1013 = load i64, ptr %75, align 8, !tbaa !9
  %1014 = add nsw i64 %1013, 1
  store i64 %1014, ptr %75, align 8, !tbaa !9
  br label %877, !llvm.loop !18

1015:                                             ; preds = %877
  br label %1016

1016:                                             ; preds = %1015, %868, %864
  store i32 0, ptr %28, align 4
  store i32 1, ptr %89, align 4
  br label %1017

1017:                                             ; preds = %1016, %452, %373
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  %1018 = load i32, ptr %28, align 4
  ret i32 %1018
}

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

declare i64 @ilatrans_(ptr noundef) #2

declare double @slamch_(ptr noundef) #2

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

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

declare double @clangb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare i64 @ilaprec_(ptr noundef) #2

declare i32 @cla_gbrfsx_extended__(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) #2

; Function Attrs: nounwind
declare double @sqrt(double noundef) #3

declare double @cla_gbrcond_c__(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) #2

declare double @cla_gbrcond_x__(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) #2

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

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

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

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


; 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"

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c_true = external hidden global i64, align 8
@c_false = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @cgbrfsx_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr nocapture noundef readonly %19, ptr noundef %20, ptr noundef %21, ptr nocapture noundef readonly %22, ptr nocapture noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26) local_unnamed_addr #0 {
  %28 = ptrtoint ptr %21 to i64
  %29 = ptrtoint ptr %18 to i64
  %30 = ptrtoint ptr %20 to i64
  %31 = ptrtoint ptr %21 to i64
  %32 = ptrtoint ptr %18 to i64
  %33 = ptrtoint ptr %20 to i64
  %34 = alloca i64, align 8
  %35 = alloca float, align 4
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca [1 x i8], align 1
  %39 = alloca i64, align 8
  %40 = alloca float, align 4
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  %46 = load i64, ptr %5, align 8, !tbaa !5
  %47 = xor i64 %46, -1
  %48 = getelementptr inbounds float, ptr %21, i64 %47
  %49 = getelementptr inbounds float, ptr %20, i64 %47
  %50 = load i64, ptr %16, align 8, !tbaa !5
  %51 = xor i64 %50, -1
  %52 = getelementptr inbounds %struct.complex, ptr %15, i64 %51
  %53 = getelementptr inbounds i8, ptr %18, i64 -4
  store i64 0, ptr %26, align 8, !tbaa !5
  %54 = tail call i64 @ilatrans_(ptr noundef %0) #6
  store i64 %54, ptr %37, align 8, !tbaa !5
  %55 = load i64, ptr %22, align 8, !tbaa !5
  %56 = icmp sgt i64 %55, 0
  br i1 %56, label %57, label %63

57:                                               ; preds = %27
  %58 = load float, ptr %23, align 4, !tbaa !9
  %59 = fcmp olt float %58, 0.000000e+00
  br i1 %59, label %60, label %61

60:                                               ; preds = %57
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  br label %63

61:                                               ; preds = %57
  %62 = fptosi float %58 to i64
  br label %63

63:                                               ; preds = %60, %61, %27
  %.0387 = phi i64 [ 1, %60 ], [ %62, %61 ], [ 1, %27 ]
  %64 = load i64, ptr %2, align 8, !tbaa !5
  %65 = sitofp i64 %64 to float
  %66 = fpext float %65 to double
  %67 = tail call double @slamch_(ptr noundef nonnull @.str) #6
  %68 = fmul double %67, %66
  %69 = fptrunc double %68 to float
  store i64 10, ptr %43, align 8, !tbaa !5
  store float 5.000000e-01, ptr %45, align 4, !tbaa !9
  store float 2.500000e-01, ptr %35, align 4, !tbaa !9
  store i64 0, ptr %39, align 8, !tbaa !5
  %70 = load i64, ptr %22, align 8, !tbaa !5
  %71 = icmp sgt i64 %70, 1
  br i1 %71, label %72, label %.thread

72:                                               ; preds = %63
  %73 = getelementptr inbounds i8, ptr %23, i64 4
  %74 = load float, ptr %73, align 4, !tbaa !9
  %75 = fcmp olt float %74, 0.000000e+00
  br i1 %75, label %76, label %77

76:                                               ; preds = %72
  store float 1.000000e+01, ptr %73, align 4, !tbaa !9
  br label %79

77:                                               ; preds = %72
  %78 = fptosi float %74 to i64
  store i64 %78, ptr %43, align 8, !tbaa !5
  br label %79

79:                                               ; preds = %76, %77
  %.not = icmp eq i64 %70, 2
  br i1 %.not, label %.thread, label %80

80:                                               ; preds = %79
  %81 = getelementptr inbounds i8, ptr %23, i64 8
  %82 = load float, ptr %81, align 4, !tbaa !9
  %83 = fcmp olt float %82, 0.000000e+00
  br i1 %83, label %84, label %85

84:                                               ; preds = %80
  store float 1.000000e+00, ptr %81, align 4, !tbaa !9
  br label %.thread

85:                                               ; preds = %80
  %86 = fcmp oeq float %82, 0.000000e+00
  %87 = zext i1 %86 to i64
  store i64 %87, ptr %39, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %63, %85, %84, %79
  %88 = phi i64 [ 0, %63 ], [ %87, %85 ], [ 0, %84 ], [ 0, %79 ]
  %89 = icmp eq i64 %.0387, 0
  br i1 %89, label %93, label %90

90:                                               ; preds = %.thread
  %91 = load i64, ptr %19, align 8, !tbaa !5
  %92 = icmp eq i64 %91, 0
  br i1 %92, label %93, label %94

93:                                               ; preds = %90, %.thread
  store i64 0, ptr %44, align 8, !tbaa !5
  br label %97

94:                                               ; preds = %90
  %.not401 = icmp eq i64 %88, 0
  br i1 %.not401, label %96, label %95

95:                                               ; preds = %94
  store i64 1, ptr %44, align 8, !tbaa !5
  br label %97

96:                                               ; preds = %94
  store i64 2, ptr %44, align 8, !tbaa !5
  br label %97

97:                                               ; preds = %95, %96, %93
  %98 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %99 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #6
  %.not402 = icmp eq i64 %99, 0
  br i1 %.not402, label %100, label %103

100:                                              ; preds = %97
  %101 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %102 = icmp ne i64 %101, 0
  br label %103

103:                                              ; preds = %100, %97
  %104 = phi i1 [ true, %97 ], [ %102, %100 ]
  %105 = zext i1 %104 to i64
  store i64 %105, ptr %42, align 8, !tbaa !5
  %106 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  %.not403 = icmp eq i64 %106, 0
  br i1 %.not403, label %107, label %110

107:                                              ; preds = %103
  %108 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %109 = icmp ne i64 %108, 0
  br label %110

110:                                              ; preds = %107, %103
  %111 = phi i1 [ true, %103 ], [ %109, %107 ]
  %112 = zext i1 %111 to i64
  store i64 %112, ptr %41, align 8, !tbaa !5
  %113 = icmp eq i64 %54, -1
  br i1 %113, label %.thread420.sink.split, label %114

114:                                              ; preds = %110
  %or.cond = select i1 %104, i1 true, i1 %111
  br i1 %or.cond, label %117, label %115

115:                                              ; preds = %114
  %116 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %.not404 = icmp eq i64 %116, 0
  br i1 %.not404, label %.thread420.sink.split, label %117

117:                                              ; preds = %115, %114
  %118 = load i64, ptr %2, align 8, !tbaa !5
  %119 = icmp slt i64 %118, 0
  br i1 %119, label %.thread420.sink.split, label %120

120:                                              ; preds = %117
  %121 = load i64, ptr %3, align 8, !tbaa !5
  %122 = icmp slt i64 %121, 0
  br i1 %122, label %.thread420.sink.split, label %123

123:                                              ; preds = %120
  %124 = load i64, ptr %4, align 8, !tbaa !5
  %125 = icmp slt i64 %124, 0
  br i1 %125, label %.thread420.sink.split, label %126

126:                                              ; preds = %123
  %127 = load i64, ptr %5, align 8, !tbaa !5
  %128 = icmp slt i64 %127, 0
  br i1 %128, label %.thread420.sink.split, label %129

129:                                              ; preds = %126
  %130 = load i64, ptr %7, align 8, !tbaa !5
  %131 = add nuw nsw i64 %124, %121
  %.not405 = icmp sgt i64 %130, %131
  br i1 %.not405, label %132, label %.thread420.sink.split

132:                                              ; preds = %129
  %133 = load i64, ptr %9, align 8, !tbaa !5
  %134 = shl nuw i64 %121, 1
  %135 = add nsw i64 %124, %134
  %.not406 = icmp sgt i64 %133, %135
  br i1 %.not406, label %136, label %.thread420.sink.split

136:                                              ; preds = %132
  %137 = load i64, ptr %14, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %118, i64 1)
  %138 = icmp slt i64 %137, %spec.select
  br i1 %138, label %.thread420.sink.split, label %139

139:                                              ; preds = %136
  %140 = load i64, ptr %16, align 8, !tbaa !5
  %141 = icmp slt i64 %140, %spec.select
  br i1 %141, label %.thread420.sink.split, label %142

142:                                              ; preds = %139
  %.pr = load i64, ptr %26, align 8, !tbaa !5
  %.not407 = icmp eq i64 %.pr, 0
  br i1 %.not407, label %146, label %.thread420

.thread420.sink.split:                            ; preds = %139, %136, %132, %129, %126, %123, %120, %117, %115, %110
  %.sink = phi i64 [ -1, %110 ], [ -2, %115 ], [ -3, %117 ], [ -4, %120 ], [ -5, %123 ], [ -6, %126 ], [ -8, %129 ], [ -10, %132 ], [ -13, %136 ], [ -15, %139 ]
  store i64 %.sink, ptr %26, align 8, !tbaa !5
  br label %.thread420

.thread420:                                       ; preds = %.thread420.sink.split, %142
  %143 = phi i64 [ %.pr, %142 ], [ %.sink, %.thread420.sink.split ]
  %144 = sub nsw i64 0, %143
  store i64 %144, ptr %34, align 8, !tbaa !5
  %145 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %34) #6
  br label %.loopexit

146:                                              ; preds = %142
  %147 = icmp eq i64 %118, 0
  br i1 %147, label %150, label %148

148:                                              ; preds = %146
  %149 = icmp eq i64 %127, 0
  br i1 %149, label %.thread456, label %.lr.ph

.thread456:                                       ; preds = %148
  store float 1.000000e+00, ptr %17, align 4, !tbaa !9
  br label %.loopexit

150:                                              ; preds = %146
  store float 1.000000e+00, ptr %17, align 4, !tbaa !9
  %.not418438 = icmp eq i64 %127, 0
  br i1 %.not418438, label %.loopexit, label %.lr.ph441

.lr.ph441:                                        ; preds = %150
  %151 = load i64, ptr %19, align 8, !tbaa !5
  %152 = icmp sgt i64 %151, 0
  br i1 %152, label %.lr.ph441.split.us.preheader, label %.lr.ph441.split.preheader

.lr.ph441.split.us.preheader:                     ; preds = %.lr.ph441
  %min.iters.check490 = icmp ult i64 %127, 12
  br i1 %min.iters.check490, label %.lr.ph441.split.us.preheader501, label %vector.memcheck482

.lr.ph441.split.us.preheader501:                  ; preds = %middle.block488, %vector.memcheck482, %.lr.ph441.split.us.preheader
  %.0385439.us.ph = phi i64 [ 1, %vector.memcheck482 ], [ 1, %.lr.ph441.split.us.preheader ], [ %ind.end494, %middle.block488 ]
  %xtraiter507 = and i64 %127, 1
  %lcmp.mod508.not = icmp eq i64 %xtraiter507, 0
  br i1 %lcmp.mod508.not, label %.lr.ph441.split.us.prol.loopexit, label %.lr.ph441.split.us.prol

.lr.ph441.split.us.prol:                          ; preds = %.lr.ph441.split.us.preheader501
  %153 = getelementptr inbounds float, ptr %53, i64 %.0385439.us.ph
  store float 0.000000e+00, ptr %153, align 4, !tbaa !9
  %154 = add nsw i64 %.0385439.us.ph, %46
  %155 = getelementptr inbounds float, ptr %49, i64 %154
  store float 1.000000e+00, ptr %155, align 4, !tbaa !9
  %156 = getelementptr inbounds float, ptr %48, i64 %154
  store float 1.000000e+00, ptr %156, align 4, !tbaa !9
  %157 = add nuw i64 %.0385439.us.ph, 1
  br label %.lr.ph441.split.us.prol.loopexit

.lr.ph441.split.us.prol.loopexit:                 ; preds = %.lr.ph441.split.us.prol, %.lr.ph441.split.us.preheader501
  %.0385439.us.unr = phi i64 [ %.0385439.us.ph, %.lr.ph441.split.us.preheader501 ], [ %157, %.lr.ph441.split.us.prol ]
  %158 = icmp eq i64 %127, %.0385439.us.ph
  br i1 %158, label %.loopexit, label %.lr.ph441.split.us

vector.memcheck482:                               ; preds = %.lr.ph441.split.us.preheader
  %159 = sub i64 %30, %29
  %diff.check483 = icmp ult i64 %159, 32
  %160 = sub i64 %28, %29
  %diff.check484 = icmp ult i64 %160, 32
  %conflict.rdx485 = or i1 %diff.check483, %diff.check484
  %161 = sub i64 %28, %30
  %diff.check486 = icmp ult i64 %161, 32
  %conflict.rdx487 = or i1 %conflict.rdx485, %diff.check486
  br i1 %conflict.rdx487, label %.lr.ph441.split.us.preheader501, label %vector.ph491

vector.ph491:                                     ; preds = %vector.memcheck482
  %n.vec493 = and i64 %127, 9223372036854775800
  %ind.end494 = or disjoint i64 %n.vec493, 1
  br label %vector.body496

vector.body496:                                   ; preds = %vector.body496, %vector.ph491
  %index497 = phi i64 [ 0, %vector.ph491 ], [ %index.next499, %vector.body496 ]
  %offset.idx498 = or disjoint i64 %index497, 1
  %162 = getelementptr float, ptr %18, i64 %index497
  %163 = getelementptr inbounds i8, ptr %162, i64 16
  store <4 x float> zeroinitializer, ptr %162, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %163, align 4, !tbaa !9
  %164 = add nsw i64 %offset.idx498, %46
  %165 = getelementptr inbounds float, ptr %49, i64 %164
  %166 = getelementptr inbounds i8, ptr %165, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %165, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %166, align 4, !tbaa !9
  %167 = getelementptr inbounds float, ptr %48, i64 %164
  %168 = getelementptr inbounds i8, ptr %167, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %167, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %168, align 4, !tbaa !9
  %index.next499 = add nuw i64 %index497, 8
  %169 = icmp eq i64 %index.next499, %n.vec493
  br i1 %169, label %middle.block488, label %vector.body496, !llvm.loop !11

middle.block488:                                  ; preds = %vector.body496
  %cmp.n500 = icmp eq i64 %127, %n.vec493
  br i1 %cmp.n500, label %.loopexit, label %.lr.ph441.split.us.preheader501

.lr.ph441.split.preheader:                        ; preds = %.lr.ph441
  %170 = shl nuw i64 %127, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %18, i8 0, i64 %170, i1 false), !tbaa !9
  br label %.loopexit

.lr.ph441.split.us:                               ; preds = %.lr.ph441.split.us.prol.loopexit, %.lr.ph441.split.us
  %.0385439.us = phi i64 [ %179, %.lr.ph441.split.us ], [ %.0385439.us.unr, %.lr.ph441.split.us.prol.loopexit ]
  %171 = getelementptr inbounds float, ptr %53, i64 %.0385439.us
  store float 0.000000e+00, ptr %171, align 4, !tbaa !9
  %172 = add nsw i64 %.0385439.us, %46
  %173 = getelementptr inbounds float, ptr %49, i64 %172
  store float 1.000000e+00, ptr %173, align 4, !tbaa !9
  %174 = getelementptr inbounds float, ptr %48, i64 %172
  store float 1.000000e+00, ptr %174, align 4, !tbaa !9
  %175 = add nuw i64 %.0385439.us, 1
  %176 = getelementptr float, ptr %18, i64 %.0385439.us
  store float 0.000000e+00, ptr %176, align 4, !tbaa !9
  %177 = getelementptr inbounds float, ptr %20, i64 %.0385439.us
  store float 1.000000e+00, ptr %177, align 4, !tbaa !9
  %178 = getelementptr inbounds float, ptr %21, i64 %.0385439.us
  store float 1.000000e+00, ptr %178, align 4, !tbaa !9
  %179 = add nuw i64 %.0385439.us, 2
  %exitcond449.not.1 = icmp eq i64 %175, %127
  br i1 %exitcond449.not.1, label %.loopexit, label %.lr.ph441.split.us, !llvm.loop !15

.lr.ph:                                           ; preds = %148
  store float 0.000000e+00, ptr %17, align 4, !tbaa !9
  %180 = load i64, ptr %19, align 8, !tbaa !5
  %181 = icmp sgt i64 %180, 0
  br i1 %181, label %.lr.ph.split.us.preheader, label %.lr.ph.split.preheader

.lr.ph.split.preheader:                           ; preds = %.lr.ph
  %min.iters.check = icmp ult i64 %127, 8
  br i1 %min.iters.check, label %.lr.ph.split.preheader505, label %vector.ph

.lr.ph.split.preheader505:                        ; preds = %middle.block, %.lr.ph.split.preheader
  %.1386425.ph = phi i64 [ 1, %.lr.ph.split.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph.split

vector.ph:                                        ; preds = %.lr.ph.split.preheader
  %n.vec = and i64 %127, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %182 = getelementptr float, ptr %18, i64 %index
  %183 = getelementptr inbounds i8, ptr %182, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %182, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %183, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %184 = icmp eq i64 %index.next, %n.vec
  br i1 %184, label %middle.block, label %vector.body, !llvm.loop !16

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %127, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.split.preheader505

.lr.ph.split.us.preheader:                        ; preds = %.lr.ph
  %min.iters.check471 = icmp ult i64 %127, 12
  br i1 %min.iters.check471, label %.lr.ph.split.us.preheader504, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph.split.us.preheader
  %185 = sub i64 %33, %32
  %diff.check = icmp ult i64 %185, 32
  %186 = sub i64 %31, %32
  %diff.check466 = icmp ult i64 %186, 32
  %conflict.rdx = or i1 %diff.check, %diff.check466
  %187 = sub i64 %31, %33
  %diff.check467 = icmp ult i64 %187, 32
  %conflict.rdx468 = or i1 %conflict.rdx, %diff.check467
  br i1 %conflict.rdx468, label %.lr.ph.split.us.preheader504, label %vector.ph472

vector.ph472:                                     ; preds = %vector.memcheck
  %n.vec474 = and i64 %127, 9223372036854775800
  %ind.end475 = or disjoint i64 %n.vec474, 1
  br label %vector.body477

vector.body477:                                   ; preds = %vector.body477, %vector.ph472
  %index478 = phi i64 [ 0, %vector.ph472 ], [ %index.next480, %vector.body477 ]
  %offset.idx479 = or disjoint i64 %index478, 1
  %188 = getelementptr float, ptr %18, i64 %index478
  %189 = getelementptr inbounds i8, ptr %188, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %188, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %189, align 4, !tbaa !9
  %190 = add nsw i64 %offset.idx479, %46
  %191 = getelementptr inbounds float, ptr %49, i64 %190
  %192 = getelementptr inbounds i8, ptr %191, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %191, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %192, align 4, !tbaa !9
  %193 = getelementptr inbounds float, ptr %48, i64 %190
  %194 = getelementptr inbounds i8, ptr %193, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %193, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %194, align 4, !tbaa !9
  %index.next480 = add nuw i64 %index478, 8
  %195 = icmp eq i64 %index.next480, %n.vec474
  br i1 %195, label %middle.block469, label %vector.body477, !llvm.loop !17

middle.block469:                                  ; preds = %vector.body477
  %cmp.n481 = icmp eq i64 %127, %n.vec474
  br i1 %cmp.n481, label %._crit_edge, label %.lr.ph.split.us.preheader504

.lr.ph.split.us.preheader504:                     ; preds = %middle.block469, %vector.memcheck, %.lr.ph.split.us.preheader
  %.1386425.us.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph.split.us.preheader ], [ %ind.end475, %middle.block469 ]
  %xtraiter = and i64 %127, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.split.us.prol.loopexit, label %.lr.ph.split.us.prol

.lr.ph.split.us.prol:                             ; preds = %.lr.ph.split.us.preheader504
  %196 = getelementptr inbounds float, ptr %53, i64 %.1386425.us.ph
  store float 1.000000e+00, ptr %196, align 4, !tbaa !9
  %197 = add nsw i64 %.1386425.us.ph, %46
  %198 = getelementptr inbounds float, ptr %49, i64 %197
  store float 1.000000e+00, ptr %198, align 4, !tbaa !9
  %199 = getelementptr inbounds float, ptr %48, i64 %197
  store float 1.000000e+00, ptr %199, align 4, !tbaa !9
  %200 = add nuw i64 %.1386425.us.ph, 1
  br label %.lr.ph.split.us.prol.loopexit

.lr.ph.split.us.prol.loopexit:                    ; preds = %.lr.ph.split.us.prol, %.lr.ph.split.us.preheader504
  %.1386425.us.unr = phi i64 [ %.1386425.us.ph, %.lr.ph.split.us.preheader504 ], [ %200, %.lr.ph.split.us.prol ]
  %201 = icmp eq i64 %127, %.1386425.us.ph
  br i1 %201, label %._crit_edge, label %.lr.ph.split.us

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us
  %.1386425.us = phi i64 [ %210, %.lr.ph.split.us ], [ %.1386425.us.unr, %.lr.ph.split.us.prol.loopexit ]
  %202 = getelementptr inbounds float, ptr %53, i64 %.1386425.us
  store float 1.000000e+00, ptr %202, align 4, !tbaa !9
  %203 = add nsw i64 %.1386425.us, %46
  %204 = getelementptr inbounds float, ptr %49, i64 %203
  store float 1.000000e+00, ptr %204, align 4, !tbaa !9
  %205 = getelementptr inbounds float, ptr %48, i64 %203
  store float 1.000000e+00, ptr %205, align 4, !tbaa !9
  %206 = add nuw i64 %.1386425.us, 1
  %207 = getelementptr float, ptr %18, i64 %.1386425.us
  store float 1.000000e+00, ptr %207, align 4, !tbaa !9
  %208 = getelementptr inbounds float, ptr %20, i64 %.1386425.us
  store float 1.000000e+00, ptr %208, align 4, !tbaa !9
  %209 = getelementptr inbounds float, ptr %21, i64 %.1386425.us
  store float 1.000000e+00, ptr %209, align 4, !tbaa !9
  %210 = add nuw i64 %.1386425.us, 2
  %exitcond446.not.1 = icmp eq i64 %206, %127
  br i1 %exitcond446.not.1, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !18

.lr.ph.split:                                     ; preds = %.lr.ph.split.preheader505, %.lr.ph.split
  %.1386425 = phi i64 [ %212, %.lr.ph.split ], [ %.1386425.ph, %.lr.ph.split.preheader505 ]
  %211 = getelementptr inbounds float, ptr %53, i64 %.1386425
  store float 1.000000e+00, ptr %211, align 4, !tbaa !9
  %212 = add nuw i64 %.1386425, 1
  %exitcond.not = icmp eq i64 %.1386425, %127
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.split, !llvm.loop !19

._crit_edge:                                      ; preds = %.lr.ph.split, %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us, %middle.block, %middle.block469
  %213 = icmp ne i64 %98, 0
  %. = select i1 %213, i8 73, i8 49
  store i8 %., ptr %38, align 1, !tbaa !20
  %214 = call double @clangb_(ptr noundef nonnull %38, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %25) #6
  %215 = fptrunc double %214 to float
  store float %215, ptr %40, align 4, !tbaa !9
  %216 = call i32 @cgbcon_(ptr noundef nonnull %38, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %40, ptr noundef nonnull %17, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %26) #6
  br i1 %89, label %225, label %217

217:                                              ; preds = %._crit_edge
  %218 = call i64 @ilaprec_(ptr noundef nonnull @.str.6) #6
  store i64 %218, ptr %36, align 8, !tbaa !5
  %219 = load i64, ptr %2, align 8, !tbaa !5
  %220 = getelementptr %struct.complex, ptr %24, i64 %219
  br i1 %213, label %221, label %223

221:                                              ; preds = %217
  %222 = call i32 @cla_gbrfsx_extended__(ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %41, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %18, ptr noundef nonnull %44, ptr noundef %20, ptr noundef %21, ptr noundef %24, ptr noundef %25, ptr noundef %220, ptr noundef %25, ptr noundef nonnull %17, ptr noundef nonnull %43, ptr noundef nonnull %45, ptr noundef nonnull %35, ptr noundef nonnull %39, ptr noundef nonnull %26) #6
  br label %225

223:                                              ; preds = %217
  %224 = call i32 @cla_gbrfsx_extended__(ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %18, ptr noundef nonnull %44, ptr noundef %20, ptr noundef %21, ptr noundef %24, ptr noundef %25, ptr noundef %220, ptr noundef %25, ptr noundef nonnull %17, ptr noundef nonnull %43, ptr noundef nonnull %45, ptr noundef nonnull %35, ptr noundef nonnull %39, ptr noundef nonnull %26) #6
  br label %225

225:                                              ; preds = %221, %223, %._crit_edge
  %226 = load i64, ptr %2, align 8, !tbaa !5
  %227 = sitofp i64 %226 to float
  %sqrtf = call float @sqrtf(float noundef %227) #3
  %228 = fcmp ole float %sqrtf, 1.000000e+01
  %229 = select i1 %228, float 1.000000e+01, float %sqrtf
  %230 = fpext float %229 to double
  %231 = call double @slamch_(ptr noundef nonnull @.str) #6
  %232 = fmul double %231, %230
  %233 = fptrunc double %232 to float
  %234 = load i64, ptr %19, align 8, !tbaa !5
  %235 = icmp sgt i64 %234, 0
  %236 = load i64, ptr %44, align 8
  %237 = icmp sgt i64 %236, 0
  %or.cond3 = select i1 %235, i1 %237, i1 false
  br i1 %or.cond3, label %238, label %.loopexit423

238:                                              ; preds = %225
  %239 = load i64, ptr %41, align 8, !tbaa !5
  %240 = icmp ne i64 %239, 0
  %or.cond5 = and i1 %213, %240
  br i1 %or.cond5, label %241, label %243

241:                                              ; preds = %238
  %242 = call double @cla_gbrcond_c__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %12, ptr noundef nonnull @c_true, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25, i64 noundef 1) #6
  br label %250

243:                                              ; preds = %238
  %244 = load i64, ptr %42, align 8, !tbaa !5
  %245 = icmp eq i64 %244, 0
  %or.cond7 = or i1 %213, %245
  br i1 %or.cond7, label %248, label %246

246:                                              ; preds = %243
  %247 = call double @cla_gbrcond_c__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull @c_true, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25, i64 noundef 1) #6
  br label %250

248:                                              ; preds = %243
  %249 = call double @cla_gbrcond_c__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %12, ptr noundef nonnull @c_false, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25, i64 noundef 1) #6
  br label %250

250:                                              ; preds = %246, %248, %241
  %.0384.in = phi double [ %242, %241 ], [ %249, %248 ], [ %247, %246 ]
  %.0384 = fptrunc double %.0384.in to float
  %251 = load i64, ptr %5, align 8, !tbaa !5
  %.not410426 = icmp slt i64 %251, 1
  br i1 %.not410426, label %..loopexit423_crit_edge, label %.lr.ph429

..loopexit423_crit_edge:                          ; preds = %250
  %.pre454 = load i64, ptr %19, align 8, !tbaa !5
  br label %.loopexit423

.lr.ph429:                                        ; preds = %250
  %.idx413 = shl i64 %46, 3
  %invariant.gep = getelementptr i8, ptr %49, i64 %.idx413
  %252 = fcmp olt float %.0384, %69
  %.idx417 = mul i64 %46, 12
  %invariant.gep430 = getelementptr i8, ptr %49, i64 %.idx417
  %.pre452 = load i64, ptr %19, align 8, !tbaa !5
  br i1 %252, label %.lr.ph429.split.us, label %.lr.ph429.split.preheader

.lr.ph429.split.preheader:                        ; preds = %.lr.ph429
  %253 = icmp sgt i64 %.pre452, 1
  %invariant.gep461 = getelementptr i8, ptr %49, i64 %.idx413
  %254 = icmp sgt i64 %.pre452, 2
  br label %.lr.ph429.split

.lr.ph429.split.us:                               ; preds = %.lr.ph429, %267
  %255 = phi i64 [ %264, %267 ], [ %.pre452, %.lr.ph429 ]
  %.2427.us = phi i64 [ %268, %267 ], [ 1, %.lr.ph429 ]
  %256 = getelementptr float, ptr %49, i64 %.2427.us
  %257 = getelementptr i8, ptr %256, i64 %.idx413
  store float 1.000000e+00, ptr %257, align 4, !tbaa !9
  %258 = getelementptr float, ptr %256, i64 %46
  store float 0.000000e+00, ptr %258, align 4, !tbaa !9
  %259 = load i64, ptr %26, align 8, !tbaa !5
  %260 = load i64, ptr %2, align 8, !tbaa !5
  %.not416.us = icmp sgt i64 %259, %260
  br i1 %.not416.us, label %263, label %261

261:                                              ; preds = %.lr.ph429.split.us
  %262 = add nsw i64 %260, %.2427.us
  store i64 %262, ptr %26, align 8, !tbaa !5
  %.pre453 = load i64, ptr %19, align 8, !tbaa !5
  br label %263

263:                                              ; preds = %261, %.lr.ph429.split.us
  %264 = phi i64 [ %.pre453, %261 ], [ %255, %.lr.ph429.split.us ]
  %265 = icmp sgt i64 %264, 2
  br i1 %265, label %266, label %267

266:                                              ; preds = %263
  %gep431.us = getelementptr float, ptr %invariant.gep430, i64 %.2427.us
  store float %.0384, ptr %gep431.us, align 4, !tbaa !9
  br label %267

267:                                              ; preds = %266, %263
  %268 = add nuw i64 %.2427.us, 1
  %exitcond448.not = icmp eq i64 %.2427.us, %251
  br i1 %exitcond448.not, label %.loopexit423, label %.lr.ph429.split.us, !llvm.loop !21

.lr.ph429.split:                                  ; preds = %.lr.ph429.split.preheader, %282
  %.2427 = phi i64 [ %283, %282 ], [ 1, %.lr.ph429.split.preheader ]
  br i1 %253, label %269, label %.lr.ph429.split._crit_edge

.lr.ph429.split._crit_edge:                       ; preds = %.lr.ph429.split
  %gep462 = getelementptr float, ptr %invariant.gep461, i64 %.2427
  %.pre451 = load float, ptr %gep462, align 4, !tbaa !9
  br label %273

269:                                              ; preds = %.lr.ph429.split
  %gep = getelementptr float, ptr %invariant.gep, i64 %.2427
  %270 = load float, ptr %gep, align 4, !tbaa !9
  %271 = fcmp ogt float %270, 1.000000e+00
  br i1 %271, label %272, label %273

272:                                              ; preds = %269
  store float 1.000000e+00, ptr %gep, align 4, !tbaa !9
  br label %273

273:                                              ; preds = %.lr.ph429.split._crit_edge, %272, %269
  %274 = phi float [ %.pre451, %.lr.ph429.split._crit_edge ], [ 1.000000e+00, %272 ], [ %270, %269 ]
  %275 = fcmp olt float %274, %233
  br i1 %275, label %276, label %280

276:                                              ; preds = %273
  %277 = getelementptr float, ptr %49, i64 %.2427
  %278 = getelementptr i8, ptr %277, i64 %.idx413
  store float %233, ptr %278, align 4, !tbaa !9
  %279 = getelementptr float, ptr %277, i64 %46
  store float 1.000000e+00, ptr %279, align 4, !tbaa !9
  br label %280

280:                                              ; preds = %273, %276
  br i1 %254, label %281, label %282

281:                                              ; preds = %280
  %gep431 = getelementptr float, ptr %invariant.gep430, i64 %.2427
  store float %.0384, ptr %gep431, align 4, !tbaa !9
  br label %282

282:                                              ; preds = %280, %281
  %283 = add nuw i64 %.2427, 1
  %exitcond447.not = icmp eq i64 %.2427, %251
  br i1 %exitcond447.not, label %.loopexit423, label %.lr.ph429.split, !llvm.loop !21

.loopexit423:                                     ; preds = %282, %267, %..loopexit423_crit_edge, %225
  %284 = phi i64 [ %.pre454, %..loopexit423_crit_edge ], [ %234, %225 ], [ %264, %267 ], [ %.pre452, %282 ]
  %285 = icmp sgt i64 %284, 0
  %286 = load i64, ptr %44, align 8
  %287 = icmp sgt i64 %286, 1
  %or.cond9 = select i1 %285, i1 %287, i1 false
  br i1 %or.cond9, label %288, label %.loopexit

288:                                              ; preds = %.loopexit423
  %289 = call double @slamch_(ptr noundef nonnull @.str) #6
  %290 = call double @sqrt(double noundef %289) #6
  %291 = fptrunc double %290 to float
  %292 = load i64, ptr %5, align 8, !tbaa !5
  %invariant.gep432 = getelementptr i8, ptr %52, i64 8
  %.not411434 = icmp slt i64 %292, 1
  br i1 %.not411434, label %.loopexit, label %.lr.ph437

.lr.ph437:                                        ; preds = %288
  %.idx = shl i64 %46, 3
  %293 = getelementptr inbounds i8, ptr %23, i64 8
  %.idx412 = mul i64 %46, 12
  br label %294

294:                                              ; preds = %.lr.ph437, %332
  %.3435 = phi i64 [ 1, %.lr.ph437 ], [ %333, %332 ]
  %295 = getelementptr float, ptr %48, i64 %.3435
  %296 = getelementptr i8, ptr %295, i64 %.idx
  %297 = load float, ptr %296, align 4, !tbaa !9
  %298 = fcmp olt float %297, %291
  br i1 %298, label %299, label %303

299:                                              ; preds = %294
  %300 = mul nsw i64 %.3435, %50
  %gep433 = getelementptr %struct.complex, ptr %invariant.gep432, i64 %300
  %301 = call double @cla_gbrcond_x__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %gep433, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25, i64 noundef 1) #6
  %302 = fptrunc double %301 to float
  br label %303

303:                                              ; preds = %294, %299
  %.1 = phi float [ %302, %299 ], [ 0.000000e+00, %294 ]
  %304 = load i64, ptr %19, align 8, !tbaa !5
  %305 = icmp sgt i64 %304, 1
  br i1 %305, label %306, label %310

306:                                              ; preds = %303
  %307 = load float, ptr %296, align 4, !tbaa !9
  %308 = fcmp ogt float %307, 1.000000e+00
  br i1 %308, label %309, label %310

309:                                              ; preds = %306
  store float 1.000000e+00, ptr %296, align 4, !tbaa !9
  br label %310

310:                                              ; preds = %309, %306, %303
  %311 = fcmp olt float %.1, %69
  br i1 %311, label %312, label %322

312:                                              ; preds = %310
  store float 1.000000e+00, ptr %296, align 4, !tbaa !9
  %313 = getelementptr float, ptr %295, i64 %46
  store float 0.000000e+00, ptr %313, align 4, !tbaa !9
  %314 = load float, ptr %293, align 4, !tbaa !9
  %315 = fcmp oeq float %314, 1.000000e+00
  br i1 %315, label %316, label %327

316:                                              ; preds = %312
  %317 = load i64, ptr %26, align 8, !tbaa !5
  %318 = load i64, ptr %2, align 8, !tbaa !5
  %319 = add nsw i64 %318, %.3435
  %320 = icmp slt i64 %317, %319
  br i1 %320, label %321, label %327

321:                                              ; preds = %316
  store i64 %319, ptr %26, align 8, !tbaa !5
  %.pre455 = load i64, ptr %19, align 8, !tbaa !5
  br label %327

322:                                              ; preds = %310
  %323 = load float, ptr %296, align 4, !tbaa !9
  %324 = fcmp olt float %323, %233
  br i1 %324, label %325, label %327

325:                                              ; preds = %322
  store float %233, ptr %296, align 4, !tbaa !9
  %326 = getelementptr float, ptr %295, i64 %46
  store float 1.000000e+00, ptr %326, align 4, !tbaa !9
  br label %327

327:                                              ; preds = %322, %325, %312, %316, %321
  %328 = phi i64 [ %304, %322 ], [ %304, %325 ], [ %304, %312 ], [ %304, %316 ], [ %.pre455, %321 ]
  %329 = icmp sgt i64 %328, 2
  br i1 %329, label %330, label %332

330:                                              ; preds = %327
  %331 = getelementptr i8, ptr %295, i64 %.idx412
  store float %.1, ptr %331, align 4, !tbaa !9
  br label %332

332:                                              ; preds = %327, %330
  %333 = add nuw nsw i64 %.3435, 1
  %.not411.not = icmp slt i64 %.3435, %292
  br i1 %.not411.not, label %294, label %.loopexit, !llvm.loop !22

.loopexit:                                        ; preds = %332, %.lr.ph441.split.us.prol.loopexit, %.lr.ph441.split.us, %middle.block488, %.thread456, %.lr.ph441.split.preheader, %288, %150, %.loopexit423, %.thread420
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #6
  ret i32 0
}

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

declare i64 @ilatrans_(ptr noundef) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

declare double @clangb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i64 @ilaprec_(ptr noundef) local_unnamed_addr #2

declare i32 @cla_gbrfsx_extended__(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) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #3

declare double @cla_gbrcond_c__(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) local_unnamed_addr #2

declare double @cla_gbrcond_x__(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) local_unnamed_addr #2

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

declare float @sqrtf(float) local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #4

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #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 memory(write) "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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { nounwind }

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass