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

; 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 [2 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 [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_b18 = external hidden global float, align 4

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

138:                                              ; preds = %21
  %139 = load ptr, ptr %42, align 8, !tbaa !5
  %140 = load i64, ptr %139, align 8, !tbaa !9
  %141 = icmp eq i64 %140, -1
  br label %142

142:                                              ; preds = %138, %21
  %143 = phi i1 [ true, %21 ], [ %141, %138 ]
  %144 = zext i1 %143 to i32
  %145 = sext i32 %144 to i64
  store i64 %145, ptr %104, align 8, !tbaa !9
  %146 = load ptr, ptr %36, align 8, !tbaa !5
  %147 = load i64, ptr %146, align 8, !tbaa !9
  %148 = icmp eq i64 %147, -1
  %149 = zext i1 %148 to i32
  %150 = sext i32 %149 to i64
  store i64 %150, ptr %105, align 8, !tbaa !9
  %151 = load i64, ptr %82, align 8, !tbaa !9
  %152 = icmp ne i64 %151, 0
  br i1 %152, label %153, label %160

153:                                              ; preds = %142
  %154 = load ptr, ptr %25, align 8, !tbaa !5
  %155 = load i64, ptr %154, align 8, !tbaa !9
  %156 = mul nsw i64 %155, 18
  store i64 %156, ptr %81, align 8, !tbaa !9
  %157 = load ptr, ptr %25, align 8, !tbaa !5
  %158 = load i64, ptr %157, align 8, !tbaa !9
  %159 = mul nsw i64 %158, 10
  store i64 %159, ptr %98, align 8, !tbaa !9
  br label %167

160:                                              ; preds = %142
  %161 = load ptr, ptr %25, align 8, !tbaa !5
  %162 = load i64, ptr %161, align 8, !tbaa !9
  %163 = mul nsw i64 %162, 12
  store i64 %163, ptr %81, align 8, !tbaa !9
  %164 = load ptr, ptr %25, align 8, !tbaa !5
  %165 = load i64, ptr %164, align 8, !tbaa !9
  %166 = shl i64 %165, 3
  store i64 %166, ptr %98, align 8, !tbaa !9
  br label %167

167:                                              ; preds = %160, %153
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  store float 0.000000e+00, ptr %59, align 4, !tbaa !11
  store i64 0, ptr %60, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  %168 = load i64, ptr %87, align 8, !tbaa !9
  %169 = icmp ne i64 %168, 0
  br i1 %169, label %170, label %175

170:                                              ; preds = %167
  %171 = load ptr, ptr %28, align 8, !tbaa !5
  %172 = load float, ptr %171, align 4, !tbaa !11
  store float %172, ptr %58, align 4, !tbaa !11
  %173 = load ptr, ptr %29, align 8, !tbaa !5
  %174 = load float, ptr %173, align 4, !tbaa !11
  store float %174, ptr %59, align 4, !tbaa !11
  br label %184

175:                                              ; preds = %167
  %176 = load i64, ptr %85, align 8, !tbaa !9
  %177 = icmp ne i64 %176, 0
  br i1 %177, label %178, label %183

178:                                              ; preds = %175
  %179 = load ptr, ptr %30, align 8, !tbaa !5
  %180 = load i64, ptr %179, align 8, !tbaa !9
  store i64 %180, ptr %60, align 8, !tbaa !9
  %181 = load ptr, ptr %31, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  store i64 %182, ptr %61, align 8, !tbaa !9
  br label %183

183:                                              ; preds = %178, %175
  br label %184

184:                                              ; preds = %183, %170
  %185 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 0, ptr %185, align 8, !tbaa !9
  %186 = load i64, ptr %82, align 8, !tbaa !9
  %187 = icmp ne i64 %186, 0
  br i1 %187, label %194, label %188

188:                                              ; preds = %184
  %189 = load ptr, ptr %23, align 8, !tbaa !5
  %190 = call i64 @lsame_(ptr noundef %189, ptr noundef @.str.3)
  %191 = icmp ne i64 %190, 0
  br i1 %191, label %194, label %192

192:                                              ; preds = %188
  %193 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -1, ptr %193, align 8, !tbaa !9
  br label %294

194:                                              ; preds = %188, %184
  %195 = load i64, ptr %83, align 8, !tbaa !9
  %196 = icmp ne i64 %195, 0
  br i1 %196, label %205, label %197

197:                                              ; preds = %194
  %198 = load i64, ptr %87, align 8, !tbaa !9
  %199 = icmp ne i64 %198, 0
  br i1 %199, label %205, label %200

200:                                              ; preds = %197
  %201 = load i64, ptr %85, align 8, !tbaa !9
  %202 = icmp ne i64 %201, 0
  br i1 %202, label %205, label %203

203:                                              ; preds = %200
  %204 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -2, ptr %204, align 8, !tbaa !9
  br label %293

205:                                              ; preds = %200, %197, %194
  %206 = load ptr, ptr %25, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = icmp slt i64 %207, 0
  br i1 %208, label %209, label %211

209:                                              ; preds = %205
  %210 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -3, ptr %210, align 8, !tbaa !9
  br label %292

211:                                              ; preds = %205
  %212 = load i64, ptr %87, align 8, !tbaa !9
  %213 = icmp ne i64 %212, 0
  br i1 %213, label %214, label %224

214:                                              ; preds = %211
  %215 = load ptr, ptr %25, align 8, !tbaa !5
  %216 = load i64, ptr %215, align 8, !tbaa !9
  %217 = icmp sgt i64 %216, 0
  br i1 %217, label %218, label %224

218:                                              ; preds = %214
  %219 = load float, ptr %59, align 4, !tbaa !11
  %220 = load float, ptr %58, align 4, !tbaa !11
  %221 = fcmp ole float %219, %220
  br i1 %221, label %222, label %224

222:                                              ; preds = %218
  %223 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -7, ptr %223, align 8, !tbaa !9
  br label %291

224:                                              ; preds = %218, %214, %211
  %225 = load i64, ptr %85, align 8, !tbaa !9
  %226 = icmp ne i64 %225, 0
  br i1 %226, label %227, label %237

227:                                              ; preds = %224
  %228 = load i64, ptr %60, align 8, !tbaa !9
  %229 = icmp slt i64 %228, 1
  br i1 %229, label %235, label %230

230:                                              ; preds = %227
  %231 = load i64, ptr %60, align 8, !tbaa !9
  %232 = load ptr, ptr %25, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  %234 = icmp sgt i64 %231, %233
  br i1 %234, label %235, label %237

235:                                              ; preds = %230, %227
  %236 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -8, ptr %236, align 8, !tbaa !9
  br label %290

237:                                              ; preds = %230, %224
  %238 = load i64, ptr %85, align 8, !tbaa !9
  %239 = icmp ne i64 %238, 0
  br i1 %239, label %240, label %251

240:                                              ; preds = %237
  %241 = load i64, ptr %61, align 8, !tbaa !9
  %242 = load i64, ptr %60, align 8, !tbaa !9
  %243 = icmp slt i64 %241, %242
  br i1 %243, label %249, label %244

244:                                              ; preds = %240
  %245 = load i64, ptr %61, align 8, !tbaa !9
  %246 = load ptr, ptr %25, align 8, !tbaa !5
  %247 = load i64, ptr %246, align 8, !tbaa !9
  %248 = icmp sgt i64 %245, %247
  br i1 %248, label %249, label %251

249:                                              ; preds = %244, %240
  %250 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -9, ptr %250, align 8, !tbaa !9
  br label %289

251:                                              ; preds = %244, %237
  %252 = load ptr, ptr %35, align 8, !tbaa !5
  %253 = load i64, ptr %252, align 8, !tbaa !9
  %254 = icmp slt i64 %253, 1
  br i1 %254, label %264, label %255

255:                                              ; preds = %251
  %256 = load i64, ptr %82, align 8, !tbaa !9
  %257 = icmp ne i64 %256, 0
  br i1 %257, label %258, label %266

258:                                              ; preds = %255
  %259 = load ptr, ptr %35, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = load ptr, ptr %25, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = icmp slt i64 %260, %262
  br i1 %263, label %264, label %266

264:                                              ; preds = %258, %251
  %265 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -13, ptr %265, align 8, !tbaa !9
  br label %288

266:                                              ; preds = %258, %255
  %267 = load ptr, ptr %40, align 8, !tbaa !5
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = load i64, ptr %81, align 8, !tbaa !9
  %270 = icmp slt i64 %268, %269
  br i1 %270, label %271, label %276

271:                                              ; preds = %266
  %272 = load i64, ptr %104, align 8, !tbaa !9
  %273 = icmp ne i64 %272, 0
  br i1 %273, label %276, label %274

274:                                              ; preds = %271
  %275 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -17, ptr %275, align 8, !tbaa !9
  br label %287

276:                                              ; preds = %271, %266
  %277 = load ptr, ptr %42, align 8, !tbaa !5
  %278 = load i64, ptr %277, align 8, !tbaa !9
  %279 = load i64, ptr %98, align 8, !tbaa !9
  %280 = icmp slt i64 %278, %279
  br i1 %280, label %281, label %286

281:                                              ; preds = %276
  %282 = load i64, ptr %104, align 8, !tbaa !9
  %283 = icmp ne i64 %282, 0
  br i1 %283, label %286, label %284

284:                                              ; preds = %281
  %285 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -19, ptr %285, align 8, !tbaa !9
  br label %286

286:                                              ; preds = %284, %281, %276
  br label %287

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

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

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

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

291:                                              ; preds = %290, %222
  br label %292

292:                                              ; preds = %291, %209
  br label %293

293:                                              ; preds = %292, %203
  br label %294

294:                                              ; preds = %293, %192
  %295 = call double @slamch_(ptr noundef @.str.4)
  %296 = fptrunc double %295 to float
  store float %296, ptr %89, align 4, !tbaa !11
  %297 = call double @slamch_(ptr noundef @.str.5)
  %298 = fptrunc double %297 to float
  store float %298, ptr %62, align 4, !tbaa !11
  %299 = load float, ptr %89, align 4, !tbaa !11
  %300 = load float, ptr %62, align 4, !tbaa !11
  %301 = fdiv float %299, %300
  store float %301, ptr %103, align 4, !tbaa !11
  %302 = load float, ptr %103, align 4, !tbaa !11
  %303 = fdiv float 1.000000e+00, %302
  store float %303, ptr %90, align 4, !tbaa !11
  %304 = load float, ptr %103, align 4, !tbaa !11
  %305 = fpext float %304 to double
  %306 = call double @sqrt(double noundef %305) #4
  %307 = fptrunc double %306 to float
  store float %307, ptr %68, align 4, !tbaa !11
  %308 = load float, ptr %90, align 4, !tbaa !11
  %309 = fpext float %308 to double
  %310 = call double @sqrt(double noundef %309) #4
  %311 = fptrunc double %310 to float
  store float %311, ptr %48, align 4, !tbaa !11
  %312 = load float, ptr %89, align 4, !tbaa !11
  %313 = fpext float %312 to double
  %314 = call double @sqrt(double noundef %313) #4
  %315 = call double @sqrt(double noundef %314) #4
  %316 = fdiv double 1.000000e+00, %315
  %317 = fptrunc double %316 to float
  store float %317, ptr %49, align 4, !tbaa !11
  %318 = load float, ptr %48, align 4, !tbaa !11
  %319 = load float, ptr %49, align 4, !tbaa !11
  %320 = fcmp ole float %318, %319
  br i1 %320, label %321, label %323

321:                                              ; preds = %294
  %322 = load float, ptr %48, align 4, !tbaa !11
  br label %325

323:                                              ; preds = %294
  %324 = load float, ptr %49, align 4, !tbaa !11
  br label %325

325:                                              ; preds = %323, %321
  %326 = phi float [ %322, %321 ], [ %324, %323 ]
  %327 = fpext float %326 to double
  %328 = fptrunc double %327 to float
  store float %328, ptr %69, align 4, !tbaa !11
  %329 = load ptr, ptr %43, align 8, !tbaa !5
  %330 = load i64, ptr %329, align 8, !tbaa !9
  %331 = icmp eq i64 %330, 0
  br i1 %331, label %332, label %410

332:                                              ; preds = %325
  %333 = load i64, ptr %81, align 8, !tbaa !9
  %334 = sitofp i64 %333 to float
  %335 = load ptr, ptr %39, align 8, !tbaa !5
  %336 = getelementptr inbounds float, ptr %335, i64 1
  store float %334, ptr %336, align 4, !tbaa !11
  %337 = load i64, ptr %98, align 8, !tbaa !9
  %338 = load ptr, ptr %41, align 8, !tbaa !5
  %339 = getelementptr inbounds i64, ptr %338, i64 1
  store i64 %337, ptr %339, align 8, !tbaa !9
  %340 = load i64, ptr %82, align 8, !tbaa !9
  %341 = icmp ne i64 %340, 0
  br i1 %341, label %342, label %348

342:                                              ; preds = %332
  %343 = load i64, ptr %83, align 8, !tbaa !9
  %344 = icmp ne i64 %343, 0
  br i1 %344, label %345, label %348

345:                                              ; preds = %342
  %346 = load ptr, ptr %25, align 8, !tbaa !5
  %347 = load i64, ptr %346, align 8, !tbaa !9
  store i64 %347, ptr %99, align 8, !tbaa !9
  br label %378

348:                                              ; preds = %342, %332
  %349 = load i64, ptr %82, align 8, !tbaa !9
  %350 = icmp ne i64 %349, 0
  br i1 %350, label %351, label %364

351:                                              ; preds = %348
  %352 = load i64, ptr %87, align 8, !tbaa !9
  %353 = icmp ne i64 %352, 0
  br i1 %353, label %354, label %364

354:                                              ; preds = %351
  %355 = load ptr, ptr %25, align 8, !tbaa !5
  %356 = load ptr, ptr %28, align 8, !tbaa !5
  %357 = load ptr, ptr %29, align 8, !tbaa !5
  %358 = load ptr, ptr %26, align 8, !tbaa !5
  %359 = getelementptr inbounds float, ptr %358, i64 1
  %360 = load ptr, ptr %27, align 8, !tbaa !5
  %361 = getelementptr inbounds float, ptr %360, i64 1
  %362 = load ptr, ptr %43, align 8, !tbaa !5
  %363 = call i32 @slarrc_(ptr noundef @.str.6, ptr noundef %355, ptr noundef %356, ptr noundef %357, ptr noundef %359, ptr noundef %361, ptr noundef %89, ptr noundef %99, ptr noundef %70, ptr noundef %73, ptr noundef %362)
  br label %377

364:                                              ; preds = %351, %348
  %365 = load i64, ptr %82, align 8, !tbaa !9
  %366 = icmp ne i64 %365, 0
  br i1 %366, label %367, label %375

367:                                              ; preds = %364
  %368 = load i64, ptr %85, align 8, !tbaa !9
  %369 = icmp ne i64 %368, 0
  br i1 %369, label %370, label %375

370:                                              ; preds = %367
  %371 = load i64, ptr %61, align 8, !tbaa !9
  %372 = load i64, ptr %60, align 8, !tbaa !9
  %373 = sub nsw i64 %371, %372
  %374 = add nsw i64 %373, 1
  store i64 %374, ptr %99, align 8, !tbaa !9
  br label %376

375:                                              ; preds = %367, %364
  store i64 0, ptr %99, align 8, !tbaa !9
  br label %376

376:                                              ; preds = %375, %370
  br label %377

377:                                              ; preds = %376, %354
  br label %378

378:                                              ; preds = %377, %345
  %379 = load i64, ptr %105, align 8, !tbaa !9
  %380 = icmp ne i64 %379, 0
  br i1 %380, label %381, label %398

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

385:                                              ; preds = %381
  %386 = load i64, ptr %44, align 8, !tbaa !9
  %387 = add nsw i64 %386, 1
  store i64 %387, ptr %46, align 8, !tbaa !9
  %388 = load i64, ptr %99, align 8, !tbaa !9
  %389 = sitofp i64 %388 to float
  %390 = load ptr, ptr %34, align 8, !tbaa !5
  %391 = load i64, ptr %46, align 8, !tbaa !9
  %392 = getelementptr inbounds %struct.complex, ptr %390, i64 %391
  %393 = getelementptr inbounds %struct.complex, ptr %392, i32 0, i32 0
  store float %389, ptr %393, align 4, !tbaa !13
  %394 = load ptr, ptr %34, align 8, !tbaa !5
  %395 = load i64, ptr %46, align 8, !tbaa !9
  %396 = getelementptr inbounds %struct.complex, ptr %394, i64 %395
  %397 = getelementptr inbounds %struct.complex, ptr %396, i32 0, i32 1
  store float 0.000000e+00, ptr %397, align 4, !tbaa !15
  br label %409

398:                                              ; preds = %381, %378
  %399 = load ptr, ptr %36, align 8, !tbaa !5
  %400 = load i64, ptr %399, align 8, !tbaa !9
  %401 = load i64, ptr %99, align 8, !tbaa !9
  %402 = icmp slt i64 %400, %401
  br i1 %402, label %403, label %408

403:                                              ; preds = %398
  %404 = load i64, ptr %105, align 8, !tbaa !9
  %405 = icmp ne i64 %404, 0
  br i1 %405, label %408, label %406

406:                                              ; preds = %403
  %407 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -14, ptr %407, align 8, !tbaa !9
  br label %408

408:                                              ; preds = %406, %403, %398
  br label %409

409:                                              ; preds = %408, %385
  br label %410

410:                                              ; preds = %409, %325
  %411 = load ptr, ptr %43, align 8, !tbaa !5
  %412 = load i64, ptr %411, align 8, !tbaa !9
  %413 = icmp ne i64 %412, 0
  br i1 %413, label %414, label %419

414:                                              ; preds = %410
  %415 = load ptr, ptr %43, align 8, !tbaa !5
  %416 = load i64, ptr %415, align 8, !tbaa !9
  %417 = sub nsw i64 0, %416
  store i64 %417, ptr %46, align 8, !tbaa !9
  %418 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %46)
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1347

419:                                              ; preds = %410
  %420 = load i64, ptr %104, align 8, !tbaa !9
  %421 = icmp ne i64 %420, 0
  br i1 %421, label %425, label %422

422:                                              ; preds = %419
  %423 = load i64, ptr %105, align 8, !tbaa !9
  %424 = icmp ne i64 %423, 0
  br i1 %424, label %425, label %426

425:                                              ; preds = %422, %419
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1347

426:                                              ; preds = %422
  br label %427

427:                                              ; preds = %426
  %428 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 0, ptr %428, align 8, !tbaa !9
  %429 = load ptr, ptr %25, align 8, !tbaa !5
  %430 = load i64, ptr %429, align 8, !tbaa !9
  %431 = icmp eq i64 %430, 0
  br i1 %431, label %432, label %433

432:                                              ; preds = %427
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1347

433:                                              ; preds = %427
  %434 = load ptr, ptr %25, align 8, !tbaa !5
  %435 = load i64, ptr %434, align 8, !tbaa !9
  %436 = icmp eq i64 %435, 1
  br i1 %436, label %437, label %492

437:                                              ; preds = %433
  %438 = load i64, ptr %83, align 8, !tbaa !9
  %439 = icmp ne i64 %438, 0
  br i1 %439, label %443, label %440

440:                                              ; preds = %437
  %441 = load i64, ptr %85, align 8, !tbaa !9
  %442 = icmp ne i64 %441, 0
  br i1 %442, label %443, label %450

443:                                              ; preds = %440, %437
  %444 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %444, align 8, !tbaa !9
  %445 = load ptr, ptr %26, align 8, !tbaa !5
  %446 = getelementptr inbounds float, ptr %445, i64 1
  %447 = load float, ptr %446, align 4, !tbaa !11
  %448 = load ptr, ptr %33, align 8, !tbaa !5
  %449 = getelementptr inbounds float, ptr %448, i64 1
  store float %447, ptr %449, align 4, !tbaa !11
  br label %470

450:                                              ; preds = %440
  %451 = load float, ptr %58, align 4, !tbaa !11
  %452 = load ptr, ptr %26, align 8, !tbaa !5
  %453 = getelementptr inbounds float, ptr %452, i64 1
  %454 = load float, ptr %453, align 4, !tbaa !11
  %455 = fcmp olt float %451, %454
  br i1 %455, label %456, label %469

456:                                              ; preds = %450
  %457 = load float, ptr %59, align 4, !tbaa !11
  %458 = load ptr, ptr %26, align 8, !tbaa !5
  %459 = getelementptr inbounds float, ptr %458, i64 1
  %460 = load float, ptr %459, align 4, !tbaa !11
  %461 = fcmp oge float %457, %460
  br i1 %461, label %462, label %469

462:                                              ; preds = %456
  %463 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %463, align 8, !tbaa !9
  %464 = load ptr, ptr %26, align 8, !tbaa !5
  %465 = getelementptr inbounds float, ptr %464, i64 1
  %466 = load float, ptr %465, align 4, !tbaa !11
  %467 = load ptr, ptr %33, align 8, !tbaa !5
  %468 = getelementptr inbounds float, ptr %467, i64 1
  store float %466, ptr %468, align 4, !tbaa !11
  br label %469

469:                                              ; preds = %462, %456, %450
  br label %470

470:                                              ; preds = %469, %443
  %471 = load i64, ptr %82, align 8, !tbaa !9
  %472 = icmp ne i64 %471, 0
  br i1 %472, label %473, label %491

473:                                              ; preds = %470
  %474 = load i64, ptr %105, align 8, !tbaa !9
  %475 = icmp ne i64 %474, 0
  br i1 %475, label %491, label %476

476:                                              ; preds = %473
  %477 = load i64, ptr %44, align 8, !tbaa !9
  %478 = add nsw i64 %477, 1
  store i64 %478, ptr %46, align 8, !tbaa !9
  %479 = load ptr, ptr %34, align 8, !tbaa !5
  %480 = load i64, ptr %46, align 8, !tbaa !9
  %481 = getelementptr inbounds %struct.complex, ptr %479, i64 %480
  %482 = getelementptr inbounds %struct.complex, ptr %481, i32 0, i32 0
  store float 1.000000e+00, ptr %482, align 4, !tbaa !13
  %483 = load ptr, ptr %34, align 8, !tbaa !5
  %484 = load i64, ptr %46, align 8, !tbaa !9
  %485 = getelementptr inbounds %struct.complex, ptr %483, i64 %484
  %486 = getelementptr inbounds %struct.complex, ptr %485, i32 0, i32 1
  store float 0.000000e+00, ptr %486, align 4, !tbaa !15
  %487 = load ptr, ptr %37, align 8, !tbaa !5
  %488 = getelementptr inbounds i64, ptr %487, i64 1
  store i64 1, ptr %488, align 8, !tbaa !9
  %489 = load ptr, ptr %37, align 8, !tbaa !5
  %490 = getelementptr inbounds i64, ptr %489, i64 2
  store i64 1, ptr %490, align 8, !tbaa !9
  br label %491

491:                                              ; preds = %476, %473, %470
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1347

492:                                              ; preds = %433
  %493 = load ptr, ptr %25, align 8, !tbaa !5
  %494 = load i64, ptr %493, align 8, !tbaa !9
  %495 = icmp eq i64 %494, 2
  br i1 %495, label %496, label %743

496:                                              ; preds = %492
  %497 = load i64, ptr %82, align 8, !tbaa !9
  %498 = icmp ne i64 %497, 0
  br i1 %498, label %507, label %499

499:                                              ; preds = %496
  %500 = load ptr, ptr %26, align 8, !tbaa !5
  %501 = getelementptr inbounds float, ptr %500, i64 1
  %502 = load ptr, ptr %27, align 8, !tbaa !5
  %503 = getelementptr inbounds float, ptr %502, i64 1
  %504 = load ptr, ptr %26, align 8, !tbaa !5
  %505 = getelementptr inbounds float, ptr %504, i64 2
  %506 = call i32 @slae2_(ptr noundef %501, ptr noundef %503, ptr noundef %505, ptr noundef %52, ptr noundef %53)
  br label %522

507:                                              ; preds = %496
  %508 = load i64, ptr %82, align 8, !tbaa !9
  %509 = icmp ne i64 %508, 0
  br i1 %509, label %510, label %521

510:                                              ; preds = %507
  %511 = load i64, ptr %105, align 8, !tbaa !9
  %512 = icmp ne i64 %511, 0
  br i1 %512, label %521, label %513

513:                                              ; preds = %510
  %514 = load ptr, ptr %26, align 8, !tbaa !5
  %515 = getelementptr inbounds float, ptr %514, i64 1
  %516 = load ptr, ptr %27, align 8, !tbaa !5
  %517 = getelementptr inbounds float, ptr %516, i64 1
  %518 = load ptr, ptr %26, align 8, !tbaa !5
  %519 = getelementptr inbounds float, ptr %518, i64 2
  %520 = call i32 @slaev2_(ptr noundef %515, ptr noundef %517, ptr noundef %519, ptr noundef %52, ptr noundef %53, ptr noundef %55, ptr noundef %57)
  br label %521

521:                                              ; preds = %513, %510, %507
  br label %522

522:                                              ; preds = %521, %499
  %523 = load i64, ptr %83, align 8, !tbaa !9
  %524 = icmp ne i64 %523, 0
  br i1 %524, label %542, label %525

525:                                              ; preds = %522
  %526 = load i64, ptr %87, align 8, !tbaa !9
  %527 = icmp ne i64 %526, 0
  br i1 %527, label %528, label %536

528:                                              ; preds = %525
  %529 = load float, ptr %53, align 4, !tbaa !11
  %530 = load float, ptr %58, align 4, !tbaa !11
  %531 = fcmp ogt float %529, %530
  br i1 %531, label %532, label %536

532:                                              ; preds = %528
  %533 = load float, ptr %53, align 4, !tbaa !11
  %534 = load float, ptr %59, align 4, !tbaa !11
  %535 = fcmp ole float %533, %534
  br i1 %535, label %542, label %536

536:                                              ; preds = %532, %528, %525
  %537 = load i64, ptr %85, align 8, !tbaa !9
  %538 = icmp ne i64 %537, 0
  br i1 %538, label %539, label %633

539:                                              ; preds = %536
  %540 = load i64, ptr %60, align 8, !tbaa !9
  %541 = icmp eq i64 %540, 1
  br i1 %541, label %542, label %633

542:                                              ; preds = %539, %532, %522
  %543 = load ptr, ptr %32, align 8, !tbaa !5
  %544 = load i64, ptr %543, align 8, !tbaa !9
  %545 = add nsw i64 %544, 1
  store i64 %545, ptr %543, align 8, !tbaa !9
  %546 = load float, ptr %53, align 4, !tbaa !11
  %547 = load ptr, ptr %33, align 8, !tbaa !5
  %548 = load ptr, ptr %32, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  %550 = getelementptr inbounds float, ptr %547, i64 %549
  store float %546, ptr %550, align 4, !tbaa !11
  %551 = load i64, ptr %82, align 8, !tbaa !9
  %552 = icmp ne i64 %551, 0
  br i1 %552, label %553, label %632

553:                                              ; preds = %542
  %554 = load i64, ptr %105, align 8, !tbaa !9
  %555 = icmp ne i64 %554, 0
  br i1 %555, label %632, label %556

556:                                              ; preds = %553
  %557 = load ptr, ptr %32, align 8, !tbaa !5
  %558 = load i64, ptr %557, align 8, !tbaa !9
  %559 = load i64, ptr %44, align 8, !tbaa !9
  %560 = mul nsw i64 %558, %559
  %561 = add nsw i64 %560, 1
  store i64 %561, ptr %46, align 8, !tbaa !9
  %562 = load float, ptr %57, align 4, !tbaa !11
  %563 = fneg float %562
  store float %563, ptr %48, align 4, !tbaa !11
  %564 = load float, ptr %48, align 4, !tbaa !11
  %565 = load ptr, ptr %34, align 8, !tbaa !5
  %566 = load i64, ptr %46, align 8, !tbaa !9
  %567 = getelementptr inbounds %struct.complex, ptr %565, i64 %566
  %568 = getelementptr inbounds %struct.complex, ptr %567, i32 0, i32 0
  store float %564, ptr %568, align 4, !tbaa !13
  %569 = load ptr, ptr %34, align 8, !tbaa !5
  %570 = load i64, ptr %46, align 8, !tbaa !9
  %571 = getelementptr inbounds %struct.complex, ptr %569, i64 %570
  %572 = getelementptr inbounds %struct.complex, ptr %571, i32 0, i32 1
  store float 0.000000e+00, ptr %572, align 4, !tbaa !15
  %573 = load ptr, ptr %32, align 8, !tbaa !5
  %574 = load i64, ptr %573, align 8, !tbaa !9
  %575 = load i64, ptr %44, align 8, !tbaa !9
  %576 = mul nsw i64 %574, %575
  %577 = add nsw i64 %576, 2
  store i64 %577, ptr %46, align 8, !tbaa !9
  %578 = load float, ptr %55, align 4, !tbaa !11
  %579 = load ptr, ptr %34, align 8, !tbaa !5
  %580 = load i64, ptr %46, align 8, !tbaa !9
  %581 = getelementptr inbounds %struct.complex, ptr %579, i64 %580
  %582 = getelementptr inbounds %struct.complex, ptr %581, i32 0, i32 0
  store float %578, ptr %582, align 4, !tbaa !13
  %583 = load ptr, ptr %34, align 8, !tbaa !5
  %584 = load i64, ptr %46, align 8, !tbaa !9
  %585 = getelementptr inbounds %struct.complex, ptr %583, i64 %584
  %586 = getelementptr inbounds %struct.complex, ptr %585, i32 0, i32 1
  store float 0.000000e+00, ptr %586, align 4, !tbaa !15
  %587 = load float, ptr %57, align 4, !tbaa !11
  %588 = fcmp une float %587, 0.000000e+00
  br i1 %588, label %589, label %619

589:                                              ; preds = %556
  %590 = load float, ptr %55, align 4, !tbaa !11
  %591 = fcmp une float %590, 0.000000e+00
  br i1 %591, label %592, label %605

592:                                              ; preds = %589
  %593 = load ptr, ptr %37, align 8, !tbaa !5
  %594 = load ptr, ptr %32, align 8, !tbaa !5
  %595 = load i64, ptr %594, align 8, !tbaa !9
  %596 = shl i64 %595, 1
  %597 = sub nsw i64 %596, 1
  %598 = getelementptr inbounds i64, ptr %593, i64 %597
  store i64 1, ptr %598, align 8, !tbaa !9
  %599 = load ptr, ptr %37, align 8, !tbaa !5
  %600 = load ptr, ptr %32, align 8, !tbaa !5
  %601 = load i64, ptr %600, align 8, !tbaa !9
  %602 = shl i64 %601, 1
  %603 = sub nsw i64 %602, 1
  %604 = getelementptr inbounds i64, ptr %599, i64 %603
  store i64 2, ptr %604, align 8, !tbaa !9
  br label %618

605:                                              ; preds = %589
  %606 = load ptr, ptr %37, align 8, !tbaa !5
  %607 = load ptr, ptr %32, align 8, !tbaa !5
  %608 = load i64, ptr %607, align 8, !tbaa !9
  %609 = shl i64 %608, 1
  %610 = sub nsw i64 %609, 1
  %611 = getelementptr inbounds i64, ptr %606, i64 %610
  store i64 1, ptr %611, align 8, !tbaa !9
  %612 = load ptr, ptr %37, align 8, !tbaa !5
  %613 = load ptr, ptr %32, align 8, !tbaa !5
  %614 = load i64, ptr %613, align 8, !tbaa !9
  %615 = shl i64 %614, 1
  %616 = sub nsw i64 %615, 1
  %617 = getelementptr inbounds i64, ptr %612, i64 %616
  store i64 1, ptr %617, align 8, !tbaa !9
  br label %618

618:                                              ; preds = %605, %592
  br label %631

619:                                              ; preds = %556
  %620 = load ptr, ptr %37, align 8, !tbaa !5
  %621 = load ptr, ptr %32, align 8, !tbaa !5
  %622 = load i64, ptr %621, align 8, !tbaa !9
  %623 = shl i64 %622, 1
  %624 = sub nsw i64 %623, 1
  %625 = getelementptr inbounds i64, ptr %620, i64 %624
  store i64 2, ptr %625, align 8, !tbaa !9
  %626 = load ptr, ptr %37, align 8, !tbaa !5
  %627 = load ptr, ptr %32, align 8, !tbaa !5
  %628 = load i64, ptr %627, align 8, !tbaa !9
  %629 = mul nsw i64 %628, 2
  %630 = getelementptr inbounds i64, ptr %626, i64 %629
  store i64 2, ptr %630, align 8, !tbaa !9
  br label %631

631:                                              ; preds = %619, %618
  br label %632

632:                                              ; preds = %631, %553, %542
  br label %633

633:                                              ; preds = %632, %539, %536
  %634 = load i64, ptr %83, align 8, !tbaa !9
  %635 = icmp ne i64 %634, 0
  br i1 %635, label %653, label %636

636:                                              ; preds = %633
  %637 = load i64, ptr %87, align 8, !tbaa !9
  %638 = icmp ne i64 %637, 0
  br i1 %638, label %639, label %647

639:                                              ; preds = %636
  %640 = load float, ptr %52, align 4, !tbaa !11
  %641 = load float, ptr %58, align 4, !tbaa !11
  %642 = fcmp ogt float %640, %641
  br i1 %642, label %643, label %647

643:                                              ; preds = %639
  %644 = load float, ptr %52, align 4, !tbaa !11
  %645 = load float, ptr %59, align 4, !tbaa !11
  %646 = fcmp ole float %644, %645
  br i1 %646, label %653, label %647

647:                                              ; preds = %643, %639, %636
  %648 = load i64, ptr %85, align 8, !tbaa !9
  %649 = icmp ne i64 %648, 0
  br i1 %649, label %650, label %742

650:                                              ; preds = %647
  %651 = load i64, ptr %61, align 8, !tbaa !9
  %652 = icmp eq i64 %651, 2
  br i1 %652, label %653, label %742

653:                                              ; preds = %650, %643, %633
  %654 = load ptr, ptr %32, align 8, !tbaa !5
  %655 = load i64, ptr %654, align 8, !tbaa !9
  %656 = add nsw i64 %655, 1
  store i64 %656, ptr %654, align 8, !tbaa !9
  %657 = load float, ptr %52, align 4, !tbaa !11
  %658 = load ptr, ptr %33, align 8, !tbaa !5
  %659 = load ptr, ptr %32, align 8, !tbaa !5
  %660 = load i64, ptr %659, align 8, !tbaa !9
  %661 = getelementptr inbounds float, ptr %658, i64 %660
  store float %657, ptr %661, align 4, !tbaa !11
  %662 = load i64, ptr %82, align 8, !tbaa !9
  %663 = icmp ne i64 %662, 0
  br i1 %663, label %664, label %741

664:                                              ; preds = %653
  %665 = load i64, ptr %105, align 8, !tbaa !9
  %666 = icmp ne i64 %665, 0
  br i1 %666, label %741, label %667

667:                                              ; preds = %664
  %668 = load ptr, ptr %32, align 8, !tbaa !5
  %669 = load i64, ptr %668, align 8, !tbaa !9
  %670 = load i64, ptr %44, align 8, !tbaa !9
  %671 = mul nsw i64 %669, %670
  %672 = add nsw i64 %671, 1
  store i64 %672, ptr %46, align 8, !tbaa !9
  %673 = load float, ptr %55, align 4, !tbaa !11
  %674 = load ptr, ptr %34, align 8, !tbaa !5
  %675 = load i64, ptr %46, align 8, !tbaa !9
  %676 = getelementptr inbounds %struct.complex, ptr %674, i64 %675
  %677 = getelementptr inbounds %struct.complex, ptr %676, i32 0, i32 0
  store float %673, ptr %677, align 4, !tbaa !13
  %678 = load ptr, ptr %34, align 8, !tbaa !5
  %679 = load i64, ptr %46, align 8, !tbaa !9
  %680 = getelementptr inbounds %struct.complex, ptr %678, i64 %679
  %681 = getelementptr inbounds %struct.complex, ptr %680, i32 0, i32 1
  store float 0.000000e+00, ptr %681, align 4, !tbaa !15
  %682 = load ptr, ptr %32, align 8, !tbaa !5
  %683 = load i64, ptr %682, align 8, !tbaa !9
  %684 = load i64, ptr %44, align 8, !tbaa !9
  %685 = mul nsw i64 %683, %684
  %686 = add nsw i64 %685, 2
  store i64 %686, ptr %46, align 8, !tbaa !9
  %687 = load float, ptr %57, align 4, !tbaa !11
  %688 = load ptr, ptr %34, align 8, !tbaa !5
  %689 = load i64, ptr %46, align 8, !tbaa !9
  %690 = getelementptr inbounds %struct.complex, ptr %688, i64 %689
  %691 = getelementptr inbounds %struct.complex, ptr %690, i32 0, i32 0
  store float %687, ptr %691, align 4, !tbaa !13
  %692 = load ptr, ptr %34, align 8, !tbaa !5
  %693 = load i64, ptr %46, align 8, !tbaa !9
  %694 = getelementptr inbounds %struct.complex, ptr %692, i64 %693
  %695 = getelementptr inbounds %struct.complex, ptr %694, i32 0, i32 1
  store float 0.000000e+00, ptr %695, align 4, !tbaa !15
  %696 = load float, ptr %57, align 4, !tbaa !11
  %697 = fcmp une float %696, 0.000000e+00
  br i1 %697, label %698, label %728

698:                                              ; preds = %667
  %699 = load float, ptr %55, align 4, !tbaa !11
  %700 = fcmp une float %699, 0.000000e+00
  br i1 %700, label %701, label %714

701:                                              ; preds = %698
  %702 = load ptr, ptr %37, align 8, !tbaa !5
  %703 = load ptr, ptr %32, align 8, !tbaa !5
  %704 = load i64, ptr %703, align 8, !tbaa !9
  %705 = shl i64 %704, 1
  %706 = sub nsw i64 %705, 1
  %707 = getelementptr inbounds i64, ptr %702, i64 %706
  store i64 1, ptr %707, align 8, !tbaa !9
  %708 = load ptr, ptr %37, align 8, !tbaa !5
  %709 = load ptr, ptr %32, align 8, !tbaa !5
  %710 = load i64, ptr %709, align 8, !tbaa !9
  %711 = shl i64 %710, 1
  %712 = sub nsw i64 %711, 1
  %713 = getelementptr inbounds i64, ptr %708, i64 %712
  store i64 2, ptr %713, align 8, !tbaa !9
  br label %727

714:                                              ; preds = %698
  %715 = load ptr, ptr %37, align 8, !tbaa !5
  %716 = load ptr, ptr %32, align 8, !tbaa !5
  %717 = load i64, ptr %716, align 8, !tbaa !9
  %718 = shl i64 %717, 1
  %719 = sub nsw i64 %718, 1
  %720 = getelementptr inbounds i64, ptr %715, i64 %719
  store i64 1, ptr %720, align 8, !tbaa !9
  %721 = load ptr, ptr %37, align 8, !tbaa !5
  %722 = load ptr, ptr %32, align 8, !tbaa !5
  %723 = load i64, ptr %722, align 8, !tbaa !9
  %724 = shl i64 %723, 1
  %725 = sub nsw i64 %724, 1
  %726 = getelementptr inbounds i64, ptr %721, i64 %725
  store i64 1, ptr %726, align 8, !tbaa !9
  br label %727

727:                                              ; preds = %714, %701
  br label %740

728:                                              ; preds = %667
  %729 = load ptr, ptr %37, align 8, !tbaa !5
  %730 = load ptr, ptr %32, align 8, !tbaa !5
  %731 = load i64, ptr %730, align 8, !tbaa !9
  %732 = shl i64 %731, 1
  %733 = sub nsw i64 %732, 1
  %734 = getelementptr inbounds i64, ptr %729, i64 %733
  store i64 2, ptr %734, align 8, !tbaa !9
  %735 = load ptr, ptr %37, align 8, !tbaa !5
  %736 = load ptr, ptr %32, align 8, !tbaa !5
  %737 = load i64, ptr %736, align 8, !tbaa !9
  %738 = mul nsw i64 %737, 2
  %739 = getelementptr inbounds i64, ptr %735, i64 %738
  store i64 2, ptr %739, align 8, !tbaa !9
  br label %740

740:                                              ; preds = %728, %727
  br label %741

741:                                              ; preds = %740, %664, %653
  br label %742

742:                                              ; preds = %741, %650, %647
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1347

743:                                              ; preds = %492
  store i64 1, ptr %93, align 8, !tbaa !9
  %744 = load ptr, ptr %25, align 8, !tbaa !5
  %745 = load i64, ptr %744, align 8, !tbaa !9
  %746 = shl i64 %745, 1
  %747 = add nsw i64 %746, 1
  store i64 %747, ptr %91, align 8, !tbaa !9
  %748 = load ptr, ptr %25, align 8, !tbaa !5
  %749 = load i64, ptr %748, align 8, !tbaa !9
  %750 = mul nsw i64 %749, 3
  %751 = add nsw i64 %750, 1
  store i64 %751, ptr %77, align 8, !tbaa !9
  %752 = load ptr, ptr %25, align 8, !tbaa !5
  %753 = load i64, ptr %752, align 8, !tbaa !9
  %754 = shl i64 %753, 2
  %755 = add nsw i64 %754, 1
  store i64 %755, ptr %64, align 8, !tbaa !9
  %756 = load ptr, ptr %25, align 8, !tbaa !5
  %757 = load i64, ptr %756, align 8, !tbaa !9
  %758 = mul nsw i64 %757, 5
  %759 = add nsw i64 %758, 1
  store i64 %759, ptr %72, align 8, !tbaa !9
  %760 = load ptr, ptr %25, align 8, !tbaa !5
  %761 = load i64, ptr %760, align 8, !tbaa !9
  %762 = mul nsw i64 %761, 6
  %763 = add nsw i64 %762, 1
  store i64 %763, ptr %96, align 8, !tbaa !9
  store i64 1, ptr %95, align 8, !tbaa !9
  %764 = load ptr, ptr %25, align 8, !tbaa !5
  %765 = load i64, ptr %764, align 8, !tbaa !9
  %766 = add nsw i64 %765, 1
  store i64 %766, ptr %86, align 8, !tbaa !9
  %767 = load ptr, ptr %25, align 8, !tbaa !5
  %768 = load i64, ptr %767, align 8, !tbaa !9
  %769 = shl i64 %768, 1
  %770 = add nsw i64 %769, 1
  store i64 %770, ptr %79, align 8, !tbaa !9
  %771 = load ptr, ptr %25, align 8, !tbaa !5
  %772 = load i64, ptr %771, align 8, !tbaa !9
  %773 = mul nsw i64 %772, 3
  %774 = add nsw i64 %773, 1
  store i64 %774, ptr %92, align 8, !tbaa !9
  store float 1.000000e+00, ptr %76, align 4, !tbaa !11
  %775 = load ptr, ptr %25, align 8, !tbaa !5
  %776 = load ptr, ptr %26, align 8, !tbaa !5
  %777 = getelementptr inbounds float, ptr %776, i64 1
  %778 = load ptr, ptr %27, align 8, !tbaa !5
  %779 = getelementptr inbounds float, ptr %778, i64 1
  %780 = call double @slanst_(ptr noundef @.str.8, ptr noundef %775, ptr noundef %777, ptr noundef %779)
  %781 = fptrunc double %780 to float
  store float %781, ptr %71, align 4, !tbaa !11
  %782 = load float, ptr %71, align 4, !tbaa !11
  %783 = fcmp ogt float %782, 0.000000e+00
  br i1 %783, label %784, label %792

784:                                              ; preds = %743
  %785 = load float, ptr %71, align 4, !tbaa !11
  %786 = load float, ptr %68, align 4, !tbaa !11
  %787 = fcmp olt float %785, %786
  br i1 %787, label %788, label %792

788:                                              ; preds = %784
  %789 = load float, ptr %68, align 4, !tbaa !11
  %790 = load float, ptr %71, align 4, !tbaa !11
  %791 = fdiv float %789, %790
  store float %791, ptr %76, align 4, !tbaa !11
  br label %801

792:                                              ; preds = %784, %743
  %793 = load float, ptr %71, align 4, !tbaa !11
  %794 = load float, ptr %69, align 4, !tbaa !11
  %795 = fcmp ogt float %793, %794
  br i1 %795, label %796, label %800

796:                                              ; preds = %792
  %797 = load float, ptr %69, align 4, !tbaa !11
  %798 = load float, ptr %71, align 4, !tbaa !11
  %799 = fdiv float %797, %798
  store float %799, ptr %76, align 4, !tbaa !11
  br label %800

800:                                              ; preds = %796, %792
  br label %801

801:                                              ; preds = %800, %788
  %802 = load float, ptr %76, align 4, !tbaa !11
  %803 = fcmp une float %802, 1.000000e+00
  br i1 %803, label %804, label %828

804:                                              ; preds = %801
  %805 = load ptr, ptr %25, align 8, !tbaa !5
  %806 = load ptr, ptr %26, align 8, !tbaa !5
  %807 = getelementptr inbounds float, ptr %806, i64 1
  %808 = call i32 @f2c_sscal(ptr noundef %805, ptr noundef %76, ptr noundef %807, ptr noundef @c__1)
  %809 = load ptr, ptr %25, align 8, !tbaa !5
  %810 = load i64, ptr %809, align 8, !tbaa !9
  %811 = sub nsw i64 %810, 1
  store i64 %811, ptr %46, align 8, !tbaa !9
  %812 = load ptr, ptr %27, align 8, !tbaa !5
  %813 = getelementptr inbounds float, ptr %812, i64 1
  %814 = call i32 @f2c_sscal(ptr noundef %46, ptr noundef %76, ptr noundef %813, ptr noundef @c__1)
  %815 = load float, ptr %76, align 4, !tbaa !11
  %816 = load float, ptr %71, align 4, !tbaa !11
  %817 = fmul float %816, %815
  store float %817, ptr %71, align 4, !tbaa !11
  %818 = load i64, ptr %87, align 8, !tbaa !9
  %819 = icmp ne i64 %818, 0
  br i1 %819, label %820, label %827

820:                                              ; preds = %804
  %821 = load float, ptr %76, align 4, !tbaa !11
  %822 = load float, ptr %58, align 4, !tbaa !11
  %823 = fmul float %822, %821
  store float %823, ptr %58, align 4, !tbaa !11
  %824 = load float, ptr %76, align 4, !tbaa !11
  %825 = load float, ptr %59, align 4, !tbaa !11
  %826 = fmul float %825, %824
  store float %826, ptr %59, align 4, !tbaa !11
  br label %827

827:                                              ; preds = %820, %804
  br label %828

828:                                              ; preds = %827, %801
  %829 = load ptr, ptr %38, align 8, !tbaa !5
  %830 = load i64, ptr %829, align 8, !tbaa !9
  %831 = icmp ne i64 %830, 0
  br i1 %831, label %832, label %839

832:                                              ; preds = %828
  %833 = load ptr, ptr %25, align 8, !tbaa !5
  %834 = load ptr, ptr %26, align 8, !tbaa !5
  %835 = getelementptr inbounds float, ptr %834, i64 1
  %836 = load ptr, ptr %27, align 8, !tbaa !5
  %837 = getelementptr inbounds float, ptr %836, i64 1
  %838 = call i32 @slarrr_(ptr noundef %833, ptr noundef %835, ptr noundef %837, ptr noundef %78)
  br label %840

839:                                              ; preds = %828
  store i64 -1, ptr %78, align 8, !tbaa !9
  br label %840

840:                                              ; preds = %839, %832
  %841 = load i64, ptr %78, align 8, !tbaa !9
  %842 = icmp eq i64 %841, 0
  br i1 %842, label %843, label %845

843:                                              ; preds = %840
  %844 = load float, ptr %62, align 4, !tbaa !11
  store float %844, ptr %101, align 4, !tbaa !11
  br label %849

845:                                              ; preds = %840
  %846 = load float, ptr %62, align 4, !tbaa !11
  %847 = fneg float %846
  store float %847, ptr %101, align 4, !tbaa !11
  %848 = load ptr, ptr %38, align 8, !tbaa !5
  store i64 0, ptr %848, align 8, !tbaa !9
  br label %849

849:                                              ; preds = %845, %843
  %850 = load ptr, ptr %38, align 8, !tbaa !5
  %851 = load i64, ptr %850, align 8, !tbaa !9
  %852 = icmp ne i64 %851, 0
  br i1 %852, label %853, label %861

853:                                              ; preds = %849
  %854 = load ptr, ptr %25, align 8, !tbaa !5
  %855 = load ptr, ptr %26, align 8, !tbaa !5
  %856 = getelementptr inbounds float, ptr %855, i64 1
  %857 = load ptr, ptr %39, align 8, !tbaa !5
  %858 = load i64, ptr %64, align 8, !tbaa !9
  %859 = getelementptr inbounds float, ptr %857, i64 %858
  %860 = call i32 @f2c_scopy(ptr noundef %854, ptr noundef %856, ptr noundef @c__1, ptr noundef %859, ptr noundef @c__1)
  br label %861

861:                                              ; preds = %853, %849
  %862 = load ptr, ptr %25, align 8, !tbaa !5
  %863 = load i64, ptr %862, align 8, !tbaa !9
  %864 = sub nsw i64 %863, 1
  store i64 %864, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %865

865:                                              ; preds = %883, %861
  %866 = load i64, ptr %51, align 8, !tbaa !9
  %867 = load i64, ptr %46, align 8, !tbaa !9
  %868 = icmp sle i64 %866, %867
  br i1 %868, label %869, label %886

869:                                              ; preds = %865
  %870 = load ptr, ptr %27, align 8, !tbaa !5
  %871 = load i64, ptr %51, align 8, !tbaa !9
  %872 = getelementptr inbounds float, ptr %870, i64 %871
  %873 = load float, ptr %872, align 4, !tbaa !11
  store float %873, ptr %48, align 4, !tbaa !11
  %874 = load float, ptr %48, align 4, !tbaa !11
  %875 = load float, ptr %48, align 4, !tbaa !11
  %876 = fmul float %874, %875
  %877 = load ptr, ptr %39, align 8, !tbaa !5
  %878 = load i64, ptr %72, align 8, !tbaa !9
  %879 = load i64, ptr %51, align 8, !tbaa !9
  %880 = add nsw i64 %878, %879
  %881 = sub nsw i64 %880, 1
  %882 = getelementptr inbounds float, ptr %877, i64 %881
  store float %876, ptr %882, align 4, !tbaa !11
  br label %883

883:                                              ; preds = %869
  %884 = load i64, ptr %51, align 8, !tbaa !9
  %885 = add nsw i64 %884, 1
  store i64 %885, ptr %51, align 8, !tbaa !9
  br label %865, !llvm.loop !16

886:                                              ; preds = %865
  %887 = load i64, ptr %82, align 8, !tbaa !9
  %888 = icmp ne i64 %887, 0
  br i1 %888, label %894, label %889

889:                                              ; preds = %886
  %890 = load float, ptr %62, align 4, !tbaa !11
  %891 = fmul float %890, 4.000000e+00
  store float %891, ptr %74, align 4, !tbaa !11
  %892 = load float, ptr %62, align 4, !tbaa !11
  %893 = fmul float %892, 4.000000e+00
  store float %893, ptr %75, align 4, !tbaa !11
  br label %931

894:                                              ; preds = %886
  %895 = load float, ptr %62, align 4, !tbaa !11
  %896 = fpext float %895 to double
  %897 = call double @sqrt(double noundef %896) #4
  %898 = fmul double %897, 0x3FA99999A0000000
  %899 = fptrunc double %898 to float
  store float %899, ptr %48, align 4, !tbaa !11
  %900 = load float, ptr %62, align 4, !tbaa !11
  %901 = fmul float %900, 4.000000e+00
  store float %901, ptr %49, align 4, !tbaa !11
  %902 = load float, ptr %48, align 4, !tbaa !11
  %903 = load float, ptr %49, align 4, !tbaa !11
  %904 = fcmp oge float %902, %903
  br i1 %904, label %905, label %907

905:                                              ; preds = %894
  %906 = load float, ptr %48, align 4, !tbaa !11
  br label %909

907:                                              ; preds = %894
  %908 = load float, ptr %49, align 4, !tbaa !11
  br label %909

909:                                              ; preds = %907, %905
  %910 = phi float [ %906, %905 ], [ %908, %907 ]
  %911 = fpext float %910 to double
  %912 = fptrunc double %911 to float
  store float %912, ptr %74, align 4, !tbaa !11
  %913 = load float, ptr %62, align 4, !tbaa !11
  %914 = fpext float %913 to double
  %915 = call double @sqrt(double noundef %914) #4
  %916 = fmul double %915, 0x3F747AE140000000
  %917 = fptrunc double %916 to float
  store float %917, ptr %48, align 4, !tbaa !11
  %918 = load float, ptr %62, align 4, !tbaa !11
  %919 = fmul float %918, 4.000000e+00
  store float %919, ptr %49, align 4, !tbaa !11
  %920 = load float, ptr %48, align 4, !tbaa !11
  %921 = load float, ptr %49, align 4, !tbaa !11
  %922 = fcmp oge float %920, %921
  br i1 %922, label %923, label %925

923:                                              ; preds = %909
  %924 = load float, ptr %48, align 4, !tbaa !11
  br label %927

925:                                              ; preds = %909
  %926 = load float, ptr %49, align 4, !tbaa !11
  br label %927

927:                                              ; preds = %925, %923
  %928 = phi float [ %924, %923 ], [ %926, %925 ]
  %929 = fpext float %928 to double
  %930 = fptrunc double %929 to float
  store float %930, ptr %75, align 4, !tbaa !11
  br label %931

931:                                              ; preds = %927, %889
  %932 = load ptr, ptr %24, align 8, !tbaa !5
  %933 = load ptr, ptr %25, align 8, !tbaa !5
  %934 = load ptr, ptr %26, align 8, !tbaa !5
  %935 = getelementptr inbounds float, ptr %934, i64 1
  %936 = load ptr, ptr %27, align 8, !tbaa !5
  %937 = getelementptr inbounds float, ptr %936, i64 1
  %938 = load ptr, ptr %39, align 8, !tbaa !5
  %939 = load i64, ptr %72, align 8, !tbaa !9
  %940 = getelementptr inbounds float, ptr %938, i64 %939
  %941 = load ptr, ptr %41, align 8, !tbaa !5
  %942 = load i64, ptr %95, align 8, !tbaa !9
  %943 = getelementptr inbounds i64, ptr %941, i64 %942
  %944 = load ptr, ptr %32, align 8, !tbaa !5
  %945 = load ptr, ptr %33, align 8, !tbaa !5
  %946 = getelementptr inbounds float, ptr %945, i64 1
  %947 = load ptr, ptr %39, align 8, !tbaa !5
  %948 = load i64, ptr %91, align 8, !tbaa !9
  %949 = getelementptr inbounds float, ptr %947, i64 %948
  %950 = load ptr, ptr %39, align 8, !tbaa !5
  %951 = load i64, ptr %77, align 8, !tbaa !9
  %952 = getelementptr inbounds float, ptr %950, i64 %951
  %953 = load ptr, ptr %41, align 8, !tbaa !5
  %954 = load i64, ptr %86, align 8, !tbaa !9
  %955 = getelementptr inbounds i64, ptr %953, i64 %954
  %956 = load ptr, ptr %41, align 8, !tbaa !5
  %957 = load i64, ptr %79, align 8, !tbaa !9
  %958 = getelementptr inbounds i64, ptr %956, i64 %957
  %959 = load ptr, ptr %39, align 8, !tbaa !5
  %960 = load i64, ptr %93, align 8, !tbaa !9
  %961 = getelementptr inbounds float, ptr %959, i64 %960
  %962 = load ptr, ptr %39, align 8, !tbaa !5
  %963 = load i64, ptr %96, align 8, !tbaa !9
  %964 = getelementptr inbounds float, ptr %962, i64 %963
  %965 = load ptr, ptr %41, align 8, !tbaa !5
  %966 = load i64, ptr %92, align 8, !tbaa !9
  %967 = getelementptr inbounds i64, ptr %965, i64 %966
  %968 = call i32 @slarre_(ptr noundef %932, ptr noundef %933, ptr noundef %58, ptr noundef %59, ptr noundef %60, ptr noundef %61, ptr noundef %935, ptr noundef %937, ptr noundef %940, ptr noundef %74, ptr noundef %75, ptr noundef %101, ptr noundef %102, ptr noundef %943, ptr noundef %944, ptr noundef %946, ptr noundef %949, ptr noundef %952, ptr noundef %955, ptr noundef %958, ptr noundef %961, ptr noundef %100, ptr noundef %964, ptr noundef %967, ptr noundef %78)
  %969 = load i64, ptr %78, align 8, !tbaa !9
  %970 = icmp ne i64 %969, 0
  br i1 %970, label %971, label %983

971:                                              ; preds = %931
  %972 = load i64, ptr %78, align 8, !tbaa !9
  %973 = icmp sge i64 %972, 0
  br i1 %973, label %974, label %976

974:                                              ; preds = %971
  %975 = load i64, ptr %78, align 8, !tbaa !9
  br label %979

976:                                              ; preds = %971
  %977 = load i64, ptr %78, align 8, !tbaa !9
  %978 = sub nsw i64 0, %977
  br label %979

979:                                              ; preds = %976, %974
  %980 = phi i64 [ %975, %974 ], [ %978, %976 ]
  %981 = add nsw i64 %980, 10
  %982 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %981, ptr %982, align 8, !tbaa !9
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1347

983:                                              ; preds = %931
  %984 = load i64, ptr %82, align 8, !tbaa !9
  %985 = icmp ne i64 %984, 0
  br i1 %985, label %986, label %1042

986:                                              ; preds = %983
  %987 = load ptr, ptr %25, align 8, !tbaa !5
  %988 = load ptr, ptr %26, align 8, !tbaa !5
  %989 = getelementptr inbounds float, ptr %988, i64 1
  %990 = load ptr, ptr %27, align 8, !tbaa !5
  %991 = getelementptr inbounds float, ptr %990, i64 1
  %992 = load ptr, ptr %41, align 8, !tbaa !5
  %993 = load i64, ptr %95, align 8, !tbaa !9
  %994 = getelementptr inbounds i64, ptr %992, i64 %993
  %995 = load ptr, ptr %32, align 8, !tbaa !5
  %996 = load ptr, ptr %32, align 8, !tbaa !5
  %997 = load ptr, ptr %33, align 8, !tbaa !5
  %998 = getelementptr inbounds float, ptr %997, i64 1
  %999 = load ptr, ptr %39, align 8, !tbaa !5
  %1000 = load i64, ptr %91, align 8, !tbaa !9
  %1001 = getelementptr inbounds float, ptr %999, i64 %1000
  %1002 = load ptr, ptr %39, align 8, !tbaa !5
  %1003 = load i64, ptr %77, align 8, !tbaa !9
  %1004 = getelementptr inbounds float, ptr %1002, i64 %1003
  %1005 = load ptr, ptr %41, align 8, !tbaa !5
  %1006 = load i64, ptr %86, align 8, !tbaa !9
  %1007 = getelementptr inbounds i64, ptr %1005, i64 %1006
  %1008 = load ptr, ptr %41, align 8, !tbaa !5
  %1009 = load i64, ptr %79, align 8, !tbaa !9
  %1010 = getelementptr inbounds i64, ptr %1008, i64 %1009
  %1011 = load ptr, ptr %39, align 8, !tbaa !5
  %1012 = load i64, ptr %93, align 8, !tbaa !9
  %1013 = getelementptr inbounds float, ptr %1011, i64 %1012
  %1014 = load ptr, ptr %34, align 8, !tbaa !5
  %1015 = load i64, ptr %45, align 8, !tbaa !9
  %1016 = getelementptr inbounds %struct.complex, ptr %1014, i64 %1015
  %1017 = load ptr, ptr %35, align 8, !tbaa !5
  %1018 = load ptr, ptr %37, align 8, !tbaa !5
  %1019 = getelementptr inbounds i64, ptr %1018, i64 1
  %1020 = load ptr, ptr %39, align 8, !tbaa !5
  %1021 = load i64, ptr %96, align 8, !tbaa !9
  %1022 = getelementptr inbounds float, ptr %1020, i64 %1021
  %1023 = load ptr, ptr %41, align 8, !tbaa !5
  %1024 = load i64, ptr %92, align 8, !tbaa !9
  %1025 = getelementptr inbounds i64, ptr %1023, i64 %1024
  %1026 = call i32 @clarrv_(ptr noundef %987, ptr noundef %58, ptr noundef %59, ptr noundef %989, ptr noundef %991, ptr noundef %100, ptr noundef %994, ptr noundef %995, ptr noundef @c__1, ptr noundef %996, ptr noundef @c_b18, ptr noundef %74, ptr noundef %75, ptr noundef %998, ptr noundef %1001, ptr noundef %1004, ptr noundef %1007, ptr noundef %1010, ptr noundef %1013, ptr noundef %1016, ptr noundef %1017, ptr noundef %1019, ptr noundef %1022, ptr noundef %1025, ptr noundef %78)
  %1027 = load i64, ptr %78, align 8, !tbaa !9
  %1028 = icmp ne i64 %1027, 0
  br i1 %1028, label %1029, label %1041

1029:                                             ; preds = %986
  %1030 = load i64, ptr %78, align 8, !tbaa !9
  %1031 = icmp sge i64 %1030, 0
  br i1 %1031, label %1032, label %1034

1032:                                             ; preds = %1029
  %1033 = load i64, ptr %78, align 8, !tbaa !9
  br label %1037

1034:                                             ; preds = %1029
  %1035 = load i64, ptr %78, align 8, !tbaa !9
  %1036 = sub nsw i64 0, %1035
  br label %1037

1037:                                             ; preds = %1034, %1032
  %1038 = phi i64 [ %1033, %1032 ], [ %1036, %1034 ]
  %1039 = add nsw i64 %1038, 20
  %1040 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %1039, ptr %1040, align 8, !tbaa !9
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1347

1041:                                             ; preds = %986
  br label %1076

1042:                                             ; preds = %983
  %1043 = load ptr, ptr %32, align 8, !tbaa !5
  %1044 = load i64, ptr %1043, align 8, !tbaa !9
  store i64 %1044, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %1045

1045:                                             ; preds = %1072, %1042
  %1046 = load i64, ptr %51, align 8, !tbaa !9
  %1047 = load i64, ptr %46, align 8, !tbaa !9
  %1048 = icmp sle i64 %1046, %1047
  br i1 %1048, label %1049, label %1075

1049:                                             ; preds = %1045
  %1050 = load ptr, ptr %41, align 8, !tbaa !5
  %1051 = load i64, ptr %86, align 8, !tbaa !9
  %1052 = load i64, ptr %51, align 8, !tbaa !9
  %1053 = add nsw i64 %1051, %1052
  %1054 = sub nsw i64 %1053, 1
  %1055 = getelementptr inbounds i64, ptr %1050, i64 %1054
  %1056 = load i64, ptr %1055, align 8, !tbaa !9
  store i64 %1056, ptr %70, align 8, !tbaa !9
  %1057 = load ptr, ptr %27, align 8, !tbaa !5
  %1058 = load ptr, ptr %41, align 8, !tbaa !5
  %1059 = load i64, ptr %95, align 8, !tbaa !9
  %1060 = load i64, ptr %70, align 8, !tbaa !9
  %1061 = add nsw i64 %1059, %1060
  %1062 = sub nsw i64 %1061, 1
  %1063 = getelementptr inbounds i64, ptr %1058, i64 %1062
  %1064 = load i64, ptr %1063, align 8, !tbaa !9
  %1065 = getelementptr inbounds float, ptr %1057, i64 %1064
  %1066 = load float, ptr %1065, align 4, !tbaa !11
  %1067 = load ptr, ptr %33, align 8, !tbaa !5
  %1068 = load i64, ptr %51, align 8, !tbaa !9
  %1069 = getelementptr inbounds float, ptr %1067, i64 %1068
  %1070 = load float, ptr %1069, align 4, !tbaa !11
  %1071 = fadd float %1070, %1066
  store float %1071, ptr %1069, align 4, !tbaa !11
  br label %1072

1072:                                             ; preds = %1049
  %1073 = load i64, ptr %51, align 8, !tbaa !9
  %1074 = add nsw i64 %1073, 1
  store i64 %1074, ptr %51, align 8, !tbaa !9
  br label %1045, !llvm.loop !18

1075:                                             ; preds = %1045
  br label %1076

1076:                                             ; preds = %1075, %1041
  %1077 = load ptr, ptr %38, align 8, !tbaa !5
  %1078 = load i64, ptr %1077, align 8, !tbaa !9
  %1079 = icmp ne i64 %1078, 0
  br i1 %1079, label %1080, label %1194

1080:                                             ; preds = %1076
  store i64 1, ptr %84, align 8, !tbaa !9
  store i64 1, ptr %88, align 8, !tbaa !9
  %1081 = load ptr, ptr %41, align 8, !tbaa !5
  %1082 = load i64, ptr %86, align 8, !tbaa !9
  %1083 = load ptr, ptr %32, align 8, !tbaa !5
  %1084 = load i64, ptr %1083, align 8, !tbaa !9
  %1085 = add nsw i64 %1082, %1084
  %1086 = sub nsw i64 %1085, 1
  %1087 = getelementptr inbounds i64, ptr %1081, i64 %1086
  %1088 = load i64, ptr %1087, align 8, !tbaa !9
  store i64 %1088, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %1089

1089:                                             ; preds = %1190, %1080
  %1090 = load i64, ptr %66, align 8, !tbaa !9
  %1091 = load i64, ptr %46, align 8, !tbaa !9
  %1092 = icmp sle i64 %1090, %1091
  br i1 %1092, label %1093, label %1193

1093:                                             ; preds = %1089
  %1094 = load ptr, ptr %41, align 8, !tbaa !5
  %1095 = load i64, ptr %95, align 8, !tbaa !9
  %1096 = load i64, ptr %66, align 8, !tbaa !9
  %1097 = add nsw i64 %1095, %1096
  %1098 = sub nsw i64 %1097, 1
  %1099 = getelementptr inbounds i64, ptr %1094, i64 %1098
  %1100 = load i64, ptr %1099, align 8, !tbaa !9
  store i64 %1100, ptr %65, align 8, !tbaa !9
  %1101 = load i64, ptr %65, align 8, !tbaa !9
  %1102 = load i64, ptr %84, align 8, !tbaa !9
  %1103 = sub nsw i64 %1101, %1102
  %1104 = add nsw i64 %1103, 1
  store i64 %1104, ptr %56, align 8, !tbaa !9
  %1105 = load i64, ptr %88, align 8, !tbaa !9
  %1106 = sub nsw i64 %1105, 1
  store i64 %1106, ptr %67, align 8, !tbaa !9
  br label %1107

1107:                                             ; preds = %1121, %1093
  %1108 = load i64, ptr %67, align 8, !tbaa !9
  %1109 = load ptr, ptr %32, align 8, !tbaa !5
  %1110 = load i64, ptr %1109, align 8, !tbaa !9
  %1111 = icmp slt i64 %1108, %1110
  br i1 %1111, label %1112, label %1125

1112:                                             ; preds = %1107
  %1113 = load ptr, ptr %41, align 8, !tbaa !5
  %1114 = load i64, ptr %86, align 8, !tbaa !9
  %1115 = load i64, ptr %67, align 8, !tbaa !9
  %1116 = add nsw i64 %1114, %1115
  %1117 = getelementptr inbounds i64, ptr %1113, i64 %1116
  %1118 = load i64, ptr %1117, align 8, !tbaa !9
  %1119 = load i64, ptr %66, align 8, !tbaa !9
  %1120 = icmp eq i64 %1118, %1119
  br i1 %1120, label %1121, label %1124

1121:                                             ; preds = %1112
  %1122 = load i64, ptr %67, align 8, !tbaa !9
  %1123 = add nsw i64 %1122, 1
  store i64 %1123, ptr %67, align 8, !tbaa !9
  br label %1107

1124:                                             ; preds = %1112
  br label %1125

1125:                                             ; preds = %1124, %1107
  %1126 = load i64, ptr %67, align 8, !tbaa !9
  %1127 = load i64, ptr %88, align 8, !tbaa !9
  %1128 = icmp slt i64 %1126, %1127
  br i1 %1128, label %1129, label %1132

1129:                                             ; preds = %1125
  %1130 = load i64, ptr %65, align 8, !tbaa !9
  %1131 = add nsw i64 %1130, 1
  store i64 %1131, ptr %84, align 8, !tbaa !9
  br label %1189

1132:                                             ; preds = %1125
  %1133 = load ptr, ptr %41, align 8, !tbaa !5
  %1134 = load i64, ptr %79, align 8, !tbaa !9
  %1135 = load i64, ptr %88, align 8, !tbaa !9
  %1136 = add nsw i64 %1134, %1135
  %1137 = sub nsw i64 %1136, 1
  %1138 = getelementptr inbounds i64, ptr %1133, i64 %1137
  %1139 = load i64, ptr %1138, align 8, !tbaa !9
  %1140 = sub nsw i64 %1139, 1
  store i64 %1140, ptr %94, align 8, !tbaa !9
  %1141 = load ptr, ptr %41, align 8, !tbaa !5
  %1142 = load i64, ptr %79, align 8, !tbaa !9
  %1143 = load i64, ptr %88, align 8, !tbaa !9
  %1144 = add nsw i64 %1142, %1143
  %1145 = sub nsw i64 %1144, 1
  %1146 = getelementptr inbounds i64, ptr %1141, i64 %1145
  %1147 = load i64, ptr %1146, align 8, !tbaa !9
  store i64 %1147, ptr %97, align 8, !tbaa !9
  %1148 = load ptr, ptr %41, align 8, !tbaa !5
  %1149 = load i64, ptr %79, align 8, !tbaa !9
  %1150 = load i64, ptr %67, align 8, !tbaa !9
  %1151 = add nsw i64 %1149, %1150
  %1152 = sub nsw i64 %1151, 1
  %1153 = getelementptr inbounds i64, ptr %1148, i64 %1152
  %1154 = load i64, ptr %1153, align 8, !tbaa !9
  store i64 %1154, ptr %80, align 8, !tbaa !9
  %1155 = load float, ptr %62, align 4, !tbaa !11
  %1156 = fmul float %1155, 4.000000e+00
  store float %1156, ptr %75, align 4, !tbaa !11
  %1157 = load ptr, ptr %39, align 8, !tbaa !5
  %1158 = load i64, ptr %64, align 8, !tbaa !9
  %1159 = load i64, ptr %84, align 8, !tbaa !9
  %1160 = add nsw i64 %1158, %1159
  %1161 = sub nsw i64 %1160, 1
  %1162 = getelementptr inbounds float, ptr %1157, i64 %1161
  %1163 = load ptr, ptr %39, align 8, !tbaa !5
  %1164 = load i64, ptr %72, align 8, !tbaa !9
  %1165 = load i64, ptr %84, align 8, !tbaa !9
  %1166 = add nsw i64 %1164, %1165
  %1167 = sub nsw i64 %1166, 1
  %1168 = getelementptr inbounds float, ptr %1163, i64 %1167
  %1169 = load ptr, ptr %33, align 8, !tbaa !5
  %1170 = load i64, ptr %88, align 8, !tbaa !9
  %1171 = getelementptr inbounds float, ptr %1169, i64 %1170
  %1172 = load ptr, ptr %39, align 8, !tbaa !5
  %1173 = load i64, ptr %91, align 8, !tbaa !9
  %1174 = load i64, ptr %88, align 8, !tbaa !9
  %1175 = add nsw i64 %1173, %1174
  %1176 = sub nsw i64 %1175, 1
  %1177 = getelementptr inbounds float, ptr %1172, i64 %1176
  %1178 = load ptr, ptr %39, align 8, !tbaa !5
  %1179 = load i64, ptr %96, align 8, !tbaa !9
  %1180 = getelementptr inbounds float, ptr %1178, i64 %1179
  %1181 = load ptr, ptr %41, align 8, !tbaa !5
  %1182 = load i64, ptr %92, align 8, !tbaa !9
  %1183 = getelementptr inbounds i64, ptr %1181, i64 %1182
  %1184 = call i32 @slarrj_(ptr noundef %56, ptr noundef %1162, ptr noundef %1168, ptr noundef %97, ptr noundef %80, ptr noundef %75, ptr noundef %94, ptr noundef %1171, ptr noundef %1177, ptr noundef %1180, ptr noundef %1183, ptr noundef %100, ptr noundef %71, ptr noundef %78)
  %1185 = load i64, ptr %65, align 8, !tbaa !9
  %1186 = add nsw i64 %1185, 1
  store i64 %1186, ptr %84, align 8, !tbaa !9
  %1187 = load i64, ptr %67, align 8, !tbaa !9
  %1188 = add nsw i64 %1187, 1
  store i64 %1188, ptr %88, align 8, !tbaa !9
  br label %1189

1189:                                             ; preds = %1132, %1129
  br label %1190

1190:                                             ; preds = %1189
  %1191 = load i64, ptr %66, align 8, !tbaa !9
  %1192 = add nsw i64 %1191, 1
  store i64 %1192, ptr %66, align 8, !tbaa !9
  br label %1089, !llvm.loop !19

1193:                                             ; preds = %1089
  br label %1194

1194:                                             ; preds = %1193, %1076
  %1195 = load float, ptr %76, align 4, !tbaa !11
  %1196 = fcmp une float %1195, 1.000000e+00
  br i1 %1196, label %1197, label %1204

1197:                                             ; preds = %1194
  %1198 = load float, ptr %76, align 4, !tbaa !11
  %1199 = fdiv float 1.000000e+00, %1198
  store float %1199, ptr %48, align 4, !tbaa !11
  %1200 = load ptr, ptr %32, align 8, !tbaa !5
  %1201 = load ptr, ptr %33, align 8, !tbaa !5
  %1202 = getelementptr inbounds float, ptr %1201, i64 1
  %1203 = call i32 @f2c_sscal(ptr noundef %1200, ptr noundef %48, ptr noundef %1202, ptr noundef @c__1)
  br label %1204

1204:                                             ; preds = %1197, %1194
  %1205 = load i64, ptr %102, align 8, !tbaa !9
  %1206 = icmp sgt i64 %1205, 1
  br i1 %1206, label %1207, label %1339

1207:                                             ; preds = %1204
  %1208 = load i64, ptr %82, align 8, !tbaa !9
  %1209 = icmp ne i64 %1208, 0
  br i1 %1209, label %1220, label %1210

1210:                                             ; preds = %1207
  %1211 = load ptr, ptr %32, align 8, !tbaa !5
  %1212 = load ptr, ptr %33, align 8, !tbaa !5
  %1213 = getelementptr inbounds float, ptr %1212, i64 1
  %1214 = call i32 @slasrt_(ptr noundef @.str.2, ptr noundef %1211, ptr noundef %1213, ptr noundef %78)
  %1215 = load i64, ptr %78, align 8, !tbaa !9
  %1216 = icmp ne i64 %1215, 0
  br i1 %1216, label %1217, label %1219

1217:                                             ; preds = %1210
  %1218 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 3, ptr %1218, align 8, !tbaa !9
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1347

1219:                                             ; preds = %1210
  br label %1338

1220:                                             ; preds = %1207
  %1221 = load ptr, ptr %32, align 8, !tbaa !5
  %1222 = load i64, ptr %1221, align 8, !tbaa !9
  %1223 = sub nsw i64 %1222, 1
  store i64 %1223, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %1224

1224:                                             ; preds = %1334, %1220
  %1225 = load i64, ptr %51, align 8, !tbaa !9
  %1226 = load i64, ptr %46, align 8, !tbaa !9
  %1227 = icmp sle i64 %1225, %1226
  br i1 %1227, label %1228, label %1337

1228:                                             ; preds = %1224
  store i64 0, ptr %50, align 8, !tbaa !9
  %1229 = load ptr, ptr %33, align 8, !tbaa !5
  %1230 = load i64, ptr %51, align 8, !tbaa !9
  %1231 = getelementptr inbounds float, ptr %1229, i64 %1230
  %1232 = load float, ptr %1231, align 4, !tbaa !11
  store float %1232, ptr %63, align 4, !tbaa !11
  %1233 = load ptr, ptr %32, align 8, !tbaa !5
  %1234 = load i64, ptr %1233, align 8, !tbaa !9
  store i64 %1234, ptr %47, align 8, !tbaa !9
  %1235 = load i64, ptr %51, align 8, !tbaa !9
  %1236 = add nsw i64 %1235, 1
  store i64 %1236, ptr %54, align 8, !tbaa !9
  br label %1237

1237:                                             ; preds = %1255, %1228
  %1238 = load i64, ptr %54, align 8, !tbaa !9
  %1239 = load i64, ptr %47, align 8, !tbaa !9
  %1240 = icmp sle i64 %1238, %1239
  br i1 %1240, label %1241, label %1258

1241:                                             ; preds = %1237
  %1242 = load ptr, ptr %33, align 8, !tbaa !5
  %1243 = load i64, ptr %54, align 8, !tbaa !9
  %1244 = getelementptr inbounds float, ptr %1242, i64 %1243
  %1245 = load float, ptr %1244, align 4, !tbaa !11
  %1246 = load float, ptr %63, align 4, !tbaa !11
  %1247 = fcmp olt float %1245, %1246
  br i1 %1247, label %1248, label %1254

1248:                                             ; preds = %1241
  %1249 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1249, ptr %50, align 8, !tbaa !9
  %1250 = load ptr, ptr %33, align 8, !tbaa !5
  %1251 = load i64, ptr %54, align 8, !tbaa !9
  %1252 = getelementptr inbounds float, ptr %1250, i64 %1251
  %1253 = load float, ptr %1252, align 4, !tbaa !11
  store float %1253, ptr %63, align 4, !tbaa !11
  br label %1254

1254:                                             ; preds = %1248, %1241
  br label %1255

1255:                                             ; preds = %1254
  %1256 = load i64, ptr %54, align 8, !tbaa !9
  %1257 = add nsw i64 %1256, 1
  store i64 %1257, ptr %54, align 8, !tbaa !9
  br label %1237, !llvm.loop !20

1258:                                             ; preds = %1237
  %1259 = load i64, ptr %50, align 8, !tbaa !9
  %1260 = icmp ne i64 %1259, 0
  br i1 %1260, label %1261, label %1333

1261:                                             ; preds = %1258
  %1262 = load ptr, ptr %33, align 8, !tbaa !5
  %1263 = load i64, ptr %51, align 8, !tbaa !9
  %1264 = getelementptr inbounds float, ptr %1262, i64 %1263
  %1265 = load float, ptr %1264, align 4, !tbaa !11
  %1266 = load ptr, ptr %33, align 8, !tbaa !5
  %1267 = load i64, ptr %50, align 8, !tbaa !9
  %1268 = getelementptr inbounds float, ptr %1266, i64 %1267
  store float %1265, ptr %1268, align 4, !tbaa !11
  %1269 = load float, ptr %63, align 4, !tbaa !11
  %1270 = load ptr, ptr %33, align 8, !tbaa !5
  %1271 = load i64, ptr %51, align 8, !tbaa !9
  %1272 = getelementptr inbounds float, ptr %1270, i64 %1271
  store float %1269, ptr %1272, align 4, !tbaa !11
  %1273 = load i64, ptr %82, align 8, !tbaa !9
  %1274 = icmp ne i64 %1273, 0
  br i1 %1274, label %1275, label %1332

1275:                                             ; preds = %1261
  %1276 = load ptr, ptr %25, align 8, !tbaa !5
  %1277 = load ptr, ptr %34, align 8, !tbaa !5
  %1278 = load i64, ptr %50, align 8, !tbaa !9
  %1279 = load i64, ptr %44, align 8, !tbaa !9
  %1280 = mul nsw i64 %1278, %1279
  %1281 = add nsw i64 %1280, 1
  %1282 = getelementptr inbounds %struct.complex, ptr %1277, i64 %1281
  %1283 = load ptr, ptr %34, align 8, !tbaa !5
  %1284 = load i64, ptr %51, align 8, !tbaa !9
  %1285 = load i64, ptr %44, align 8, !tbaa !9
  %1286 = mul nsw i64 %1284, %1285
  %1287 = add nsw i64 %1286, 1
  %1288 = getelementptr inbounds %struct.complex, ptr %1283, i64 %1287
  %1289 = call i32 @f2c_cswap(ptr noundef %1276, ptr noundef %1282, ptr noundef @c__1, ptr noundef %1288, ptr noundef @c__1)
  %1290 = load ptr, ptr %37, align 8, !tbaa !5
  %1291 = load i64, ptr %50, align 8, !tbaa !9
  %1292 = shl i64 %1291, 1
  %1293 = sub nsw i64 %1292, 1
  %1294 = getelementptr inbounds i64, ptr %1290, i64 %1293
  %1295 = load i64, ptr %1294, align 8, !tbaa !9
  store i64 %1295, ptr %70, align 8, !tbaa !9
  %1296 = load ptr, ptr %37, align 8, !tbaa !5
  %1297 = load i64, ptr %51, align 8, !tbaa !9
  %1298 = shl i64 %1297, 1
  %1299 = sub nsw i64 %1298, 1
  %1300 = getelementptr inbounds i64, ptr %1296, i64 %1299
  %1301 = load i64, ptr %1300, align 8, !tbaa !9
  %1302 = load ptr, ptr %37, align 8, !tbaa !5
  %1303 = load i64, ptr %50, align 8, !tbaa !9
  %1304 = shl i64 %1303, 1
  %1305 = sub nsw i64 %1304, 1
  %1306 = getelementptr inbounds i64, ptr %1302, i64 %1305
  store i64 %1301, ptr %1306, align 8, !tbaa !9
  %1307 = load i64, ptr %70, align 8, !tbaa !9
  %1308 = load ptr, ptr %37, align 8, !tbaa !5
  %1309 = load i64, ptr %51, align 8, !tbaa !9
  %1310 = shl i64 %1309, 1
  %1311 = sub nsw i64 %1310, 1
  %1312 = getelementptr inbounds i64, ptr %1308, i64 %1311
  store i64 %1307, ptr %1312, align 8, !tbaa !9
  %1313 = load ptr, ptr %37, align 8, !tbaa !5
  %1314 = load i64, ptr %50, align 8, !tbaa !9
  %1315 = mul nsw i64 %1314, 2
  %1316 = getelementptr inbounds i64, ptr %1313, i64 %1315
  %1317 = load i64, ptr %1316, align 8, !tbaa !9
  store i64 %1317, ptr %70, align 8, !tbaa !9
  %1318 = load ptr, ptr %37, align 8, !tbaa !5
  %1319 = load i64, ptr %51, align 8, !tbaa !9
  %1320 = mul nsw i64 %1319, 2
  %1321 = getelementptr inbounds i64, ptr %1318, i64 %1320
  %1322 = load i64, ptr %1321, align 8, !tbaa !9
  %1323 = load ptr, ptr %37, align 8, !tbaa !5
  %1324 = load i64, ptr %50, align 8, !tbaa !9
  %1325 = mul nsw i64 %1324, 2
  %1326 = getelementptr inbounds i64, ptr %1323, i64 %1325
  store i64 %1322, ptr %1326, align 8, !tbaa !9
  %1327 = load i64, ptr %70, align 8, !tbaa !9
  %1328 = load ptr, ptr %37, align 8, !tbaa !5
  %1329 = load i64, ptr %51, align 8, !tbaa !9
  %1330 = mul nsw i64 %1329, 2
  %1331 = getelementptr inbounds i64, ptr %1328, i64 %1330
  store i64 %1327, ptr %1331, align 8, !tbaa !9
  br label %1332

1332:                                             ; preds = %1275, %1261
  br label %1333

1333:                                             ; preds = %1332, %1258
  br label %1334

1334:                                             ; preds = %1333
  %1335 = load i64, ptr %51, align 8, !tbaa !9
  %1336 = add nsw i64 %1335, 1
  store i64 %1336, ptr %51, align 8, !tbaa !9
  br label %1224, !llvm.loop !21

1337:                                             ; preds = %1224
  br label %1338

1338:                                             ; preds = %1337, %1219
  br label %1339

1339:                                             ; preds = %1338, %1204
  %1340 = load i64, ptr %81, align 8, !tbaa !9
  %1341 = sitofp i64 %1340 to float
  %1342 = load ptr, ptr %39, align 8, !tbaa !5
  %1343 = getelementptr inbounds float, ptr %1342, i64 1
  store float %1341, ptr %1343, align 4, !tbaa !11
  %1344 = load i64, ptr %98, align 8, !tbaa !9
  %1345 = load ptr, ptr %41, align 8, !tbaa !5
  %1346 = getelementptr inbounds i64, ptr %1345, i64 1
  store i64 %1344, ptr %1346, align 8, !tbaa !9
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1347

1347:                                             ; preds = %1339, %1217, %1037, %979, %742, %491, %432, %425, %414
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  %1348 = load i32, ptr %22, align 4
  ret i32 %1348
}

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

