; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4
@c_b18 = external hidden global float, align 4

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

139:                                              ; preds = %21
  %140 = load ptr, ptr %41, align 8, !tbaa !5
  %141 = load i32, ptr %140, align 4, !tbaa !9
  %142 = icmp eq i32 %141, -1
  br label %143

143:                                              ; preds = %139, %21
  %144 = phi i1 [ true, %21 ], [ %142, %139 ]
  %145 = zext i1 %144 to i32
  store i32 %145, ptr %99, align 4, !tbaa !9
  %146 = load ptr, ptr %35, align 8, !tbaa !5
  %147 = load i32, ptr %146, align 4, !tbaa !9
  %148 = icmp eq i32 %147, -1
  %149 = zext i1 %148 to i32
  store i32 %149, ptr %100, align 4, !tbaa !9
  %150 = load i32, ptr %69, align 4, !tbaa !9
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %152, label %159

152:                                              ; preds = %143
  %153 = load ptr, ptr %24, align 8, !tbaa !5
  %154 = load i32, ptr %153, align 4, !tbaa !9
  %155 = mul nsw i32 %154, 18
  store i32 %155, ptr %68, align 4, !tbaa !9
  %156 = load ptr, ptr %24, align 8, !tbaa !5
  %157 = load i32, ptr %156, align 4, !tbaa !9
  %158 = mul nsw i32 %157, 10
  store i32 %158, ptr %93, align 4, !tbaa !9
  br label %166

159:                                              ; preds = %143
  %160 = load ptr, ptr %24, align 8, !tbaa !5
  %161 = load i32, ptr %160, align 4, !tbaa !9
  %162 = mul nsw i32 %161, 12
  store i32 %162, ptr %68, align 4, !tbaa !9
  %163 = load ptr, ptr %24, align 8, !tbaa !5
  %164 = load i32, ptr %163, align 4, !tbaa !9
  %165 = shl i32 %164, 3
  store i32 %165, ptr %93, align 4, !tbaa !9
  br label %166

166:                                              ; preds = %159, %152
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  store float 0.000000e+00, ptr %84, align 4, !tbaa !11
  store i32 0, ptr %101, align 4, !tbaa !9
  store i32 0, ptr %102, align 4, !tbaa !9
  store i32 0, ptr %97, align 4, !tbaa !9
  %167 = load i32, ptr %81, align 4, !tbaa !9
  %168 = icmp ne i32 %167, 0
  br i1 %168, label %169, label %174

169:                                              ; preds = %166
  %170 = load ptr, ptr %27, align 8, !tbaa !5
  %171 = load float, ptr %170, align 4, !tbaa !11
  store float %171, ptr %80, align 4, !tbaa !11
  %172 = load ptr, ptr %28, align 8, !tbaa !5
  %173 = load float, ptr %172, align 4, !tbaa !11
  store float %173, ptr %84, align 4, !tbaa !11
  br label %183

174:                                              ; preds = %166
  %175 = load i32, ptr %76, align 4, !tbaa !9
  %176 = icmp ne i32 %175, 0
  br i1 %176, label %177, label %182

177:                                              ; preds = %174
  %178 = load ptr, ptr %29, align 8, !tbaa !5
  %179 = load i32, ptr %178, align 4, !tbaa !9
  store i32 %179, ptr %101, align 4, !tbaa !9
  %180 = load ptr, ptr %30, align 8, !tbaa !5
  %181 = load i32, ptr %180, align 4, !tbaa !9
  store i32 %181, ptr %102, align 4, !tbaa !9
  br label %182

182:                                              ; preds = %177, %174
  br label %183

183:                                              ; preds = %182, %169
  %184 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 0, ptr %184, align 4, !tbaa !9
  %185 = load i32, ptr %69, align 4, !tbaa !9
  %186 = icmp ne i32 %185, 0
  br i1 %186, label %193, label %187

187:                                              ; preds = %183
  %188 = load ptr, ptr %22, align 8, !tbaa !5
  %189 = call i32 @lsame_(ptr noundef %188, ptr noundef @.str.3)
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %193, label %191

191:                                              ; preds = %187
  %192 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -1, ptr %192, align 4, !tbaa !9
  br label %293

193:                                              ; preds = %187, %183
  %194 = load i32, ptr %75, align 4, !tbaa !9
  %195 = icmp ne i32 %194, 0
  br i1 %195, label %204, label %196

196:                                              ; preds = %193
  %197 = load i32, ptr %81, align 4, !tbaa !9
  %198 = icmp ne i32 %197, 0
  br i1 %198, label %204, label %199

199:                                              ; preds = %196
  %200 = load i32, ptr %76, align 4, !tbaa !9
  %201 = icmp ne i32 %200, 0
  br i1 %201, label %204, label %202

202:                                              ; preds = %199
  %203 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -2, ptr %203, align 4, !tbaa !9
  br label %292

204:                                              ; preds = %199, %196, %193
  %205 = load ptr, ptr %24, align 8, !tbaa !5
  %206 = load i32, ptr %205, align 4, !tbaa !9
  %207 = icmp slt i32 %206, 0
  br i1 %207, label %208, label %210

208:                                              ; preds = %204
  %209 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -3, ptr %209, align 4, !tbaa !9
  br label %291

210:                                              ; preds = %204
  %211 = load i32, ptr %81, align 4, !tbaa !9
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %213, label %223

213:                                              ; preds = %210
  %214 = load ptr, ptr %24, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = icmp sgt i32 %215, 0
  br i1 %216, label %217, label %223

217:                                              ; preds = %213
  %218 = load float, ptr %84, align 4, !tbaa !11
  %219 = load float, ptr %80, align 4, !tbaa !11
  %220 = fcmp ole float %218, %219
  br i1 %220, label %221, label %223

221:                                              ; preds = %217
  %222 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -7, ptr %222, align 4, !tbaa !9
  br label %290

223:                                              ; preds = %217, %213, %210
  %224 = load i32, ptr %76, align 4, !tbaa !9
  %225 = icmp ne i32 %224, 0
  br i1 %225, label %226, label %236

226:                                              ; preds = %223
  %227 = load i32, ptr %101, align 4, !tbaa !9
  %228 = icmp slt i32 %227, 1
  br i1 %228, label %234, label %229

229:                                              ; preds = %226
  %230 = load i32, ptr %101, align 4, !tbaa !9
  %231 = load ptr, ptr %24, align 8, !tbaa !5
  %232 = load i32, ptr %231, align 4, !tbaa !9
  %233 = icmp sgt i32 %230, %232
  br i1 %233, label %234, label %236

234:                                              ; preds = %229, %226
  %235 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -8, ptr %235, align 4, !tbaa !9
  br label %289

236:                                              ; preds = %229, %223
  %237 = load i32, ptr %76, align 4, !tbaa !9
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %239, label %250

239:                                              ; preds = %236
  %240 = load i32, ptr %102, align 4, !tbaa !9
  %241 = load i32, ptr %101, align 4, !tbaa !9
  %242 = icmp slt i32 %240, %241
  br i1 %242, label %248, label %243

243:                                              ; preds = %239
  %244 = load i32, ptr %102, align 4, !tbaa !9
  %245 = load ptr, ptr %24, align 8, !tbaa !5
  %246 = load i32, ptr %245, align 4, !tbaa !9
  %247 = icmp sgt i32 %244, %246
  br i1 %247, label %248, label %250

248:                                              ; preds = %243, %239
  %249 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -9, ptr %249, align 4, !tbaa !9
  br label %288

250:                                              ; preds = %243, %236
  %251 = load ptr, ptr %34, align 8, !tbaa !5
  %252 = load i32, ptr %251, align 4, !tbaa !9
  %253 = icmp slt i32 %252, 1
  br i1 %253, label %263, label %254

254:                                              ; preds = %250
  %255 = load i32, ptr %69, align 4, !tbaa !9
  %256 = icmp ne i32 %255, 0
  br i1 %256, label %257, label %265

257:                                              ; preds = %254
  %258 = load ptr, ptr %34, align 8, !tbaa !5
  %259 = load i32, ptr %258, align 4, !tbaa !9
  %260 = load ptr, ptr %24, align 8, !tbaa !5
  %261 = load i32, ptr %260, align 4, !tbaa !9
  %262 = icmp slt i32 %259, %261
  br i1 %262, label %263, label %265

263:                                              ; preds = %257, %250
  %264 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -13, ptr %264, align 4, !tbaa !9
  br label %287

265:                                              ; preds = %257, %254
  %266 = load ptr, ptr %39, align 8, !tbaa !5
  %267 = load i32, ptr %266, align 4, !tbaa !9
  %268 = load i32, ptr %68, align 4, !tbaa !9
  %269 = icmp slt i32 %267, %268
  br i1 %269, label %270, label %275

270:                                              ; preds = %265
  %271 = load i32, ptr %99, align 4, !tbaa !9
  %272 = icmp ne i32 %271, 0
  br i1 %272, label %275, label %273

273:                                              ; preds = %270
  %274 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -17, ptr %274, align 4, !tbaa !9
  br label %286

275:                                              ; preds = %270, %265
  %276 = load ptr, ptr %41, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = load i32, ptr %93, align 4, !tbaa !9
  %279 = icmp slt i32 %277, %278
  br i1 %279, label %280, label %285

280:                                              ; preds = %275
  %281 = load i32, ptr %99, align 4, !tbaa !9
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %285, label %283

283:                                              ; preds = %280
  %284 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -19, ptr %284, align 4, !tbaa !9
  br label %285

285:                                              ; preds = %283, %280, %275
  br label %286

286:                                              ; preds = %285, %273
  br label %287

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

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

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

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

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

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

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

318:                                              ; preds = %293
  %319 = load float, ptr %47, align 4, !tbaa !11
  br label %322

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

322:                                              ; preds = %320, %318
  %323 = phi float [ %319, %318 ], [ %321, %320 ]
  store float %323, ptr %54, align 4, !tbaa !11
  %324 = load ptr, ptr %42, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  %326 = icmp eq i32 %325, 0
  br i1 %326, label %327, label %406

327:                                              ; preds = %322
  %328 = load i32, ptr %68, align 4, !tbaa !9
  %329 = sitofp i32 %328 to float
  %330 = load ptr, ptr %38, align 8, !tbaa !5
  %331 = getelementptr inbounds float, ptr %330, i64 1
  store float %329, ptr %331, align 4, !tbaa !11
  %332 = load i32, ptr %93, align 4, !tbaa !9
  %333 = load ptr, ptr %40, align 8, !tbaa !5
  %334 = getelementptr inbounds i32, ptr %333, i64 1
  store i32 %332, ptr %334, align 4, !tbaa !9
  %335 = load i32, ptr %69, align 4, !tbaa !9
  %336 = icmp ne i32 %335, 0
  br i1 %336, label %337, label %343

337:                                              ; preds = %327
  %338 = load i32, ptr %75, align 4, !tbaa !9
  %339 = icmp ne i32 %338, 0
  br i1 %339, label %340, label %343

340:                                              ; preds = %337
  %341 = load ptr, ptr %24, align 8, !tbaa !5
  %342 = load i32, ptr %341, align 4, !tbaa !9
  store i32 %342, ptr %94, align 4, !tbaa !9
  br label %372

343:                                              ; preds = %337, %327
  %344 = load i32, ptr %69, align 4, !tbaa !9
  %345 = icmp ne i32 %344, 0
  br i1 %345, label %346, label %358

346:                                              ; preds = %343
  %347 = load i32, ptr %81, align 4, !tbaa !9
  %348 = icmp ne i32 %347, 0
  br i1 %348, label %349, label %358

349:                                              ; preds = %346
  %350 = load ptr, ptr %24, align 8, !tbaa !5
  %351 = load ptr, ptr %27, align 8, !tbaa !5
  %352 = load ptr, ptr %28, align 8, !tbaa !5
  %353 = load ptr, ptr %25, align 8, !tbaa !5
  %354 = getelementptr inbounds float, ptr %353, i64 1
  %355 = load ptr, ptr %26, align 8, !tbaa !5
  %356 = getelementptr inbounds float, ptr %355, i64 1
  %357 = load ptr, ptr %42, align 8, !tbaa !5
  call void @slarrc_(ptr noundef @.str.6, ptr noundef %350, ptr noundef %351, ptr noundef %352, ptr noundef %354, ptr noundef %356, ptr noundef %83, ptr noundef %94, ptr noundef %55, ptr noundef %58, ptr noundef %357)
  br label %371

358:                                              ; preds = %346, %343
  %359 = load i32, ptr %69, align 4, !tbaa !9
  %360 = icmp ne i32 %359, 0
  br i1 %360, label %361, label %369

361:                                              ; preds = %358
  %362 = load i32, ptr %76, align 4, !tbaa !9
  %363 = icmp ne i32 %362, 0
  br i1 %363, label %364, label %369

364:                                              ; preds = %361
  %365 = load i32, ptr %102, align 4, !tbaa !9
  %366 = load i32, ptr %101, align 4, !tbaa !9
  %367 = sub nsw i32 %365, %366
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr %94, align 4, !tbaa !9
  br label %370

369:                                              ; preds = %361, %358
  store i32 0, ptr %94, align 4, !tbaa !9
  br label %370

370:                                              ; preds = %369, %364
  br label %371

371:                                              ; preds = %370, %349
  br label %372

372:                                              ; preds = %371, %340
  %373 = load i32, ptr %100, align 4, !tbaa !9
  %374 = icmp ne i32 %373, 0
  br i1 %374, label %375, label %394

375:                                              ; preds = %372
  %376 = load ptr, ptr %42, align 8, !tbaa !5
  %377 = load i32, ptr %376, align 4, !tbaa !9
  %378 = icmp eq i32 %377, 0
  br i1 %378, label %379, label %394

379:                                              ; preds = %375
  %380 = load i32, ptr %43, align 4, !tbaa !9
  %381 = add nsw i32 %380, 1
  store i32 %381, ptr %45, align 4, !tbaa !9
  %382 = load i32, ptr %94, align 4, !tbaa !9
  %383 = sitofp i32 %382 to float
  %384 = load ptr, ptr %33, align 8, !tbaa !5
  %385 = load i32, ptr %45, align 4, !tbaa !9
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds %struct.complex, ptr %384, i64 %386
  %388 = getelementptr inbounds %struct.complex, ptr %387, i32 0, i32 0
  store float %383, ptr %388, align 4, !tbaa !13
  %389 = load ptr, ptr %33, align 8, !tbaa !5
  %390 = load i32, ptr %45, align 4, !tbaa !9
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds %struct.complex, ptr %389, i64 %391
  %393 = getelementptr inbounds %struct.complex, ptr %392, i32 0, i32 1
  store float 0.000000e+00, ptr %393, align 4, !tbaa !15
  br label %405

394:                                              ; preds = %375, %372
  %395 = load ptr, ptr %35, align 8, !tbaa !5
  %396 = load i32, ptr %395, align 4, !tbaa !9
  %397 = load i32, ptr %94, align 4, !tbaa !9
  %398 = icmp slt i32 %396, %397
  br i1 %398, label %399, label %404

399:                                              ; preds = %394
  %400 = load i32, ptr %100, align 4, !tbaa !9
  %401 = icmp ne i32 %400, 0
  br i1 %401, label %404, label %402

402:                                              ; preds = %399
  %403 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -14, ptr %403, align 4, !tbaa !9
  br label %404

404:                                              ; preds = %402, %399, %394
  br label %405

405:                                              ; preds = %404, %379
  br label %406

406:                                              ; preds = %405, %322
  %407 = load ptr, ptr %42, align 8, !tbaa !5
  %408 = load i32, ptr %407, align 4, !tbaa !9
  %409 = icmp ne i32 %408, 0
  br i1 %409, label %410, label %415

410:                                              ; preds = %406
  %411 = load ptr, ptr %42, align 8, !tbaa !5
  %412 = load i32, ptr %411, align 4, !tbaa !9
  %413 = sub nsw i32 0, %412
  store i32 %413, ptr %45, align 4, !tbaa !9
  %414 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %45, i32 noundef 6)
  store i32 1, ptr %105, align 4
  br label %1404

415:                                              ; preds = %406
  %416 = load i32, ptr %99, align 4, !tbaa !9
  %417 = icmp ne i32 %416, 0
  br i1 %417, label %421, label %418

418:                                              ; preds = %415
  %419 = load i32, ptr %100, align 4, !tbaa !9
  %420 = icmp ne i32 %419, 0
  br i1 %420, label %421, label %422

421:                                              ; preds = %418, %415
  store i32 1, ptr %105, align 4
  br label %1404

422:                                              ; preds = %418
  br label %423

423:                                              ; preds = %422
  %424 = load ptr, ptr %31, align 8, !tbaa !5
  store i32 0, ptr %424, align 4, !tbaa !9
  %425 = load ptr, ptr %24, align 8, !tbaa !5
  %426 = load i32, ptr %425, align 4, !tbaa !9
  %427 = icmp eq i32 %426, 0
  br i1 %427, label %428, label %429

428:                                              ; preds = %423
  store i32 1, ptr %105, align 4
  br label %1404

429:                                              ; preds = %423
  %430 = load ptr, ptr %24, align 8, !tbaa !5
  %431 = load i32, ptr %430, align 4, !tbaa !9
  %432 = icmp eq i32 %431, 1
  br i1 %432, label %433, label %490