declare i32 @slarre_(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

declare i32 @clarrv_(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

declare i32 @slarrj_(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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind "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 = !{!14, !12, i64 0}
!14 = !{!"", !12, i64 0, !12, i64 4}
!15 = !{!14, !12, i64 4}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}


; 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 [2 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 [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_b18 = external hidden global float, align 4

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

64:                                               ; preds = %21
  %65 = load i64, ptr %19, align 8, !tbaa !5
  %66 = icmp eq i64 %65, -1
  br label %67

67:                                               ; preds = %64, %21
  %68 = phi i1 [ true, %21 ], [ %66, %64 ]
  %69 = load i64, ptr %13, align 8, !tbaa !5
  %70 = icmp eq i64 %69, -1
  %71 = icmp ne i64 %58, 0
  %72 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %71, label %73, label %76

73:                                               ; preds = %67
  %74 = mul nsw i64 %72, 18
  %75 = mul nsw i64 %72, 10
  br label %79

76:                                               ; preds = %67
  %77 = mul nsw i64 %72, 12
  %78 = shl i64 %72, 3
  br label %79

79:                                               ; preds = %76, %73
  %.0447 = phi i64 [ %74, %73 ], [ %77, %76 ]
  %.0435 = phi i64 [ %75, %73 ], [ %78, %76 ]
  store float 0.000000e+00, ptr %31, align 4, !tbaa !9
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  store i64 0, ptr %33, align 8, !tbaa !5
  store i64 0, ptr %34, align 8, !tbaa !5
  %80 = icmp ne i64 %60, 0
  br i1 %80, label %81, label %84

81:                                               ; preds = %79
  %82 = load float, ptr %5, align 4, !tbaa !9
  store float %82, ptr %31, align 4, !tbaa !9
  %83 = load float, ptr %6, align 4, !tbaa !9
  store float %83, ptr %32, align 4, !tbaa !9
  br label %88

84:                                               ; preds = %79
  %.not = icmp eq i64 %61, 0
  br i1 %.not, label %88, label %85

85:                                               ; preds = %84
  %86 = load i64, ptr %7, align 8, !tbaa !5
  store i64 %86, ptr %33, align 8, !tbaa !5
  %87 = load i64, ptr %8, align 8, !tbaa !5
  store i64 %87, ptr %34, align 8, !tbaa !5
  br label %88

88:                                               ; preds = %84, %85, %81
  %89 = phi i64 [ 0, %84 ], [ %87, %85 ], [ 0, %81 ]
  %90 = phi i64 [ 0, %84 ], [ %86, %85 ], [ 0, %81 ]
  %91 = phi float [ 0.000000e+00, %84 ], [ 0.000000e+00, %85 ], [ %82, %81 ]
  %92 = phi float [ 0.000000e+00, %84 ], [ 0.000000e+00, %85 ], [ %83, %81 ]
  store i64 0, ptr %20, align 8, !tbaa !5
  br i1 %71, label %95, label %93

93:                                               ; preds = %88
  %94 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #5
  %.not466 = icmp eq i64 %94, 0
  br i1 %.not466, label %.sink.split, label %95

95:                                               ; preds = %93, %88
  %96 = or i64 %60, %59
  %or.cond = icmp ne i64 %96, 0
  %97 = icmp ne i64 %61, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %97
  br i1 %or.cond3, label %98, label %.sink.split

98:                                               ; preds = %95
  %99 = load i64, ptr %2, align 8, !tbaa !5
  %100 = icmp slt i64 %99, 0
  br i1 %100, label %.sink.split, label %101

101:                                              ; preds = %98
  %.not467 = icmp ne i64 %99, 0
  %or.cond500.not = and i1 %80, %.not467
  %102 = fcmp ole float %92, %91
  %or.cond583.not = select i1 %or.cond500.not, i1 %102, i1 false
  br i1 %or.cond583.not, label %.sink.split, label %103

103:                                              ; preds = %101
  br i1 %97, label %104, label %.critedge

104:                                              ; preds = %103
  %105 = icmp slt i64 %90, 1
  %106 = icmp ugt i64 %90, %99
  %or.cond519 = or i1 %105, %106
  br i1 %or.cond519, label %.sink.split, label %107

107:                                              ; preds = %104
  %108 = icmp slt i64 %89, %90
  %109 = icmp ugt i64 %89, %99
  %or.cond520 = or i1 %108, %109
  br i1 %or.cond520, label %.sink.split, label %.critedge

.critedge:                                        ; preds = %107, %103
  %110 = load i64, ptr %12, align 8, !tbaa !5
  %111 = icmp slt i64 %110, 1
  %112 = icmp ult i64 %110, %99
  %or.cond521 = and i1 %71, %112
  %or.cond522 = or i1 %111, %or.cond521
  br i1 %or.cond522, label %.sink.split, label %113

113:                                              ; preds = %.critedge
  %114 = load i64, ptr %17, align 8, !tbaa !5
  %115 = icmp sge i64 %114, %.0447
  %or.cond5 = select i1 %115, i1 true, i1 %68
  br i1 %or.cond5, label %116, label %.sink.split

116:                                              ; preds = %113
  %117 = load i64, ptr %19, align 8, !tbaa !5
  %118 = icmp sge i64 %117, %.0435
  %or.cond7 = select i1 %118, i1 true, i1 %68
  br i1 %or.cond7, label %119, label %.sink.split

.sink.split:                                      ; preds = %116, %113, %.critedge, %107, %104, %101, %98, %95, %93
  %.sink = phi i64 [ -1, %93 ], [ -2, %95 ], [ -3, %98 ], [ -7, %101 ], [ -8, %104 ], [ -9, %107 ], [ -13, %.critedge ], [ -17, %113 ], [ -19, %116 ]
  store i64 %.sink, ptr %20, align 8, !tbaa !5
  br label %119

119:                                              ; preds = %.sink.split, %116
  %120 = tail call double @slamch_(ptr noundef nonnull @.str.4) #5
  %121 = fptrunc double %120 to float
  store float %121, ptr %43, align 4, !tbaa !9
  %122 = tail call double @slamch_(ptr noundef nonnull @.str.5) #5
  %123 = fptrunc double %122 to float
  %124 = fdiv float %121, %123
  %125 = fdiv float 1.000000e+00, %124
  %sqrtf = tail call float @sqrtf(float noundef %124) #3
  %sqrtf468 = tail call float @sqrtf(float noundef %125) #3
  %126 = fpext float %121 to double
  %127 = tail call double @sqrt(double noundef %126) #5
  %128 = tail call double @sqrt(double noundef %127) #5
  %129 = fdiv double 1.000000e+00, %128
  %130 = fptrunc double %129 to float
  %131 = fcmp ole float %sqrtf468, %130
  %132 = select i1 %131, float %sqrtf468, float %130
  %133 = load i64, ptr %20, align 8, !tbaa !5
  %134 = icmp eq i64 %133, 0
  br i1 %134, label %135, label %.thread509

135:                                              ; preds = %119
  %136 = sitofp i64 %.0447 to float
  store float %136, ptr %16, align 4, !tbaa !9
  store i64 %.0435, ptr %18, align 8, !tbaa !5
  %137 = icmp ne i64 %59, 0
  %or.cond9 = select i1 %71, i1 %137, i1 false
  br i1 %or.cond9, label %138, label %140

138:                                              ; preds = %135
  %139 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %139, ptr %46, align 8, !tbaa !5
  br label %149

140:                                              ; preds = %135
  %or.cond11 = and i1 %71, %80
  br i1 %or.cond11, label %141, label %143

141:                                              ; preds = %140
  %142 = call i32 @slarrc_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef %5, ptr noundef %6, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %43, ptr noundef nonnull %46, ptr noundef nonnull %35, ptr noundef nonnull %37, ptr noundef nonnull %20) #5
  br label %149

143:                                              ; preds = %140
  %144 = icmp ne i64 %61, 0
  %or.cond13 = select i1 %71, i1 %144, i1 false
  br i1 %or.cond13, label %145, label %148

145:                                              ; preds = %143
  %146 = add i64 %89, 1
  %147 = sub i64 %146, %90
  store i64 %147, ptr %46, align 8, !tbaa !5
  br label %149

148:                                              ; preds = %143
  store i64 0, ptr %46, align 8, !tbaa !5
  br label %149

149:                                              ; preds = %141, %148, %145, %138
  br i1 %70, label %150, label %156

150:                                              ; preds = %149
  %151 = load i64, ptr %20, align 8, !tbaa !5
  %152 = icmp eq i64 %151, 0
  br i1 %152, label %.thread575, label %.thread509

.thread575:                                       ; preds = %150
  %153 = load i64, ptr %46, align 8, !tbaa !5
  %154 = sitofp i64 %153 to float
  store float %154, ptr %11, align 4, !tbaa !11
  %155 = getelementptr inbounds i8, ptr %11, i64 4
  store float 0.000000e+00, ptr %155, align 4, !tbaa !13
  br label %496

156:                                              ; preds = %149
  %157 = load i64, ptr %13, align 8, !tbaa !5
  %158 = load i64, ptr %46, align 8, !tbaa !5
  %.not572 = icmp slt i64 %157, %158
  br i1 %.not572, label %159, label %160

159:                                              ; preds = %156
  store i64 -14, ptr %20, align 8, !tbaa !5
  br label %.thread509

160:                                              ; preds = %156
  %.pr.pre = load i64, ptr %20, align 8, !tbaa !5
  %.not469 = icmp eq i64 %.pr.pre, 0
  br i1 %.not469, label %164, label %.thread509

.thread509:                                       ; preds = %150, %119, %159, %160
  %161 = phi i64 [ %.pr.pre, %160 ], [ %133, %119 ], [ -14, %159 ], [ %151, %150 ]
  %162 = sub nsw i64 0, %161
  store i64 %162, ptr %24, align 8, !tbaa !5
  %163 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %24) #5
  br label %496

164:                                              ; preds = %160
  %or.cond17 = select i1 %68, i1 true, i1 %70
  br i1 %or.cond17, label %496, label %165

165:                                              ; preds = %164
  store i64 0, ptr %9, align 8, !tbaa !5
  %166 = load i64, ptr %2, align 8, !tbaa !5
  switch i64 %166, label %274 [
    i64 0, label %496
    i64 1, label %167
    i64 2, label %182
  ]

167:                                              ; preds = %165
  %168 = icmp ne i64 %61, 0
  %or.cond19 = select i1 %137, i1 true, i1 %168
  br i1 %or.cond19, label %169, label %171

169:                                              ; preds = %167
  store i64 1, ptr %9, align 8, !tbaa !5
  %170 = load float, ptr %3, align 4, !tbaa !9
  br label %.sink.split584

171:                                              ; preds = %167
  %172 = load float, ptr %31, align 4, !tbaa !9
  %173 = load float, ptr %3, align 4, !tbaa !9
  %174 = fcmp uge float %172, %173
  %175 = load float, ptr %32, align 4
  %176 = fcmp ult float %175, %173
  %or.cond502 = select i1 %174, i1 true, i1 %176
  br i1 %or.cond502, label %178, label %177

177:                                              ; preds = %171
  store i64 1, ptr %9, align 8, !tbaa !5
  br label %.sink.split584

.sink.split584:                                   ; preds = %169, %177
  %.sink585 = phi float [ %173, %177 ], [ %170, %169 ]
  store float %.sink585, ptr %10, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %.sink.split584, %171
  %179 = icmp eq i64 %58, 0
  br i1 %179, label %496, label %180

180:                                              ; preds = %178
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %11, align 4, !tbaa !9
  store i64 1, ptr %14, align 8, !tbaa !5
  %181 = getelementptr inbounds i8, ptr %14, i64 8
  store i64 1, ptr %181, align 8, !tbaa !5
  br label %496

182:                                              ; preds = %165
  %183 = getelementptr inbounds i8, ptr %3, i64 4
  br i1 %71, label %186, label %184

184:                                              ; preds = %182
  %185 = call i32 @slae2_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull %183, ptr noundef nonnull %26, ptr noundef nonnull %27) #5
  br label %188

186:                                              ; preds = %182
  %187 = call i32 @slaev2_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull %183, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef nonnull %30) #5
  br label %188

188:                                              ; preds = %186, %184
  %.not486 = icmp eq i64 %59, 0
  br i1 %.not486, label %189, label %200

189:                                              ; preds = %188
  br i1 %80, label %190, label %196

190:                                              ; preds = %189
  %191 = load float, ptr %27, align 4, !tbaa !9
  %192 = load float, ptr %31, align 4, !tbaa !9
  %193 = fcmp ule float %191, %192
  %194 = load float, ptr %32, align 4
  %195 = fcmp ugt float %191, %194
  %or.cond504 = select i1 %193, i1 true, i1 %195
  br i1 %or.cond504, label %196, label %200

196:                                              ; preds = %190, %189
  %197 = icmp ne i64 %61, 0
  %198 = load i64, ptr %33, align 8
  %199 = icmp eq i64 %198, 1
  %or.cond25 = select i1 %197, i1 %199, i1 false
  br i1 %or.cond25, label %200, label %.thread511

200:                                              ; preds = %190, %196, %188
  %201 = load i64, ptr %9, align 8, !tbaa !5
  %202 = add nsw i64 %201, 1
  store i64 %202, ptr %9, align 8, !tbaa !5
  %203 = load float, ptr %27, align 4, !tbaa !9
  %204 = getelementptr float, ptr %10, i64 %201
  store float %203, ptr %204, align 4, !tbaa !9
  %205 = icmp eq i64 %58, 0
  br i1 %205, label %232, label %206