433:                                              ; preds = %429
  %434 = load i32, ptr %75, align 4, !tbaa !9
  %435 = icmp ne i32 %434, 0
  br i1 %435, label %439, label %436

436:                                              ; preds = %433
  %437 = load i32, ptr %76, align 4, !tbaa !9
  %438 = icmp ne i32 %437, 0
  br i1 %438, label %439, label %446

439:                                              ; preds = %436, %433
  %440 = load ptr, ptr %31, align 8, !tbaa !5
  store i32 1, ptr %440, align 4, !tbaa !9
  %441 = load ptr, ptr %25, align 8, !tbaa !5
  %442 = getelementptr inbounds float, ptr %441, i64 1
  %443 = load float, ptr %442, align 4, !tbaa !11
  %444 = load ptr, ptr %32, align 8, !tbaa !5
  %445 = getelementptr inbounds float, ptr %444, i64 1
  store float %443, ptr %445, align 4, !tbaa !11
  br label %466

446:                                              ; preds = %436
  %447 = load float, ptr %80, align 4, !tbaa !11
  %448 = load ptr, ptr %25, align 8, !tbaa !5
  %449 = getelementptr inbounds float, ptr %448, i64 1
  %450 = load float, ptr %449, align 4, !tbaa !11
  %451 = fcmp olt float %447, %450
  br i1 %451, label %452, label %465

452:                                              ; preds = %446
  %453 = load float, ptr %84, align 4, !tbaa !11
  %454 = load ptr, ptr %25, align 8, !tbaa !5
  %455 = getelementptr inbounds float, ptr %454, i64 1
  %456 = load float, ptr %455, align 4, !tbaa !11
  %457 = fcmp oge float %453, %456
  br i1 %457, label %458, label %465

458:                                              ; preds = %452
  %459 = load ptr, ptr %31, align 8, !tbaa !5
  store i32 1, ptr %459, align 4, !tbaa !9
  %460 = load ptr, ptr %25, align 8, !tbaa !5
  %461 = getelementptr inbounds float, ptr %460, i64 1
  %462 = load float, ptr %461, align 4, !tbaa !11
  %463 = load ptr, ptr %32, align 8, !tbaa !5
  %464 = getelementptr inbounds float, ptr %463, i64 1
  store float %462, ptr %464, align 4, !tbaa !11
  br label %465

465:                                              ; preds = %458, %452, %446
  br label %466

466:                                              ; preds = %465, %439
  %467 = load i32, ptr %69, align 4, !tbaa !9
  %468 = icmp ne i32 %467, 0
  br i1 %468, label %469, label %489

469:                                              ; preds = %466
  %470 = load i32, ptr %100, align 4, !tbaa !9
  %471 = icmp ne i32 %470, 0
  br i1 %471, label %489, label %472

472:                                              ; preds = %469
  %473 = load i32, ptr %43, align 4, !tbaa !9
  %474 = add nsw i32 %473, 1
  store i32 %474, ptr %45, align 4, !tbaa !9
  %475 = load ptr, ptr %33, align 8, !tbaa !5
  %476 = load i32, ptr %45, align 4, !tbaa !9
  %477 = sext i32 %476 to i64
  %478 = getelementptr inbounds %struct.complex, ptr %475, i64 %477
  %479 = getelementptr inbounds %struct.complex, ptr %478, i32 0, i32 0
  store float 1.000000e+00, ptr %479, align 4, !tbaa !13
  %480 = load ptr, ptr %33, align 8, !tbaa !5
  %481 = load i32, ptr %45, align 4, !tbaa !9
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds %struct.complex, ptr %480, i64 %482
  %484 = getelementptr inbounds %struct.complex, ptr %483, i32 0, i32 1
  store float 0.000000e+00, ptr %484, align 4, !tbaa !15
  %485 = load ptr, ptr %36, align 8, !tbaa !5
  %486 = getelementptr inbounds i32, ptr %485, i64 1
  store i32 1, ptr %486, align 4, !tbaa !9
  %487 = load ptr, ptr %36, align 8, !tbaa !5
  %488 = getelementptr inbounds i32, ptr %487, i64 2
  store i32 1, ptr %488, align 4, !tbaa !9
  br label %489

489:                                              ; preds = %472, %469, %466
  store i32 1, ptr %105, align 4
  br label %1404

490:                                              ; preds = %429
  %491 = load ptr, ptr %24, align 8, !tbaa !5
  %492 = load i32, ptr %491, align 4, !tbaa !9
  %493 = icmp eq i32 %492, 2
  br i1 %493, label %494, label %757

494:                                              ; preds = %490
  %495 = load i32, ptr %69, align 4, !tbaa !9
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %504, label %497

497:                                              ; preds = %494
  %498 = load ptr, ptr %25, align 8, !tbaa !5
  %499 = getelementptr inbounds float, ptr %498, i64 1
  %500 = load ptr, ptr %26, align 8, !tbaa !5
  %501 = getelementptr inbounds float, ptr %500, i64 1
  %502 = load ptr, ptr %25, align 8, !tbaa !5
  %503 = getelementptr inbounds float, ptr %502, i64 2
  call void @slae2_(ptr noundef %499, ptr noundef %501, ptr noundef %503, ptr noundef %70, ptr noundef %71)
  br label %518

504:                                              ; preds = %494
  %505 = load i32, ptr %69, align 4, !tbaa !9
  %506 = icmp ne i32 %505, 0
  br i1 %506, label %507, label %517

507:                                              ; preds = %504
  %508 = load i32, ptr %100, align 4, !tbaa !9
  %509 = icmp ne i32 %508, 0
  br i1 %509, label %517, label %510

510:                                              ; preds = %507
  %511 = load ptr, ptr %25, align 8, !tbaa !5
  %512 = getelementptr inbounds float, ptr %511, i64 1
  %513 = load ptr, ptr %26, align 8, !tbaa !5
  %514 = getelementptr inbounds float, ptr %513, i64 1
  %515 = load ptr, ptr %25, align 8, !tbaa !5
  %516 = getelementptr inbounds float, ptr %515, i64 2
  call void @slaev2_(ptr noundef %512, ptr noundef %514, ptr noundef %516, ptr noundef %70, ptr noundef %71, ptr noundef %73, ptr noundef %79)
  br label %517

517:                                              ; preds = %510, %507, %504
  br label %518

518:                                              ; preds = %517, %497
  %519 = load i32, ptr %75, align 4, !tbaa !9
  %520 = icmp ne i32 %519, 0
  br i1 %520, label %538, label %521

521:                                              ; preds = %518
  %522 = load i32, ptr %81, align 4, !tbaa !9
  %523 = icmp ne i32 %522, 0
  br i1 %523, label %524, label %532

524:                                              ; preds = %521
  %525 = load float, ptr %71, align 4, !tbaa !11
  %526 = load float, ptr %80, align 4, !tbaa !11
  %527 = fcmp ogt float %525, %526
  br i1 %527, label %528, label %532

528:                                              ; preds = %524
  %529 = load float, ptr %71, align 4, !tbaa !11
  %530 = load float, ptr %84, align 4, !tbaa !11
  %531 = fcmp ole float %529, %530
  br i1 %531, label %538, label %532

532:                                              ; preds = %528, %524, %521
  %533 = load i32, ptr %76, align 4, !tbaa !9
  %534 = icmp ne i32 %533, 0
  br i1 %534, label %535, label %638

535:                                              ; preds = %532
  %536 = load i32, ptr %101, align 4, !tbaa !9
  %537 = icmp eq i32 %536, 1
  br i1 %537, label %538, label %638

538:                                              ; preds = %535, %528, %518
  %539 = load ptr, ptr %31, align 8, !tbaa !5
  %540 = load i32, ptr %539, align 4, !tbaa !9
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr %539, align 4, !tbaa !9
  %542 = load float, ptr %71, align 4, !tbaa !11
  %543 = load ptr, ptr %32, align 8, !tbaa !5
  %544 = load ptr, ptr %31, align 8, !tbaa !5
  %545 = load i32, ptr %544, align 4, !tbaa !9
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds float, ptr %543, i64 %546
  store float %542, ptr %547, align 4, !tbaa !11
  %548 = load i32, ptr %69, align 4, !tbaa !9
  %549 = icmp ne i32 %548, 0
  br i1 %549, label %550, label %637

550:                                              ; preds = %538
  %551 = load i32, ptr %100, align 4, !tbaa !9
  %552 = icmp ne i32 %551, 0
  br i1 %552, label %637, label %553

553:                                              ; preds = %550
  %554 = load ptr, ptr %31, align 8, !tbaa !5
  %555 = load i32, ptr %554, align 4, !tbaa !9
  %556 = load i32, ptr %43, align 4, !tbaa !9
  %557 = mul nsw i32 %555, %556
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %45, align 4, !tbaa !9
  %559 = load float, ptr %79, align 4, !tbaa !11
  %560 = fneg float %559
  store float %560, ptr %47, align 4, !tbaa !11
  %561 = load float, ptr %47, align 4, !tbaa !11
  %562 = load ptr, ptr %33, align 8, !tbaa !5
  %563 = load i32, ptr %45, align 4, !tbaa !9
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds %struct.complex, ptr %562, i64 %564
  %566 = getelementptr inbounds %struct.complex, ptr %565, i32 0, i32 0
  store float %561, ptr %566, align 4, !tbaa !13
  %567 = load ptr, ptr %33, align 8, !tbaa !5
  %568 = load i32, ptr %45, align 4, !tbaa !9
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds %struct.complex, ptr %567, i64 %569
  %571 = getelementptr inbounds %struct.complex, ptr %570, i32 0, i32 1
  store float 0.000000e+00, ptr %571, align 4, !tbaa !15
  %572 = load ptr, ptr %31, align 8, !tbaa !5
  %573 = load i32, ptr %572, align 4, !tbaa !9
  %574 = load i32, ptr %43, align 4, !tbaa !9
  %575 = mul nsw i32 %573, %574
  %576 = add nsw i32 %575, 2
  store i32 %576, ptr %45, align 4, !tbaa !9
  %577 = load float, ptr %73, align 4, !tbaa !11
  %578 = load ptr, ptr %33, align 8, !tbaa !5
  %579 = load i32, ptr %45, align 4, !tbaa !9
  %580 = sext i32 %579 to i64
  %581 = getelementptr inbounds %struct.complex, ptr %578, i64 %580
  %582 = getelementptr inbounds %struct.complex, ptr %581, i32 0, i32 0
  store float %577, ptr %582, align 4, !tbaa !13
  %583 = load ptr, ptr %33, align 8, !tbaa !5
  %584 = load i32, ptr %45, align 4, !tbaa !9
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds %struct.complex, ptr %583, i64 %585
  %587 = getelementptr inbounds %struct.complex, ptr %586, i32 0, i32 1
  store float 0.000000e+00, ptr %587, align 4, !tbaa !15
  %588 = load float, ptr %79, align 4, !tbaa !11
  %589 = fcmp une float %588, 0.000000e+00
  br i1 %589, label %590, label %622

590:                                              ; preds = %553
  %591 = load float, ptr %73, align 4, !tbaa !11
  %592 = fcmp une float %591, 0.000000e+00
  br i1 %592, label %593, label %607

593:                                              ; preds = %590
  %594 = load ptr, ptr %36, align 8, !tbaa !5
  %595 = load ptr, ptr %31, align 8, !tbaa !5
  %596 = load i32, ptr %595, align 4, !tbaa !9
  %597 = shl i32 %596, 1
  %598 = sub nsw i32 %597, 1
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds i32, ptr %594, i64 %599
  store i32 1, ptr %600, align 4, !tbaa !9
  %601 = load ptr, ptr %36, align 8, !tbaa !5
  %602 = load ptr, ptr %31, align 8, !tbaa !5
  %603 = load i32, ptr %602, align 4, !tbaa !9
  %604 = mul nsw i32 %603, 2
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds i32, ptr %601, i64 %605
  store i32 2, ptr %606, align 4, !tbaa !9
  br label %621

607:                                              ; preds = %590
  %608 = load ptr, ptr %36, align 8, !tbaa !5
  %609 = load ptr, ptr %31, align 8, !tbaa !5
  %610 = load i32, ptr %609, align 4, !tbaa !9
  %611 = shl i32 %610, 1
  %612 = sub nsw i32 %611, 1
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds i32, ptr %608, i64 %613
  store i32 1, ptr %614, align 4, !tbaa !9
  %615 = load ptr, ptr %36, align 8, !tbaa !5
  %616 = load ptr, ptr %31, align 8, !tbaa !5
  %617 = load i32, ptr %616, align 4, !tbaa !9
  %618 = mul nsw i32 %617, 2
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds i32, ptr %615, i64 %619
  store i32 1, ptr %620, align 4, !tbaa !9
  br label %621

621:                                              ; preds = %607, %593
  br label %636

622:                                              ; preds = %553
  %623 = load ptr, ptr %36, align 8, !tbaa !5
  %624 = load ptr, ptr %31, align 8, !tbaa !5
  %625 = load i32, ptr %624, align 4, !tbaa !9
  %626 = shl i32 %625, 1
  %627 = sub nsw i32 %626, 1
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds i32, ptr %623, i64 %628
  store i32 2, ptr %629, align 4, !tbaa !9
  %630 = load ptr, ptr %36, align 8, !tbaa !5
  %631 = load ptr, ptr %31, align 8, !tbaa !5
  %632 = load i32, ptr %631, align 4, !tbaa !9
  %633 = mul nsw i32 %632, 2
  %634 = sext i32 %633 to i64
  %635 = getelementptr inbounds i32, ptr %630, i64 %634
  store i32 2, ptr %635, align 4, !tbaa !9
  br label %636

636:                                              ; preds = %622, %621
  br label %637

637:                                              ; preds = %636, %550, %538
  br label %638

638:                                              ; preds = %637, %535, %532
  %639 = load i32, ptr %75, align 4, !tbaa !9
  %640 = icmp ne i32 %639, 0
  br i1 %640, label %658, label %641

641:                                              ; preds = %638
  %642 = load i32, ptr %81, align 4, !tbaa !9
  %643 = icmp ne i32 %642, 0
  br i1 %643, label %644, label %652

644:                                              ; preds = %641
  %645 = load float, ptr %70, align 4, !tbaa !11
  %646 = load float, ptr %80, align 4, !tbaa !11
  %647 = fcmp ogt float %645, %646
  br i1 %647, label %648, label %652

648:                                              ; preds = %644
  %649 = load float, ptr %70, align 4, !tbaa !11
  %650 = load float, ptr %84, align 4, !tbaa !11
  %651 = fcmp ole float %649, %650
  br i1 %651, label %658, label %652

652:                                              ; preds = %648, %644, %641
  %653 = load i32, ptr %76, align 4, !tbaa !9
  %654 = icmp ne i32 %653, 0
  br i1 %654, label %655, label %756

655:                                              ; preds = %652
  %656 = load i32, ptr %102, align 4, !tbaa !9
  %657 = icmp eq i32 %656, 2
  br i1 %657, label %658, label %756

658:                                              ; preds = %655, %648, %638
  %659 = load ptr, ptr %31, align 8, !tbaa !5
  %660 = load i32, ptr %659, align 4, !tbaa !9
  %661 = add nsw i32 %660, 1
  store i32 %661, ptr %659, align 4, !tbaa !9
  %662 = load float, ptr %70, align 4, !tbaa !11
  %663 = load ptr, ptr %32, align 8, !tbaa !5
  %664 = load ptr, ptr %31, align 8, !tbaa !5
  %665 = load i32, ptr %664, align 4, !tbaa !9
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds float, ptr %663, i64 %666
  store float %662, ptr %667, align 4, !tbaa !11
  %668 = load i32, ptr %69, align 4, !tbaa !9
  %669 = icmp ne i32 %668, 0
  br i1 %669, label %670, label %755

670:                                              ; preds = %658
  %671 = load i32, ptr %100, align 4, !tbaa !9
  %672 = icmp ne i32 %671, 0
  br i1 %672, label %755, label %673

673:                                              ; preds = %670
  %674 = load ptr, ptr %31, align 8, !tbaa !5
  %675 = load i32, ptr %674, align 4, !tbaa !9
  %676 = load i32, ptr %43, align 4, !tbaa !9
  %677 = mul nsw i32 %675, %676
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr %45, align 4, !tbaa !9
  %679 = load float, ptr %73, align 4, !tbaa !11
  %680 = load ptr, ptr %33, align 8, !tbaa !5
  %681 = load i32, ptr %45, align 4, !tbaa !9
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds %struct.complex, ptr %680, i64 %682
  %684 = getelementptr inbounds %struct.complex, ptr %683, i32 0, i32 0
  store float %679, ptr %684, align 4, !tbaa !13
  %685 = load ptr, ptr %33, align 8, !tbaa !5
  %686 = load i32, ptr %45, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds %struct.complex, ptr %685, i64 %687
  %689 = getelementptr inbounds %struct.complex, ptr %688, i32 0, i32 1
  store float 0.000000e+00, ptr %689, align 4, !tbaa !15
  %690 = load ptr, ptr %31, align 8, !tbaa !5
  %691 = load i32, ptr %690, align 4, !tbaa !9
  %692 = load i32, ptr %43, align 4, !tbaa !9
  %693 = mul nsw i32 %691, %692
  %694 = add nsw i32 %693, 2
  store i32 %694, ptr %45, align 4, !tbaa !9
  %695 = load float, ptr %79, align 4, !tbaa !11
  %696 = load ptr, ptr %33, align 8, !tbaa !5
  %697 = load i32, ptr %45, align 4, !tbaa !9
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds %struct.complex, ptr %696, i64 %698
  %700 = getelementptr inbounds %struct.complex, ptr %699, i32 0, i32 0
  store float %695, ptr %700, align 4, !tbaa !13
  %701 = load ptr, ptr %33, align 8, !tbaa !5
  %702 = load i32, ptr %45, align 4, !tbaa !9
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds %struct.complex, ptr %701, i64 %703
  %705 = getelementptr inbounds %struct.complex, ptr %704, i32 0, i32 1
  store float 0.000000e+00, ptr %705, align 4, !tbaa !15
  %706 = load float, ptr %79, align 4, !tbaa !11
  %707 = fcmp une float %706, 0.000000e+00
  br i1 %707, label %708, label %740