206:                                              ; preds = %200
  %207 = mul nsw i64 %202, %52
  %208 = add nsw i64 %207, 1
  %209 = load float, ptr %30, align 4, !tbaa !9
  %210 = fneg float %209
  %211 = getelementptr inbounds %struct.complex, ptr %54, i64 %208
  store float %210, ptr %211, align 4, !tbaa !11
  %212 = getelementptr inbounds %struct.complex, ptr %54, i64 %208, i32 1
  store float 0.000000e+00, ptr %212, align 4, !tbaa !13
  %213 = add nsw i64 %207, 2
  %214 = load float, ptr %28, align 4, !tbaa !9
  %215 = getelementptr inbounds %struct.complex, ptr %54, i64 %213
  store float %214, ptr %215, align 4, !tbaa !11
  %216 = getelementptr inbounds %struct.complex, ptr %54, i64 %213, i32 1
  store float 0.000000e+00, ptr %216, align 4, !tbaa !13
  %217 = fcmp une float %209, 0.000000e+00
  br i1 %217, label %218, label %227

218:                                              ; preds = %206
  %219 = fcmp une float %214, 0.000000e+00
  %.idx491 = shl i64 %202, 4
  %220 = getelementptr i8, ptr %55, i64 %.idx491
  %221 = getelementptr i8, ptr %220, i64 -8
  store i64 1, ptr %221, align 8, !tbaa !5
  %222 = load i64, ptr %9, align 8, !tbaa !5
  %.idx492 = shl i64 %222, 4
  %223 = getelementptr i8, ptr %55, i64 %.idx492
  %224 = getelementptr i8, ptr %223, i64 -8
  br i1 %219, label %225, label %226