708:                                              ; preds = %673
  %709 = load float, ptr %73, align 4, !tbaa !11
  %710 = fcmp une float %709, 0.000000e+00
  br i1 %710, label %711, label %725

711:                                              ; preds = %708
  %712 = load ptr, ptr %36, align 8, !tbaa !5
  %713 = load ptr, ptr %31, align 8, !tbaa !5
  %714 = load i32, ptr %713, align 4, !tbaa !9
  %715 = shl i32 %714, 1
  %716 = sub nsw i32 %715, 1
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds i32, ptr %712, i64 %717
  store i32 1, ptr %718, align 4, !tbaa !9
  %719 = load ptr, ptr %36, align 8, !tbaa !5
  %720 = load ptr, ptr %31, align 8, !tbaa !5
  %721 = load i32, ptr %720, align 4, !tbaa !9
  %722 = mul nsw i32 %721, 2
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds i32, ptr %719, i64 %723
  store i32 2, ptr %724, align 4, !tbaa !9
  br label %739

725:                                              ; preds = %708
  %726 = load ptr, ptr %36, align 8, !tbaa !5
  %727 = load ptr, ptr %31, align 8, !tbaa !5
  %728 = load i32, ptr %727, align 4, !tbaa !9
  %729 = shl i32 %728, 1
  %730 = sub nsw i32 %729, 1
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds i32, ptr %726, i64 %731
  store i32 1, ptr %732, align 4, !tbaa !9
  %733 = load ptr, ptr %36, align 8, !tbaa !5
  %734 = load ptr, ptr %31, align 8, !tbaa !5
  %735 = load i32, ptr %734, align 4, !tbaa !9
  %736 = mul nsw i32 %735, 2
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds i32, ptr %733, i64 %737
  store i32 1, ptr %738, align 4, !tbaa !9
  br label %739

739:                                              ; preds = %725, %711
  br label %754

740:                                              ; preds = %673
  %741 = load ptr, ptr %36, align 8, !tbaa !5
  %742 = load ptr, ptr %31, align 8, !tbaa !5
  %743 = load i32, ptr %742, align 4, !tbaa !9
  %744 = shl i32 %743, 1
  %745 = sub nsw i32 %744, 1
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds i32, ptr %741, i64 %746
  store i32 2, ptr %747, align 4, !tbaa !9
  %748 = load ptr, ptr %36, align 8, !tbaa !5
  %749 = load ptr, ptr %31, align 8, !tbaa !5
  %750 = load i32, ptr %749, align 4, !tbaa !9
  %751 = mul nsw i32 %750, 2
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds i32, ptr %748, i64 %752
  store i32 2, ptr %753, align 4, !tbaa !9
  br label %754

754:                                              ; preds = %740, %739
  br label %755

755:                                              ; preds = %754, %670, %658
  br label %756

756:                                              ; preds = %755, %655, %652
  br label %1243

757:                                              ; preds = %490
  store i32 1, ptr %88, align 4, !tbaa !9
  %758 = load ptr, ptr %24, align 8, !tbaa !5
  %759 = load i32, ptr %758, align 4, !tbaa !9
  %760 = shl i32 %759, 1
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr %86, align 4, !tbaa !9
  %762 = load ptr, ptr %24, align 8, !tbaa !5
  %763 = load i32, ptr %762, align 4, !tbaa !9
  %764 = mul nsw i32 %763, 3
  %765 = add nsw i32 %764, 1
  store i32 %765, ptr %64, align 4, !tbaa !9
  %766 = load ptr, ptr %24, align 8, !tbaa !5
  %767 = load i32, ptr %766, align 4, !tbaa !9
  %768 = shl i32 %767, 2
  %769 = add nsw i32 %768, 1
  store i32 %769, ptr %49, align 4, !tbaa !9
  %770 = load ptr, ptr %24, align 8, !tbaa !5
  %771 = load i32, ptr %770, align 4, !tbaa !9
  %772 = mul nsw i32 %771, 5
  %773 = add nsw i32 %772, 1
  store i32 %773, ptr %57, align 4, !tbaa !9
  %774 = load ptr, ptr %24, align 8, !tbaa !5
  %775 = load i32, ptr %774, align 4, !tbaa !9
  %776 = mul nsw i32 %775, 6
  %777 = add nsw i32 %776, 1
  store i32 %777, ptr %91, align 4, !tbaa !9
  store i32 1, ptr %90, align 4, !tbaa !9
  %778 = load ptr, ptr %24, align 8, !tbaa !5
  %779 = load i32, ptr %778, align 4, !tbaa !9
  %780 = add nsw i32 %779, 1
  store i32 %780, ptr %78, align 4, !tbaa !9
  %781 = load ptr, ptr %24, align 8, !tbaa !5
  %782 = load i32, ptr %781, align 4, !tbaa !9
  %783 = shl i32 %782, 1
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr %66, align 4, !tbaa !9
  %785 = load ptr, ptr %24, align 8, !tbaa !5
  %786 = load i32, ptr %785, align 4, !tbaa !9
  %787 = mul nsw i32 %786, 3
  %788 = add nsw i32 %787, 1
  store i32 %788, ptr %87, align 4, !tbaa !9
  store float 1.000000e+00, ptr %63, align 4, !tbaa !11
  %789 = load ptr, ptr %24, align 8, !tbaa !5
  %790 = load ptr, ptr %25, align 8, !tbaa !5
  %791 = getelementptr inbounds float, ptr %790, i64 1
  %792 = load ptr, ptr %26, align 8, !tbaa !5
  %793 = getelementptr inbounds float, ptr %792, i64 1
  %794 = call float @slanst_(ptr noundef @.str.8, ptr noundef %789, ptr noundef %791, ptr noundef %793)
  store float %794, ptr %56, align 4, !tbaa !11
  %795 = load float, ptr %56, align 4, !tbaa !11
  %796 = fcmp ogt float %795, 0.000000e+00
  br i1 %796, label %797, label %805

797:                                              ; preds = %757
  %798 = load float, ptr %56, align 4, !tbaa !11
  %799 = load float, ptr %53, align 4, !tbaa !11
  %800 = fcmp olt float %798, %799
  br i1 %800, label %801, label %805

801:                                              ; preds = %797
  %802 = load float, ptr %53, align 4, !tbaa !11
  %803 = load float, ptr %56, align 4, !tbaa !11
  %804 = fdiv float %802, %803
  store float %804, ptr %63, align 4, !tbaa !11
  br label %814

805:                                              ; preds = %797, %757
  %806 = load float, ptr %56, align 4, !tbaa !11
  %807 = load float, ptr %54, align 4, !tbaa !11
  %808 = fcmp ogt float %806, %807
  br i1 %808, label %809, label %813

809:                                              ; preds = %805
  %810 = load float, ptr %54, align 4, !tbaa !11
  %811 = load float, ptr %56, align 4, !tbaa !11
  %812 = fdiv float %810, %811
  store float %812, ptr %63, align 4, !tbaa !11
  br label %813

813:                                              ; preds = %809, %805
  br label %814

814:                                              ; preds = %813, %801
  %815 = load float, ptr %63, align 4, !tbaa !11
  %816 = fcmp une float %815, 1.000000e+00
  br i1 %816, label %817, label %839

817:                                              ; preds = %814
  %818 = load ptr, ptr %24, align 8, !tbaa !5
  %819 = load ptr, ptr %25, align 8, !tbaa !5
  %820 = getelementptr inbounds float, ptr %819, i64 1
  call void @sscal_(ptr noundef %818, ptr noundef %63, ptr noundef %820, ptr noundef @c__1)
  %821 = load ptr, ptr %24, align 8, !tbaa !5
  %822 = load i32, ptr %821, align 4, !tbaa !9
  %823 = sub nsw i32 %822, 1
  store i32 %823, ptr %45, align 4, !tbaa !9
  %824 = load ptr, ptr %26, align 8, !tbaa !5
  %825 = getelementptr inbounds float, ptr %824, i64 1
  call void @sscal_(ptr noundef %45, ptr noundef %63, ptr noundef %825, ptr noundef @c__1)
  %826 = load float, ptr %63, align 4, !tbaa !11
  %827 = load float, ptr %56, align 4, !tbaa !11
  %828 = fmul float %827, %826
  store float %828, ptr %56, align 4, !tbaa !11
  %829 = load i32, ptr %81, align 4, !tbaa !9
  %830 = icmp ne i32 %829, 0
  br i1 %830, label %831, label %838

831:                                              ; preds = %817
  %832 = load float, ptr %63, align 4, !tbaa !11
  %833 = load float, ptr %80, align 4, !tbaa !11
  %834 = fmul float %833, %832
  store float %834, ptr %80, align 4, !tbaa !11
  %835 = load float, ptr %63, align 4, !tbaa !11
  %836 = load float, ptr %84, align 4, !tbaa !11
  %837 = fmul float %836, %835
  store float %837, ptr %84, align 4, !tbaa !11
  br label %838

838:                                              ; preds = %831, %817
  br label %839

839:                                              ; preds = %838, %814
  %840 = load ptr, ptr %37, align 8, !tbaa !5
  %841 = load i32, ptr %840, align 4, !tbaa !9
  %842 = icmp ne i32 %841, 0
  br i1 %842, label %843, label %849

843:                                              ; preds = %839
  %844 = load ptr, ptr %24, align 8, !tbaa !5
  %845 = load ptr, ptr %25, align 8, !tbaa !5
  %846 = getelementptr inbounds float, ptr %845, i64 1
  %847 = load ptr, ptr %26, align 8, !tbaa !5
  %848 = getelementptr inbounds float, ptr %847, i64 1
  call void @slarrr_(ptr noundef %844, ptr noundef %846, ptr noundef %848, ptr noundef %65)
  br label %850

849:                                              ; preds = %839
  store i32 -1, ptr %65, align 4, !tbaa !9
  br label %850

850:                                              ; preds = %849, %843
  %851 = load i32, ptr %65, align 4, !tbaa !9
  %852 = icmp eq i32 %851, 0
  br i1 %852, label %853, label %855

853:                                              ; preds = %850
  %854 = load float, ptr %103, align 4, !tbaa !11
  store float %854, ptr %96, align 4, !tbaa !11
  br label %859

855:                                              ; preds = %850
  %856 = load float, ptr %103, align 4, !tbaa !11
  %857 = fneg float %856
  store float %857, ptr %96, align 4, !tbaa !11
  %858 = load ptr, ptr %37, align 8, !tbaa !5
  store i32 0, ptr %858, align 4, !tbaa !9
  br label %859

859:                                              ; preds = %855, %853
  %860 = load ptr, ptr %37, align 8, !tbaa !5
  %861 = load i32, ptr %860, align 4, !tbaa !9
  %862 = icmp ne i32 %861, 0
  br i1 %862, label %863, label %871

863:                                              ; preds = %859
  %864 = load ptr, ptr %24, align 8, !tbaa !5
  %865 = load ptr, ptr %25, align 8, !tbaa !5
  %866 = getelementptr inbounds float, ptr %865, i64 1
  %867 = load ptr, ptr %38, align 8, !tbaa !5
  %868 = load i32, ptr %49, align 4, !tbaa !9
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds float, ptr %867, i64 %869
  call void @scopy_(ptr noundef %864, ptr noundef %866, ptr noundef @c__1, ptr noundef %870, ptr noundef @c__1)
  br label %871

871:                                              ; preds = %863, %859
  %872 = load ptr, ptr %24, align 8, !tbaa !5
  %873 = load i32, ptr %872, align 4, !tbaa !9
  %874 = sub nsw i32 %873, 1
  store i32 %874, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %875

875:                                              ; preds = %895, %871
  %876 = load i32, ptr %62, align 4, !tbaa !9
  %877 = load i32, ptr %45, align 4, !tbaa !9
  %878 = icmp sle i32 %876, %877
  br i1 %878, label %879, label %898

879:                                              ; preds = %875
  %880 = load ptr, ptr %26, align 8, !tbaa !5
  %881 = load i32, ptr %62, align 4, !tbaa !9
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds float, ptr %880, i64 %882
  %884 = load float, ptr %883, align 4, !tbaa !11
  store float %884, ptr %47, align 4, !tbaa !11
  %885 = load float, ptr %47, align 4, !tbaa !11
  %886 = load float, ptr %47, align 4, !tbaa !11
  %887 = fmul float %885, %886
  %888 = load ptr, ptr %38, align 8, !tbaa !5
  %889 = load i32, ptr %57, align 4, !tbaa !9
  %890 = load i32, ptr %62, align 4, !tbaa !9
  %891 = add nsw i32 %889, %890
  %892 = sub nsw i32 %891, 1
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds float, ptr %888, i64 %893
  store float %887, ptr %894, align 4, !tbaa !11
  br label %895

895:                                              ; preds = %879
  %896 = load i32, ptr %62, align 4, !tbaa !9
  %897 = add nsw i32 %896, 1
  store i32 %897, ptr %62, align 4, !tbaa !9
  br label %875, !llvm.loop !16

898:                                              ; preds = %875
  %899 = load i32, ptr %69, align 4, !tbaa !9
  %900 = icmp ne i32 %899, 0
  br i1 %900, label %906, label %901

901:                                              ; preds = %898
  %902 = load float, ptr %103, align 4, !tbaa !11
  %903 = fmul float %902, 4.000000e+00
  store float %903, ptr %59, align 4, !tbaa !11
  %904 = load float, ptr %103, align 4, !tbaa !11
  %905 = fmul float %904, 4.000000e+00
  store float %905, ptr %60, align 4, !tbaa !11
  br label %939

906:                                              ; preds = %898
  %907 = load float, ptr %103, align 4, !tbaa !11
  %908 = fpext float %907 to double
  %909 = call double @sqrt(double noundef %908) #4
  %910 = fmul double %909, 0x3FA99999A0000000
  %911 = fptrunc double %910 to float
  store float %911, ptr %47, align 4, !tbaa !11
  %912 = load float, ptr %103, align 4, !tbaa !11
  %913 = fmul float %912, 4.000000e+00
  store float %913, ptr %48, align 4, !tbaa !11
  %914 = load float, ptr %47, align 4, !tbaa !11
  %915 = load float, ptr %48, align 4, !tbaa !11
  %916 = fcmp oge float %914, %915
  br i1 %916, label %917, label %919

917:                                              ; preds = %906
  %918 = load float, ptr %47, align 4, !tbaa !11
  br label %921

919:                                              ; preds = %906
  %920 = load float, ptr %48, align 4, !tbaa !11
  br label %921

921:                                              ; preds = %919, %917
  %922 = phi float [ %918, %917 ], [ %920, %919 ]
  store float %922, ptr %59, align 4, !tbaa !11
  %923 = load float, ptr %103, align 4, !tbaa !11
  %924 = fpext float %923 to double
  %925 = call double @sqrt(double noundef %924) #4
  %926 = fmul double %925, 0x3F747AE140000000
  %927 = fptrunc double %926 to float
  store float %927, ptr %47, align 4, !tbaa !11
  %928 = load float, ptr %103, align 4, !tbaa !11
  %929 = fmul float %928, 4.000000e+00
  store float %929, ptr %48, align 4, !tbaa !11
  %930 = load float, ptr %47, align 4, !tbaa !11
  %931 = load float, ptr %48, align 4, !tbaa !11
  %932 = fcmp oge float %930, %931
  br i1 %932, label %933, label %935

933:                                              ; preds = %921
  %934 = load float, ptr %47, align 4, !tbaa !11
  br label %937

935:                                              ; preds = %921
  %936 = load float, ptr %48, align 4, !tbaa !11
  br label %937

937:                                              ; preds = %935, %933
  %938 = phi float [ %934, %933 ], [ %936, %935 ]
  store float %938, ptr %60, align 4, !tbaa !11
  br label %939

939:                                              ; preds = %937, %901
  %940 = load ptr, ptr %23, align 8, !tbaa !5
  %941 = load ptr, ptr %24, align 8, !tbaa !5
  %942 = load ptr, ptr %25, align 8, !tbaa !5
  %943 = getelementptr inbounds float, ptr %942, i64 1
  %944 = load ptr, ptr %26, align 8, !tbaa !5
  %945 = getelementptr inbounds float, ptr %944, i64 1
  %946 = load ptr, ptr %38, align 8, !tbaa !5
  %947 = load i32, ptr %57, align 4, !tbaa !9
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds float, ptr %946, i64 %948
  %950 = load ptr, ptr %40, align 8, !tbaa !5
  %951 = load i32, ptr %90, align 4, !tbaa !9
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds i32, ptr %950, i64 %952
  %954 = load ptr, ptr %31, align 8, !tbaa !5
  %955 = load ptr, ptr %32, align 8, !tbaa !5
  %956 = getelementptr inbounds float, ptr %955, i64 1
  %957 = load ptr, ptr %38, align 8, !tbaa !5
  %958 = load i32, ptr %86, align 4, !tbaa !9
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds float, ptr %957, i64 %959
  %961 = load ptr, ptr %38, align 8, !tbaa !5
  %962 = load i32, ptr %64, align 4, !tbaa !9
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds float, ptr %961, i64 %963
  %965 = load ptr, ptr %40, align 8, !tbaa !5
  %966 = load i32, ptr %78, align 4, !tbaa !9
  %967 = sext i32 %966 to i64
  %968 = getelementptr inbounds i32, ptr %965, i64 %967
  %969 = load ptr, ptr %40, align 8, !tbaa !5
  %970 = load i32, ptr %66, align 4, !tbaa !9
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds i32, ptr %969, i64 %971
  %973 = load ptr, ptr %38, align 8, !tbaa !5
  %974 = load i32, ptr %88, align 4, !tbaa !9
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds float, ptr %973, i64 %975
  %977 = load ptr, ptr %38, align 8, !tbaa !5
  %978 = load i32, ptr %91, align 4, !tbaa !9
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds float, ptr %977, i64 %979
  %981 = load ptr, ptr %40, align 8, !tbaa !5
  %982 = load i32, ptr %87, align 4, !tbaa !9
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds i32, ptr %981, i64 %983
  call void @slarre_(ptr noundef %940, ptr noundef %941, ptr noundef %80, ptr noundef %84, ptr noundef %101, ptr noundef %102, ptr noundef %943, ptr noundef %945, ptr noundef %949, ptr noundef %59, ptr noundef %60, ptr noundef %96, ptr noundef %97, ptr noundef %953, ptr noundef %954, ptr noundef %956, ptr noundef %960, ptr noundef %964, ptr noundef %968, ptr noundef %972, ptr noundef %976, ptr noundef %95, ptr noundef %980, ptr noundef %984, ptr noundef %65)
  %985 = load i32, ptr %65, align 4, !tbaa !9
  %986 = icmp ne i32 %985, 0
  br i1 %986, label %987, label %999

987:                                              ; preds = %939
  %988 = load i32, ptr %65, align 4, !tbaa !9
  %989 = icmp sge i32 %988, 0
  br i1 %989, label %990, label %992

990:                                              ; preds = %987
  %991 = load i32, ptr %65, align 4, !tbaa !9
  br label %995

992:                                              ; preds = %987
  %993 = load i32, ptr %65, align 4, !tbaa !9
  %994 = sub nsw i32 0, %993
  br label %995

995:                                              ; preds = %992, %990
  %996 = phi i32 [ %991, %990 ], [ %994, %992 ]
  %997 = add nsw i32 %996, 10
  %998 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 %997, ptr %998, align 4, !tbaa !9
  store i32 1, ptr %105, align 4
  br label %1404

999:                                              ; preds = %939
  %1000 = load i32, ptr %69, align 4, !tbaa !9
  %1001 = icmp ne i32 %1000, 0
  br i1 %1001, label %1002, label %1066

1002:                                             ; preds = %999
  %1003 = load ptr, ptr %24, align 8, !tbaa !5
  %1004 = load ptr, ptr %25, align 8, !tbaa !5
  %1005 = getelementptr inbounds float, ptr %1004, i64 1
  %1006 = load ptr, ptr %26, align 8, !tbaa !5
  %1007 = getelementptr inbounds float, ptr %1006, i64 1
  %1008 = load ptr, ptr %40, align 8, !tbaa !5
  %1009 = load i32, ptr %90, align 4, !tbaa !9
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds i32, ptr %1008, i64 %1010
  %1012 = load ptr, ptr %31, align 8, !tbaa !5
  %1013 = load ptr, ptr %31, align 8, !tbaa !5
  %1014 = load ptr, ptr %32, align 8, !tbaa !5
  %1015 = getelementptr inbounds float, ptr %1014, i64 1
  %1016 = load ptr, ptr %38, align 8, !tbaa !5
  %1017 = load i32, ptr %86, align 4, !tbaa !9
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds float, ptr %1016, i64 %1018
  %1020 = load ptr, ptr %38, align 8, !tbaa !5
  %1021 = load i32, ptr %64, align 4, !tbaa !9
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds float, ptr %1020, i64 %1022
  %1024 = load ptr, ptr %40, align 8, !tbaa !5
  %1025 = load i32, ptr %78, align 4, !tbaa !9
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds i32, ptr %1024, i64 %1026
  %1028 = load ptr, ptr %40, align 8, !tbaa !5
  %1029 = load i32, ptr %66, align 4, !tbaa !9
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds i32, ptr %1028, i64 %1030
  %1032 = load ptr, ptr %38, align 8, !tbaa !5
  %1033 = load i32, ptr %88, align 4, !tbaa !9
  %1034 = sext i32 %1033 to i64
  %1035 = getelementptr inbounds float, ptr %1032, i64 %1034
  %1036 = load ptr, ptr %33, align 8, !tbaa !5
  %1037 = load i32, ptr %44, align 4, !tbaa !9
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds %struct.complex, ptr %1036, i64 %1038
  %1040 = load ptr, ptr %34, align 8, !tbaa !5
  %1041 = load ptr, ptr %36, align 8, !tbaa !5
  %1042 = getelementptr inbounds i32, ptr %1041, i64 1
  %1043 = load ptr, ptr %38, align 8, !tbaa !5
  %1044 = load i32, ptr %91, align 4, !tbaa !9
  %1045 = sext i32 %1044 to i64
  %1046 = getelementptr inbounds float, ptr %1043, i64 %1045
  %1047 = load ptr, ptr %40, align 8, !tbaa !5
  %1048 = load i32, ptr %87, align 4, !tbaa !9
  %1049 = sext i32 %1048 to i64
  %1050 = getelementptr inbounds i32, ptr %1047, i64 %1049
  call void @clarrv_(ptr noundef %1003, ptr noundef %80, ptr noundef %84, ptr noundef %1005, ptr noundef %1007, ptr noundef %95, ptr noundef %1011, ptr noundef %1012, ptr noundef @c__1, ptr noundef %1013, ptr noundef @c_b18, ptr noundef %59, ptr noundef %60, ptr noundef %1015, ptr noundef %1019, ptr noundef %1023, ptr noundef %1027, ptr noundef %1031, ptr noundef %1035, ptr noundef %1039, ptr noundef %1040, ptr noundef %1042, ptr noundef %1046, ptr noundef %1050, ptr noundef %65)
  %1051 = load i32, ptr %65, align 4, !tbaa !9
  %1052 = icmp ne i32 %1051, 0
  br i1 %1052, label %1053, label %1065

1053:                                             ; preds = %1002
  %1054 = load i32, ptr %65, align 4, !tbaa !9
  %1055 = icmp sge i32 %1054, 0
  br i1 %1055, label %1056, label %1058

1056:                                             ; preds = %1053
  %1057 = load i32, ptr %65, align 4, !tbaa !9
  br label %1061

1058:                                             ; preds = %1053
  %1059 = load i32, ptr %65, align 4, !tbaa !9
  %1060 = sub nsw i32 0, %1059
  br label %1061

1061:                                             ; preds = %1058, %1056
  %1062 = phi i32 [ %1057, %1056 ], [ %1060, %1058 ]
  %1063 = add nsw i32 %1062, 20
  %1064 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 %1063, ptr %1064, align 4, !tbaa !9
  store i32 1, ptr %105, align 4
  br label %1404

1065:                                             ; preds = %1002
  br label %1104

1066:                                             ; preds = %999
  %1067 = load ptr, ptr %31, align 8, !tbaa !5
  %1068 = load i32, ptr %1067, align 4, !tbaa !9
  store i32 %1068, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1069

1069:                                             ; preds = %1100, %1066
  %1070 = load i32, ptr %62, align 4, !tbaa !9
  %1071 = load i32, ptr %45, align 4, !tbaa !9
  %1072 = icmp sle i32 %1070, %1071
  br i1 %1072, label %1073, label %1103

1073:                                             ; preds = %1069
  %1074 = load ptr, ptr %40, align 8, !tbaa !5
  %1075 = load i32, ptr %78, align 4, !tbaa !9
  %1076 = load i32, ptr %62, align 4, !tbaa !9
  %1077 = add nsw i32 %1075, %1076
  %1078 = sub nsw i32 %1077, 1
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds i32, ptr %1074, i64 %1079
  %1081 = load i32, ptr %1080, align 4, !tbaa !9
  store i32 %1081, ptr %55, align 4, !tbaa !9
  %1082 = load ptr, ptr %26, align 8, !tbaa !5
  %1083 = load ptr, ptr %40, align 8, !tbaa !5
  %1084 = load i32, ptr %90, align 4, !tbaa !9
  %1085 = load i32, ptr %55, align 4, !tbaa !9
  %1086 = add nsw i32 %1084, %1085
  %1087 = sub nsw i32 %1086, 1
  %1088 = sext i32 %1087 to i64
  %1089 = getelementptr inbounds i32, ptr %1083, i64 %1088
  %1090 = load i32, ptr %1089, align 4, !tbaa !9
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds float, ptr %1082, i64 %1091
  %1093 = load float, ptr %1092, align 4, !tbaa !11
  %1094 = load ptr, ptr %32, align 8, !tbaa !5
  %1095 = load i32, ptr %62, align 4, !tbaa !9
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds float, ptr %1094, i64 %1096
  %1098 = load float, ptr %1097, align 4, !tbaa !11
  %1099 = fadd float %1098, %1093
  store float %1099, ptr %1097, align 4, !tbaa !11
  br label %1100

1100:                                             ; preds = %1073
  %1101 = load i32, ptr %62, align 4, !tbaa !9
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr %62, align 4, !tbaa !9
  br label %1069, !llvm.loop !18

1103:                                             ; preds = %1069
  br label %1104

1104:                                             ; preds = %1103, %1065
  %1105 = load ptr, ptr %37, align 8, !tbaa !5
  %1106 = load i32, ptr %1105, align 4, !tbaa !9
  %1107 = icmp ne i32 %1106, 0
  br i1 %1107, label %1108, label %1233

1108:                                             ; preds = %1104
  store i32 1, ptr %77, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  %1109 = load ptr, ptr %40, align 8, !tbaa !5
  %1110 = load i32, ptr %78, align 4, !tbaa !9
  %1111 = load ptr, ptr %31, align 8, !tbaa !5
  %1112 = load i32, ptr %1111, align 4, !tbaa !9
  %1113 = add nsw i32 %1110, %1112
  %1114 = sub nsw i32 %1113, 1
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds i32, ptr %1109, i64 %1115
  %1117 = load i32, ptr %1116, align 4, !tbaa !9
  store i32 %1117, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  br label %1118

1118:                                             ; preds = %1229, %1108
  %1119 = load i32, ptr %51, align 4, !tbaa !9
  %1120 = load i32, ptr %45, align 4, !tbaa !9
  %1121 = icmp sle i32 %1119, %1120
  br i1 %1121, label %1122, label %1232

1122:                                             ; preds = %1118
  %1123 = load ptr, ptr %40, align 8, !tbaa !5
  %1124 = load i32, ptr %90, align 4, !tbaa !9
  %1125 = load i32, ptr %51, align 4, !tbaa !9
  %1126 = add nsw i32 %1124, %1125
  %1127 = sub nsw i32 %1126, 1
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds i32, ptr %1123, i64 %1128
  %1130 = load i32, ptr %1129, align 4, !tbaa !9
  store i32 %1130, ptr %50, align 4, !tbaa !9
  %1131 = load i32, ptr %50, align 4, !tbaa !9
  %1132 = load i32, ptr %77, align 4, !tbaa !9
  %1133 = sub nsw i32 %1131, %1132
  %1134 = add nsw i32 %1133, 1
  store i32 %1134, ptr %74, align 4, !tbaa !9
  %1135 = load i32, ptr %82, align 4, !tbaa !9
  %1136 = sub nsw i32 %1135, 1
  store i32 %1136, ptr %52, align 4, !tbaa !9
  br label %1137

1137:                                             ; preds = %1152, %1122
  %1138 = load i32, ptr %52, align 4, !tbaa !9
  %1139 = load ptr, ptr %31, align 8, !tbaa !5
  %1140 = load i32, ptr %1139, align 4, !tbaa !9
  %1141 = icmp slt i32 %1138, %1140
  br i1 %1141, label %1142, label %1156

1142:                                             ; preds = %1137
  %1143 = load ptr, ptr %40, align 8, !tbaa !5
  %1144 = load i32, ptr %78, align 4, !tbaa !9
  %1145 = load i32, ptr %52, align 4, !tbaa !9
  %1146 = add nsw i32 %1144, %1145
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds i32, ptr %1143, i64 %1147
  %1149 = load i32, ptr %1148, align 4, !tbaa !9
  %1150 = load i32, ptr %51, align 4, !tbaa !9
  %1151 = icmp eq i32 %1149, %1150
  br i1 %1151, label %1152, label %1155

1152:                                             ; preds = %1142
  %1153 = load i32, ptr %52, align 4, !tbaa !9
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr %52, align 4, !tbaa !9
  br label %1137

1155:                                             ; preds = %1142
  br label %1156

1156:                                             ; preds = %1155, %1137
  %1157 = load i32, ptr %52, align 4, !tbaa !9
  %1158 = load i32, ptr %82, align 4, !tbaa !9
  %1159 = icmp slt i32 %1157, %1158
  br i1 %1159, label %1160, label %1163

1160:                                             ; preds = %1156
  %1161 = load i32, ptr %50, align 4, !tbaa !9
  %1162 = add nsw i32 %1161, 1
  store i32 %1162, ptr %77, align 4, !tbaa !9
  br label %1228

1163:                                             ; preds = %1156
  %1164 = load ptr, ptr %40, align 8, !tbaa !5
  %1165 = load i32, ptr %66, align 4, !tbaa !9
  %1166 = load i32, ptr %82, align 4, !tbaa !9
  %1167 = add nsw i32 %1165, %1166
  %1168 = sub nsw i32 %1167, 1
  %1169 = sext i32 %1168 to i64
  %1170 = getelementptr inbounds i32, ptr %1164, i64 %1169
  %1171 = load i32, ptr %1170, align 4, !tbaa !9
  %1172 = sub nsw i32 %1171, 1
  store i32 %1172, ptr %89, align 4, !tbaa !9
  %1173 = load ptr, ptr %40, align 8, !tbaa !5
  %1174 = load i32, ptr %66, align 4, !tbaa !9
  %1175 = load i32, ptr %82, align 4, !tbaa !9
  %1176 = add nsw i32 %1174, %1175
  %1177 = sub nsw i32 %1176, 1
  %1178 = sext i32 %1177 to i64
  %1179 = getelementptr inbounds i32, ptr %1173, i64 %1178
  %1180 = load i32, ptr %1179, align 4, !tbaa !9
  store i32 %1180, ptr %92, align 4, !tbaa !9
  %1181 = load ptr, ptr %40, align 8, !tbaa !5
  %1182 = load i32, ptr %66, align 4, !tbaa !9
  %1183 = load i32, ptr %52, align 4, !tbaa !9
  %1184 = add nsw i32 %1182, %1183
  %1185 = sub nsw i32 %1184, 1
  %1186 = sext i32 %1185 to i64
  %1187 = getelementptr inbounds i32, ptr %1181, i64 %1186
  %1188 = load i32, ptr %1187, align 4, !tbaa !9
  store i32 %1188, ptr %67, align 4, !tbaa !9
  %1189 = load float, ptr %103, align 4, !tbaa !11
  %1190 = fmul float %1189, 4.000000e+00
  store float %1190, ptr %60, align 4, !tbaa !11
  %1191 = load ptr, ptr %38, align 8, !tbaa !5
  %1192 = load i32, ptr %49, align 4, !tbaa !9
  %1193 = load i32, ptr %77, align 4, !tbaa !9
  %1194 = add nsw i32 %1192, %1193
  %1195 = sub nsw i32 %1194, 1
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds float, ptr %1191, i64 %1196
  %1198 = load ptr, ptr %38, align 8, !tbaa !5
  %1199 = load i32, ptr %57, align 4, !tbaa !9
  %1200 = load i32, ptr %77, align 4, !tbaa !9
  %1201 = add nsw i32 %1199, %1200
  %1202 = sub nsw i32 %1201, 1
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds float, ptr %1198, i64 %1203
  %1205 = load ptr, ptr %32, align 8, !tbaa !5
  %1206 = load i32, ptr %82, align 4, !tbaa !9
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds float, ptr %1205, i64 %1207
  %1209 = load ptr, ptr %38, align 8, !tbaa !5
  %1210 = load i32, ptr %86, align 4, !tbaa !9
  %1211 = load i32, ptr %82, align 4, !tbaa !9
  %1212 = add nsw i32 %1210, %1211
  %1213 = sub nsw i32 %1212, 1
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds float, ptr %1209, i64 %1214
  %1216 = load ptr, ptr %38, align 8, !tbaa !5
  %1217 = load i32, ptr %91, align 4, !tbaa !9
  %1218 = sext i32 %1217 to i64
  %1219 = getelementptr inbounds float, ptr %1216, i64 %1218
  %1220 = load ptr, ptr %40, align 8, !tbaa !5
  %1221 = load i32, ptr %87, align 4, !tbaa !9
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds i32, ptr %1220, i64 %1222
  call void @slarrj_(ptr noundef %74, ptr noundef %1197, ptr noundef %1204, ptr noundef %92, ptr noundef %67, ptr noundef %60, ptr noundef %89, ptr noundef %1208, ptr noundef %1215, ptr noundef %1219, ptr noundef %1223, ptr noundef %95, ptr noundef %56, ptr noundef %65)
  %1224 = load i32, ptr %50, align 4, !tbaa !9
  %1225 = add nsw i32 %1224, 1
  store i32 %1225, ptr %77, align 4, !tbaa !9
  %1226 = load i32, ptr %52, align 4, !tbaa !9
  %1227 = add nsw i32 %1226, 1
  store i32 %1227, ptr %82, align 4, !tbaa !9
  br label %1228