225:                                              ; preds = %218
  store i64 2, ptr %224, align 8, !tbaa !5
  br label %232

226:                                              ; preds = %218
  store i64 1, ptr %224, align 8, !tbaa !5
  br label %232

227:                                              ; preds = %206
  %.idx487 = shl i64 %202, 4
  %228 = getelementptr i8, ptr %55, i64 %.idx487
  %229 = getelementptr i8, ptr %228, i64 -8
  store i64 2, ptr %229, align 8, !tbaa !5
  %230 = load i64, ptr %9, align 8, !tbaa !5
  %.idx488 = shl nsw i64 %230, 4
  %231 = getelementptr inbounds i8, ptr %55, i64 %.idx488
  store i64 2, ptr %231, align 8, !tbaa !5
  br label %232

232:                                              ; preds = %200, %225, %226, %227
  br i1 %.not486, label %.thread511, label %243

.thread511:                                       ; preds = %196, %232
  br i1 %80, label %233, label %239

233:                                              ; preds = %.thread511
  %234 = load float, ptr %26, align 4, !tbaa !9
  %235 = load float, ptr %31, align 4, !tbaa !9
  %236 = fcmp ule float %234, %235
  %237 = load float, ptr %32, align 4
  %238 = fcmp ugt float %234, %237
  %or.cond506 = select i1 %236, i1 true, i1 %238
  br i1 %or.cond506, label %239, label %243