1228:                                             ; preds = %1163, %1160
  br label %1229

1229:                                             ; preds = %1228
  %1230 = load i32, ptr %51, align 4, !tbaa !9
  %1231 = add nsw i32 %1230, 1
  store i32 %1231, ptr %51, align 4, !tbaa !9
  br label %1118, !llvm.loop !19

1232:                                             ; preds = %1118
  br label %1233

1233:                                             ; preds = %1232, %1104
  %1234 = load float, ptr %63, align 4, !tbaa !11
  %1235 = fcmp une float %1234, 1.000000e+00
  br i1 %1235, label %1236, label %1242

1236:                                             ; preds = %1233
  %1237 = load float, ptr %63, align 4, !tbaa !11
  %1238 = fdiv float 1.000000e+00, %1237
  store float %1238, ptr %47, align 4, !tbaa !11
  %1239 = load ptr, ptr %31, align 8, !tbaa !5
  %1240 = load ptr, ptr %32, align 8, !tbaa !5
  %1241 = getelementptr inbounds float, ptr %1240, i64 1
  call void @sscal_(ptr noundef %1239, ptr noundef %47, ptr noundef %1241, ptr noundef @c__1)
  br label %1242

1242:                                             ; preds = %1236, %1233
  br label %1243

1243:                                             ; preds = %1242, %756
  %1244 = load i32, ptr %97, align 4, !tbaa !9
  %1245 = icmp sgt i32 %1244, 1
  br i1 %1245, label %1250, label %1246

1246:                                             ; preds = %1243
  %1247 = load ptr, ptr %24, align 8, !tbaa !5
  %1248 = load i32, ptr %1247, align 4, !tbaa !9
  %1249 = icmp eq i32 %1248, 2
  br i1 %1249, label %1250, label %1396

1250:                                             ; preds = %1246, %1243
  %1251 = load i32, ptr %69, align 4, !tbaa !9
  %1252 = icmp ne i32 %1251, 0
  br i1 %1252, label %1262, label %1253

1253:                                             ; preds = %1250
  %1254 = load ptr, ptr %31, align 8, !tbaa !5
  %1255 = load ptr, ptr %32, align 8, !tbaa !5
  %1256 = getelementptr inbounds float, ptr %1255, i64 1
  call void @slasrt_(ptr noundef @.str.2, ptr noundef %1254, ptr noundef %1256, ptr noundef %65)
  %1257 = load i32, ptr %65, align 4, !tbaa !9
  %1258 = icmp ne i32 %1257, 0
  br i1 %1258, label %1259, label %1261

1259:                                             ; preds = %1253
  %1260 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 3, ptr %1260, align 4, !tbaa !9
  store i32 1, ptr %105, align 4
  br label %1404

1261:                                             ; preds = %1253
  br label %1395

1262:                                             ; preds = %1250
  %1263 = load ptr, ptr %31, align 8, !tbaa !5
  %1264 = load i32, ptr %1263, align 4, !tbaa !9
  %1265 = sub nsw i32 %1264, 1
  store i32 %1265, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1266

1266:                                             ; preds = %1391, %1262
  %1267 = load i32, ptr %62, align 4, !tbaa !9
  %1268 = load i32, ptr %45, align 4, !tbaa !9
  %1269 = icmp sle i32 %1267, %1268
  br i1 %1269, label %1270, label %1394

1270:                                             ; preds = %1266
  store i32 0, ptr %61, align 4, !tbaa !9
  %1271 = load ptr, ptr %32, align 8, !tbaa !5
  %1272 = load i32, ptr %62, align 4, !tbaa !9
  %1273 = sext i32 %1272 to i64
  %1274 = getelementptr inbounds float, ptr %1271, i64 %1273
  %1275 = load float, ptr %1274, align 4, !tbaa !11
  store float %1275, ptr %104, align 4, !tbaa !11
  %1276 = load ptr, ptr %31, align 8, !tbaa !5
  %1277 = load i32, ptr %1276, align 4, !tbaa !9
  store i32 %1277, ptr %46, align 4, !tbaa !9
  %1278 = load i32, ptr %62, align 4, !tbaa !9
  %1279 = add nsw i32 %1278, 1
  store i32 %1279, ptr %72, align 4, !tbaa !9
  br label %1280

1280:                                             ; preds = %1300, %1270
  %1281 = load i32, ptr %72, align 4, !tbaa !9
  %1282 = load i32, ptr %46, align 4, !tbaa !9
  %1283 = icmp sle i32 %1281, %1282
  br i1 %1283, label %1284, label %1303

1284:                                             ; preds = %1280
  %1285 = load ptr, ptr %32, align 8, !tbaa !5
  %1286 = load i32, ptr %72, align 4, !tbaa !9
  %1287 = sext i32 %1286 to i64
  %1288 = getelementptr inbounds float, ptr %1285, i64 %1287
  %1289 = load float, ptr %1288, align 4, !tbaa !11
  %1290 = load float, ptr %104, align 4, !tbaa !11
  %1291 = fcmp olt float %1289, %1290
  br i1 %1291, label %1292, label %1299

1292:                                             ; preds = %1284
  %1293 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1293, ptr %61, align 4, !tbaa !9
  %1294 = load ptr, ptr %32, align 8, !tbaa !5
  %1295 = load i32, ptr %72, align 4, !tbaa !9
  %1296 = sext i32 %1295 to i64
  %1297 = getelementptr inbounds float, ptr %1294, i64 %1296
  %1298 = load float, ptr %1297, align 4, !tbaa !11
  store float %1298, ptr %104, align 4, !tbaa !11
  br label %1299

1299:                                             ; preds = %1292, %1284
  br label %1300

1300:                                             ; preds = %1299
  %1301 = load i32, ptr %72, align 4, !tbaa !9
  %1302 = add nsw i32 %1301, 1
  store i32 %1302, ptr %72, align 4, !tbaa !9
  br label %1280, !llvm.loop !20

1303:                                             ; preds = %1280
  %1304 = load i32, ptr %61, align 4, !tbaa !9
  %1305 = icmp ne i32 %1304, 0
  br i1 %1305, label %1306, label %1390

1306:                                             ; preds = %1303
  %1307 = load ptr, ptr %32, align 8, !tbaa !5
  %1308 = load i32, ptr %62, align 4, !tbaa !9
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds float, ptr %1307, i64 %1309
  %1311 = load float, ptr %1310, align 4, !tbaa !11
  %1312 = load ptr, ptr %32, align 8, !tbaa !5
  %1313 = load i32, ptr %61, align 4, !tbaa !9
  %1314 = sext i32 %1313 to i64
  %1315 = getelementptr inbounds float, ptr %1312, i64 %1314
  store float %1311, ptr %1315, align 4, !tbaa !11
  %1316 = load float, ptr %104, align 4, !tbaa !11
  %1317 = load ptr, ptr %32, align 8, !tbaa !5
  %1318 = load i32, ptr %62, align 4, !tbaa !9
  %1319 = sext i32 %1318 to i64
  %1320 = getelementptr inbounds float, ptr %1317, i64 %1319
  store float %1316, ptr %1320, align 4, !tbaa !11
  %1321 = load i32, ptr %69, align 4, !tbaa !9
  %1322 = icmp ne i32 %1321, 0
  br i1 %1322, label %1323, label %1389

1323:                                             ; preds = %1306
  %1324 = load ptr, ptr %24, align 8, !tbaa !5
  %1325 = load ptr, ptr %33, align 8, !tbaa !5
  %1326 = load i32, ptr %61, align 4, !tbaa !9
  %1327 = load i32, ptr %43, align 4, !tbaa !9
  %1328 = mul nsw i32 %1326, %1327
  %1329 = add nsw i32 %1328, 1
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds %struct.complex, ptr %1325, i64 %1330
  %1332 = load ptr, ptr %33, align 8, !tbaa !5
  %1333 = load i32, ptr %62, align 4, !tbaa !9
  %1334 = load i32, ptr %43, align 4, !tbaa !9
  %1335 = mul nsw i32 %1333, %1334
  %1336 = add nsw i32 %1335, 1
  %1337 = sext i32 %1336 to i64
  %1338 = getelementptr inbounds %struct.complex, ptr %1332, i64 %1337
  call void @cswap_(ptr noundef %1324, ptr noundef %1331, ptr noundef @c__1, ptr noundef %1338, ptr noundef @c__1)
  %1339 = load ptr, ptr %36, align 8, !tbaa !5
  %1340 = load i32, ptr %61, align 4, !tbaa !9
  %1341 = shl i32 %1340, 1
  %1342 = sub nsw i32 %1341, 1
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds i32, ptr %1339, i64 %1343
  %1345 = load i32, ptr %1344, align 4, !tbaa !9
  store i32 %1345, ptr %55, align 4, !tbaa !9
  %1346 = load ptr, ptr %36, align 8, !tbaa !5
  %1347 = load i32, ptr %62, align 4, !tbaa !9
  %1348 = shl i32 %1347, 1
  %1349 = sub nsw i32 %1348, 1
  %1350 = sext i32 %1349 to i64
  %1351 = getelementptr inbounds i32, ptr %1346, i64 %1350
  %1352 = load i32, ptr %1351, align 4, !tbaa !9
  %1353 = load ptr, ptr %36, align 8, !tbaa !5
  %1354 = load i32, ptr %61, align 4, !tbaa !9
  %1355 = shl i32 %1354, 1
  %1356 = sub nsw i32 %1355, 1
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds i32, ptr %1353, i64 %1357
  store i32 %1352, ptr %1358, align 4, !tbaa !9
  %1359 = load i32, ptr %55, align 4, !tbaa !9
  %1360 = load ptr, ptr %36, align 8, !tbaa !5
  %1361 = load i32, ptr %62, align 4, !tbaa !9
  %1362 = shl i32 %1361, 1
  %1363 = sub nsw i32 %1362, 1
  %1364 = sext i32 %1363 to i64
  %1365 = getelementptr inbounds i32, ptr %1360, i64 %1364
  store i32 %1359, ptr %1365, align 4, !tbaa !9
  %1366 = load ptr, ptr %36, align 8, !tbaa !5
  %1367 = load i32, ptr %61, align 4, !tbaa !9
  %1368 = mul nsw i32 %1367, 2
  %1369 = sext i32 %1368 to i64
  %1370 = getelementptr inbounds i32, ptr %1366, i64 %1369
  %1371 = load i32, ptr %1370, align 4, !tbaa !9
  store i32 %1371, ptr %55, align 4, !tbaa !9
  %1372 = load ptr, ptr %36, align 8, !tbaa !5
  %1373 = load i32, ptr %62, align 4, !tbaa !9
  %1374 = mul nsw i32 %1373, 2
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds i32, ptr %1372, i64 %1375
  %1377 = load i32, ptr %1376, align 4, !tbaa !9
  %1378 = load ptr, ptr %36, align 8, !tbaa !5
  %1379 = load i32, ptr %61, align 4, !tbaa !9
  %1380 = mul nsw i32 %1379, 2
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds i32, ptr %1378, i64 %1381
  store i32 %1377, ptr %1382, align 4, !tbaa !9
  %1383 = load i32, ptr %55, align 4, !tbaa !9
  %1384 = load ptr, ptr %36, align 8, !tbaa !5
  %1385 = load i32, ptr %62, align 4, !tbaa !9
  %1386 = mul nsw i32 %1385, 2
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr inbounds i32, ptr %1384, i64 %1387
  store i32 %1383, ptr %1388, align 4, !tbaa !9
  br label %1389

1389:                                             ; preds = %1323, %1306
  br label %1390

1390:                                             ; preds = %1389, %1303
  br label %1391

1391:                                             ; preds = %1390
  %1392 = load i32, ptr %62, align 4, !tbaa !9
  %1393 = add nsw i32 %1392, 1
  store i32 %1393, ptr %62, align 4, !tbaa !9
  br label %1266, !llvm.loop !21

1394:                                             ; preds = %1266
  br label %1395

1395:                                             ; preds = %1394, %1261
  br label %1396

1396:                                             ; preds = %1395, %1246
  %1397 = load i32, ptr %68, align 4, !tbaa !9
  %1398 = sitofp i32 %1397 to float
  %1399 = load ptr, ptr %38, align 8, !tbaa !5
  %1400 = getelementptr inbounds float, ptr %1399, i64 1
  store float %1398, ptr %1400, align 4, !tbaa !11
  %1401 = load i32, ptr %93, align 4, !tbaa !9
  %1402 = load ptr, ptr %40, align 8, !tbaa !5
  %1403 = getelementptr inbounds i32, ptr %1402, i64 1
  store i32 %1401, ptr %1403, align 4, !tbaa !9
  store i32 1, ptr %105, align 4
  br label %1404

1404:                                             ; preds = %1396, %1259, %1061, %995, %489, %428, %421, %410
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  ret void
}

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

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

declare float @slamch_(ptr noundef) #2

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

declare void @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, i32 noundef) #2

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

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

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

declare void @sscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare void @scopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare void @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 = !{!"int", !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 i32, align 4
@c_b18 = external hidden global float, align 4

; Function Attrs: nounwind uwtable
define dso_local void @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 i32, align 4
  %25 = alloca float, align 4
  %26 = alloca i32, align 4
  %27 = alloca float, align 4
  %28 = alloca i32, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca i32, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, 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 4, 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 4, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #5
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr nonnull %49) #5
  %50 = getelementptr inbounds i8, ptr %4, i64 -4
  %51 = getelementptr inbounds i8, ptr %10, i64 -4
  %52 = load i32, ptr %12, align 4, !tbaa !5
  %53 = add nsw i32 %52, 1
  %narrow = xor i32 %52, -1
  %54 = sext i32 %narrow to i64
  %55 = getelementptr inbounds %struct.complex, ptr %11, i64 %54
  %56 = getelementptr inbounds i8, ptr %14, i64 -4
  %57 = getelementptr inbounds i8, ptr %16, i64 -4
  %58 = getelementptr inbounds i8, ptr %18, i64 -4
  %59 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %60 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %61 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  %62 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #5
  %63 = load i32, ptr %17, align 4, !tbaa !5
  %64 = icmp eq i32 %63, -1
  br i1 %64, label %68, label %65

65:                                               ; preds = %21
  %66 = load i32, ptr %19, align 4, !tbaa !5
  %67 = icmp eq i32 %66, -1
  br label %68

68:                                               ; preds = %65, %21
  %69 = phi i1 [ true, %21 ], [ %67, %65 ]
  %70 = load i32, ptr %13, align 4, !tbaa !5
  %71 = icmp eq i32 %70, -1
  %72 = icmp ne i32 %59, 0
  %73 = load i32, ptr %2, align 4, !tbaa !5
  %74 = mul nsw i32 %73, 10
  %75 = shl i32 %73, 3
  %.0446.v = select i1 %72, i32 18, i32 12
  %.0446 = mul nsw i32 %73, %.0446.v
  %.0435 = select i1 %72, i32 %74, i32 %75
  store float 0.000000e+00, ptr %39, align 4, !tbaa !9
  store float 0.000000e+00, ptr %41, align 4, !tbaa !9
  store i32 0, ptr %48, align 4, !tbaa !5
  store i32 0, ptr %49, align 4, !tbaa !5
  store i32 0, ptr %47, align 4, !tbaa !5
  %76 = icmp ne i32 %61, 0
  br i1 %76, label %77, label %80

77:                                               ; preds = %68
  %78 = load float, ptr %5, align 4, !tbaa !9
  store float %78, ptr %39, align 4, !tbaa !9
  %79 = load float, ptr %6, align 4, !tbaa !9
  store float %79, ptr %41, align 4, !tbaa !9
  br label %84

80:                                               ; preds = %68
  %.not = icmp eq i32 %62, 0
  br i1 %.not, label %84, label %81

81:                                               ; preds = %80
  %82 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %82, ptr %48, align 4, !tbaa !5
  %83 = load i32, ptr %8, align 4, !tbaa !5
  store i32 %83, ptr %49, align 4, !tbaa !5
  br label %84

84:                                               ; preds = %80, %81, %77
  %85 = phi i32 [ 0, %80 ], [ %83, %81 ], [ 0, %77 ]
  %86 = phi i32 [ 0, %80 ], [ %82, %81 ], [ 0, %77 ]
  %87 = phi float [ 0.000000e+00, %80 ], [ 0.000000e+00, %81 ], [ %78, %77 ]
  %88 = phi float [ 0.000000e+00, %80 ], [ 0.000000e+00, %81 ], [ %79, %77 ]
  store i32 0, ptr %20, align 4, !tbaa !5
  br i1 %72, label %91, label %89

89:                                               ; preds = %84
  %90 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #5
  %.not466 = icmp eq i32 %90, 0
  br i1 %.not466, label %.sink.split, label %91

91:                                               ; preds = %89, %84
  %92 = or i32 %61, %60
  %or.cond = icmp ne i32 %92, 0
  %93 = icmp ne i32 %62, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %93
  br i1 %or.cond3, label %94, label %.sink.split

94:                                               ; preds = %91
  %95 = load i32, ptr %2, align 4, !tbaa !5
  %96 = icmp slt i32 %95, 0
  br i1 %96, label %.sink.split, label %97

97:                                               ; preds = %94
  %.not467 = icmp ne i32 %95, 0
  %or.cond484.not = and i1 %76, %.not467
  %98 = fcmp ole float %88, %87
  %or.cond591.not = select i1 %or.cond484.not, i1 %98, i1 false
  br i1 %or.cond591.not, label %.sink.split, label %99

99:                                               ; preds = %97
  br i1 %93, label %100, label %.critedge

100:                                              ; preds = %99
  %101 = icmp slt i32 %86, 1
  %102 = icmp ugt i32 %86, %95
  %or.cond503 = or i1 %101, %102
  br i1 %or.cond503, label %.sink.split, label %103

103:                                              ; preds = %100
  %104 = icmp slt i32 %85, %86
  %105 = icmp ugt i32 %85, %95
  %or.cond504 = or i1 %104, %105
  br i1 %or.cond504, label %.sink.split, label %.critedge

.critedge:                                        ; preds = %103, %99
  %106 = load i32, ptr %12, align 4, !tbaa !5
  %107 = icmp slt i32 %106, 1
  %108 = icmp ult i32 %106, %95
  %or.cond505 = and i1 %72, %108
  %or.cond506 = or i1 %107, %or.cond505
  br i1 %or.cond506, label %.sink.split, label %109

109:                                              ; preds = %.critedge
  %110 = load i32, ptr %17, align 4, !tbaa !5
  %111 = icmp sge i32 %110, %.0446
  %or.cond5 = select i1 %111, i1 true, i1 %69
  br i1 %or.cond5, label %112, label %.sink.split

112:                                              ; preds = %109
  %113 = load i32, ptr %19, align 4, !tbaa !5
  %114 = icmp sge i32 %113, %.0435
  %or.cond7 = select i1 %114, i1 true, i1 %69
  br i1 %or.cond7, label %115, label %.sink.split

.sink.split:                                      ; preds = %112, %109, %.critedge, %103, %100, %97, %94, %91, %89
  %.sink = phi i32 [ -1, %89 ], [ -2, %91 ], [ -3, %94 ], [ -7, %97 ], [ -8, %100 ], [ -9, %103 ], [ -13, %.critedge ], [ -17, %109 ], [ -19, %112 ]
  store i32 %.sink, ptr %20, align 4, !tbaa !5
  br label %115

115:                                              ; preds = %.sink.split, %112
  %116 = tail call float @slamch_(ptr noundef nonnull @.str.4) #5
  store float %116, ptr %40, align 4, !tbaa !9
  %117 = tail call float @slamch_(ptr noundef nonnull @.str.5) #5
  %118 = fdiv float %116, %117
  %119 = fdiv float 1.000000e+00, %118
  %sqrtf = tail call float @sqrtf(float noundef %118) #3
  %sqrtf468 = tail call float @sqrtf(float noundef %119) #3
  store float %sqrtf468, ptr %25, align 4, !tbaa !9
  %120 = fpext float %116 to double
  %121 = tail call double @sqrt(double noundef %120) #5
  %122 = tail call double @sqrt(double noundef %121) #5
  %123 = fdiv double 1.000000e+00, %122
  %124 = fptrunc double %123 to float
  %125 = fcmp ole float %sqrtf468, %124
  %126 = select i1 %125, float %sqrtf468, float %124
  %127 = load i32, ptr %20, align 4, !tbaa !5
  %128 = icmp eq i32 %127, 0
  br i1 %128, label %129, label %.thread493

129:                                              ; preds = %115
  %130 = sitofp i32 %.0446 to float
  store float %130, ptr %16, align 4, !tbaa !9
  store i32 %.0435, ptr %18, align 4, !tbaa !5
  %131 = icmp ne i32 %60, 0
  %or.cond9 = select i1 %72, i1 %131, i1 false
  br i1 %or.cond9, label %132, label %134

132:                                              ; preds = %129
  %133 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %133, ptr %44, align 4, !tbaa !5
  br label %142

134:                                              ; preds = %129
  %or.cond11 = and i1 %72, %76
  br i1 %or.cond11, label %135, label %136

135:                                              ; preds = %134
  call void @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 %40, ptr noundef nonnull %44, ptr noundef nonnull %26, ptr noundef nonnull %28, ptr noundef nonnull %20) #5
  br label %142

136:                                              ; preds = %134
  %137 = icmp ne i32 %62, 0
  %or.cond13 = select i1 %72, i1 %137, i1 false
  br i1 %or.cond13, label %138, label %141

138:                                              ; preds = %136
  %139 = add i32 %85, 1
  %140 = sub i32 %139, %86
  store i32 %140, ptr %44, align 4, !tbaa !5
  br label %142

141:                                              ; preds = %136
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %142

142:                                              ; preds = %135, %141, %138, %132
  br i1 %71, label %143, label %150

143:                                              ; preds = %142
  %144 = load i32, ptr %20, align 4, !tbaa !5
  %145 = icmp eq i32 %144, 0
  br i1 %145, label %.thread580, label %.thread493

.thread580:                                       ; preds = %143
  %146 = load i32, ptr %44, align 4, !tbaa !5
  %147 = sitofp i32 %146 to float
  store float %147, ptr %11, align 4, !tbaa !11
  %148 = sext i32 %53 to i64
  %149 = getelementptr inbounds %struct.complex, ptr %55, i64 %148, i32 1
  store float 0.000000e+00, ptr %149, align 4, !tbaa !13
  br label %572

150:                                              ; preds = %142
  %151 = load i32, ptr %13, align 4, !tbaa !5
  %152 = load i32, ptr %44, align 4, !tbaa !5
  %.not577 = icmp slt i32 %151, %152
  br i1 %.not577, label %153, label %154

153:                                              ; preds = %150
  store i32 -14, ptr %20, align 4, !tbaa !5
  br label %.thread493

154:                                              ; preds = %150
  %.pr.pre = load i32, ptr %20, align 4, !tbaa !5
  %.not469 = icmp eq i32 %.pr.pre, 0
  br i1 %.not469, label %158, label %.thread493

.thread493:                                       ; preds = %143, %115, %153, %154
  %155 = phi i32 [ %.pr.pre, %154 ], [ %127, %115 ], [ -14, %153 ], [ %144, %143 ]
  %156 = sub nsw i32 0, %155
  store i32 %156, ptr %24, align 4, !tbaa !5
  %157 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %24, i32 noundef 6) #5
  br label %572

158:                                              ; preds = %154
  %or.cond17 = select i1 %69, i1 true, i1 %71
  br i1 %or.cond17, label %572, label %159

159:                                              ; preds = %158
  store i32 0, ptr %9, align 4, !tbaa !5
  %160 = load i32, ptr %2, align 4, !tbaa !5
  switch i32 %160, label %288 [
    i32 0, label %572
    i32 1, label %161
    i32 2, label %178
  ]

161:                                              ; preds = %159
  %162 = icmp ne i32 %62, 0
  %or.cond19 = select i1 %131, i1 true, i1 %162
  br i1 %or.cond19, label %163, label %165

163:                                              ; preds = %161
  store i32 1, ptr %9, align 4, !tbaa !5
  %164 = load float, ptr %3, align 4, !tbaa !9
  br label %.sink.split592

165:                                              ; preds = %161
  %166 = load float, ptr %39, align 4, !tbaa !9
  %167 = load float, ptr %3, align 4, !tbaa !9
  %168 = fcmp uge float %166, %167
  %169 = load float, ptr %41, align 4
  %170 = fcmp ult float %169, %167
  %or.cond486 = select i1 %168, i1 true, i1 %170
  br i1 %or.cond486, label %172, label %171

171:                                              ; preds = %165
  store i32 1, ptr %9, align 4, !tbaa !5
  br label %.sink.split592

.sink.split592:                                   ; preds = %163, %171
  %.sink593 = phi float [ %167, %171 ], [ %164, %163 ]
  store float %.sink593, ptr %10, align 4, !tbaa !9
  br label %172

172:                                              ; preds = %.sink.split592, %165
  %173 = icmp eq i32 %59, 0
  br i1 %173, label %572, label %174

174:                                              ; preds = %172
  store float 1.000000e+00, ptr %11, align 4, !tbaa !11
  %175 = sext i32 %53 to i64
  %176 = getelementptr inbounds %struct.complex, ptr %55, i64 %175, i32 1
  store float 0.000000e+00, ptr %176, align 4, !tbaa !13
  store i32 1, ptr %14, align 4, !tbaa !5
  %177 = getelementptr inbounds i8, ptr %14, i64 4
  store i32 1, ptr %177, align 4, !tbaa !5
  br label %572

178:                                              ; preds = %159
  %179 = getelementptr inbounds i8, ptr %3, i64 4
  br i1 %72, label %181, label %180

180:                                              ; preds = %178
  call void @slae2_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull %179, ptr noundef nonnull %34, ptr noundef nonnull %35) #5
  br label %182

181:                                              ; preds = %178
  call void @slaev2_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull %179, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %38) #5
  br label %182

182:                                              ; preds = %181, %180
  %.not478 = icmp eq i32 %60, 0
  br i1 %.not478, label %183, label %194

183:                                              ; preds = %182
  br i1 %76, label %184, label %190

184:                                              ; preds = %183
  %185 = load float, ptr %35, align 4, !tbaa !9
  %186 = load float, ptr %39, align 4, !tbaa !9
  %187 = fcmp ule float %185, %186
  %188 = load float, ptr %41, align 4
  %189 = fcmp ugt float %185, %188
  %or.cond488 = select i1 %187, i1 true, i1 %189
  br i1 %or.cond488, label %190, label %194

190:                                              ; preds = %184, %183
  %191 = icmp ne i32 %62, 0
  %192 = load i32, ptr %48, align 4
  %193 = icmp eq i32 %192, 1
  %or.cond25 = select i1 %191, i1 %193, i1 false
  br i1 %or.cond25, label %194, label %.thread495

194:                                              ; preds = %184, %190, %182
  %195 = load i32, ptr %9, align 4, !tbaa !5
  %196 = add nsw i32 %195, 1
  store i32 %196, ptr %9, align 4, !tbaa !5
  %197 = load float, ptr %35, align 4, !tbaa !9
  %198 = sext i32 %196 to i64
  %199 = getelementptr inbounds float, ptr %51, i64 %198
  store float %197, ptr %199, align 4, !tbaa !9
  %200 = icmp eq i32 %59, 0
  br i1 %200, label %236, label %201

201:                                              ; preds = %194
  %202 = mul nsw i32 %196, %52
  %203 = add nsw i32 %202, 1
  %204 = load float, ptr %38, align 4, !tbaa !9
  %205 = fneg float %204
  store float %205, ptr %25, align 4, !tbaa !9
  %206 = sext i32 %203 to i64
  %207 = getelementptr inbounds %struct.complex, ptr %55, i64 %206
  store float %205, ptr %207, align 4, !tbaa !11
  %208 = getelementptr inbounds %struct.complex, ptr %55, i64 %206, i32 1
  store float 0.000000e+00, ptr %208, align 4, !tbaa !13
  %209 = add nsw i32 %202, 2
  store i32 %209, ptr %24, align 4, !tbaa !5
  %210 = load float, ptr %36, align 4, !tbaa !9
  %211 = sext i32 %209 to i64
  %212 = getelementptr inbounds %struct.complex, ptr %55, i64 %211
  store float %210, ptr %212, align 4, !tbaa !11
  %213 = getelementptr inbounds %struct.complex, ptr %55, i64 %211, i32 1
  store float 0.000000e+00, ptr %213, align 4, !tbaa !13
  %214 = fcmp une float %204, 0.000000e+00
  br i1 %214, label %215, label %227

215:                                              ; preds = %201
  %216 = fcmp une float %210, 0.000000e+00
  %217 = shl i32 %196, 1
  %218 = sext i32 %217 to i64
  %219 = getelementptr i32, ptr %56, i64 %218
  %220 = getelementptr i8, ptr %219, i64 -4
  store i32 1, ptr %220, align 4, !tbaa !5
  %221 = load i32, ptr %9, align 4, !tbaa !5
  %222 = shl nsw i32 %221, 1
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds i32, ptr %56, i64 %223
  br i1 %216, label %225, label %226

225:                                              ; preds = %215
  store i32 2, ptr %224, align 4, !tbaa !5
  br label %236

226:                                              ; preds = %215
  store i32 1, ptr %224, align 4, !tbaa !5
  br label %236

227:                                              ; preds = %201
  %228 = shl i32 %196, 1
  %229 = sext i32 %228 to i64
  %230 = getelementptr i32, ptr %56, i64 %229
  %231 = getelementptr i8, ptr %230, i64 -4
  store i32 2, ptr %231, align 4, !tbaa !5
  %232 = load i32, ptr %9, align 4, !tbaa !5
  %233 = shl nsw i32 %232, 1
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds i32, ptr %56, i64 %234
  store i32 2, ptr %235, align 4, !tbaa !5
  br label %236

236:                                              ; preds = %194, %225, %226, %227
  br i1 %.not478, label %.thread495, label %247

.thread495:                                       ; preds = %190, %236
  br i1 %76, label %237, label %243

237:                                              ; preds = %.thread495
  %238 = load float, ptr %34, align 4, !tbaa !9
  %239 = load float, ptr %39, align 4, !tbaa !9
  %240 = fcmp ule float %238, %239
  %241 = load float, ptr %41, align 4
  %242 = fcmp ugt float %238, %241
  %or.cond490 = select i1 %240, i1 true, i1 %242
  br i1 %or.cond490, label %243, label %247

243:                                              ; preds = %237, %.thread495
  %244 = icmp ne i32 %62, 0
  %245 = load i32, ptr %49, align 4
  %246 = icmp eq i32 %245, 2
  %or.cond29 = select i1 %244, i1 %246, i1 false
  br i1 %or.cond29, label %247, label %519

247:                                              ; preds = %237, %243, %236
  %248 = load i32, ptr %9, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr %9, align 4, !tbaa !5
  %250 = load float, ptr %34, align 4, !tbaa !9
  %251 = sext i32 %249 to i64
  %252 = getelementptr inbounds float, ptr %51, i64 %251
  store float %250, ptr %252, align 4, !tbaa !9
  %253 = icmp eq i32 %59, 0
  br i1 %253, label %519, label %254

254:                                              ; preds = %247
  %255 = mul nsw i32 %249, %52
  %256 = add nsw i32 %255, 1
  %257 = load float, ptr %36, align 4, !tbaa !9
  %258 = sext i32 %256 to i64
  %259 = getelementptr inbounds %struct.complex, ptr %55, i64 %258
  store float %257, ptr %259, align 4, !tbaa !11
  %260 = getelementptr inbounds %struct.complex, ptr %55, i64 %258, i32 1
  store float 0.000000e+00, ptr %260, align 4, !tbaa !13
  %261 = add nsw i32 %255, 2
  store i32 %261, ptr %24, align 4, !tbaa !5
  %262 = load float, ptr %38, align 4, !tbaa !9
  %263 = sext i32 %261 to i64
  %264 = getelementptr inbounds %struct.complex, ptr %55, i64 %263
  store float %262, ptr %264, align 4, !tbaa !11
  %265 = getelementptr inbounds %struct.complex, ptr %55, i64 %263, i32 1
  store float 0.000000e+00, ptr %265, align 4, !tbaa !13
  %266 = fcmp une float %262, 0.000000e+00
  br i1 %266, label %267, label %279

267:                                              ; preds = %254
  %268 = fcmp une float %257, 0.000000e+00
  %269 = shl i32 %249, 1
  %270 = sext i32 %269 to i64
  %271 = getelementptr i32, ptr %56, i64 %270
  %272 = getelementptr i8, ptr %271, i64 -4
  store i32 1, ptr %272, align 4, !tbaa !5
  %273 = load i32, ptr %9, align 4, !tbaa !5
  %274 = shl nsw i32 %273, 1
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds i32, ptr %56, i64 %275
  br i1 %268, label %277, label %278

277:                                              ; preds = %267
  store i32 2, ptr %276, align 4, !tbaa !5
  br label %519

278:                                              ; preds = %267
  store i32 1, ptr %276, align 4, !tbaa !5
  br label %519