239:                                              ; preds = %233, %.thread511
  %240 = icmp ne i64 %61, 0
  %241 = load i64, ptr %34, align 8
  %242 = icmp eq i64 %241, 2
  %or.cond29 = select i1 %240, i1 %242, i1 false
  br i1 %or.cond29, label %243, label %496

243:                                              ; preds = %233, %239, %232
  %244 = load i64, ptr %9, align 8, !tbaa !5
  %245 = add nsw i64 %244, 1
  store i64 %245, ptr %9, align 8, !tbaa !5
  %246 = load float, ptr %26, align 4, !tbaa !9
  %247 = getelementptr float, ptr %10, i64 %244
  store float %246, ptr %247, align 4, !tbaa !9
  %248 = icmp eq i64 %58, 0
  br i1 %248, label %496, label %249

249:                                              ; preds = %243
  %250 = mul nsw i64 %245, %52
  %251 = add nsw i64 %250, 1
  %252 = load float, ptr %28, align 4, !tbaa !9
  %253 = getelementptr inbounds %struct.complex, ptr %54, i64 %251
  store float %252, ptr %253, align 4, !tbaa !11
  %254 = getelementptr inbounds %struct.complex, ptr %54, i64 %251, i32 1
  store float 0.000000e+00, ptr %254, align 4, !tbaa !13
  %255 = add nsw i64 %250, 2
  %256 = load float, ptr %30, align 4, !tbaa !9
  %257 = getelementptr inbounds %struct.complex, ptr %54, i64 %255
  store float %256, ptr %257, align 4, !tbaa !11
  %258 = getelementptr inbounds %struct.complex, ptr %54, i64 %255, i32 1
  store float 0.000000e+00, ptr %258, align 4, !tbaa !13
  %259 = fcmp une float %256, 0.000000e+00
  br i1 %259, label %260, label %269