279:                                              ; preds = %254
  %280 = shl i32 %249, 1
  %281 = sext i32 %280 to i64
  %282 = getelementptr i32, ptr %56, i64 %281
  %283 = getelementptr i8, ptr %282, i64 -4
  store i32 2, ptr %283, align 4, !tbaa !5
  %284 = load i32, ptr %9, align 4, !tbaa !5
  %285 = shl nsw i32 %284, 1
  %286 = sext i32 %285 to i64
  %287 = getelementptr inbounds i32, ptr %56, i64 %286
  store i32 2, ptr %287, align 4, !tbaa !5
  br label %519

288:                                              ; preds = %159
  %289 = shl i32 %160, 1
  %290 = or disjoint i32 %289, 1
  %291 = mul nsw i32 %160, 3
  %292 = add nsw i32 %291, 1
  %293 = shl i32 %160, 2
  %294 = or disjoint i32 %293, 1
  %295 = mul i32 %160, 5
  %296 = mul nsw i32 %160, 6
  %297 = or disjoint i32 %296, 1
  %298 = add nsw i32 %160, 1
  store float 1.000000e+00, ptr %31, align 4, !tbaa !9
  %299 = call float @slanst_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4) #5
  store float %299, ptr %27, align 4, !tbaa !9
  %300 = fcmp ogt float %299, 0.000000e+00
  %301 = fcmp olt float %299, %sqrtf
  %or.cond491 = select i1 %300, i1 %301, i1 false
  br i1 %or.cond491, label %302, label %304

302:                                              ; preds = %288
  %303 = fdiv float %sqrtf, %299
  store float %303, ptr %31, align 4, !tbaa !9
  br label %308

304:                                              ; preds = %288
  %305 = fcmp ogt float %299, %126
  br i1 %305, label %306, label %thread-pre-split496

306:                                              ; preds = %304
  %307 = fdiv float %126, %299
  store float %307, ptr %31, align 4, !tbaa !9
  br label %308

thread-pre-split496:                              ; preds = %304
  %.pr497 = load float, ptr %31, align 4, !tbaa !9
  br label %308

308:                                              ; preds = %thread-pre-split496, %306, %302
  %309 = phi float [ %.pr497, %thread-pre-split496 ], [ %307, %306 ], [ %303, %302 ]
  %310 = fcmp une float %309, 1.000000e+00
  br i1 %310, label %311, label %321

311:                                              ; preds = %308
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %31, ptr noundef %3, ptr noundef nonnull @c__1) #5
  %312 = load i32, ptr %2, align 4, !tbaa !5
  %313 = add nsw i32 %312, -1
  store i32 %313, ptr %24, align 4, !tbaa !5
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef %4, ptr noundef nonnull @c__1) #5
  %314 = load float, ptr %31, align 4, !tbaa !9
  %315 = fmul float %314, %299
  store float %315, ptr %27, align 4, !tbaa !9
  br i1 %76, label %316, label %321

316:                                              ; preds = %311
  %317 = load float, ptr %39, align 4, !tbaa !9
  %318 = fmul float %314, %317
  store float %318, ptr %39, align 4, !tbaa !9
  %319 = load float, ptr %41, align 4, !tbaa !9
  %320 = fmul float %314, %319
  store float %320, ptr %41, align 4, !tbaa !9
  br label %321

321:                                              ; preds = %311, %316, %308
  %322 = load i32, ptr %15, align 4, !tbaa !5
  %.not470 = icmp eq i32 %322, 0
  br i1 %.not470, label %.thread499, label %323

.thread499:                                       ; preds = %321
  store i32 -1, ptr %32, align 4, !tbaa !5
  br label %.thread501

323:                                              ; preds = %321
  call void @slarrr_(ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %32) #5
  %.pr498 = load i32, ptr %32, align 4, !tbaa !5
  %324 = icmp eq i32 %.pr498, 0
  br i1 %324, label %326, label %.thread501

.thread501:                                       ; preds = %323, %.thread499
  %325 = fneg float %117
  store float %325, ptr %46, align 4, !tbaa !9
  store i32 0, ptr %15, align 4, !tbaa !5
  br label %330

326:                                              ; preds = %323
  store float %117, ptr %46, align 4, !tbaa !9
  %.pr500 = load i32, ptr %15, align 4, !tbaa !5
  %.not471 = icmp eq i32 %.pr500, 0
  br i1 %.not471, label %330, label %327

327:                                              ; preds = %326
  %328 = sext i32 %294 to i64
  %329 = getelementptr inbounds float, ptr %57, i64 %328
  call void @scopy_(ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef nonnull %329, ptr noundef nonnull @c__1) #5
  br label %330

330:                                              ; preds = %.thread501, %327, %326
  %331 = load i32, ptr %2, align 4, !tbaa !5
  %332 = add nsw i32 %331, -1
  store i32 %332, ptr %24, align 4, !tbaa !5
  %.not472.not509 = icmp sgt i32 %331, 1
  br i1 %.not472.not509, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %330
  %wide.trip.count = zext nneg i32 %331 to i64
  %333 = add nsw i64 %wide.trip.count, -1
  %min.iters.check = icmp ult i32 %331, 21
  br i1 %min.iters.check, label %.lr.ph.preheader602, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph.preheader
  %334 = add nsw i64 %wide.trip.count, -2
  %335 = add i32 %295, 1
  %336 = trunc i64 %334 to i32
  %337 = add i32 %335, %336
  %338 = icmp slt i32 %337, %335
  %339 = icmp ugt i64 %334, 4294967295
  %340 = or i1 %338, %339
  br i1 %340, label %.lr.ph.preheader602, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %341 = add i32 %295, 1
  %342 = sext i32 %341 to i64
  %343 = shl nsw i64 %342, 2
  %344 = add i64 %343, %23
  %345 = add i64 %344, -4
  %346 = sub i64 %345, %22
  %diff.check = icmp ult i64 %346, 32
  br i1 %diff.check, label %.lr.ph.preheader602, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %333, -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 ]
  %347 = trunc i64 %index to i32
  %348 = or disjoint i32 %347, 1
  %349 = getelementptr float, ptr %4, i64 %index
  %350 = getelementptr inbounds i8, ptr %349, i64 16
  %wide.load = load <4 x float>, ptr %349, align 4, !tbaa !9
  %wide.load599 = load <4 x float>, ptr %350, align 4, !tbaa !9
  %351 = fmul <4 x float> %wide.load, %wide.load
  %352 = fmul <4 x float> %wide.load599, %wide.load599
  %353 = add i32 %295, %348
  %354 = sext i32 %353 to i64
  %355 = getelementptr inbounds float, ptr %57, i64 %354
  %356 = getelementptr inbounds i8, ptr %355, i64 16
  store <4 x float> %351, ptr %355, align 4, !tbaa !9
  store <4 x float> %352, ptr %356, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %357 = icmp eq i64 %index.next, %n.vec
  br i1 %357, label %middle.block, label %vector.body, !llvm.loop !14

middle.block:                                     ; preds = %vector.body
  %358 = extractelement <4 x float> %wide.load599, i64 3
  %cmp.n = icmp eq i64 %333, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader602

.lr.ph.preheader602:                              ; preds = %middle.block, %vector.memcheck, %vector.scevcheck, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %vector.scevcheck ], [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %359 = and i64 %wide.trip.count, 1
  %lcmp.mod.not.not = icmp eq i64 %359, 0
  br i1 %lcmp.mod.not.not, label %.lr.ph.prol, label %.lr.ph.prol.loopexit

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader602
  %360 = getelementptr inbounds float, ptr %50, i64 %indvars.iv.ph
  %361 = load float, ptr %360, align 4, !tbaa !9
  %362 = fmul float %361, %361
  %363 = trunc nuw nsw i64 %indvars.iv.ph to i32
  %364 = add i32 %295, %363
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds float, ptr %57, i64 %365
  store float %362, ptr %366, align 4, !tbaa !9
  %indvars.iv.next.prol = add nuw nsw i64 %indvars.iv.ph, 1
  br label %.lr.ph.prol.loopexit

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader602
  %.lcssa603.unr = phi float [ poison, %.lr.ph.preheader602 ], [ %361, %.lr.ph.prol ]
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %.lr.ph.preheader602 ], [ %indvars.iv.next.prol, %.lr.ph.prol ]
  %367 = add nsw i64 %wide.trip.count, -1
  %368 = icmp eq i64 %indvars.iv.ph, %367
  br i1 %368, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next.1, %.lr.ph ], [ %indvars.iv.unr, %.lr.ph.prol.loopexit ]
  %369 = getelementptr inbounds float, ptr %50, i64 %indvars.iv
  %370 = load float, ptr %369, align 4, !tbaa !9
  %371 = fmul float %370, %370
  %372 = trunc nuw nsw i64 %indvars.iv to i32
  %373 = add i32 %295, %372
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds float, ptr %57, i64 %374
  store float %371, ptr %375, align 4, !tbaa !9
  %376 = getelementptr float, ptr %4, i64 %indvars.iv
  %377 = load float, ptr %376, align 4, !tbaa !9
  %378 = fmul float %377, %377
  %379 = trunc i64 %indvars.iv to i32
  %380 = add i32 %379, 1
  %381 = add i32 %295, %380
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds float, ptr %57, i64 %382
  store float %378, ptr %383, align 4, !tbaa !9
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %exitcond.not.1 = icmp eq i64 %indvars.iv.next.1, %wide.trip.count
  br i1 %exitcond.not.1, label %._crit_edge, label %.lr.ph, !llvm.loop !18

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block, %330
  %.lcssa = phi float [ %sqrtf468, %330 ], [ %358, %middle.block ], [ %.lcssa603.unr, %.lr.ph.prol.loopexit ], [ %377, %.lr.ph ]
  store float %.lcssa, ptr %25, align 4, !tbaa !9
  br i1 %72, label %386, label %384

384:                                              ; preds = %._crit_edge
  %385 = fmul float %117, 4.000000e+00
  store float %385, ptr %29, align 4, !tbaa !9
  br label %399

386:                                              ; preds = %._crit_edge
  %387 = fpext float %117 to double
  %388 = call double @sqrt(double noundef %387) #5
  %389 = fmul double %388, 0x3FA99999A0000000
  %390 = fptrunc double %389 to float
  %391 = fmul float %117, 4.000000e+00
  %392 = fcmp ole float %391, %390
  %393 = select i1 %392, float %390, float %391
  store float %393, ptr %29, align 4, !tbaa !9
  %394 = call double @sqrt(double noundef %387) #5
  %395 = fmul double %394, 0x3F747AE140000000
  %396 = fptrunc double %395 to float
  store float %396, ptr %25, align 4, !tbaa !9
  %397 = fcmp ole float %391, %396
  %398 = select i1 %397, float %396, float %391
  br label %399

399:                                              ; preds = %386, %384
  %storemerge = phi float [ %385, %384 ], [ %398, %386 ]
  store float %storemerge, ptr %30, align 4, !tbaa !9
  %400 = sext i32 %295 to i64
  %401 = getelementptr float, ptr %57, i64 %400
  %402 = getelementptr i8, ptr %401, i64 4
  %403 = sext i32 %290 to i64
  %404 = getelementptr inbounds float, ptr %57, i64 %403
  %405 = sext i32 %292 to i64
  %406 = getelementptr inbounds float, ptr %57, i64 %405
  %407 = sext i32 %298 to i64
  %408 = getelementptr inbounds i32, ptr %58, i64 %407
  %409 = getelementptr inbounds i32, ptr %58, i64 %403
  %410 = sext i32 %297 to i64
  %411 = getelementptr inbounds float, ptr %57, i64 %410
  %412 = getelementptr inbounds i32, ptr %58, i64 %405
  call void @slarre_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %39, ptr noundef nonnull %41, ptr noundef nonnull %48, ptr noundef nonnull %49, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %402, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %46, ptr noundef nonnull %47, ptr noundef nonnull %18, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %404, ptr noundef nonnull %406, ptr noundef nonnull %408, ptr noundef nonnull %409, ptr noundef nonnull %16, ptr noundef nonnull %45, ptr noundef nonnull %411, ptr noundef nonnull %412, ptr noundef nonnull %32) #5
  %413 = load i32, ptr %32, align 4
  %.not473 = icmp eq i32 %413, 0
  br i1 %.not473, label %417, label %414

414:                                              ; preds = %399
  %415 = call i32 @llvm.abs.i32(i32 %413, i1 true)
  %416 = add nuw nsw i32 %415, 10
  store i32 %416, ptr %20, align 4, !tbaa !5
  br label %572

417:                                              ; preds = %399
  br i1 %72, label %418, label %423

418:                                              ; preds = %417
  call void @clarrv_(ptr noundef nonnull %2, ptr noundef nonnull %39, ptr noundef nonnull %41, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %45, 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 %29, ptr noundef nonnull %30, ptr noundef %10, ptr noundef nonnull %404, ptr noundef nonnull %406, ptr noundef nonnull %408, ptr noundef nonnull %409, ptr noundef nonnull %16, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %14, ptr noundef nonnull %411, ptr noundef nonnull %412, ptr noundef nonnull %32) #5
  %419 = load i32, ptr %32, align 4
  %.not475 = icmp eq i32 %419, 0
  br i1 %.not475, label %.loopexit508, label %420

420:                                              ; preds = %418
  %421 = call i32 @llvm.abs.i32(i32 %419, i1 true)
  %422 = add nuw nsw i32 %421, 20
  store i32 %422, ptr %20, align 4, !tbaa !5
  br label %572

423:                                              ; preds = %417
  %424 = load i32, ptr %9, align 4, !tbaa !5
  store i32 %424, ptr %24, align 4, !tbaa !5
  %.not474511 = icmp slt i32 %424, 1
  br i1 %.not474511, label %.loopexit508, label %.lr.ph514.preheader

.lr.ph514.preheader:                              ; preds = %423
  %425 = zext nneg i32 %424 to i64
  %xtraiter604 = and i64 %425, 1
  %426 = icmp eq i32 %424, 1
  br i1 %426, label %..loopexit508_crit_edge.unr-lcssa, label %.lr.ph514.preheader.new

.lr.ph514.preheader.new:                          ; preds = %.lr.ph514.preheader
  %unroll_iter = and i64 %425, 2147483646
  br label %.lr.ph514

.lr.ph514:                                        ; preds = %.lr.ph514, %.lr.ph514.preheader.new
  %indvars.iv554 = phi i64 [ 1, %.lr.ph514.preheader.new ], [ %indvars.iv.next555.1, %.lr.ph514 ]
  %niter = phi i64 [ 0, %.lr.ph514.preheader.new ], [ %niter.next.1, %.lr.ph514 ]
  %427 = trunc nuw nsw i64 %indvars.iv554 to i32
  %428 = add i32 %160, %427
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds i32, ptr %58, i64 %429
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds i32, ptr %58, i64 %432
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds float, ptr %50, i64 %435
  %437 = load float, ptr %436, align 4, !tbaa !9
  %438 = getelementptr inbounds float, ptr %51, i64 %indvars.iv554
  %439 = load float, ptr %438, align 4, !tbaa !9
  %440 = fadd float %437, %439
  store float %440, ptr %438, align 4, !tbaa !9
  %441 = trunc i64 %indvars.iv554 to i32
  %442 = add i32 %441, 1
  %443 = add i32 %160, %442
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds i32, ptr %58, i64 %444
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds i32, ptr %58, i64 %447
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds float, ptr %50, i64 %450
  %452 = load float, ptr %451, align 4, !tbaa !9
  %453 = getelementptr float, ptr %10, i64 %indvars.iv554
  %454 = load float, ptr %453, align 4, !tbaa !9
  %455 = fadd float %452, %454
  store float %455, ptr %453, align 4, !tbaa !9
  %indvars.iv.next555.1 = add nuw nsw i64 %indvars.iv554, 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 %..loopexit508_crit_edge.unr-lcssa, label %.lr.ph514, !llvm.loop !19

..loopexit508_crit_edge.unr-lcssa:                ; preds = %.lr.ph514, %.lr.ph514.preheader
  %.lcssa601.ph = phi i32 [ poison, %.lr.ph514.preheader ], [ %446, %.lr.ph514 ]
  %indvars.iv554.unr = phi i64 [ 1, %.lr.ph514.preheader ], [ %indvars.iv.next555.1, %.lr.ph514 ]
  %lcmp.mod605.not = icmp eq i64 %xtraiter604, 0
  br i1 %lcmp.mod605.not, label %..loopexit508_crit_edge, label %.lr.ph514.epil

.lr.ph514.epil:                                   ; preds = %..loopexit508_crit_edge.unr-lcssa
  %456 = trunc nuw nsw i64 %indvars.iv554.unr to i32
  %457 = add i32 %160, %456
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds i32, ptr %58, i64 %458
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds i32, ptr %58, i64 %461
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds float, ptr %50, i64 %464
  %466 = load float, ptr %465, align 4, !tbaa !9
  %467 = getelementptr inbounds float, ptr %51, i64 %indvars.iv554.unr
  %468 = load float, ptr %467, align 4, !tbaa !9
  %469 = fadd float %466, %468
  store float %469, ptr %467, align 4, !tbaa !9
  br label %..loopexit508_crit_edge

..loopexit508_crit_edge:                          ; preds = %..loopexit508_crit_edge.unr-lcssa, %.lr.ph514.epil
  %.lcssa601 = phi i32 [ %.lcssa601.ph, %..loopexit508_crit_edge.unr-lcssa ], [ %460, %.lr.ph514.epil ]
  store i32 %.lcssa601, ptr %26, align 4, !tbaa !5
  br label %.loopexit508

.loopexit508:                                     ; preds = %423, %..loopexit508_crit_edge, %418
  %470 = load i32, ptr %15, align 4, !tbaa !5
  %.not476 = icmp eq i32 %470, 0
  br i1 %.not476, label %.loopexit507, label %471

471:                                              ; preds = %.loopexit508
  %472 = load i32, ptr %9, align 4, !tbaa !5
  %473 = add i32 %472, %160
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds i32, ptr %58, i64 %474
  %476 = load i32, ptr %475, align 4, !tbaa !5
  store i32 %476, ptr %24, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %18, i64 -8
  %invariant.gep523 = getelementptr i8, ptr %16, i64 -8
  %.not477525 = icmp slt i32 %476, 1
  br i1 %.not477525, label %.loopexit507, label %.lr.ph530

.lr.ph530:                                        ; preds = %471
  %477 = fmul float %117, 4.000000e+00
  %invariant.gep589 = getelementptr i32, ptr %58, i64 %407
  br label %478

478:                                              ; preds = %.lr.ph530, %512
  %479 = phi i32 [ %476, %.lr.ph530 ], [ %513, %512 ]
  %indvars.iv562 = phi i64 [ 1, %.lr.ph530 ], [ %indvars.iv.next563, %512 ]
  %.0438527 = phi i32 [ 1, %.lr.ph530 ], [ %.1439, %512 ]
  %.0444526 = phi i32 [ 1, %.lr.ph530 ], [ %.1445, %512 ]
  %indvars.iv.next563 = add nuw nsw i64 %indvars.iv562, 1
  %480 = getelementptr inbounds i32, ptr %58, i64 %indvars.iv562
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %reass.sub = sub i32 %481, %.0444526
  %482 = add i32 %reass.sub, 1
  store i32 %482, ptr %37, align 4, !tbaa !5
  %483 = add i32 %.0438527, -1
  %484 = load i32, ptr %9, align 4, !tbaa !5
  %.not550 = icmp sgt i32 %.0438527, %484
  br i1 %.not550, label %._crit_edge519, label %.lr.ph518.preheader

.lr.ph518.preheader:                              ; preds = %478
  %485 = sext i32 %483 to i64
  %486 = sext i32 %484 to i64
  br label %.lr.ph518

.lr.ph518:                                        ; preds = %.lr.ph518.preheader, %490
  %indvars.iv559 = phi i64 [ %485, %.lr.ph518.preheader ], [ %indvars.iv.next560, %490 ]
  %gep590 = getelementptr i32, ptr %invariant.gep589, i64 %indvars.iv559
  %487 = load i32, ptr %gep590, align 4, !tbaa !5
  %488 = zext i32 %487 to i64
  %489 = icmp eq i64 %indvars.iv562, %488
  br i1 %489, label %490, label %._crit_edge519.loopexit.split.loop.exit

490:                                              ; preds = %.lr.ph518
  %indvars.iv.next560 = add nsw i64 %indvars.iv559, 1
  %491 = icmp slt i64 %indvars.iv.next560, %486
  br i1 %491, label %.lr.ph518, label %._crit_edge519

._crit_edge519.loopexit.split.loop.exit:          ; preds = %.lr.ph518
  %492 = trunc nsw i64 %indvars.iv559 to i32
  br label %._crit_edge519

._crit_edge519:                                   ; preds = %490, %._crit_edge519.loopexit.split.loop.exit, %478
  %.0437.lcssa = phi i32 [ %483, %478 ], [ %492, %._crit_edge519.loopexit.split.loop.exit ], [ %484, %490 ]
  %493 = icmp slt i32 %.0437.lcssa, %.0438527
  br i1 %493, label %512, label %494

494:                                              ; preds = %._crit_edge519
  %495 = add i32 %289, %.0438527
  %496 = sext i32 %495 to i64
  %497 = getelementptr inbounds i32, ptr %58, i64 %496
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = add nsw i32 %498, -1
  store i32 %499, ptr %42, align 4, !tbaa !5
  store i32 %498, ptr %43, align 4, !tbaa !5
  %500 = add nsw i32 %.0437.lcssa, %290
  %501 = sext i32 %500 to i64
  %gep = getelementptr i32, ptr %invariant.gep, i64 %501
  %502 = load i32, ptr %gep, align 4, !tbaa !5
  store i32 %502, ptr %33, align 4, !tbaa !5
  store float %477, ptr %30, align 4, !tbaa !9
  %503 = add nsw i32 %.0444526, %294
  %504 = sext i32 %503 to i64
  %gep524 = getelementptr float, ptr %invariant.gep523, i64 %504
  %505 = add i32 %.0444526, %295
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds float, ptr %57, i64 %506
  %508 = zext nneg i32 %.0438527 to i64
  %509 = getelementptr inbounds float, ptr %51, i64 %508
  %510 = getelementptr inbounds float, ptr %57, i64 %496
  call void @slarrj_(ptr noundef nonnull %37, ptr noundef %gep524, ptr noundef nonnull %507, ptr noundef nonnull %43, ptr noundef nonnull %33, ptr noundef nonnull %30, ptr noundef nonnull %42, ptr noundef nonnull %509, ptr noundef nonnull %510, ptr noundef nonnull %411, ptr noundef nonnull %412, ptr noundef nonnull %45, ptr noundef nonnull %27, ptr noundef nonnull %32) #5
  %511 = add nuw nsw i32 %.0437.lcssa, 1
  %.pre = load i32, ptr %24, align 4, !tbaa !5
  br label %512

512:                                              ; preds = %._crit_edge519, %494
  %513 = phi i32 [ %.pre, %494 ], [ %479, %._crit_edge519 ]
  %.1439 = phi i32 [ %511, %494 ], [ %.0438527, %._crit_edge519 ]
  %.1445 = add nsw i32 %481, 1
  %514 = sext i32 %513 to i64
  %.not477.not = icmp slt i64 %indvars.iv562, %514
  br i1 %.not477.not, label %478, label %.loopexit507, !llvm.loop !20

.loopexit507:                                     ; preds = %512, %471, %.loopexit508
  %515 = load float, ptr %31, align 4, !tbaa !9
  %516 = fcmp une float %515, 1.000000e+00
  br i1 %516, label %517, label %519

517:                                              ; preds = %.loopexit507
  %518 = fdiv float 1.000000e+00, %515
  store float %518, ptr %25, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %9, ptr noundef nonnull %25, ptr noundef %10, ptr noundef nonnull @c__1) #5
  br label %519

519:                                              ; preds = %.loopexit507, %517, %243, %279, %278, %277, %247
  %520 = load i32, ptr %47, align 4, !tbaa !5
  %521 = icmp sgt i32 %520, 1
  br i1 %521, label %525, label %522

522:                                              ; preds = %519
  %523 = load i32, ptr %2, align 4, !tbaa !5
  %524 = icmp eq i32 %523, 2
  br i1 %524, label %525, label %.loopexit

525:                                              ; preds = %522, %519
  br i1 %72, label %529, label %526

526:                                              ; preds = %525
  call void @slasrt_(ptr noundef nonnull @.str.2, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %32) #5
  %527 = load i32, ptr %32, align 4, !tbaa !5
  %.not479 = icmp eq i32 %527, 0
  br i1 %.not479, label %.loopexit, label %528

528:                                              ; preds = %526
  store i32 3, ptr %20, align 4, !tbaa !5
  br label %572

529:                                              ; preds = %525
  %530 = load i32, ptr %9, align 4, !tbaa !5
  %531 = add nsw i32 %530, -1
  store i32 %531, ptr %24, align 4, !tbaa !5
  %invariant.gep540 = getelementptr i8, ptr %55, i64 8
  %invariant.gep544 = getelementptr i8, ptr %14, i64 -8
  %.not480546 = icmp slt i32 %530, 2
  br i1 %.not480546, label %.loopexit, label %.lr.ph549.preheader

.lr.ph549.preheader:                              ; preds = %529
  %532 = sext i32 %52 to i64
  br label %.lr.ph549

.lr.ph549:                                        ; preds = %.lr.ph549.preheader, %._crit_edge537.thread
  %indvar = phi i32 [ 0, %.lr.ph549.preheader ], [ %indvar.next, %._crit_edge537.thread ]
  %533 = phi i32 [ %531, %.lr.ph549.preheader ], [ %570, %._crit_edge537.thread ]
  %indvars.iv571 = phi i64 [ 1, %.lr.ph549.preheader ], [ %indvars.iv.next572, %._crit_edge537.thread ]
  %indvars.iv565 = phi i64 [ 2, %.lr.ph549.preheader ], [ %indvars.iv.next566, %._crit_edge537.thread ]
  %534 = getelementptr inbounds float, ptr %51, i64 %indvars.iv571
  %535 = load float, ptr %534, align 4, !tbaa !9
  %536 = load i32, ptr %9, align 4, !tbaa !5
  %indvars.iv.next572 = add nuw nsw i64 %indvars.iv571, 1
  %537 = sext i32 %536 to i64
  %.not481531.not = icmp slt i64 %indvars.iv571, %537
  br i1 %.not481531.not, label %.lr.ph536.preheader, label %._crit_edge537.thread

.lr.ph536.preheader:                              ; preds = %.lr.ph549
  %538 = xor i32 %indvar, -1
  %539 = add i32 %536, %538
  %reass.sub613 = sub i32 %536, %indvar
  %xtraiter607 = and i32 %539, 1
  %540 = icmp eq i32 %reass.sub613, 2
  br i1 %540, label %._crit_edge537.unr-lcssa, label %.lr.ph536.preheader.new

.lr.ph536.preheader.new:                          ; preds = %.lr.ph536.preheader
  %unroll_iter611 = and i32 %539, -2
  br label %.lr.ph536

.lr.ph536:                                        ; preds = %.lr.ph536, %.lr.ph536.preheader.new
  %indvars.iv567 = phi i64 [ %indvars.iv565, %.lr.ph536.preheader.new ], [ %indvars.iv.next568.1, %.lr.ph536 ]
  %.0534 = phi float [ %535, %.lr.ph536.preheader.new ], [ %.1.1, %.lr.ph536 ]
  %.0440533 = phi i32 [ 0, %.lr.ph536.preheader.new ], [ %.1441.1, %.lr.ph536 ]
  %niter612 = phi i32 [ 0, %.lr.ph536.preheader.new ], [ %niter612.next.1, %.lr.ph536 ]
  %541 = getelementptr inbounds float, ptr %51, i64 %indvars.iv567
  %542 = load float, ptr %541, align 4, !tbaa !9
  %543 = fcmp olt float %542, %.0534
  %544 = trunc nuw i64 %indvars.iv567 to i32
  %.1441 = select i1 %543, i32 %544, i32 %.0440533
  %.1 = select i1 %543, float %542, float %.0534
  %545 = getelementptr float, ptr %10, i64 %indvars.iv567
  %546 = load float, ptr %545, align 4, !tbaa !9
  %547 = fcmp olt float %546, %.1
  %548 = trunc i64 %indvars.iv567 to i32
  %549 = add i32 %548, 1
  %.1441.1 = select i1 %547, i32 %549, i32 %.1441
  %.1.1 = select i1 %547, float %546, float %.1
  %indvars.iv.next568.1 = add nuw nsw i64 %indvars.iv567, 2
  %niter612.next.1 = add i32 %niter612, 2
  %niter612.ncmp.1 = icmp eq i32 %niter612.next.1, %unroll_iter611
  br i1 %niter612.ncmp.1, label %._crit_edge537.unr-lcssa, label %.lr.ph536, !llvm.loop !21

._crit_edge537.unr-lcssa:                         ; preds = %.lr.ph536, %.lr.ph536.preheader
  %.1441.lcssa.ph = phi i32 [ poison, %.lr.ph536.preheader ], [ %.1441.1, %.lr.ph536 ]
  %.1.lcssa.ph = phi float [ poison, %.lr.ph536.preheader ], [ %.1.1, %.lr.ph536 ]
  %indvars.iv567.unr = phi i64 [ %indvars.iv565, %.lr.ph536.preheader ], [ %indvars.iv.next568.1, %.lr.ph536 ]
  %.0534.unr = phi float [ %535, %.lr.ph536.preheader ], [ %.1.1, %.lr.ph536 ]
  %.0440533.unr = phi i32 [ 0, %.lr.ph536.preheader ], [ %.1441.1, %.lr.ph536 ]
  %lcmp.mod608.not = icmp eq i32 %xtraiter607, 0
  br i1 %lcmp.mod608.not, label %._crit_edge537, label %.lr.ph536.epil

.lr.ph536.epil:                                   ; preds = %._crit_edge537.unr-lcssa
  %550 = getelementptr inbounds float, ptr %51, i64 %indvars.iv567.unr
  %551 = load float, ptr %550, align 4, !tbaa !9
  %552 = fcmp olt float %551, %.0534.unr
  %553 = trunc nuw i64 %indvars.iv567.unr to i32
  %.1441.epil = select i1 %552, i32 %553, i32 %.0440533.unr
  %.1.epil = select i1 %552, float %551, float %.0534.unr
  br label %._crit_edge537

._crit_edge537:                                   ; preds = %._crit_edge537.unr-lcssa, %.lr.ph536.epil
  %.1441.lcssa = phi i32 [ %.1441.lcssa.ph, %._crit_edge537.unr-lcssa ], [ %.1441.epil, %.lr.ph536.epil ]
  %.1.lcssa = phi float [ %.1.lcssa.ph, %._crit_edge537.unr-lcssa ], [ %.1.epil, %.lr.ph536.epil ]
  %.not482 = icmp eq i32 %.1441.lcssa, 0
  br i1 %.not482, label %._crit_edge537.thread, label %554

554:                                              ; preds = %._crit_edge537
  %555 = sext i32 %.1441.lcssa to i64
  %556 = getelementptr inbounds float, ptr %51, i64 %555
  store float %535, ptr %556, align 4, !tbaa !9
  store float %.1.lcssa, ptr %534, align 4, !tbaa !9
  %557 = mul nsw i32 %.1441.lcssa, %52
  %558 = sext i32 %557 to i64
  %gep541 = getelementptr %struct.complex, ptr %invariant.gep540, i64 %558
  %559 = mul nsw i64 %indvars.iv571, %532
  %gep543 = getelementptr %struct.complex, ptr %invariant.gep540, i64 %559
  call void @cswap_(ptr noundef nonnull %2, ptr noundef %gep541, ptr noundef nonnull @c__1, ptr noundef %gep543, ptr noundef nonnull @c__1) #5
  %560 = shl i32 %.1441.lcssa, 1
  %561 = sext i32 %560 to i64
  %562 = getelementptr i32, ptr %56, i64 %561
  %563 = getelementptr i8, ptr %562, i64 -4
  %564 = load i32, ptr %563, align 4, !tbaa !5
  %sext = shl i64 %indvars.iv571, 33
  %565 = ashr exact i64 %sext, 30
  %gep545 = getelementptr i8, ptr %invariant.gep544, i64 %565
  %566 = load i32, ptr %gep545, align 4, !tbaa !5
  store i32 %566, ptr %563, align 4, !tbaa !5
  store i32 %564, ptr %gep545, align 4, !tbaa !5
  %567 = load i32, ptr %562, align 4, !tbaa !5
  store i32 %567, ptr %26, align 4, !tbaa !5
  %.idx = shl i64 %indvars.iv571, 3
  %568 = getelementptr inbounds i8, ptr %56, i64 %.idx
  %569 = load i32, ptr %568, align 4, !tbaa !5
  store i32 %569, ptr %562, align 4, !tbaa !5
  store i32 %567, ptr %568, align 4, !tbaa !5
  %.pre576 = load i32, ptr %24, align 4, !tbaa !5
  br label %._crit_edge537.thread

._crit_edge537.thread:                            ; preds = %.lr.ph549, %._crit_edge537, %554
  %570 = phi i32 [ %533, %._crit_edge537 ], [ %.pre576, %554 ], [ %533, %.lr.ph549 ]
  %571 = sext i32 %570 to i64
  %.not480.not = icmp slt i64 %indvars.iv571, %571
  %indvars.iv.next566 = add nuw nsw i64 %indvars.iv565, 1
  %indvar.next = add i32 %indvar, 1
  br i1 %.not480.not, label %.lr.ph549, label %.loopexit, !llvm.loop !22

.loopexit:                                        ; preds = %._crit_edge537.thread, %529, %526, %522
  store float %130, ptr %16, align 4, !tbaa !9
  store i32 %.0435, ptr %18, align 4, !tbaa !5
  br label %572

572:                                              ; preds = %.thread580, %159, %172, %174, %158, %.loopexit, %528, %420, %414, %.thread493
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 4, ptr nonnull %24) #5
  ret void
}

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

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

declare float @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 void @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, i32 noundef) local_unnamed_addr #2

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

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

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

declare void @sscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @scopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @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 i32 @llvm.abs.i32(i32, 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 = !{!"int", !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, !15, !16}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}


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