260:                                              ; preds = %249
  %261 = fcmp une float %252, 0.000000e+00
  %.idx497 = shl i64 %245, 4
  %262 = getelementptr i8, ptr %55, i64 %.idx497
  %263 = getelementptr i8, ptr %262, i64 -8
  store i64 1, ptr %263, align 8, !tbaa !5
  %264 = load i64, ptr %9, align 8, !tbaa !5
  %.idx498 = shl i64 %264, 4
  %265 = getelementptr i8, ptr %55, i64 %.idx498
  %266 = getelementptr i8, ptr %265, i64 -8
  br i1 %261, label %267, label %268

267:                                              ; preds = %260
  store i64 2, ptr %266, align 8, !tbaa !5
  br label %496

268:                                              ; preds = %260
  store i64 1, ptr %266, align 8, !tbaa !5
  br label %496

269:                                              ; preds = %249
  %.idx493 = shl i64 %245, 4
  %270 = getelementptr i8, ptr %55, i64 %.idx493
  %271 = getelementptr i8, ptr %270, i64 -8
  store i64 2, ptr %271, align 8, !tbaa !5
  %272 = load i64, ptr %9, align 8, !tbaa !5
  %.idx494 = shl nsw i64 %272, 4
  %273 = getelementptr inbounds i8, ptr %55, i64 %.idx494
  store i64 2, ptr %273, align 8, !tbaa !5
  br label %496

274:                                              ; preds = %165
  %275 = shl i64 %166, 1
  %276 = mul nsw i64 %166, 3
  %277 = shl i64 %166, 2
  %278 = mul nsw i64 %166, 5
  store float 1.000000e+00, ptr %40, align 4, !tbaa !9
  %279 = call double @slanst_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4) #5
  %280 = fptrunc double %279 to float
  store float %280, ptr %36, align 4, !tbaa !9
  %281 = fcmp ogt float %280, 0.000000e+00
  %282 = fcmp ogt float %sqrtf, %280
  %or.cond507 = select i1 %281, i1 %282, i1 false
  br i1 %or.cond507, label %283, label %285

283:                                              ; preds = %274
  %284 = fdiv float %sqrtf, %280
  store float %284, ptr %40, align 4, !tbaa !9
  br label %289

285:                                              ; preds = %274
  %286 = fcmp olt float %132, %280
  br i1 %286, label %287, label %thread-pre-split512

287:                                              ; preds = %285
  %288 = fdiv float %132, %280
  store float %288, ptr %40, align 4, !tbaa !9
  br label %289

thread-pre-split512:                              ; preds = %285
  %.pr513 = load float, ptr %40, align 4, !tbaa !9
  br label %289

289:                                              ; preds = %thread-pre-split512, %287, %283
  %290 = phi float [ %.pr513, %thread-pre-split512 ], [ %288, %287 ], [ %284, %283 ]
  %291 = fcmp une float %290, 1.000000e+00
  br i1 %291, label %292, label %304

292:                                              ; preds = %289
  %293 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %40, ptr noundef %3, ptr noundef nonnull @c__1) #5
  %294 = load i64, ptr %2, align 8, !tbaa !5
  %295 = add nsw i64 %294, -1
  store i64 %295, ptr %24, align 8, !tbaa !5
  %296 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %40, ptr noundef %4, ptr noundef nonnull @c__1) #5
  %297 = load float, ptr %40, align 4, !tbaa !9
  %298 = fmul float %297, %280
  store float %298, ptr %36, align 4, !tbaa !9
  br i1 %80, label %299, label %304

299:                                              ; preds = %292
  %300 = load float, ptr %31, align 4, !tbaa !9
  %301 = fmul float %297, %300
  store float %301, ptr %31, align 4, !tbaa !9
  %302 = load float, ptr %32, align 4, !tbaa !9
  %303 = fmul float %297, %302
  store float %303, ptr %32, align 4, !tbaa !9
  br label %304

304:                                              ; preds = %292, %299, %289
  %305 = load i64, ptr %15, align 8, !tbaa !5
  %.not470 = icmp eq i64 %305, 0
  br i1 %.not470, label %.thread515, label %306

.thread515:                                       ; preds = %304
  store i64 -1, ptr %41, align 8, !tbaa !5
  br label %.thread517

306:                                              ; preds = %304
  %307 = call i32 @slarrr_(ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %41) #5
  %.pr514 = load i64, ptr %41, align 8, !tbaa !5
  %308 = icmp eq i64 %.pr514, 0
  br i1 %308, label %310, label %.thread517

.thread517:                                       ; preds = %306, %.thread515
  %309 = fneg float %123
  store float %309, ptr %48, align 4, !tbaa !9
  store i64 0, ptr %15, align 8, !tbaa !5
  br label %314

310:                                              ; preds = %306
  store float %123, ptr %48, align 4, !tbaa !9
  %.pr516 = load i64, ptr %15, align 8, !tbaa !5
  %.not471 = icmp eq i64 %.pr516, 0
  br i1 %.not471, label %314, label %311

311:                                              ; preds = %310
  %312 = getelementptr float, ptr %16, i64 %277
  %313 = call i32 @f2c_scopy(ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef %312, ptr noundef nonnull @c__1) #5
  br label %314

314:                                              ; preds = %.thread517, %311, %310
  %315 = load i64, ptr %2, align 8, !tbaa !5
  %316 = add nsw i64 %315, -1
  store i64 %316, ptr %24, align 8, !tbaa !5
  %.not472.not525 = icmp sgt i64 %315, 1
  br i1 %.not472.not525, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %314
  %317 = getelementptr float, ptr %56, i64 %278
  %318 = add nsw i64 %315, -1
  %min.iters.check = icmp ult i64 %315, 13
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph
  %319 = mul i64 %166, 20
  %320 = add i64 %319, %23
  %321 = sub i64 %320, %22
  %diff.check = icmp ult i64 %321, 32
  br i1 %diff.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %318, -8
  %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 ]
  %offset.idx = or disjoint i64 %index, 1
  %322 = getelementptr float, ptr %4, i64 %index
  %323 = getelementptr inbounds i8, ptr %322, i64 16
  %wide.load = load <4 x float>, ptr %322, align 4, !tbaa !9
  %wide.load589 = load <4 x float>, ptr %323, align 4, !tbaa !9
  %324 = fmul <4 x float> %wide.load, %wide.load
  %325 = fmul <4 x float> %wide.load589, %wide.load589
  %326 = getelementptr float, ptr %317, i64 %offset.idx
  %327 = getelementptr i8, ptr %326, i64 16
  store <4 x float> %324, ptr %326, align 4, !tbaa !9
  store <4 x float> %325, ptr %327, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %328 = icmp eq i64 %index.next, %n.vec
  br i1 %328, label %middle.block, label %vector.body, !llvm.loop !14

middle.block:                                     ; preds = %vector.body
  %329 = extractelement <4 x float> %wide.load589, i64 3
  %cmp.n = icmp eq i64 %318, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph
  %.0439526.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph ], [ %ind.end, %middle.block ]
  %330 = sub i64 %315, %.0439526.ph
  %xtraiter = and i64 %330, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader, %scalar.ph.prol
  %.0439526.prol = phi i64 [ %335, %scalar.ph.prol ], [ %.0439526.ph, %scalar.ph.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %331 = getelementptr inbounds float, ptr %50, i64 %.0439526.prol
  %332 = load float, ptr %331, align 4, !tbaa !9
  %333 = fmul float %332, %332
  %334 = getelementptr float, ptr %317, i64 %.0439526.prol
  store float %333, ptr %334, align 4, !tbaa !9
  %335 = add nuw nsw i64 %.0439526.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !18

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %.lcssa591.unr = phi float [ poison, %scalar.ph.preheader ], [ %332, %scalar.ph.prol ]
  %.0439526.unr = phi i64 [ %.0439526.ph, %scalar.ph.preheader ], [ %335, %scalar.ph.prol ]
  %336 = sub i64 %.0439526.ph, %315
  %337 = icmp ugt i64 %336, -4
  br i1 %337, label %._crit_edge, label %scalar.ph.preheader.new

scalar.ph.preheader.new:                          ; preds = %scalar.ph.prol.loopexit
  %invariant.gep600 = getelementptr i8, ptr %317, i64 4
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph, %scalar.ph.preheader.new
  %.0439526 = phi i64 [ %.0439526.unr, %scalar.ph.preheader.new ], [ %355, %scalar.ph ]
  %338 = getelementptr inbounds float, ptr %50, i64 %.0439526
  %339 = load float, ptr %338, align 4, !tbaa !9
  %340 = fmul float %339, %339
  %341 = getelementptr float, ptr %317, i64 %.0439526
  store float %340, ptr %341, align 4, !tbaa !9
  %342 = getelementptr float, ptr %4, i64 %.0439526
  %343 = load float, ptr %342, align 4, !tbaa !9
  %344 = fmul float %343, %343
  %gep601 = getelementptr float, ptr %invariant.gep600, i64 %.0439526
  store float %344, ptr %gep601, align 4, !tbaa !9
  %345 = add nuw nsw i64 %.0439526, 2
  %346 = getelementptr inbounds float, ptr %50, i64 %345
  %347 = load float, ptr %346, align 4, !tbaa !9
  %348 = fmul float %347, %347
  %349 = getelementptr float, ptr %317, i64 %345
  store float %348, ptr %349, align 4, !tbaa !9
  %350 = add nuw nsw i64 %.0439526, 3
  %351 = getelementptr inbounds float, ptr %50, i64 %350
  %352 = load float, ptr %351, align 4, !tbaa !9
  %353 = fmul float %352, %352
  %354 = getelementptr float, ptr %317, i64 %350
  store float %353, ptr %354, align 4, !tbaa !9
  %355 = add nuw nsw i64 %.0439526, 4
  %exitcond.not.3 = icmp eq i64 %355, %315
  br i1 %exitcond.not.3, label %._crit_edge, label %scalar.ph, !llvm.loop !20

._crit_edge:                                      ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block, %314
  %.lcssa = phi float [ %sqrtf468, %314 ], [ %329, %middle.block ], [ %.lcssa591.unr, %scalar.ph.prol.loopexit ], [ %352, %scalar.ph ]
  store float %.lcssa, ptr %25, align 4, !tbaa !9
  br i1 %71, label %358, label %356

356:                                              ; preds = %._crit_edge
  %357 = fmul float %123, 4.000000e+00
  store float %357, ptr %38, align 4, !tbaa !9
  br label %371

358:                                              ; preds = %._crit_edge
  %359 = fpext float %123 to double
  %360 = call double @sqrt(double noundef %359) #5
  %361 = fmul double %360, 0x3FA99999A0000000
  %362 = fptrunc double %361 to float
  %363 = fmul float %123, 4.000000e+00
  %364 = fcmp ole float %363, %362
  %365 = select i1 %364, float %362, float %363
  store float %365, ptr %38, align 4, !tbaa !9
  %366 = call double @sqrt(double noundef %359) #5
  %367 = fmul double %366, 0x3F747AE140000000
  %368 = fptrunc double %367 to float
  store float %368, ptr %25, align 4, !tbaa !9
  %369 = fcmp ole float %363, %368
  %370 = select i1 %369, float %368, float %363
  br label %371

371:                                              ; preds = %358, %356
  %storemerge = phi float [ %357, %356 ], [ %370, %358 ]
  store float %storemerge, ptr %39, align 4, !tbaa !9
  %372 = getelementptr float, ptr %16, i64 %278
  %373 = getelementptr float, ptr %16, i64 %275
  %374 = getelementptr float, ptr %16, i64 %276
  %375 = getelementptr i64, ptr %18, i64 %166
  %376 = getelementptr i64, ptr %18, i64 %275
  %.idx = mul i64 %166, 24
  %377 = getelementptr i8, ptr %16, i64 %.idx
  %378 = getelementptr i64, ptr %18, i64 %276
  %379 = call i32 @slarre_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef %3, ptr noundef %4, ptr noundef %372, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %48, ptr noundef nonnull %49, ptr noundef nonnull %18, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %373, ptr noundef %374, ptr noundef %375, ptr noundef %376, ptr noundef nonnull %16, ptr noundef nonnull %47, ptr noundef %377, ptr noundef %378, ptr noundef nonnull %41) #5
  %380 = load i64, ptr %41, align 8
  %.not473 = icmp eq i64 %380, 0
  br i1 %.not473, label %384, label %381

381:                                              ; preds = %371
  %382 = call i64 @llvm.abs.i64(i64 %380, i1 true)
  %383 = add nuw nsw i64 %382, 10
  store i64 %383, ptr %20, align 8, !tbaa !5
  br label %496

384:                                              ; preds = %371
  br i1 %71, label %385, label %391

385:                                              ; preds = %384
  %386 = call i32 @clarrv_(ptr noundef nonnull %2, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %47, ptr noundef nonnull %18, ptr noundef nonnull %9, ptr noundef nonnull @c__1, ptr noundef nonnull %9, ptr noundef nonnull @c_b18, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %10, ptr noundef %373, ptr noundef %374, ptr noundef %375, ptr noundef %376, ptr noundef nonnull %16, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %14, ptr noundef %377, ptr noundef %378, ptr noundef nonnull %41) #5
  %387 = load i64, ptr %41, align 8
  %.not475 = icmp eq i64 %387, 0
  br i1 %.not475, label %.loopexit524, label %388

388:                                              ; preds = %385
  %389 = call i64 @llvm.abs.i64(i64 %387, i1 true)
  %390 = add nuw nsw i64 %389, 20
  store i64 %390, ptr %20, align 8, !tbaa !5
  br label %496

391:                                              ; preds = %384
  %392 = load i64, ptr %9, align 8, !tbaa !5
  store i64 %392, ptr %24, align 8, !tbaa !5
  %.not474527 = icmp slt i64 %392, 1
  br i1 %.not474527, label %.loopexit524, label %.lr.ph530

.lr.ph530:                                        ; preds = %391
  %393 = getelementptr i64, ptr %57, i64 %166
  %xtraiter592 = and i64 %392, 1
  %394 = icmp eq i64 %392, 1
  br i1 %394, label %..loopexit524_crit_edge.unr-lcssa, label %.lr.ph530.new

.lr.ph530.new:                                    ; preds = %.lr.ph530
  %unroll_iter = and i64 %392, 9223372036854775806
  %invariant.gep602 = getelementptr i8, ptr %393, i64 8
  br label %395

395:                                              ; preds = %395, %.lr.ph530.new
  %.1440528 = phi i64 [ 1, %.lr.ph530.new ], [ %413, %395 ]
  %niter = phi i64 [ 0, %.lr.ph530.new ], [ %niter.next.1, %395 ]
  %396 = getelementptr i64, ptr %393, i64 %.1440528
  %397 = load i64, ptr %396, align 8, !tbaa !5
  %398 = getelementptr inbounds i64, ptr %57, i64 %397
  %399 = load i64, ptr %398, align 8, !tbaa !5
  %400 = getelementptr inbounds float, ptr %50, i64 %399
  %401 = load float, ptr %400, align 4, !tbaa !9
  %402 = getelementptr inbounds float, ptr %51, i64 %.1440528
  %403 = load float, ptr %402, align 4, !tbaa !9
  %404 = fadd float %401, %403
  store float %404, ptr %402, align 4, !tbaa !9
  %gep603 = getelementptr i64, ptr %invariant.gep602, i64 %.1440528
  %405 = load i64, ptr %gep603, align 8, !tbaa !5
  %406 = getelementptr inbounds i64, ptr %57, i64 %405
  %407 = load i64, ptr %406, align 8, !tbaa !5
  %408 = getelementptr inbounds float, ptr %50, i64 %407
  %409 = load float, ptr %408, align 4, !tbaa !9
  %410 = getelementptr float, ptr %10, i64 %.1440528
  %411 = load float, ptr %410, align 4, !tbaa !9
  %412 = fadd float %409, %411
  store float %412, ptr %410, align 4, !tbaa !9
  %413 = add nuw i64 %.1440528, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %..loopexit524_crit_edge.unr-lcssa, label %395, !llvm.loop !21

..loopexit524_crit_edge.unr-lcssa:                ; preds = %395, %.lr.ph530
  %.lcssa590.ph = phi i64 [ poison, %.lr.ph530 ], [ %405, %395 ]
  %.1440528.unr = phi i64 [ 1, %.lr.ph530 ], [ %413, %395 ]
  %lcmp.mod593.not = icmp eq i64 %xtraiter592, 0
  br i1 %lcmp.mod593.not, label %..loopexit524_crit_edge, label %..loopexit524_crit_edge.epilog-lcssa

..loopexit524_crit_edge.epilog-lcssa:             ; preds = %..loopexit524_crit_edge.unr-lcssa
  %414 = getelementptr i64, ptr %393, i64 %.1440528.unr
  %415 = load i64, ptr %414, align 8, !tbaa !5
  %416 = getelementptr inbounds i64, ptr %57, i64 %415
  %417 = load i64, ptr %416, align 8, !tbaa !5
  %418 = getelementptr inbounds float, ptr %50, i64 %417
  %419 = load float, ptr %418, align 4, !tbaa !9
  %420 = getelementptr inbounds float, ptr %51, i64 %.1440528.unr
  %421 = load float, ptr %420, align 4, !tbaa !9
  %422 = fadd float %419, %421
  store float %422, ptr %420, align 4, !tbaa !9
  br label %..loopexit524_crit_edge

..loopexit524_crit_edge:                          ; preds = %..loopexit524_crit_edge.unr-lcssa, %..loopexit524_crit_edge.epilog-lcssa
  %.lcssa590 = phi i64 [ %.lcssa590.ph, %..loopexit524_crit_edge.unr-lcssa ], [ %415, %..loopexit524_crit_edge.epilog-lcssa ]
  store i64 %.lcssa590, ptr %35, align 8, !tbaa !5
  br label %.loopexit524

.loopexit524:                                     ; preds = %391, %..loopexit524_crit_edge, %385
  %423 = load i64, ptr %15, align 8, !tbaa !5
  %.not476 = icmp eq i64 %423, 0
  br i1 %.not476, label %.loopexit523, label %424

424:                                              ; preds = %.loopexit524
  %425 = load i64, ptr %9, align 8, !tbaa !5
  %426 = getelementptr i64, ptr %57, i64 %166
  %427 = getelementptr i64, ptr %426, i64 %425
  %428 = load i64, ptr %427, align 8, !tbaa !5
  store i64 %428, ptr %24, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %376, i64 -8
  %.not477539 = icmp slt i64 %428, 1
  br i1 %.not477539, label %.loopexit523, label %.lr.ph544

.lr.ph544:                                        ; preds = %424
  %429 = fmul float %123, 4.000000e+00
  %430 = getelementptr float, ptr %16, i64 %277
  %invariant.gep545 = getelementptr i8, ptr %430, i64 -4
  %431 = getelementptr float, ptr %56, i64 %278
  br label %432

432:                                              ; preds = %.lr.ph544, %._crit_edge535.thread
  %433 = phi i64 [ %428, %.lr.ph544 ], [ %457, %._crit_edge535.thread ]
  %.0436542 = phi i64 [ 1, %.lr.ph544 ], [ %.1, %._crit_edge535.thread ]
  %.0442541 = phi i64 [ 1, %.lr.ph544 ], [ %.1443, %._crit_edge535.thread ]
  %.0446540 = phi i64 [ 1, %.lr.ph544 ], [ %434, %._crit_edge535.thread ]
  %434 = add nuw nsw i64 %.0446540, 1
  %435 = getelementptr inbounds i64, ptr %57, i64 %.0446540
  %436 = load i64, ptr %435, align 8, !tbaa !5
  %reass.sub = sub i64 %436, %.0442541
  %437 = add i64 %reass.sub, 1
  store i64 %437, ptr %29, align 8, !tbaa !5
  %438 = load i64, ptr %9, align 8, !tbaa !5
  %.not564 = icmp sgt i64 %.0436542, %438
  br i1 %.not564, label %._crit_edge535.thread, label %.lr.ph534.preheader

.lr.ph534.preheader:                              ; preds = %432
  %439 = add nsw i64 %.0436542, -1
  br label %.lr.ph534

.lr.ph534:                                        ; preds = %.lr.ph534.preheader, %443
  %.0448532 = phi i64 [ %444, %443 ], [ %439, %.lr.ph534.preheader ]
  %440 = getelementptr i64, ptr %375, i64 %.0448532
  %441 = load i64, ptr %440, align 8, !tbaa !5
  %442 = icmp eq i64 %441, %.0446540
  br i1 %442, label %443, label %._crit_edge535

443:                                              ; preds = %.lr.ph534
  %444 = add i64 %.0448532, 1
  %exitcond568.not = icmp eq i64 %444, %438
  br i1 %exitcond568.not, label %._crit_edge535, label %.lr.ph534

._crit_edge535:                                   ; preds = %443, %.lr.ph534
  %.0448.lcssa = phi i64 [ %438, %443 ], [ %.0448532, %.lr.ph534 ]
  %445 = icmp slt i64 %.0448.lcssa, %.0436542
  br i1 %445, label %._crit_edge535.thread, label %446

446:                                              ; preds = %._crit_edge535
  %447 = add i64 %.0436542, %275
  %448 = getelementptr inbounds i64, ptr %57, i64 %447
  %449 = load i64, ptr %448, align 8, !tbaa !5
  %450 = add nsw i64 %449, -1
  store i64 %450, ptr %44, align 8, !tbaa !5
  store i64 %449, ptr %45, align 8, !tbaa !5
  %gep = getelementptr i64, ptr %invariant.gep, i64 %.0448.lcssa
  %451 = load i64, ptr %gep, align 8, !tbaa !5
  store i64 %451, ptr %42, align 8, !tbaa !5
  store float %429, ptr %39, align 4, !tbaa !9
  %gep546 = getelementptr float, ptr %invariant.gep545, i64 %.0442541
  %452 = getelementptr float, ptr %431, i64 %.0442541
  %453 = getelementptr inbounds float, ptr %51, i64 %.0436542
  %454 = getelementptr inbounds float, ptr %56, i64 %447
  %455 = call i32 @slarrj_(ptr noundef nonnull %29, ptr noundef %gep546, ptr noundef %452, ptr noundef nonnull %45, ptr noundef nonnull %42, ptr noundef nonnull %39, ptr noundef nonnull %44, ptr noundef nonnull %453, ptr noundef nonnull %454, ptr noundef %377, ptr noundef %378, ptr noundef nonnull %47, ptr noundef nonnull %36, ptr noundef nonnull %41) #5
  %456 = add nuw nsw i64 %.0448.lcssa, 1
  %.pre = load i64, ptr %24, align 8, !tbaa !5
  br label %._crit_edge535.thread

._crit_edge535.thread:                            ; preds = %432, %._crit_edge535, %446
  %457 = phi i64 [ %.pre, %446 ], [ %433, %._crit_edge535 ], [ %433, %432 ]
  %.1 = phi i64 [ %456, %446 ], [ %.0436542, %._crit_edge535 ], [ %.0436542, %432 ]
  %.1443 = add nsw i64 %436, 1
  %.not477.not = icmp slt i64 %.0446540, %457
  br i1 %.not477.not, label %432, label %.loopexit523, !llvm.loop !22

.loopexit523:                                     ; preds = %._crit_edge535.thread, %424, %.loopexit524
  %458 = load float, ptr %40, align 4, !tbaa !9
  %459 = fcmp une float %458, 1.000000e+00
  br i1 %459, label %460, label %463

460:                                              ; preds = %.loopexit523
  %461 = fdiv float 1.000000e+00, %458
  store float %461, ptr %25, align 4, !tbaa !9
  %462 = call i32 @f2c_sscal(ptr noundef nonnull %9, ptr noundef nonnull %25, ptr noundef %10, ptr noundef nonnull @c__1) #5
  br label %463

463:                                              ; preds = %460, %.loopexit523
  %464 = load i64, ptr %49, align 8, !tbaa !5
  %465 = icmp sgt i64 %464, 1
  br i1 %465, label %466, label %.loopexit

466:                                              ; preds = %463
  br i1 %71, label %471, label %467

467:                                              ; preds = %466
  %468 = call i32 @slasrt_(ptr noundef nonnull @.str.2, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %41) #5
  %469 = load i64, ptr %41, align 8, !tbaa !5
  %.not478 = icmp eq i64 %469, 0
  br i1 %.not478, label %.loopexit, label %470

470:                                              ; preds = %467
  store i64 3, ptr %20, align 8, !tbaa !5
  br label %496

471:                                              ; preds = %466
  %472 = load i64, ptr %9, align 8, !tbaa !5
  %473 = add nsw i64 %472, -1
  store i64 %473, ptr %24, align 8, !tbaa !5
  %invariant.gep556 = getelementptr i8, ptr %54, i64 8
  %.not479560 = icmp slt i64 %472, 2
  br i1 %.not479560, label %.loopexit, label %.lr.ph563

.lr.ph563:                                        ; preds = %471, %._crit_edge553.thread
  %474 = phi i64 [ %495, %._crit_edge553.thread ], [ %473, %471 ]
  %.2561 = phi i64 [ %478, %._crit_edge553.thread ], [ 1, %471 ]
  %475 = getelementptr inbounds float, ptr %51, i64 %.2561
  %476 = load float, ptr %475, align 4, !tbaa !9
  %477 = load i64, ptr %9, align 8, !tbaa !5
  %478 = add nuw nsw i64 %.2561, 1
  %.not480547.not = icmp slt i64 %.2561, %477
  br i1 %.not480547.not, label %.lr.ph552, label %._crit_edge553.thread

.lr.ph552:                                        ; preds = %.lr.ph563, %.lr.ph552
  %.0437550 = phi i64 [ %.1438, %.lr.ph552 ], [ 0, %.lr.ph563 ]
  %.0441549 = phi i64 [ %482, %.lr.ph552 ], [ %478, %.lr.ph563 ]
  %.0444548 = phi float [ %.1445, %.lr.ph552 ], [ %476, %.lr.ph563 ]
  %479 = getelementptr inbounds float, ptr %51, i64 %.0441549
  %480 = load float, ptr %479, align 4, !tbaa !9
  %481 = fcmp olt float %480, %.0444548
  %.1445 = select i1 %481, float %480, float %.0444548
  %.1438 = select i1 %481, i64 %.0441549, i64 %.0437550
  %482 = add nuw nsw i64 %.0441549, 1
  %.not480.not = icmp slt i64 %.0441549, %477
  br i1 %.not480.not, label %.lr.ph552, label %._crit_edge553, !llvm.loop !23

._crit_edge553:                                   ; preds = %.lr.ph552
  %.not481 = icmp eq i64 %.1438, 0
  br i1 %.not481, label %._crit_edge553.thread, label %483

483:                                              ; preds = %._crit_edge553
  %484 = getelementptr inbounds float, ptr %51, i64 %.1438
  store float %476, ptr %484, align 4, !tbaa !9
  store float %.1445, ptr %475, align 4, !tbaa !9
  %485 = mul nsw i64 %.1438, %52
  %gep557 = getelementptr %struct.complex, ptr %invariant.gep556, i64 %485
  %486 = mul nsw i64 %.2561, %52
  %gep559 = getelementptr %struct.complex, ptr %invariant.gep556, i64 %486
  %487 = call i32 @f2c_cswap(ptr noundef nonnull %2, ptr noundef %gep557, ptr noundef nonnull @c__1, ptr noundef %gep559, ptr noundef nonnull @c__1) #5
  %.idx482 = shl i64 %.1438, 4
  %488 = getelementptr i8, ptr %55, i64 %.idx482
  %489 = getelementptr i8, ptr %488, i64 -8
  %490 = load i64, ptr %489, align 8, !tbaa !5
  %.idx483 = shl i64 %.2561, 4
  %491 = getelementptr i8, ptr %55, i64 %.idx483
  %492 = getelementptr i8, ptr %491, i64 -8
  %493 = load i64, ptr %488, align 8, !tbaa !5
  store i64 %493, ptr %35, align 8, !tbaa !5
  %494 = load <2 x i64>, ptr %492, align 8, !tbaa !5
  store <2 x i64> %494, ptr %489, align 8, !tbaa !5
  store i64 %490, ptr %492, align 8, !tbaa !5
  store i64 %493, ptr %491, align 8, !tbaa !5
  %.pre571 = load i64, ptr %24, align 8, !tbaa !5
  br label %._crit_edge553.thread

._crit_edge553.thread:                            ; preds = %.lr.ph563, %._crit_edge553, %483
  %495 = phi i64 [ %474, %._crit_edge553 ], [ %.pre571, %483 ], [ %474, %.lr.ph563 ]
  %.not479.not = icmp slt i64 %.2561, %495
  br i1 %.not479.not, label %.lr.ph563, label %.loopexit, !llvm.loop !24

.loopexit:                                        ; preds = %._crit_edge553.thread, %471, %467, %463
  store float %136, ptr %16, align 4, !tbaa !9
  store i64 %.0435, ptr %18, align 8, !tbaa !5
  br label %496

496:                                              ; preds = %.thread575, %239, %269, %268, %267, %243, %165, %178, %180, %164, %.loopexit, %470, %388, %381, %.thread509
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  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 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

declare i32 @slarrc_(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 i32 @xerbla_(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

declare i32 @slarre_(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

declare i32 @clarrv_(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

declare i32 @slarrj_(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

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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 = { 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 = !{!12, !10, i64 0}
!12 = !{!"", !10, i64 0, !10, i64 4}
!13 = !{!12, !10, i64 4}
!14 = distinct !{!14, !15, !16, !17}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!"llvm.loop.isvectorized", i32 1}
!17 = !{!"llvm.loop.unroll.runtime.disable"}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.unroll.disable"}
!20 = distinct !{!20, !15, !16}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15}
!24 = distinct !{!24, !15}


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