; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (csteqr)

; 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 [7 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4
@c_b41 = external hidden global float, align 4
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @csteqr_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) #0 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, 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 float, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  %46 = alloca i32, align 4
  %47 = alloca float, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca float, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca i32, align 4
  %58 = alloca float, align 4
  %59 = alloca float, align 4
  %60 = alloca i32, align 4
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  store ptr %7, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #5
  %61 = load ptr, ptr %11, align 8, !tbaa !5
  %62 = getelementptr inbounds float, ptr %61, i32 -1
  store ptr %62, ptr %11, align 8, !tbaa !5
  %63 = load ptr, ptr %12, align 8, !tbaa !5
  %64 = getelementptr inbounds float, ptr %63, i32 -1
  store ptr %64, ptr %12, align 8, !tbaa !5
  %65 = load ptr, ptr %14, align 8, !tbaa !5
  %66 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %66, ptr %17, align 4, !tbaa !9
  %67 = load i32, ptr %17, align 4, !tbaa !9
  %68 = mul nsw i32 %67, 1
  %69 = add nsw i32 1, %68
  store i32 %69, ptr %18, align 4, !tbaa !9
  %70 = load i32, ptr %18, align 4, !tbaa !9
  %71 = load ptr, ptr %13, align 8, !tbaa !5
  %72 = sext i32 %70 to i64
  %73 = sub i64 0, %72
  %74 = getelementptr inbounds %struct.complex, ptr %71, i64 %73
  store ptr %74, ptr %13, align 8, !tbaa !5
  %75 = load ptr, ptr %15, align 8, !tbaa !5
  %76 = getelementptr inbounds float, ptr %75, i32 -1
  store ptr %76, ptr %15, align 8, !tbaa !5
  %77 = load ptr, ptr %16, align 8, !tbaa !5
  store i32 0, ptr %77, align 4, !tbaa !9
  %78 = load ptr, ptr %9, align 8, !tbaa !5
  %79 = call i32 @lsame_(ptr noundef %78, ptr noundef @.str)
  %80 = icmp ne i32 %79, 0
  br i1 %80, label %81, label %82

81:                                               ; preds = %8
  store i32 0, ptr %49, align 4, !tbaa !9
  br label %95

82:                                               ; preds = %8
  %83 = load ptr, ptr %9, align 8, !tbaa !5
  %84 = call i32 @lsame_(ptr noundef %83, ptr noundef @.str.1)
  %85 = icmp ne i32 %84, 0
  br i1 %85, label %86, label %87

86:                                               ; preds = %82
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %94

87:                                               ; preds = %82
  %88 = load ptr, ptr %9, align 8, !tbaa !5
  %89 = call i32 @lsame_(ptr noundef %88, ptr noundef @.str.2)
  %90 = icmp ne i32 %89, 0
  br i1 %90, label %91, label %92

91:                                               ; preds = %87
  store i32 2, ptr %49, align 4, !tbaa !9
  br label %93

92:                                               ; preds = %87
  store i32 -1, ptr %49, align 4, !tbaa !9
  br label %93

93:                                               ; preds = %92, %91
  br label %94

94:                                               ; preds = %93, %86
  br label %95

95:                                               ; preds = %94, %81
  %96 = load i32, ptr %49, align 4, !tbaa !9
  %97 = icmp slt i32 %96, 0
  br i1 %97, label %98, label %100

98:                                               ; preds = %95
  %99 = load ptr, ptr %16, align 8, !tbaa !5
  store i32 -1, ptr %99, align 4, !tbaa !9
  br label %130

100:                                              ; preds = %95
  %101 = load ptr, ptr %10, align 8, !tbaa !5
  %102 = load i32, ptr %101, align 4, !tbaa !9
  %103 = icmp slt i32 %102, 0
  br i1 %103, label %104, label %106

104:                                              ; preds = %100
  %105 = load ptr, ptr %16, align 8, !tbaa !5
  store i32 -2, ptr %105, align 4, !tbaa !9
  br label %129

106:                                              ; preds = %100
  %107 = load ptr, ptr %14, align 8, !tbaa !5
  %108 = load i32, ptr %107, align 4, !tbaa !9
  %109 = icmp slt i32 %108, 1
  br i1 %109, label %126, label %110

110:                                              ; preds = %106
  %111 = load i32, ptr %49, align 4, !tbaa !9
  %112 = icmp sgt i32 %111, 0
  br i1 %112, label %113, label %128

113:                                              ; preds = %110
  %114 = load ptr, ptr %14, align 8, !tbaa !5
  %115 = load i32, ptr %114, align 4, !tbaa !9
  %116 = load ptr, ptr %10, align 8, !tbaa !5
  %117 = load i32, ptr %116, align 4, !tbaa !9
  %118 = icmp sge i32 1, %117
  br i1 %118, label %119, label %120

119:                                              ; preds = %113
  br label %123

120:                                              ; preds = %113
  %121 = load ptr, ptr %10, align 8, !tbaa !5
  %122 = load i32, ptr %121, align 4, !tbaa !9
  br label %123

123:                                              ; preds = %120, %119
  %124 = phi i32 [ 1, %119 ], [ %122, %120 ]
  %125 = icmp slt i32 %115, %124
  br i1 %125, label %126, label %128

126:                                              ; preds = %123, %106
  %127 = load ptr, ptr %16, align 8, !tbaa !5
  store i32 -6, ptr %127, align 4, !tbaa !9
  br label %128

128:                                              ; preds = %126, %123, %110
  br label %129

129:                                              ; preds = %128, %104
  br label %130

130:                                              ; preds = %129, %98
  %131 = load ptr, ptr %16, align 8, !tbaa !5
  %132 = load i32, ptr %131, align 4, !tbaa !9
  %133 = icmp ne i32 %132, 0
  br i1 %133, label %134, label %139

134:                                              ; preds = %130
  %135 = load ptr, ptr %16, align 8, !tbaa !5
  %136 = load i32, ptr %135, align 4, !tbaa !9
  %137 = sub nsw i32 0, %136
  store i32 %137, ptr %19, align 4, !tbaa !9
  %138 = call i32 @xerbla_(ptr noundef @.str.3, ptr noundef %19, i32 noundef 6)
  store i32 1, ptr %60, align 4
  br label %1390

139:                                              ; preds = %130
  %140 = load ptr, ptr %10, align 8, !tbaa !5
  %141 = load i32, ptr %140, align 4, !tbaa !9
  %142 = icmp eq i32 %141, 0
  br i1 %142, label %143, label %144

143:                                              ; preds = %139
  store i32 1, ptr %60, align 4
  br label %1390

144:                                              ; preds = %139
  %145 = load ptr, ptr %10, align 8, !tbaa !5
  %146 = load i32, ptr %145, align 4, !tbaa !9
  %147 = icmp eq i32 %146, 1
  br i1 %147, label %148, label %165

148:                                              ; preds = %144
  %149 = load i32, ptr %49, align 4, !tbaa !9
  %150 = icmp eq i32 %149, 2
  br i1 %150, label %151, label %164

151:                                              ; preds = %148
  %152 = load i32, ptr %17, align 4, !tbaa !9
  %153 = add nsw i32 %152, 1
  store i32 %153, ptr %19, align 4, !tbaa !9
  %154 = load ptr, ptr %13, align 8, !tbaa !5
  %155 = load i32, ptr %19, align 4, !tbaa !9
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds %struct.complex, ptr %154, i64 %156
  %158 = getelementptr inbounds %struct.complex, ptr %157, i32 0, i32 0
  store float 1.000000e+00, ptr %158, align 4, !tbaa !11
  %159 = load ptr, ptr %13, align 8, !tbaa !5
  %160 = load i32, ptr %19, align 4, !tbaa !9
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds %struct.complex, ptr %159, i64 %161
  %163 = getelementptr inbounds %struct.complex, ptr %162, i32 0, i32 1
  store float 0.000000e+00, ptr %163, align 4, !tbaa !14
  br label %164

164:                                              ; preds = %151, %148
  store i32 1, ptr %60, align 4
  br label %1390

165:                                              ; preds = %144
  %166 = call float @slamch_(ptr noundef @.str.4)
  store float %166, ptr %56, align 4, !tbaa !15
  %167 = load float, ptr %56, align 4, !tbaa !15
  store float %167, ptr %21, align 4, !tbaa !15
  %168 = load float, ptr %21, align 4, !tbaa !15
  %169 = load float, ptr %21, align 4, !tbaa !15
  %170 = fmul float %168, %169
  store float %170, ptr %59, align 4, !tbaa !15
  %171 = call float @slamch_(ptr noundef @.str.5)
  store float %171, ptr %44, align 4, !tbaa !15
  %172 = load float, ptr %44, align 4, !tbaa !15
  %173 = fdiv float 1.000000e+00, %172
  store float %173, ptr %45, align 4, !tbaa !15
  %174 = load float, ptr %45, align 4, !tbaa !15
  %175 = fpext float %174 to double
  %176 = call double @sqrt(double noundef %175) #5
  %177 = fdiv double %176, 3.000000e+00
  %178 = fptrunc double %177 to float
  store float %178, ptr %50, align 4, !tbaa !15
  %179 = load float, ptr %44, align 4, !tbaa !15
  %180 = fpext float %179 to double
  %181 = call double @sqrt(double noundef %180) #5
  %182 = load float, ptr %59, align 4, !tbaa !15
  %183 = fpext float %182 to double
  %184 = fdiv double %181, %183
  %185 = fptrunc double %184 to float
  store float %185, ptr %47, align 4, !tbaa !15
  %186 = load i32, ptr %49, align 4, !tbaa !9
  %187 = icmp eq i32 %186, 2
  br i1 %187, label %188, label %196

188:                                              ; preds = %165
  %189 = load ptr, ptr %10, align 8, !tbaa !5
  %190 = load ptr, ptr %10, align 8, !tbaa !5
  %191 = load ptr, ptr %13, align 8, !tbaa !5
  %192 = load i32, ptr %18, align 4, !tbaa !9
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds %struct.complex, ptr %191, i64 %193
  %195 = load ptr, ptr %14, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.6, ptr noundef %189, ptr noundef %190, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %194, ptr noundef %195)
  br label %196

196:                                              ; preds = %188, %165
  %197 = load ptr, ptr %10, align 8, !tbaa !5
  %198 = load i32, ptr %197, align 4, !tbaa !9
  %199 = mul nsw i32 %198, 30
  store i32 %199, ptr %48, align 4, !tbaa !9
  store i32 0, ptr %24, align 4, !tbaa !9
  store i32 1, ptr %38, align 4, !tbaa !9
  %200 = load ptr, ptr %10, align 8, !tbaa !5
  %201 = load i32, ptr %200, align 4, !tbaa !9
  %202 = sub nsw i32 %201, 1
  store i32 %202, ptr %53, align 4, !tbaa !9
  br label %203

203:                                              ; preds = %1299, %328, %311, %196
  %204 = load i32, ptr %38, align 4, !tbaa !9
  %205 = load ptr, ptr %10, align 8, !tbaa !5
  %206 = load i32, ptr %205, align 4, !tbaa !9
  %207 = icmp sgt i32 %204, %206
  br i1 %207, label %208, label %209

208:                                              ; preds = %203
  br label %1300

209:                                              ; preds = %203
  %210 = load i32, ptr %38, align 4, !tbaa !9
  %211 = icmp sgt i32 %210, 1
  br i1 %211, label %212, label %218

212:                                              ; preds = %209
  %213 = load ptr, ptr %12, align 8, !tbaa !5
  %214 = load i32, ptr %38, align 4, !tbaa !9
  %215 = sub nsw i32 %214, 1
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds float, ptr %213, i64 %216
  store float 0.000000e+00, ptr %217, align 4, !tbaa !15
  br label %218

218:                                              ; preds = %212, %209
  %219 = load i32, ptr %38, align 4, !tbaa !9
  %220 = load i32, ptr %53, align 4, !tbaa !9
  %221 = icmp sle i32 %219, %220
  br i1 %221, label %222, label %298

222:                                              ; preds = %218
  %223 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %223, ptr %19, align 4, !tbaa !9
  %224 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %224, ptr %33, align 4, !tbaa !9
  br label %225

225:                                              ; preds = %294, %222
  %226 = load i32, ptr %33, align 4, !tbaa !9
  %227 = load i32, ptr %19, align 4, !tbaa !9
  %228 = icmp sle i32 %226, %227
  br i1 %228, label %229, label %297

229:                                              ; preds = %225
  %230 = load ptr, ptr %12, align 8, !tbaa !5
  %231 = load i32, ptr %33, align 4, !tbaa !9
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds float, ptr %230, i64 %232
  %234 = load float, ptr %233, align 4, !tbaa !15
  store float %234, ptr %21, align 4, !tbaa !15
  %235 = load float, ptr %21, align 4, !tbaa !15
  %236 = fcmp oge float %235, 0.000000e+00
  br i1 %236, label %237, label %239

237:                                              ; preds = %229
  %238 = load float, ptr %21, align 4, !tbaa !15
  br label %242

239:                                              ; preds = %229
  %240 = load float, ptr %21, align 4, !tbaa !15
  %241 = fneg float %240
  br label %242

242:                                              ; preds = %239, %237
  %243 = phi float [ %238, %237 ], [ %241, %239 ]
  store float %243, ptr %58, align 4, !tbaa !15
  %244 = load float, ptr %58, align 4, !tbaa !15
  %245 = fcmp oeq float %244, 0.000000e+00
  br i1 %245, label %246, label %247

246:                                              ; preds = %242
  br label %301

247:                                              ; preds = %242
  %248 = load float, ptr %58, align 4, !tbaa !15
  %249 = fpext float %248 to double
  %250 = load ptr, ptr %11, align 8, !tbaa !5
  %251 = load i32, ptr %33, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds float, ptr %250, i64 %252
  %254 = load float, ptr %253, align 4, !tbaa !15
  store float %254, ptr %21, align 4, !tbaa !15
  %255 = load float, ptr %21, align 4, !tbaa !15
  %256 = fcmp oge float %255, 0.000000e+00
  br i1 %256, label %257, label %259

257:                                              ; preds = %247
  %258 = load float, ptr %21, align 4, !tbaa !15
  br label %262

259:                                              ; preds = %247
  %260 = load float, ptr %21, align 4, !tbaa !15
  %261 = fneg float %260
  br label %262

262:                                              ; preds = %259, %257
  %263 = phi float [ %258, %257 ], [ %261, %259 ]
  %264 = fpext float %263 to double
  %265 = call double @sqrt(double noundef %264) #5
  %266 = load ptr, ptr %11, align 8, !tbaa !5
  %267 = load i32, ptr %33, align 4, !tbaa !9
  %268 = add nsw i32 %267, 1
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds float, ptr %266, i64 %269
  %271 = load float, ptr %270, align 4, !tbaa !15
  store float %271, ptr %22, align 4, !tbaa !15
  %272 = load float, ptr %22, align 4, !tbaa !15
  %273 = fcmp oge float %272, 0.000000e+00
  br i1 %273, label %274, label %276

274:                                              ; preds = %262
  %275 = load float, ptr %22, align 4, !tbaa !15
  br label %279

276:                                              ; preds = %262
  %277 = load float, ptr %22, align 4, !tbaa !15
  %278 = fneg float %277
  br label %279

279:                                              ; preds = %276, %274
  %280 = phi float [ %275, %274 ], [ %278, %276 ]
  %281 = fpext float %280 to double
  %282 = call double @sqrt(double noundef %281) #5
  %283 = fmul double %265, %282
  %284 = load float, ptr %56, align 4, !tbaa !15
  %285 = fpext float %284 to double
  %286 = fmul double %283, %285
  %287 = fcmp ole double %249, %286
  br i1 %287, label %288, label %293

288:                                              ; preds = %279
  %289 = load ptr, ptr %12, align 8, !tbaa !5
  %290 = load i32, ptr %33, align 4, !tbaa !9
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds float, ptr %289, i64 %291
  store float 0.000000e+00, ptr %292, align 4, !tbaa !15
  br label %301

293:                                              ; preds = %279
  br label %294

294:                                              ; preds = %293
  %295 = load i32, ptr %33, align 4, !tbaa !9
  %296 = add nsw i32 %295, 1
  store i32 %296, ptr %33, align 4, !tbaa !9
  br label %225, !llvm.loop !16

297:                                              ; preds = %225
  br label %298

298:                                              ; preds = %297, %218
  %299 = load ptr, ptr %10, align 8, !tbaa !5
  %300 = load i32, ptr %299, align 4, !tbaa !9
  store i32 %300, ptr %33, align 4, !tbaa !9
  br label %301

301:                                              ; preds = %298, %288, %246
  %302 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %302, ptr %32, align 4, !tbaa !9
  %303 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %303, ptr %57, align 4, !tbaa !9
  %304 = load i32, ptr %33, align 4, !tbaa !9
  store i32 %304, ptr %23, align 4, !tbaa !9
  %305 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %305, ptr %46, align 4, !tbaa !9
  %306 = load i32, ptr %33, align 4, !tbaa !9
  %307 = add nsw i32 %306, 1
  store i32 %307, ptr %38, align 4, !tbaa !9
  %308 = load i32, ptr %23, align 4, !tbaa !9
  %309 = load i32, ptr %32, align 4, !tbaa !9
  %310 = icmp eq i32 %308, %309
  br i1 %310, label %311, label %312

311:                                              ; preds = %301
  br label %203

312:                                              ; preds = %301
  %313 = load i32, ptr %23, align 4, !tbaa !9
  %314 = load i32, ptr %32, align 4, !tbaa !9
  %315 = sub nsw i32 %313, %314
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr %19, align 4, !tbaa !9
  %317 = load ptr, ptr %11, align 8, !tbaa !5
  %318 = load i32, ptr %32, align 4, !tbaa !9
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds float, ptr %317, i64 %319
  %321 = load ptr, ptr %12, align 8, !tbaa !5
  %322 = load i32, ptr %32, align 4, !tbaa !9
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds float, ptr %321, i64 %323
  %325 = call float @slanst_(ptr noundef @.str.2, ptr noundef %19, ptr noundef %320, ptr noundef %324)
  store float %325, ptr %37, align 4, !tbaa !15
  store i32 0, ptr %43, align 4, !tbaa !9
  %326 = load float, ptr %37, align 4, !tbaa !15
  %327 = fcmp oeq float %326, 0.000000e+00
  br i1 %327, label %328, label %329

328:                                              ; preds = %312
  br label %203

329:                                              ; preds = %312
  %330 = load float, ptr %37, align 4, !tbaa !15
  %331 = load float, ptr %50, align 4, !tbaa !15
  %332 = fcmp ogt float %330, %331
  br i1 %332, label %333, label %353

333:                                              ; preds = %329
  store i32 1, ptr %43, align 4, !tbaa !9
  %334 = load i32, ptr %23, align 4, !tbaa !9
  %335 = load i32, ptr %32, align 4, !tbaa !9
  %336 = sub nsw i32 %334, %335
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr %19, align 4, !tbaa !9
  %338 = load ptr, ptr %11, align 8, !tbaa !5
  %339 = load i32, ptr %32, align 4, !tbaa !9
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds float, ptr %338, i64 %340
  %342 = load ptr, ptr %10, align 8, !tbaa !5
  %343 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %37, ptr noundef %50, ptr noundef %19, ptr noundef @c__1, ptr noundef %341, ptr noundef %342, ptr noundef %343)
  %344 = load i32, ptr %23, align 4, !tbaa !9
  %345 = load i32, ptr %32, align 4, !tbaa !9
  %346 = sub nsw i32 %344, %345
  store i32 %346, ptr %19, align 4, !tbaa !9
  %347 = load ptr, ptr %12, align 8, !tbaa !5
  %348 = load i32, ptr %32, align 4, !tbaa !9
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds float, ptr %347, i64 %349
  %351 = load ptr, ptr %10, align 8, !tbaa !5
  %352 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %37, ptr noundef %50, ptr noundef %19, ptr noundef @c__1, ptr noundef %350, ptr noundef %351, ptr noundef %352)
  br label %378

353:                                              ; preds = %329
  %354 = load float, ptr %37, align 4, !tbaa !15
  %355 = load float, ptr %47, align 4, !tbaa !15
  %356 = fcmp olt float %354, %355
  br i1 %356, label %357, label %377

357:                                              ; preds = %353
  store i32 2, ptr %43, align 4, !tbaa !9
  %358 = load i32, ptr %23, align 4, !tbaa !9
  %359 = load i32, ptr %32, align 4, !tbaa !9
  %360 = sub nsw i32 %358, %359
  %361 = add nsw i32 %360, 1
  store i32 %361, ptr %19, align 4, !tbaa !9
  %362 = load ptr, ptr %11, align 8, !tbaa !5
  %363 = load i32, ptr %32, align 4, !tbaa !9
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds float, ptr %362, i64 %364
  %366 = load ptr, ptr %10, align 8, !tbaa !5
  %367 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %37, ptr noundef %47, ptr noundef %19, ptr noundef @c__1, ptr noundef %365, ptr noundef %366, ptr noundef %367)
  %368 = load i32, ptr %23, align 4, !tbaa !9
  %369 = load i32, ptr %32, align 4, !tbaa !9
  %370 = sub nsw i32 %368, %369
  store i32 %370, ptr %19, align 4, !tbaa !9
  %371 = load ptr, ptr %12, align 8, !tbaa !5
  %372 = load i32, ptr %32, align 4, !tbaa !9
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds float, ptr %371, i64 %373
  %375 = load ptr, ptr %10, align 8, !tbaa !5
  %376 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %37, ptr noundef %47, ptr noundef %19, ptr noundef @c__1, ptr noundef %374, ptr noundef %375, ptr noundef %376)
  br label %377

377:                                              ; preds = %357, %353
  br label %378

378:                                              ; preds = %377, %333
  %379 = load ptr, ptr %11, align 8, !tbaa !5
  %380 = load i32, ptr %23, align 4, !tbaa !9
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds float, ptr %379, i64 %381
  %383 = load float, ptr %382, align 4, !tbaa !15
  store float %383, ptr %21, align 4, !tbaa !15
  %384 = load float, ptr %21, align 4, !tbaa !15
  %385 = fcmp oge float %384, 0.000000e+00
  br i1 %385, label %386, label %388

386:                                              ; preds = %378
  %387 = load float, ptr %21, align 4, !tbaa !15
  br label %391

388:                                              ; preds = %378
  %389 = load float, ptr %21, align 4, !tbaa !15
  %390 = fneg float %389
  br label %391

391:                                              ; preds = %388, %386
  %392 = phi float [ %387, %386 ], [ %390, %388 ]
  %393 = load ptr, ptr %11, align 8, !tbaa !5
  %394 = load i32, ptr %32, align 4, !tbaa !9
  %395 = sext i32 %394 to i64
  %396 = getelementptr inbounds float, ptr %393, i64 %395
  %397 = load float, ptr %396, align 4, !tbaa !15
  store float %397, ptr %22, align 4, !tbaa !15
  %398 = load float, ptr %22, align 4, !tbaa !15
  %399 = fcmp oge float %398, 0.000000e+00
  br i1 %399, label %400, label %402

400:                                              ; preds = %391
  %401 = load float, ptr %22, align 4, !tbaa !15
  br label %405

402:                                              ; preds = %391
  %403 = load float, ptr %22, align 4, !tbaa !15
  %404 = fneg float %403
  br label %405

405:                                              ; preds = %402, %400
  %406 = phi float [ %401, %400 ], [ %404, %402 ]
  %407 = fcmp olt float %392, %406
  br i1 %407, label %408, label %411

408:                                              ; preds = %405
  %409 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %409, ptr %23, align 4, !tbaa !9
  %410 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %410, ptr %32, align 4, !tbaa !9
  br label %411

411:                                              ; preds = %408, %405
  %412 = load i32, ptr %23, align 4, !tbaa !9
  %413 = load i32, ptr %32, align 4, !tbaa !9
  %414 = icmp sgt i32 %412, %413
  br i1 %414, label %415, label %817

415:                                              ; preds = %411
  br label %416

416:                                              ; preds = %815, %791, %601, %415
  %417 = load i32, ptr %32, align 4, !tbaa !9
  %418 = load i32, ptr %23, align 4, !tbaa !9
  %419 = icmp ne i32 %417, %418
  br i1 %419, label %420, label %488

420:                                              ; preds = %416
  %421 = load i32, ptr %23, align 4, !tbaa !9
  %422 = sub nsw i32 %421, 1
  store i32 %422, ptr %39, align 4, !tbaa !9
  %423 = load i32, ptr %39, align 4, !tbaa !9
  store i32 %423, ptr %19, align 4, !tbaa !9
  %424 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %424, ptr %33, align 4, !tbaa !9
  br label %425

425:                                              ; preds = %484, %420
  %426 = load i32, ptr %33, align 4, !tbaa !9
  %427 = load i32, ptr %19, align 4, !tbaa !9
  %428 = icmp sle i32 %426, %427
  br i1 %428, label %429, label %487

429:                                              ; preds = %425
  %430 = load ptr, ptr %12, align 8, !tbaa !5
  %431 = load i32, ptr %33, align 4, !tbaa !9
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds float, ptr %430, i64 %432
  %434 = load float, ptr %433, align 4, !tbaa !15
  store float %434, ptr %21, align 4, !tbaa !15
  %435 = load float, ptr %21, align 4, !tbaa !15
  %436 = fcmp oge float %435, 0.000000e+00
  br i1 %436, label %437, label %439

437:                                              ; preds = %429
  %438 = load float, ptr %21, align 4, !tbaa !15
  br label %442

439:                                              ; preds = %429
  %440 = load float, ptr %21, align 4, !tbaa !15
  %441 = fneg float %440
  br label %442

442:                                              ; preds = %439, %437
  %443 = phi float [ %438, %437 ], [ %441, %439 ]
  store float %443, ptr %22, align 4, !tbaa !15
  %444 = load float, ptr %22, align 4, !tbaa !15
  %445 = load float, ptr %22, align 4, !tbaa !15
  %446 = fmul float %444, %445
  store float %446, ptr %58, align 4, !tbaa !15
  %447 = load float, ptr %58, align 4, !tbaa !15
  %448 = load float, ptr %59, align 4, !tbaa !15
  %449 = load ptr, ptr %11, align 8, !tbaa !5
  %450 = load i32, ptr %33, align 4, !tbaa !9
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds float, ptr %449, i64 %451
  %453 = load float, ptr %452, align 4, !tbaa !15
  store float %453, ptr %21, align 4, !tbaa !15
  %454 = load float, ptr %21, align 4, !tbaa !15
  %455 = fcmp oge float %454, 0.000000e+00
  br i1 %455, label %456, label %458

456:                                              ; preds = %442
  %457 = load float, ptr %21, align 4, !tbaa !15
  br label %461

458:                                              ; preds = %442
  %459 = load float, ptr %21, align 4, !tbaa !15
  %460 = fneg float %459
  br label %461

461:                                              ; preds = %458, %456
  %462 = phi float [ %457, %456 ], [ %460, %458 ]
  %463 = fmul float %448, %462
  %464 = load ptr, ptr %11, align 8, !tbaa !5
  %465 = load i32, ptr %33, align 4, !tbaa !9
  %466 = add nsw i32 %465, 1
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds float, ptr %464, i64 %467
  %469 = load float, ptr %468, align 4, !tbaa !15
  store float %469, ptr %22, align 4, !tbaa !15
  %470 = load float, ptr %22, align 4, !tbaa !15
  %471 = fcmp oge float %470, 0.000000e+00
  br i1 %471, label %472, label %474

472:                                              ; preds = %461
  %473 = load float, ptr %22, align 4, !tbaa !15
  br label %477

474:                                              ; preds = %461
  %475 = load float, ptr %22, align 4, !tbaa !15
  %476 = fneg float %475
  br label %477

477:                                              ; preds = %474, %472
  %478 = phi float [ %473, %472 ], [ %476, %474 ]
  %479 = load float, ptr %44, align 4, !tbaa !15
  %480 = call float @llvm.fmuladd.f32(float %463, float %478, float %479)
  %481 = fcmp ole float %447, %480
  br i1 %481, label %482, label %483

482:                                              ; preds = %477
  br label %490

483:                                              ; preds = %477
  br label %484

484:                                              ; preds = %483
  %485 = load i32, ptr %33, align 4, !tbaa !9
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr %33, align 4, !tbaa !9
  br label %425, !llvm.loop !18

487:                                              ; preds = %425
  br label %488

488:                                              ; preds = %487, %416
  %489 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %489, ptr %33, align 4, !tbaa !9
  br label %490

490:                                              ; preds = %488, %482
  %491 = load i32, ptr %33, align 4, !tbaa !9
  %492 = load i32, ptr %23, align 4, !tbaa !9
  %493 = icmp slt i32 %491, %492
  br i1 %493, label %494, label %499

494:                                              ; preds = %490
  %495 = load ptr, ptr %12, align 8, !tbaa !5
  %496 = load i32, ptr %33, align 4, !tbaa !9
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds float, ptr %495, i64 %497
  store float 0.000000e+00, ptr %498, align 4, !tbaa !15
  br label %499

499:                                              ; preds = %494, %490
  %500 = load ptr, ptr %11, align 8, !tbaa !5
  %501 = load i32, ptr %32, align 4, !tbaa !9
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds float, ptr %500, i64 %502
  %504 = load float, ptr %503, align 4, !tbaa !15
  store float %504, ptr %34, align 4, !tbaa !15
  %505 = load i32, ptr %33, align 4, !tbaa !9
  %506 = load i32, ptr %32, align 4, !tbaa !9
  %507 = icmp eq i32 %505, %506
  br i1 %507, label %508, label %509

508:                                              ; preds = %499
  br label %804

509:                                              ; preds = %499
  %510 = load i32, ptr %33, align 4, !tbaa !9
  %511 = load i32, ptr %32, align 4, !tbaa !9
  %512 = add nsw i32 %511, 1
  %513 = icmp eq i32 %510, %512
  br i1 %513, label %514, label %603

514:                                              ; preds = %509
  %515 = load i32, ptr %49, align 4, !tbaa !9
  %516 = icmp sgt i32 %515, 0
  br i1 %516, label %517, label %566

517:                                              ; preds = %514
  %518 = load ptr, ptr %11, align 8, !tbaa !5
  %519 = load i32, ptr %32, align 4, !tbaa !9
  %520 = sext i32 %519 to i64
  %521 = getelementptr inbounds float, ptr %518, i64 %520
  %522 = load ptr, ptr %12, align 8, !tbaa !5
  %523 = load i32, ptr %32, align 4, !tbaa !9
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds float, ptr %522, i64 %524
  %526 = load ptr, ptr %11, align 8, !tbaa !5
  %527 = load i32, ptr %32, align 4, !tbaa !9
  %528 = add nsw i32 %527, 1
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds float, ptr %526, i64 %529
  call void @slaev2_(ptr noundef %521, ptr noundef %525, ptr noundef %530, ptr noundef %54, ptr noundef %55, ptr noundef %26, ptr noundef %36)
  %531 = load float, ptr %26, align 4, !tbaa !15
  %532 = load ptr, ptr %15, align 8, !tbaa !5
  %533 = load i32, ptr %32, align 4, !tbaa !9
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds float, ptr %532, i64 %534
  store float %531, ptr %535, align 4, !tbaa !15
  %536 = load float, ptr %36, align 4, !tbaa !15
  %537 = load ptr, ptr %15, align 8, !tbaa !5
  %538 = load ptr, ptr %10, align 8, !tbaa !5
  %539 = load i32, ptr %538, align 4, !tbaa !9
  %540 = sub nsw i32 %539, 1
  %541 = load i32, ptr %32, align 4, !tbaa !9
  %542 = add nsw i32 %540, %541
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds float, ptr %537, i64 %543
  store float %536, ptr %544, align 4, !tbaa !15
  %545 = load ptr, ptr %10, align 8, !tbaa !5
  %546 = load ptr, ptr %15, align 8, !tbaa !5
  %547 = load i32, ptr %32, align 4, !tbaa !9
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds float, ptr %546, i64 %548
  %550 = load ptr, ptr %15, align 8, !tbaa !5
  %551 = load ptr, ptr %10, align 8, !tbaa !5
  %552 = load i32, ptr %551, align 4, !tbaa !9
  %553 = sub nsw i32 %552, 1
  %554 = load i32, ptr %32, align 4, !tbaa !9
  %555 = add nsw i32 %553, %554
  %556 = sext i32 %555 to i64
  %557 = getelementptr inbounds float, ptr %550, i64 %556
  %558 = load ptr, ptr %13, align 8, !tbaa !5
  %559 = load i32, ptr %32, align 4, !tbaa !9
  %560 = load i32, ptr %17, align 4, !tbaa !9
  %561 = mul nsw i32 %559, %560
  %562 = add nsw i32 %561, 1
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds %struct.complex, ptr %558, i64 %563
  %565 = load ptr, ptr %14, align 8, !tbaa !5
  call void @clasr_(ptr noundef @.str.8, ptr noundef @.str.1, ptr noundef @.str.9, ptr noundef %545, ptr noundef @c__2, ptr noundef %549, ptr noundef %557, ptr noundef %564, ptr noundef %565)
  br label %580

566:                                              ; preds = %514
  %567 = load ptr, ptr %11, align 8, !tbaa !5
  %568 = load i32, ptr %32, align 4, !tbaa !9
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds float, ptr %567, i64 %569
  %571 = load ptr, ptr %12, align 8, !tbaa !5
  %572 = load i32, ptr %32, align 4, !tbaa !9
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds float, ptr %571, i64 %573
  %575 = load ptr, ptr %11, align 8, !tbaa !5
  %576 = load i32, ptr %32, align 4, !tbaa !9
  %577 = add nsw i32 %576, 1
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds float, ptr %575, i64 %578
  call void @slae2_(ptr noundef %570, ptr noundef %574, ptr noundef %579, ptr noundef %54, ptr noundef %55)
  br label %580

580:                                              ; preds = %566, %517
  %581 = load float, ptr %54, align 4, !tbaa !15
  %582 = load ptr, ptr %11, align 8, !tbaa !5
  %583 = load i32, ptr %32, align 4, !tbaa !9
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds float, ptr %582, i64 %584
  store float %581, ptr %585, align 4, !tbaa !15
  %586 = load float, ptr %55, align 4, !tbaa !15
  %587 = load ptr, ptr %11, align 8, !tbaa !5
  %588 = load i32, ptr %32, align 4, !tbaa !9
  %589 = add nsw i32 %588, 1
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds float, ptr %587, i64 %590
  store float %586, ptr %591, align 4, !tbaa !15
  %592 = load ptr, ptr %12, align 8, !tbaa !5
  %593 = load i32, ptr %32, align 4, !tbaa !9
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  store float 0.000000e+00, ptr %595, align 4, !tbaa !15
  %596 = load i32, ptr %32, align 4, !tbaa !9
  %597 = add nsw i32 %596, 2
  store i32 %597, ptr %32, align 4, !tbaa !9
  %598 = load i32, ptr %32, align 4, !tbaa !9
  %599 = load i32, ptr %23, align 4, !tbaa !9
  %600 = icmp sle i32 %598, %599
  br i1 %600, label %601, label %602

601:                                              ; preds = %580
  br label %416

602:                                              ; preds = %580
  br label %1224

603:                                              ; preds = %509
  %604 = load i32, ptr %24, align 4, !tbaa !9
  %605 = load i32, ptr %48, align 4, !tbaa !9
  %606 = icmp eq i32 %604, %605
  br i1 %606, label %607, label %608

607:                                              ; preds = %603
  br label %1224

608:                                              ; preds = %603
  %609 = load i32, ptr %24, align 4, !tbaa !9
  %610 = add nsw i32 %609, 1
  store i32 %610, ptr %24, align 4, !tbaa !9
  %611 = load ptr, ptr %11, align 8, !tbaa !5
  %612 = load i32, ptr %32, align 4, !tbaa !9
  %613 = add nsw i32 %612, 1
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds float, ptr %611, i64 %614
  %616 = load float, ptr %615, align 4, !tbaa !15
  %617 = load float, ptr %34, align 4, !tbaa !15
  %618 = fsub float %616, %617
  %619 = load ptr, ptr %12, align 8, !tbaa !5
  %620 = load i32, ptr %32, align 4, !tbaa !9
  %621 = sext i32 %620 to i64
  %622 = getelementptr inbounds float, ptr %619, i64 %621
  %623 = load float, ptr %622, align 4, !tbaa !15
  %624 = fmul float %623, 2.000000e+00
  %625 = fdiv float %618, %624
  store float %625, ptr %28, align 4, !tbaa !15
  %626 = call float @slapy2_(ptr noundef %28, ptr noundef @c_b41)
  store float %626, ptr %35, align 4, !tbaa !15
  %627 = load ptr, ptr %11, align 8, !tbaa !5
  %628 = load i32, ptr %33, align 4, !tbaa !9
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds float, ptr %627, i64 %629
  %631 = load float, ptr %630, align 4, !tbaa !15
  %632 = load float, ptr %34, align 4, !tbaa !15
  %633 = fsub float %631, %632
  %634 = load ptr, ptr %12, align 8, !tbaa !5
  %635 = load i32, ptr %32, align 4, !tbaa !9
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds float, ptr %634, i64 %636
  %638 = load float, ptr %637, align 4, !tbaa !15
  %639 = load float, ptr %28, align 4, !tbaa !15
  %640 = load float, ptr %28, align 4, !tbaa !15
  %641 = fcmp oge float %640, 0.000000e+00
  br i1 %641, label %642, label %652

642:                                              ; preds = %608
  %643 = load float, ptr %35, align 4, !tbaa !15
  %644 = fcmp oge float %643, 0.000000e+00
  br i1 %644, label %645, label %647

645:                                              ; preds = %642
  %646 = load float, ptr %35, align 4, !tbaa !15
  br label %650

647:                                              ; preds = %642
  %648 = load float, ptr %35, align 4, !tbaa !15
  %649 = fneg float %648
  br label %650

650:                                              ; preds = %647, %645
  %651 = phi float [ %646, %645 ], [ %649, %647 ]
  br label %663

652:                                              ; preds = %608
  %653 = load float, ptr %35, align 4, !tbaa !15
  %654 = fcmp oge float %653, 0.000000e+00
  br i1 %654, label %655, label %657

655:                                              ; preds = %652
  %656 = load float, ptr %35, align 4, !tbaa !15
  br label %660

657:                                              ; preds = %652
  %658 = load float, ptr %35, align 4, !tbaa !15
  %659 = fneg float %658
  br label %660

660:                                              ; preds = %657, %655
  %661 = phi float [ %656, %655 ], [ %659, %657 ]
  %662 = fneg float %661
  br label %663

663:                                              ; preds = %660, %650
  %664 = phi float [ %651, %650 ], [ %662, %660 ]
  %665 = fadd float %639, %664
  %666 = fdiv float %638, %665
  %667 = fadd float %633, %666
  store float %667, ptr %28, align 4, !tbaa !15
  store float 1.000000e+00, ptr %36, align 4, !tbaa !15
  store float 1.000000e+00, ptr %26, align 4, !tbaa !15
  store float 0.000000e+00, ptr %34, align 4, !tbaa !15
  %668 = load i32, ptr %33, align 4, !tbaa !9
  %669 = sub nsw i32 %668, 1
  store i32 %669, ptr %52, align 4, !tbaa !9
  %670 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %670, ptr %19, align 4, !tbaa !9
  %671 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %671, ptr %29, align 4, !tbaa !9
  br label %672

672:                                              ; preds = %759, %663
  %673 = load i32, ptr %29, align 4, !tbaa !9
  %674 = load i32, ptr %19, align 4, !tbaa !9
  %675 = icmp sge i32 %673, %674
  br i1 %675, label %676, label %762

676:                                              ; preds = %672
  %677 = load float, ptr %36, align 4, !tbaa !15
  %678 = load ptr, ptr %12, align 8, !tbaa !5
  %679 = load i32, ptr %29, align 4, !tbaa !9
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds float, ptr %678, i64 %680
  %682 = load float, ptr %681, align 4, !tbaa !15
  %683 = fmul float %677, %682
  store float %683, ptr %27, align 4, !tbaa !15
  %684 = load float, ptr %26, align 4, !tbaa !15
  %685 = load ptr, ptr %12, align 8, !tbaa !5
  %686 = load i32, ptr %29, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %685, i64 %687
  %689 = load float, ptr %688, align 4, !tbaa !15
  %690 = fmul float %684, %689
  store float %690, ptr %25, align 4, !tbaa !15
  call void @slartg_(ptr noundef %28, ptr noundef %27, ptr noundef %26, ptr noundef %36, ptr noundef %35)
  %691 = load i32, ptr %29, align 4, !tbaa !9
  %692 = load i32, ptr %33, align 4, !tbaa !9
  %693 = sub nsw i32 %692, 1
  %694 = icmp ne i32 %691, %693
  br i1 %694, label %695, label %702

695:                                              ; preds = %676
  %696 = load float, ptr %35, align 4, !tbaa !15
  %697 = load ptr, ptr %12, align 8, !tbaa !5
  %698 = load i32, ptr %29, align 4, !tbaa !9
  %699 = add nsw i32 %698, 1
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds float, ptr %697, i64 %700
  store float %696, ptr %701, align 4, !tbaa !15
  br label %702

702:                                              ; preds = %695, %676
  %703 = load ptr, ptr %11, align 8, !tbaa !5
  %704 = load i32, ptr %29, align 4, !tbaa !9
  %705 = add nsw i32 %704, 1
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds float, ptr %703, i64 %706
  %708 = load float, ptr %707, align 4, !tbaa !15
  %709 = load float, ptr %34, align 4, !tbaa !15
  %710 = fsub float %708, %709
  store float %710, ptr %28, align 4, !tbaa !15
  %711 = load ptr, ptr %11, align 8, !tbaa !5
  %712 = load i32, ptr %29, align 4, !tbaa !9
  %713 = sext i32 %712 to i64
  %714 = getelementptr inbounds float, ptr %711, i64 %713
  %715 = load float, ptr %714, align 4, !tbaa !15
  %716 = load float, ptr %28, align 4, !tbaa !15
  %717 = fsub float %715, %716
  %718 = load float, ptr %36, align 4, !tbaa !15
  %719 = load float, ptr %26, align 4, !tbaa !15
  %720 = fmul float %719, 2.000000e+00
  %721 = load float, ptr %25, align 4, !tbaa !15
  %722 = fmul float %720, %721
  %723 = call float @llvm.fmuladd.f32(float %717, float %718, float %722)
  store float %723, ptr %35, align 4, !tbaa !15
  %724 = load float, ptr %36, align 4, !tbaa !15
  %725 = load float, ptr %35, align 4, !tbaa !15
  %726 = fmul float %724, %725
  store float %726, ptr %34, align 4, !tbaa !15
  %727 = load float, ptr %28, align 4, !tbaa !15
  %728 = load float, ptr %34, align 4, !tbaa !15
  %729 = fadd float %727, %728
  %730 = load ptr, ptr %11, align 8, !tbaa !5
  %731 = load i32, ptr %29, align 4, !tbaa !9
  %732 = add nsw i32 %731, 1
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds float, ptr %730, i64 %733
  store float %729, ptr %734, align 4, !tbaa !15
  %735 = load float, ptr %26, align 4, !tbaa !15
  %736 = load float, ptr %35, align 4, !tbaa !15
  %737 = load float, ptr %25, align 4, !tbaa !15
  %738 = fneg float %737
  %739 = call float @llvm.fmuladd.f32(float %735, float %736, float %738)
  store float %739, ptr %28, align 4, !tbaa !15
  %740 = load i32, ptr %49, align 4, !tbaa !9
  %741 = icmp sgt i32 %740, 0
  br i1 %741, label %742, label %758

742:                                              ; preds = %702
  %743 = load float, ptr %26, align 4, !tbaa !15
  %744 = load ptr, ptr %15, align 8, !tbaa !5
  %745 = load i32, ptr %29, align 4, !tbaa !9
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds float, ptr %744, i64 %746
  store float %743, ptr %747, align 4, !tbaa !15
  %748 = load float, ptr %36, align 4, !tbaa !15
  %749 = fneg float %748
  %750 = load ptr, ptr %15, align 8, !tbaa !5
  %751 = load ptr, ptr %10, align 8, !tbaa !5
  %752 = load i32, ptr %751, align 4, !tbaa !9
  %753 = sub nsw i32 %752, 1
  %754 = load i32, ptr %29, align 4, !tbaa !9
  %755 = add nsw i32 %753, %754
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds float, ptr %750, i64 %756
  store float %749, ptr %757, align 4, !tbaa !15
  br label %758

758:                                              ; preds = %742, %702
  br label %759

759:                                              ; preds = %758
  %760 = load i32, ptr %29, align 4, !tbaa !9
  %761 = add nsw i32 %760, -1
  store i32 %761, ptr %29, align 4, !tbaa !9
  br label %672, !llvm.loop !19

762:                                              ; preds = %672
  %763 = load i32, ptr %49, align 4, !tbaa !9
  %764 = icmp sgt i32 %763, 0
  br i1 %764, label %765, label %791

765:                                              ; preds = %762
  %766 = load i32, ptr %33, align 4, !tbaa !9
  %767 = load i32, ptr %32, align 4, !tbaa !9
  %768 = sub nsw i32 %766, %767
  %769 = add nsw i32 %768, 1
  store i32 %769, ptr %42, align 4, !tbaa !9
  %770 = load ptr, ptr %10, align 8, !tbaa !5
  %771 = load ptr, ptr %15, align 8, !tbaa !5
  %772 = load i32, ptr %32, align 4, !tbaa !9
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds float, ptr %771, i64 %773
  %775 = load ptr, ptr %15, align 8, !tbaa !5
  %776 = load ptr, ptr %10, align 8, !tbaa !5
  %777 = load i32, ptr %776, align 4, !tbaa !9
  %778 = sub nsw i32 %777, 1
  %779 = load i32, ptr %32, align 4, !tbaa !9
  %780 = add nsw i32 %778, %779
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds float, ptr %775, i64 %781
  %783 = load ptr, ptr %13, align 8, !tbaa !5
  %784 = load i32, ptr %32, align 4, !tbaa !9
  %785 = load i32, ptr %17, align 4, !tbaa !9
  %786 = mul nsw i32 %784, %785
  %787 = add nsw i32 %786, 1
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds %struct.complex, ptr %783, i64 %788
  %790 = load ptr, ptr %14, align 8, !tbaa !5
  call void @clasr_(ptr noundef @.str.8, ptr noundef @.str.1, ptr noundef @.str.9, ptr noundef %770, ptr noundef %42, ptr noundef %774, ptr noundef %782, ptr noundef %789, ptr noundef %790)
  br label %791

791:                                              ; preds = %765, %762
  %792 = load float, ptr %34, align 4, !tbaa !15
  %793 = load ptr, ptr %11, align 8, !tbaa !5
  %794 = load i32, ptr %32, align 4, !tbaa !9
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds float, ptr %793, i64 %795
  %797 = load float, ptr %796, align 4, !tbaa !15
  %798 = fsub float %797, %792
  store float %798, ptr %796, align 4, !tbaa !15
  %799 = load float, ptr %28, align 4, !tbaa !15
  %800 = load ptr, ptr %12, align 8, !tbaa !5
  %801 = load i32, ptr %32, align 4, !tbaa !9
  %802 = sext i32 %801 to i64
  %803 = getelementptr inbounds float, ptr %800, i64 %802
  store float %799, ptr %803, align 4, !tbaa !15
  br label %416

804:                                              ; preds = %508
  %805 = load float, ptr %34, align 4, !tbaa !15
  %806 = load ptr, ptr %11, align 8, !tbaa !5
  %807 = load i32, ptr %32, align 4, !tbaa !9
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds float, ptr %806, i64 %808
  store float %805, ptr %809, align 4, !tbaa !15
  %810 = load i32, ptr %32, align 4, !tbaa !9
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr %32, align 4, !tbaa !9
  %812 = load i32, ptr %32, align 4, !tbaa !9
  %813 = load i32, ptr %23, align 4, !tbaa !9
  %814 = icmp sle i32 %812, %813
  br i1 %814, label %815, label %816

815:                                              ; preds = %804
  br label %416

816:                                              ; preds = %804
  br label %1224

817:                                              ; preds = %411
  br label %818

818:                                              ; preds = %1222, %1198, %1009, %817
  %819 = load i32, ptr %32, align 4, !tbaa !9
  %820 = load i32, ptr %23, align 4, !tbaa !9
  %821 = icmp ne i32 %819, %820
  br i1 %821, label %822, label %891

822:                                              ; preds = %818
  %823 = load i32, ptr %23, align 4, !tbaa !9
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr %40, align 4, !tbaa !9
  %825 = load i32, ptr %40, align 4, !tbaa !9
  store i32 %825, ptr %19, align 4, !tbaa !9
  %826 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %826, ptr %33, align 4, !tbaa !9
  br label %827

827:                                              ; preds = %887, %822
  %828 = load i32, ptr %33, align 4, !tbaa !9
  %829 = load i32, ptr %19, align 4, !tbaa !9
  %830 = icmp sge i32 %828, %829
  br i1 %830, label %831, label %890

831:                                              ; preds = %827
  %832 = load ptr, ptr %12, align 8, !tbaa !5
  %833 = load i32, ptr %33, align 4, !tbaa !9
  %834 = sub nsw i32 %833, 1
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds float, ptr %832, i64 %835
  %837 = load float, ptr %836, align 4, !tbaa !15
  store float %837, ptr %21, align 4, !tbaa !15
  %838 = load float, ptr %21, align 4, !tbaa !15
  %839 = fcmp oge float %838, 0.000000e+00
  br i1 %839, label %840, label %842

840:                                              ; preds = %831
  %841 = load float, ptr %21, align 4, !tbaa !15
  br label %845

842:                                              ; preds = %831
  %843 = load float, ptr %21, align 4, !tbaa !15
  %844 = fneg float %843
  br label %845

845:                                              ; preds = %842, %840
  %846 = phi float [ %841, %840 ], [ %844, %842 ]
  store float %846, ptr %22, align 4, !tbaa !15
  %847 = load float, ptr %22, align 4, !tbaa !15
  %848 = load float, ptr %22, align 4, !tbaa !15
  %849 = fmul float %847, %848
  store float %849, ptr %58, align 4, !tbaa !15
  %850 = load float, ptr %58, align 4, !tbaa !15
  %851 = load float, ptr %59, align 4, !tbaa !15
  %852 = load ptr, ptr %11, align 8, !tbaa !5
  %853 = load i32, ptr %33, align 4, !tbaa !9
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds float, ptr %852, i64 %854
  %856 = load float, ptr %855, align 4, !tbaa !15
  store float %856, ptr %21, align 4, !tbaa !15
  %857 = load float, ptr %21, align 4, !tbaa !15
  %858 = fcmp oge float %857, 0.000000e+00
  br i1 %858, label %859, label %861

859:                                              ; preds = %845
  %860 = load float, ptr %21, align 4, !tbaa !15
  br label %864

861:                                              ; preds = %845
  %862 = load float, ptr %21, align 4, !tbaa !15
  %863 = fneg float %862
  br label %864

864:                                              ; preds = %861, %859
  %865 = phi float [ %860, %859 ], [ %863, %861 ]
  %866 = fmul float %851, %865
  %867 = load ptr, ptr %11, align 8, !tbaa !5
  %868 = load i32, ptr %33, align 4, !tbaa !9
  %869 = sub nsw i32 %868, 1
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds float, ptr %867, i64 %870
  %872 = load float, ptr %871, align 4, !tbaa !15
  store float %872, ptr %22, align 4, !tbaa !15
  %873 = load float, ptr %22, align 4, !tbaa !15
  %874 = fcmp oge float %873, 0.000000e+00
  br i1 %874, label %875, label %877

875:                                              ; preds = %864
  %876 = load float, ptr %22, align 4, !tbaa !15
  br label %880

877:                                              ; preds = %864
  %878 = load float, ptr %22, align 4, !tbaa !15
  %879 = fneg float %878
  br label %880

880:                                              ; preds = %877, %875
  %881 = phi float [ %876, %875 ], [ %879, %877 ]
  %882 = load float, ptr %44, align 4, !tbaa !15
  %883 = call float @llvm.fmuladd.f32(float %866, float %881, float %882)
  %884 = fcmp ole float %850, %883
  br i1 %884, label %885, label %886

885:                                              ; preds = %880
  br label %893

886:                                              ; preds = %880
  br label %887

887:                                              ; preds = %886
  %888 = load i32, ptr %33, align 4, !tbaa !9
  %889 = add nsw i32 %888, -1
  store i32 %889, ptr %33, align 4, !tbaa !9
  br label %827, !llvm.loop !20

890:                                              ; preds = %827
  br label %891

891:                                              ; preds = %890, %818
  %892 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %892, ptr %33, align 4, !tbaa !9
  br label %893

893:                                              ; preds = %891, %885
  %894 = load i32, ptr %33, align 4, !tbaa !9
  %895 = load i32, ptr %23, align 4, !tbaa !9
  %896 = icmp sgt i32 %894, %895
  br i1 %896, label %897, label %903

897:                                              ; preds = %893
  %898 = load ptr, ptr %12, align 8, !tbaa !5
  %899 = load i32, ptr %33, align 4, !tbaa !9
  %900 = sub nsw i32 %899, 1
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds float, ptr %898, i64 %901
  store float 0.000000e+00, ptr %902, align 4, !tbaa !15
  br label %903

903:                                              ; preds = %897, %893
  %904 = load ptr, ptr %11, align 8, !tbaa !5
  %905 = load i32, ptr %32, align 4, !tbaa !9
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds float, ptr %904, i64 %906
  %908 = load float, ptr %907, align 4, !tbaa !15
  store float %908, ptr %34, align 4, !tbaa !15
  %909 = load i32, ptr %33, align 4, !tbaa !9
  %910 = load i32, ptr %32, align 4, !tbaa !9
  %911 = icmp eq i32 %909, %910
  br i1 %911, label %912, label %913

912:                                              ; preds = %903
  br label %1211

913:                                              ; preds = %903
  %914 = load i32, ptr %33, align 4, !tbaa !9
  %915 = load i32, ptr %32, align 4, !tbaa !9
  %916 = sub nsw i32 %915, 1
  %917 = icmp eq i32 %914, %916
  br i1 %917, label %918, label %1011

918:                                              ; preds = %913
  %919 = load i32, ptr %49, align 4, !tbaa !9
  %920 = icmp sgt i32 %919, 0
  br i1 %920, label %921, label %972

921:                                              ; preds = %918
  %922 = load ptr, ptr %11, align 8, !tbaa !5
  %923 = load i32, ptr %32, align 4, !tbaa !9
  %924 = sub nsw i32 %923, 1
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds float, ptr %922, i64 %925
  %927 = load ptr, ptr %12, align 8, !tbaa !5
  %928 = load i32, ptr %32, align 4, !tbaa !9
  %929 = sub nsw i32 %928, 1
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds float, ptr %927, i64 %930
  %932 = load ptr, ptr %11, align 8, !tbaa !5
  %933 = load i32, ptr %32, align 4, !tbaa !9
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds float, ptr %932, i64 %934
  call void @slaev2_(ptr noundef %926, ptr noundef %931, ptr noundef %935, ptr noundef %54, ptr noundef %55, ptr noundef %26, ptr noundef %36)
  %936 = load float, ptr %26, align 4, !tbaa !15
  %937 = load ptr, ptr %15, align 8, !tbaa !5
  %938 = load i32, ptr %33, align 4, !tbaa !9
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds float, ptr %937, i64 %939
  store float %936, ptr %940, align 4, !tbaa !15
  %941 = load float, ptr %36, align 4, !tbaa !15
  %942 = load ptr, ptr %15, align 8, !tbaa !5
  %943 = load ptr, ptr %10, align 8, !tbaa !5
  %944 = load i32, ptr %943, align 4, !tbaa !9
  %945 = sub nsw i32 %944, 1
  %946 = load i32, ptr %33, align 4, !tbaa !9
  %947 = add nsw i32 %945, %946
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds float, ptr %942, i64 %948
  store float %941, ptr %949, align 4, !tbaa !15
  %950 = load ptr, ptr %10, align 8, !tbaa !5
  %951 = load ptr, ptr %15, align 8, !tbaa !5
  %952 = load i32, ptr %33, align 4, !tbaa !9
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds float, ptr %951, i64 %953
  %955 = load ptr, ptr %15, align 8, !tbaa !5
  %956 = load ptr, ptr %10, align 8, !tbaa !5
  %957 = load i32, ptr %956, align 4, !tbaa !9
  %958 = sub nsw i32 %957, 1
  %959 = load i32, ptr %33, align 4, !tbaa !9
  %960 = add nsw i32 %958, %959
  %961 = sext i32 %960 to i64
  %962 = getelementptr inbounds float, ptr %955, i64 %961
  %963 = load ptr, ptr %13, align 8, !tbaa !5
  %964 = load i32, ptr %32, align 4, !tbaa !9
  %965 = sub nsw i32 %964, 1
  %966 = load i32, ptr %17, align 4, !tbaa !9
  %967 = mul nsw i32 %965, %966
  %968 = add nsw i32 %967, 1
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds %struct.complex, ptr %963, i64 %969
  %971 = load ptr, ptr %14, align 8, !tbaa !5
  call void @clasr_(ptr noundef @.str.8, ptr noundef @.str.1, ptr noundef @.str.10, ptr noundef %950, ptr noundef @c__2, ptr noundef %954, ptr noundef %962, ptr noundef %970, ptr noundef %971)
  br label %987

972:                                              ; preds = %918
  %973 = load ptr, ptr %11, align 8, !tbaa !5
  %974 = load i32, ptr %32, align 4, !tbaa !9
  %975 = sub nsw i32 %974, 1
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds float, ptr %973, i64 %976
  %978 = load ptr, ptr %12, align 8, !tbaa !5
  %979 = load i32, ptr %32, align 4, !tbaa !9
  %980 = sub nsw i32 %979, 1
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds float, ptr %978, i64 %981
  %983 = load ptr, ptr %11, align 8, !tbaa !5
  %984 = load i32, ptr %32, align 4, !tbaa !9
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds float, ptr %983, i64 %985
  call void @slae2_(ptr noundef %977, ptr noundef %982, ptr noundef %986, ptr noundef %54, ptr noundef %55)
  br label %987

987:                                              ; preds = %972, %921
  %988 = load float, ptr %54, align 4, !tbaa !15
  %989 = load ptr, ptr %11, align 8, !tbaa !5
  %990 = load i32, ptr %32, align 4, !tbaa !9
  %991 = sub nsw i32 %990, 1
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds float, ptr %989, i64 %992
  store float %988, ptr %993, align 4, !tbaa !15
  %994 = load float, ptr %55, align 4, !tbaa !15
  %995 = load ptr, ptr %11, align 8, !tbaa !5
  %996 = load i32, ptr %32, align 4, !tbaa !9
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds float, ptr %995, i64 %997
  store float %994, ptr %998, align 4, !tbaa !15
  %999 = load ptr, ptr %12, align 8, !tbaa !5
  %1000 = load i32, ptr %32, align 4, !tbaa !9
  %1001 = sub nsw i32 %1000, 1
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds float, ptr %999, i64 %1002
  store float 0.000000e+00, ptr %1003, align 4, !tbaa !15
  %1004 = load i32, ptr %32, align 4, !tbaa !9
  %1005 = add nsw i32 %1004, -2
  store i32 %1005, ptr %32, align 4, !tbaa !9
  %1006 = load i32, ptr %32, align 4, !tbaa !9
  %1007 = load i32, ptr %23, align 4, !tbaa !9
  %1008 = icmp sge i32 %1006, %1007
  br i1 %1008, label %1009, label %1010

1009:                                             ; preds = %987
  br label %818

1010:                                             ; preds = %987
  br label %1224

1011:                                             ; preds = %913
  %1012 = load i32, ptr %24, align 4, !tbaa !9
  %1013 = load i32, ptr %48, align 4, !tbaa !9
  %1014 = icmp eq i32 %1012, %1013
  br i1 %1014, label %1015, label %1016

1015:                                             ; preds = %1011
  br label %1224

1016:                                             ; preds = %1011
  %1017 = load i32, ptr %24, align 4, !tbaa !9
  %1018 = add nsw i32 %1017, 1
  store i32 %1018, ptr %24, align 4, !tbaa !9
  %1019 = load ptr, ptr %11, align 8, !tbaa !5
  %1020 = load i32, ptr %32, align 4, !tbaa !9
  %1021 = sub nsw i32 %1020, 1
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds float, ptr %1019, i64 %1022
  %1024 = load float, ptr %1023, align 4, !tbaa !15
  %1025 = load float, ptr %34, align 4, !tbaa !15
  %1026 = fsub float %1024, %1025
  %1027 = load ptr, ptr %12, align 8, !tbaa !5
  %1028 = load i32, ptr %32, align 4, !tbaa !9
  %1029 = sub nsw i32 %1028, 1
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds float, ptr %1027, i64 %1030
  %1032 = load float, ptr %1031, align 4, !tbaa !15
  %1033 = fmul float %1032, 2.000000e+00
  %1034 = fdiv float %1026, %1033
  store float %1034, ptr %28, align 4, !tbaa !15
  %1035 = call float @slapy2_(ptr noundef %28, ptr noundef @c_b41)
  store float %1035, ptr %35, align 4, !tbaa !15
  %1036 = load ptr, ptr %11, align 8, !tbaa !5
  %1037 = load i32, ptr %33, align 4, !tbaa !9
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds float, ptr %1036, i64 %1038
  %1040 = load float, ptr %1039, align 4, !tbaa !15
  %1041 = load float, ptr %34, align 4, !tbaa !15
  %1042 = fsub float %1040, %1041
  %1043 = load ptr, ptr %12, align 8, !tbaa !5
  %1044 = load i32, ptr %32, align 4, !tbaa !9
  %1045 = sub nsw i32 %1044, 1
  %1046 = sext i32 %1045 to i64
  %1047 = getelementptr inbounds float, ptr %1043, i64 %1046
  %1048 = load float, ptr %1047, align 4, !tbaa !15
  %1049 = load float, ptr %28, align 4, !tbaa !15
  %1050 = load float, ptr %28, align 4, !tbaa !15
  %1051 = fcmp oge float %1050, 0.000000e+00
  br i1 %1051, label %1052, label %1062

1052:                                             ; preds = %1016
  %1053 = load float, ptr %35, align 4, !tbaa !15
  %1054 = fcmp oge float %1053, 0.000000e+00
  br i1 %1054, label %1055, label %1057

1055:                                             ; preds = %1052
  %1056 = load float, ptr %35, align 4, !tbaa !15
  br label %1060

1057:                                             ; preds = %1052
  %1058 = load float, ptr %35, align 4, !tbaa !15
  %1059 = fneg float %1058
  br label %1060

1060:                                             ; preds = %1057, %1055
  %1061 = phi float [ %1056, %1055 ], [ %1059, %1057 ]
  br label %1073

1062:                                             ; preds = %1016
  %1063 = load float, ptr %35, align 4, !tbaa !15
  %1064 = fcmp oge float %1063, 0.000000e+00
  br i1 %1064, label %1065, label %1067

1065:                                             ; preds = %1062
  %1066 = load float, ptr %35, align 4, !tbaa !15
  br label %1070

1067:                                             ; preds = %1062
  %1068 = load float, ptr %35, align 4, !tbaa !15
  %1069 = fneg float %1068
  br label %1070

1070:                                             ; preds = %1067, %1065
  %1071 = phi float [ %1066, %1065 ], [ %1069, %1067 ]
  %1072 = fneg float %1071
  br label %1073

1073:                                             ; preds = %1070, %1060
  %1074 = phi float [ %1061, %1060 ], [ %1072, %1070 ]
  %1075 = fadd float %1049, %1074
  %1076 = fdiv float %1048, %1075
  %1077 = fadd float %1042, %1076
  store float %1077, ptr %28, align 4, !tbaa !15
  store float 1.000000e+00, ptr %36, align 4, !tbaa !15
  store float 1.000000e+00, ptr %26, align 4, !tbaa !15
  store float 0.000000e+00, ptr %34, align 4, !tbaa !15
  %1078 = load i32, ptr %32, align 4, !tbaa !9
  %1079 = sub nsw i32 %1078, 1
  store i32 %1079, ptr %51, align 4, !tbaa !9
  %1080 = load i32, ptr %51, align 4, !tbaa !9
  store i32 %1080, ptr %19, align 4, !tbaa !9
  %1081 = load i32, ptr %33, align 4, !tbaa !9
  store i32 %1081, ptr %29, align 4, !tbaa !9
  br label %1082

1082:                                             ; preds = %1166, %1073
  %1083 = load i32, ptr %29, align 4, !tbaa !9
  %1084 = load i32, ptr %19, align 4, !tbaa !9
  %1085 = icmp sle i32 %1083, %1084
  br i1 %1085, label %1086, label %1169

1086:                                             ; preds = %1082
  %1087 = load float, ptr %36, align 4, !tbaa !15
  %1088 = load ptr, ptr %12, align 8, !tbaa !5
  %1089 = load i32, ptr %29, align 4, !tbaa !9
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds float, ptr %1088, i64 %1090
  %1092 = load float, ptr %1091, align 4, !tbaa !15
  %1093 = fmul float %1087, %1092
  store float %1093, ptr %27, align 4, !tbaa !15
  %1094 = load float, ptr %26, align 4, !tbaa !15
  %1095 = load ptr, ptr %12, align 8, !tbaa !5
  %1096 = load i32, ptr %29, align 4, !tbaa !9
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds float, ptr %1095, i64 %1097
  %1099 = load float, ptr %1098, align 4, !tbaa !15
  %1100 = fmul float %1094, %1099
  store float %1100, ptr %25, align 4, !tbaa !15
  call void @slartg_(ptr noundef %28, ptr noundef %27, ptr noundef %26, ptr noundef %36, ptr noundef %35)
  %1101 = load i32, ptr %29, align 4, !tbaa !9
  %1102 = load i32, ptr %33, align 4, !tbaa !9
  %1103 = icmp ne i32 %1101, %1102
  br i1 %1103, label %1104, label %1111

1104:                                             ; preds = %1086
  %1105 = load float, ptr %35, align 4, !tbaa !15
  %1106 = load ptr, ptr %12, align 8, !tbaa !5
  %1107 = load i32, ptr %29, align 4, !tbaa !9
  %1108 = sub nsw i32 %1107, 1
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds float, ptr %1106, i64 %1109
  store float %1105, ptr %1110, align 4, !tbaa !15
  br label %1111

1111:                                             ; preds = %1104, %1086
  %1112 = load ptr, ptr %11, align 8, !tbaa !5
  %1113 = load i32, ptr %29, align 4, !tbaa !9
  %1114 = sext i32 %1113 to i64
  %1115 = getelementptr inbounds float, ptr %1112, i64 %1114
  %1116 = load float, ptr %1115, align 4, !tbaa !15
  %1117 = load float, ptr %34, align 4, !tbaa !15
  %1118 = fsub float %1116, %1117
  store float %1118, ptr %28, align 4, !tbaa !15
  %1119 = load ptr, ptr %11, align 8, !tbaa !5
  %1120 = load i32, ptr %29, align 4, !tbaa !9
  %1121 = add nsw i32 %1120, 1
  %1122 = sext i32 %1121 to i64
  %1123 = getelementptr inbounds float, ptr %1119, i64 %1122
  %1124 = load float, ptr %1123, align 4, !tbaa !15
  %1125 = load float, ptr %28, align 4, !tbaa !15
  %1126 = fsub float %1124, %1125
  %1127 = load float, ptr %36, align 4, !tbaa !15
  %1128 = load float, ptr %26, align 4, !tbaa !15
  %1129 = fmul float %1128, 2.000000e+00
  %1130 = load float, ptr %25, align 4, !tbaa !15
  %1131 = fmul float %1129, %1130
  %1132 = call float @llvm.fmuladd.f32(float %1126, float %1127, float %1131)
  store float %1132, ptr %35, align 4, !tbaa !15
  %1133 = load float, ptr %36, align 4, !tbaa !15
  %1134 = load float, ptr %35, align 4, !tbaa !15
  %1135 = fmul float %1133, %1134
  store float %1135, ptr %34, align 4, !tbaa !15
  %1136 = load float, ptr %28, align 4, !tbaa !15
  %1137 = load float, ptr %34, align 4, !tbaa !15
  %1138 = fadd float %1136, %1137
  %1139 = load ptr, ptr %11, align 8, !tbaa !5
  %1140 = load i32, ptr %29, align 4, !tbaa !9
  %1141 = sext i32 %1140 to i64
  %1142 = getelementptr inbounds float, ptr %1139, i64 %1141
  store float %1138, ptr %1142, align 4, !tbaa !15
  %1143 = load float, ptr %26, align 4, !tbaa !15
  %1144 = load float, ptr %35, align 4, !tbaa !15
  %1145 = load float, ptr %25, align 4, !tbaa !15
  %1146 = fneg float %1145
  %1147 = call float @llvm.fmuladd.f32(float %1143, float %1144, float %1146)
  store float %1147, ptr %28, align 4, !tbaa !15
  %1148 = load i32, ptr %49, align 4, !tbaa !9
  %1149 = icmp sgt i32 %1148, 0
  br i1 %1149, label %1150, label %1165

1150:                                             ; preds = %1111
  %1151 = load float, ptr %26, align 4, !tbaa !15
  %1152 = load ptr, ptr %15, align 8, !tbaa !5
  %1153 = load i32, ptr %29, align 4, !tbaa !9
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds float, ptr %1152, i64 %1154
  store float %1151, ptr %1155, align 4, !tbaa !15
  %1156 = load float, ptr %36, align 4, !tbaa !15
  %1157 = load ptr, ptr %15, align 8, !tbaa !5
  %1158 = load ptr, ptr %10, align 8, !tbaa !5
  %1159 = load i32, ptr %1158, align 4, !tbaa !9
  %1160 = sub nsw i32 %1159, 1
  %1161 = load i32, ptr %29, align 4, !tbaa !9
  %1162 = add nsw i32 %1160, %1161
  %1163 = sext i32 %1162 to i64
  %1164 = getelementptr inbounds float, ptr %1157, i64 %1163
  store float %1156, ptr %1164, align 4, !tbaa !15
  br label %1165

1165:                                             ; preds = %1150, %1111
  br label %1166

1166:                                             ; preds = %1165
  %1167 = load i32, ptr %29, align 4, !tbaa !9
  %1168 = add nsw i32 %1167, 1
  store i32 %1168, ptr %29, align 4, !tbaa !9
  br label %1082, !llvm.loop !21

1169:                                             ; preds = %1082
  %1170 = load i32, ptr %49, align 4, !tbaa !9
  %1171 = icmp sgt i32 %1170, 0
  br i1 %1171, label %1172, label %1198

1172:                                             ; preds = %1169
  %1173 = load i32, ptr %32, align 4, !tbaa !9
  %1174 = load i32, ptr %33, align 4, !tbaa !9
  %1175 = sub nsw i32 %1173, %1174
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr %42, align 4, !tbaa !9
  %1177 = load ptr, ptr %10, align 8, !tbaa !5
  %1178 = load ptr, ptr %15, align 8, !tbaa !5
  %1179 = load i32, ptr %33, align 4, !tbaa !9
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds float, ptr %1178, i64 %1180
  %1182 = load ptr, ptr %15, align 8, !tbaa !5
  %1183 = load ptr, ptr %10, align 8, !tbaa !5
  %1184 = load i32, ptr %1183, align 4, !tbaa !9
  %1185 = sub nsw i32 %1184, 1
  %1186 = load i32, ptr %33, align 4, !tbaa !9
  %1187 = add nsw i32 %1185, %1186
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds float, ptr %1182, i64 %1188
  %1190 = load ptr, ptr %13, align 8, !tbaa !5
  %1191 = load i32, ptr %33, align 4, !tbaa !9
  %1192 = load i32, ptr %17, align 4, !tbaa !9
  %1193 = mul nsw i32 %1191, %1192
  %1194 = add nsw i32 %1193, 1
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds %struct.complex, ptr %1190, i64 %1195
  %1197 = load ptr, ptr %14, align 8, !tbaa !5
  call void @clasr_(ptr noundef @.str.8, ptr noundef @.str.1, ptr noundef @.str.10, ptr noundef %1177, ptr noundef %42, ptr noundef %1181, ptr noundef %1189, ptr noundef %1196, ptr noundef %1197)
  br label %1198

1198:                                             ; preds = %1172, %1169
  %1199 = load float, ptr %34, align 4, !tbaa !15
  %1200 = load ptr, ptr %11, align 8, !tbaa !5
  %1201 = load i32, ptr %32, align 4, !tbaa !9
  %1202 = sext i32 %1201 to i64
  %1203 = getelementptr inbounds float, ptr %1200, i64 %1202
  %1204 = load float, ptr %1203, align 4, !tbaa !15
  %1205 = fsub float %1204, %1199
  store float %1205, ptr %1203, align 4, !tbaa !15
  %1206 = load float, ptr %28, align 4, !tbaa !15
  %1207 = load ptr, ptr %12, align 8, !tbaa !5
  %1208 = load i32, ptr %51, align 4, !tbaa !9
  %1209 = sext i32 %1208 to i64
  %1210 = getelementptr inbounds float, ptr %1207, i64 %1209
  store float %1206, ptr %1210, align 4, !tbaa !15
  br label %818

1211:                                             ; preds = %912
  %1212 = load float, ptr %34, align 4, !tbaa !15
  %1213 = load ptr, ptr %11, align 8, !tbaa !5
  %1214 = load i32, ptr %32, align 4, !tbaa !9
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds float, ptr %1213, i64 %1215
  store float %1212, ptr %1216, align 4, !tbaa !15
  %1217 = load i32, ptr %32, align 4, !tbaa !9
  %1218 = add nsw i32 %1217, -1
  store i32 %1218, ptr %32, align 4, !tbaa !9
  %1219 = load i32, ptr %32, align 4, !tbaa !9
  %1220 = load i32, ptr %23, align 4, !tbaa !9
  %1221 = icmp sge i32 %1219, %1220
  br i1 %1221, label %1222, label %1223

1222:                                             ; preds = %1211
  br label %818

1223:                                             ; preds = %1211
  br label %1224

1224:                                             ; preds = %1223, %1015, %1010, %816, %607, %602
  %1225 = load i32, ptr %43, align 4, !tbaa !9
  %1226 = icmp eq i32 %1225, 1
  br i1 %1226, label %1227, label %1247

1227:                                             ; preds = %1224
  %1228 = load i32, ptr %46, align 4, !tbaa !9
  %1229 = load i32, ptr %57, align 4, !tbaa !9
  %1230 = sub nsw i32 %1228, %1229
  %1231 = add nsw i32 %1230, 1
  store i32 %1231, ptr %19, align 4, !tbaa !9
  %1232 = load ptr, ptr %11, align 8, !tbaa !5
  %1233 = load i32, ptr %57, align 4, !tbaa !9
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds float, ptr %1232, i64 %1234
  %1236 = load ptr, ptr %10, align 8, !tbaa !5
  %1237 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %50, ptr noundef %37, ptr noundef %19, ptr noundef @c__1, ptr noundef %1235, ptr noundef %1236, ptr noundef %1237)
  %1238 = load i32, ptr %46, align 4, !tbaa !9
  %1239 = load i32, ptr %57, align 4, !tbaa !9
  %1240 = sub nsw i32 %1238, %1239
  store i32 %1240, ptr %19, align 4, !tbaa !9
  %1241 = load ptr, ptr %12, align 8, !tbaa !5
  %1242 = load i32, ptr %57, align 4, !tbaa !9
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds float, ptr %1241, i64 %1243
  %1245 = load ptr, ptr %10, align 8, !tbaa !5
  %1246 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %50, ptr noundef %37, ptr noundef %19, ptr noundef @c__1, ptr noundef %1244, ptr noundef %1245, ptr noundef %1246)
  br label %1271

1247:                                             ; preds = %1224
  %1248 = load i32, ptr %43, align 4, !tbaa !9
  %1249 = icmp eq i32 %1248, 2
  br i1 %1249, label %1250, label %1270

1250:                                             ; preds = %1247
  %1251 = load i32, ptr %46, align 4, !tbaa !9
  %1252 = load i32, ptr %57, align 4, !tbaa !9
  %1253 = sub nsw i32 %1251, %1252
  %1254 = add nsw i32 %1253, 1
  store i32 %1254, ptr %19, align 4, !tbaa !9
  %1255 = load ptr, ptr %11, align 8, !tbaa !5
  %1256 = load i32, ptr %57, align 4, !tbaa !9
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds float, ptr %1255, i64 %1257
  %1259 = load ptr, ptr %10, align 8, !tbaa !5
  %1260 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %47, ptr noundef %37, ptr noundef %19, ptr noundef @c__1, ptr noundef %1258, ptr noundef %1259, ptr noundef %1260)
  %1261 = load i32, ptr %46, align 4, !tbaa !9
  %1262 = load i32, ptr %57, align 4, !tbaa !9
  %1263 = sub nsw i32 %1261, %1262
  store i32 %1263, ptr %19, align 4, !tbaa !9
  %1264 = load ptr, ptr %12, align 8, !tbaa !5
  %1265 = load i32, ptr %57, align 4, !tbaa !9
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds float, ptr %1264, i64 %1266
  %1268 = load ptr, ptr %10, align 8, !tbaa !5
  %1269 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %47, ptr noundef %37, ptr noundef %19, ptr noundef @c__1, ptr noundef %1267, ptr noundef %1268, ptr noundef %1269)
  br label %1270

1270:                                             ; preds = %1250, %1247
  br label %1271

1271:                                             ; preds = %1270, %1227
  %1272 = load i32, ptr %24, align 4, !tbaa !9
  %1273 = load i32, ptr %48, align 4, !tbaa !9
  %1274 = icmp eq i32 %1272, %1273
  br i1 %1274, label %1275, label %1299

1275:                                             ; preds = %1271
  %1276 = load ptr, ptr %10, align 8, !tbaa !5
  %1277 = load i32, ptr %1276, align 4, !tbaa !9
  %1278 = sub nsw i32 %1277, 1
  store i32 %1278, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %29, align 4, !tbaa !9
  br label %1279

1279:                                             ; preds = %1295, %1275
  %1280 = load i32, ptr %29, align 4, !tbaa !9
  %1281 = load i32, ptr %19, align 4, !tbaa !9
  %1282 = icmp sle i32 %1280, %1281
  br i1 %1282, label %1283, label %1298

1283:                                             ; preds = %1279
  %1284 = load ptr, ptr %12, align 8, !tbaa !5
  %1285 = load i32, ptr %29, align 4, !tbaa !9
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds float, ptr %1284, i64 %1286
  %1288 = load float, ptr %1287, align 4, !tbaa !15
  %1289 = fcmp une float %1288, 0.000000e+00
  br i1 %1289, label %1290, label %1294

1290:                                             ; preds = %1283
  %1291 = load ptr, ptr %16, align 8, !tbaa !5
  %1292 = load i32, ptr %1291, align 4, !tbaa !9
  %1293 = add nsw i32 %1292, 1
  store i32 %1293, ptr %1291, align 4, !tbaa !9
  br label %1294

1294:                                             ; preds = %1290, %1283
  br label %1295

1295:                                             ; preds = %1294
  %1296 = load i32, ptr %29, align 4, !tbaa !9
  %1297 = add nsw i32 %1296, 1
  store i32 %1297, ptr %29, align 4, !tbaa !9
  br label %1279, !llvm.loop !22

1298:                                             ; preds = %1279
  store i32 1, ptr %60, align 4
  br label %1390

1299:                                             ; preds = %1271
  br label %203

1300:                                             ; preds = %208
  %1301 = load i32, ptr %49, align 4, !tbaa !9
  %1302 = icmp eq i32 %1301, 0
  br i1 %1302, label %1303, label %1308

1303:                                             ; preds = %1300
  %1304 = load ptr, ptr %10, align 8, !tbaa !5
  %1305 = load ptr, ptr %11, align 8, !tbaa !5
  %1306 = getelementptr inbounds float, ptr %1305, i64 1
  %1307 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slasrt_(ptr noundef @.str.2, ptr noundef %1304, ptr noundef %1306, ptr noundef %1307)
  br label %1389

1308:                                             ; preds = %1300
  %1309 = load ptr, ptr %10, align 8, !tbaa !5
  %1310 = load i32, ptr %1309, align 4, !tbaa !9
  store i32 %1310, ptr %19, align 4, !tbaa !9
  store i32 2, ptr %41, align 4, !tbaa !9
  br label %1311

1311:                                             ; preds = %1385, %1308
  %1312 = load i32, ptr %41, align 4, !tbaa !9
  %1313 = load i32, ptr %19, align 4, !tbaa !9
  %1314 = icmp sle i32 %1312, %1313
  br i1 %1314, label %1315, label %1388

1315:                                             ; preds = %1311
  %1316 = load i32, ptr %41, align 4, !tbaa !9
  %1317 = sub nsw i32 %1316, 1
  store i32 %1317, ptr %29, align 4, !tbaa !9
  %1318 = load i32, ptr %29, align 4, !tbaa !9
  store i32 %1318, ptr %31, align 4, !tbaa !9
  %1319 = load ptr, ptr %11, align 8, !tbaa !5
  %1320 = load i32, ptr %29, align 4, !tbaa !9
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds float, ptr %1319, i64 %1321
  %1323 = load float, ptr %1322, align 4, !tbaa !15
  store float %1323, ptr %34, align 4, !tbaa !15
  %1324 = load ptr, ptr %10, align 8, !tbaa !5
  %1325 = load i32, ptr %1324, align 4, !tbaa !9
  store i32 %1325, ptr %20, align 4, !tbaa !9
  %1326 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %1326, ptr %30, align 4, !tbaa !9
  br label %1327

1327:                                             ; preds = %1347, %1315
  %1328 = load i32, ptr %30, align 4, !tbaa !9
  %1329 = load i32, ptr %20, align 4, !tbaa !9
  %1330 = icmp sle i32 %1328, %1329
  br i1 %1330, label %1331, label %1350

1331:                                             ; preds = %1327
  %1332 = load ptr, ptr %11, align 8, !tbaa !5
  %1333 = load i32, ptr %30, align 4, !tbaa !9
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds float, ptr %1332, i64 %1334
  %1336 = load float, ptr %1335, align 4, !tbaa !15
  %1337 = load float, ptr %34, align 4, !tbaa !15
  %1338 = fcmp olt float %1336, %1337
  br i1 %1338, label %1339, label %1346

1339:                                             ; preds = %1331
  %1340 = load i32, ptr %30, align 4, !tbaa !9
  store i32 %1340, ptr %31, align 4, !tbaa !9
  %1341 = load ptr, ptr %11, align 8, !tbaa !5
  %1342 = load i32, ptr %30, align 4, !tbaa !9
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds float, ptr %1341, i64 %1343
  %1345 = load float, ptr %1344, align 4, !tbaa !15
  store float %1345, ptr %34, align 4, !tbaa !15
  br label %1346

1346:                                             ; preds = %1339, %1331
  br label %1347

1347:                                             ; preds = %1346
  %1348 = load i32, ptr %30, align 4, !tbaa !9
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr %30, align 4, !tbaa !9
  br label %1327, !llvm.loop !23

1350:                                             ; preds = %1327
  %1351 = load i32, ptr %31, align 4, !tbaa !9
  %1352 = load i32, ptr %29, align 4, !tbaa !9
  %1353 = icmp ne i32 %1351, %1352
  br i1 %1353, label %1354, label %1384

1354:                                             ; preds = %1350
  %1355 = load ptr, ptr %11, align 8, !tbaa !5
  %1356 = load i32, ptr %29, align 4, !tbaa !9
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds float, ptr %1355, i64 %1357
  %1359 = load float, ptr %1358, align 4, !tbaa !15
  %1360 = load ptr, ptr %11, align 8, !tbaa !5
  %1361 = load i32, ptr %31, align 4, !tbaa !9
  %1362 = sext i32 %1361 to i64
  %1363 = getelementptr inbounds float, ptr %1360, i64 %1362
  store float %1359, ptr %1363, align 4, !tbaa !15
  %1364 = load float, ptr %34, align 4, !tbaa !15
  %1365 = load ptr, ptr %11, align 8, !tbaa !5
  %1366 = load i32, ptr %29, align 4, !tbaa !9
  %1367 = sext i32 %1366 to i64
  %1368 = getelementptr inbounds float, ptr %1365, i64 %1367
  store float %1364, ptr %1368, align 4, !tbaa !15
  %1369 = load ptr, ptr %10, align 8, !tbaa !5
  %1370 = load ptr, ptr %13, align 8, !tbaa !5
  %1371 = load i32, ptr %29, align 4, !tbaa !9
  %1372 = load i32, ptr %17, align 4, !tbaa !9
  %1373 = mul nsw i32 %1371, %1372
  %1374 = add nsw i32 %1373, 1
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds %struct.complex, ptr %1370, i64 %1375
  %1377 = load ptr, ptr %13, align 8, !tbaa !5
  %1378 = load i32, ptr %31, align 4, !tbaa !9
  %1379 = load i32, ptr %17, align 4, !tbaa !9
  %1380 = mul nsw i32 %1378, %1379
  %1381 = add nsw i32 %1380, 1
  %1382 = sext i32 %1381 to i64
  %1383 = getelementptr inbounds %struct.complex, ptr %1377, i64 %1382
  call void @cswap_(ptr noundef %1369, ptr noundef %1376, ptr noundef @c__1, ptr noundef %1383, ptr noundef @c__1)
  br label %1384

1384:                                             ; preds = %1354, %1350
  br label %1385

1385:                                             ; preds = %1384
  %1386 = load i32, ptr %41, align 4, !tbaa !9
  %1387 = add nsw i32 %1386, 1
  store i32 %1387, ptr %41, align 4, !tbaa !9
  br label %1311, !llvm.loop !24

1388:                                             ; preds = %1311
  br label %1389

1389:                                             ; preds = %1388, %1303
  store i32 1, ptr %60, align 4
  br label %1390

1390:                                             ; preds = %1389, %1298, %164, %143, %134
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  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 i32 @xerbla_(ptr noundef, ptr noundef, i32 noundef) #2

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

declare void @slartg_(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 = { 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 = !{!"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, !13, i64 0}
!12 = !{!"", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!12, !13, i64 4}
!15 = !{!13, !13, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !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 [7 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4
@c_b41 = external hidden global float, align 4
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @csteqr_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) local_unnamed_addr #0 {
  %9 = alloca i32, align 4
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca float, align 4
  %13 = alloca float, align 4
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca i32, align 4
  %17 = alloca float, align 4
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  %21 = getelementptr inbounds i8, ptr %2, i64 -4
  %22 = getelementptr inbounds i8, ptr %3, i64 -4
  %23 = load i32, ptr %5, align 4, !tbaa !5
  %24 = add nsw i32 %23, 1
  %narrow = xor i32 %23, -1
  %25 = sext i32 %narrow to i64
  %26 = getelementptr inbounds %struct.complex, ptr %4, i64 %25
  %27 = getelementptr inbounds i8, ptr %6, i64 -4
  store i32 0, ptr %7, align 4, !tbaa !5
  %28 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %.not.not = icmp eq i32 %28, 0
  br i1 %.not.not, label %29, label %.thread

29:                                               ; preds = %8
  %30 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %.not520 = icmp eq i32 %30, 0
  br i1 %.not520, label %31, label %.thread

31:                                               ; preds = %29
  %32 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %.not521 = icmp eq i32 %32, 0
  br i1 %.not521, label %.thread546.sink.split, label %.thread

.thread:                                          ; preds = %29, %8, %31
  %33 = phi i1 [ true, %31 ], [ false, %8 ], [ false, %29 ]
  %34 = load i32, ptr %1, align 4, !tbaa !5
  %35 = icmp slt i32 %34, 0
  br i1 %35, label %.thread546.sink.split, label %36

36:                                               ; preds = %.thread
  %37 = load i32, ptr %5, align 4, !tbaa !5
  %38 = icmp slt i32 %37, 1
  %39 = icmp ugt i32 %34, %37
  %or.cond = and i1 %.not.not, %39
  %or.cond759 = or i1 %38, %or.cond
  br i1 %or.cond759, label %.thread546.sink.split, label %40

40:                                               ; preds = %36
  %.pr = load i32, ptr %7, align 4, !tbaa !5
  %.not522 = icmp eq i32 %.pr, 0
  br i1 %.not522, label %44, label %.thread546

.thread546.sink.split:                            ; preds = %36, %.thread, %31
  %.sink = phi i32 [ -1, %31 ], [ -2, %.thread ], [ -6, %36 ]
  store i32 %.sink, ptr %7, align 4, !tbaa !5
  br label %.thread546

.thread546:                                       ; preds = %.thread546.sink.split, %40
  %41 = phi i32 [ %.pr, %40 ], [ %.sink, %.thread546.sink.split ]
  %42 = sub nsw i32 0, %41
  store i32 %42, ptr %9, align 4, !tbaa !5
  %43 = call i32 @xerbla_(ptr noundef nonnull @.str.3, ptr noundef nonnull %9, i32 noundef 6) #6
  br label %.loopexit

44:                                               ; preds = %40
  switch i32 %34, label %49 [
    i32 0, label %.loopexit
    i32 1, label %45
  ]

45:                                               ; preds = %44
  br i1 %33, label %46, label %.loopexit

46:                                               ; preds = %45
  store float 1.000000e+00, ptr %4, align 4, !tbaa !9
  %47 = sext i32 %24 to i64
  %48 = getelementptr inbounds %struct.complex, ptr %26, i64 %47, i32 1
  store float 0.000000e+00, ptr %48, align 4, !tbaa !12
  br label %.loopexit

49:                                               ; preds = %44
  %50 = tail call float @slamch_(ptr noundef nonnull @.str.4) #6
  %51 = fmul float %50, %50
  %52 = tail call float @slamch_(ptr noundef nonnull @.str.5) #6
  %53 = fdiv float 1.000000e+00, %52
  %54 = fpext float %53 to double
  %55 = tail call double @sqrt(double noundef %54) #6
  %56 = fdiv double %55, 3.000000e+00
  %57 = fptrunc double %56 to float
  store float %57, ptr %18, align 4, !tbaa !13
  %58 = fpext float %52 to double
  %59 = tail call double @sqrt(double noundef %58) #6
  %60 = fpext float %51 to double
  %61 = fdiv double %59, %60
  %62 = fptrunc double %61 to float
  store float %62, ptr %17, align 4, !tbaa !13
  br i1 %33, label %63, label %64

63:                                               ; preds = %49
  tail call void @claset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %4, ptr noundef nonnull %5) #6
  br label %64

64:                                               ; preds = %63, %49
  %65 = load i32, ptr %1, align 4, !tbaa !5
  %66 = mul i32 %65, 30
  %67 = add nsw i32 %65, -1
  %invariant.gep = getelementptr i8, ptr %3, i64 -8
  %68 = fpext float %50 to double
  %invariant.gep616 = getelementptr i8, ptr %26, i64 8
  br label %.outer565

.outer565:                                        ; preds = %432, %64
  %.0490.ph = phi i32 [ %111, %432 ], [ 1, %64 ]
  %.0481.ph = phi i32 [ %.3, %432 ], [ 0, %64 ]
  %69 = load i32, ptr %1, align 4, !tbaa !5
  %70 = icmp sgt i32 %.0490.ph, %69
  br i1 %70, label %.outer565._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.outer565, %.backedge
  %71 = phi i32 [ %113, %.backedge ], [ %69, %.outer565 ]
  %.0490605 = phi i32 [ %111, %.backedge ], [ %.0490.ph, %.outer565 ]
  %72 = icmp sgt i32 %.0490605, 1
  br i1 %72, label %73, label %75

73:                                               ; preds = %.lr.ph
  %74 = zext nneg i32 %.0490605 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %74
  store float 0.000000e+00, ptr %gep, align 4, !tbaa !13
  br label %75

75:                                               ; preds = %73, %.lr.ph
  %.not523.not = icmp slt i32 %.0490605, %65
  br i1 %.not523.not, label %76, label %.loopexit564

76:                                               ; preds = %75
  store i32 %67, ptr %9, align 4, !tbaa !5
  %77 = sext i32 %.0490605 to i64
  br label %78

78:                                               ; preds = %85, %76
  %indvars.iv = phi i64 [ %indvars.iv.next, %85 ], [ %77, %76 ]
  %79 = load i32, ptr %9, align 4, !tbaa !5
  %80 = sext i32 %79 to i64
  %.not524 = icmp sgt i64 %indvars.iv, %80
  br i1 %.not524, label %.loopexit563.loopexit, label %81

81:                                               ; preds = %78
  %82 = getelementptr inbounds float, ptr %22, i64 %indvars.iv
  %83 = load float, ptr %82, align 4, !tbaa !13
  %84 = fcmp oeq float %83, 0.000000e+00
  br i1 %84, label %.loopexit564.loopexit, label %85

85:                                               ; preds = %81
  %86 = fcmp oge float %83, 0.000000e+00
  %87 = fneg float %83
  %88 = select i1 %86, float %83, float %87
  %89 = fpext float %88 to double
  %90 = getelementptr inbounds float, ptr %21, i64 %indvars.iv
  %91 = load float, ptr %90, align 4, !tbaa !13
  %92 = fcmp oge float %91, 0.000000e+00
  %93 = fneg float %91
  %94 = select i1 %92, float %91, float %93
  %95 = fpext float %94 to double
  %96 = call double @sqrt(double noundef %95) #6
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %97 = getelementptr float, ptr %2, i64 %indvars.iv
  %98 = load float, ptr %97, align 4, !tbaa !13
  %99 = fcmp oge float %98, 0.000000e+00
  %100 = fneg float %98
  %101 = select i1 %99, float %98, float %100
  %102 = fpext float %101 to double
  %103 = call double @sqrt(double noundef %102) #6
  %104 = fmul double %96, %103
  %105 = fmul double %104, %68
  %106 = fcmp ult double %105, %89
  br i1 %106, label %78, label %107, !llvm.loop !14

107:                                              ; preds = %85
  %108 = getelementptr inbounds float, ptr %22, i64 %indvars.iv
  %109 = trunc nsw i64 %indvars.iv to i32
  store float 0.000000e+00, ptr %108, align 4, !tbaa !13
  br label %.loopexit564

.loopexit563.loopexit:                            ; preds = %78
  %.pre = load i32, ptr %1, align 4, !tbaa !5
  br label %.loopexit564

.loopexit564.loopexit:                            ; preds = %81
  %110 = trunc nsw i64 %indvars.iv to i32
  br label %.loopexit564

.loopexit564:                                     ; preds = %75, %.loopexit563.loopexit, %.loopexit564.loopexit, %107
  %.1496 = phi i32 [ %109, %107 ], [ %110, %.loopexit564.loopexit ], [ %.pre, %.loopexit563.loopexit ], [ %71, %75 ]
  %111 = add nsw i32 %.1496, 1
  %112 = icmp eq i32 %.1496, %.0490605
  br i1 %112, label %.backedge, label %114

.backedge:                                        ; preds = %.loopexit564, %114
  %113 = load i32, ptr %1, align 4, !tbaa !5
  %.not652 = icmp slt i32 %.1496, %113
  br i1 %.not652, label %.lr.ph, label %.outer565._crit_edge

114:                                              ; preds = %.loopexit564
  %115 = sub nsw i32 %.1496, %.0490605
  %116 = add nsw i32 %115, 1
  store i32 %116, ptr %9, align 4, !tbaa !5
  %117 = sext i32 %.0490605 to i64
  %118 = getelementptr inbounds float, ptr %21, i64 %117
  %119 = getelementptr inbounds float, ptr %22, i64 %117
  %120 = call float @slanst_(ptr noundef nonnull @.str.2, ptr noundef nonnull %9, ptr noundef nonnull %118, ptr noundef nonnull %119) #6
  store float %120, ptr %15, align 4, !tbaa !13
  %121 = fcmp oeq float %120, 0.000000e+00
  br i1 %121, label %.backedge, label %122

122:                                              ; preds = %114
  %123 = load float, ptr %18, align 4, !tbaa !13
  %124 = fcmp ule float %120, %123
  br i1 %124, label %125, label %.sink.split

125:                                              ; preds = %122
  %126 = load float, ptr %17, align 4, !tbaa !13
  %127 = fcmp olt float %120, %126
  br i1 %127, label %.sink.split, label %128

.sink.split:                                      ; preds = %125, %122
  %.sink798 = phi ptr [ %18, %122 ], [ %17, %125 ]
  store i32 %116, ptr %9, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %15, ptr noundef nonnull %.sink798, ptr noundef nonnull %9, ptr noundef nonnull @c__1, ptr noundef nonnull %118, ptr noundef nonnull %1, ptr noundef nonnull %7) #6
  store i32 %115, ptr %9, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %15, ptr noundef nonnull %.sink798, ptr noundef nonnull %9, ptr noundef nonnull @c__1, ptr noundef nonnull %119, ptr noundef nonnull %1, ptr noundef nonnull %7) #6
  br label %128

128:                                              ; preds = %.sink.split, %125
  %129 = phi i1 [ false, %125 ], [ %124, %.sink.split ]
  %130 = sext i32 %.1496 to i64
  %131 = getelementptr inbounds float, ptr %21, i64 %130
  %132 = load float, ptr %131, align 4, !tbaa !13
  %133 = fcmp oge float %132, 0.000000e+00
  %134 = fneg float %132
  %135 = select i1 %133, float %132, float %134
  %136 = load float, ptr %118, align 4, !tbaa !13
  %137 = fcmp oge float %136, 0.000000e+00
  %138 = fneg float %136
  %139 = select i1 %137, float %136, float %138
  %140 = fcmp olt float %135, %139
  %.0499 = select i1 %140, i32 %.1496, i32 %.0490605
  %.0480 = select i1 %140, i32 %.0490605, i32 %.1496
  %141 = icmp sgt i32 %.0480, %.0499
  br i1 %141, label %.preheader, label %.preheader559

.preheader559:                                    ; preds = %128
  %142 = add nsw i32 %.0480, 1
  %143 = sext i32 %.0480 to i64
  br label %.outer561

.preheader:                                       ; preds = %128
  %144 = add nsw i32 %.0480, -1
  br label %.outer

.outer:                                           ; preds = %.outer.backedge, %.preheader
  %.1500.ph = phi i32 [ %.0499, %.preheader ], [ %.1500.ph.be, %.outer.backedge ]
  %.1.ph = phi i32 [ %.0481.ph, %.preheader ], [ %.1, %.outer.backedge ]
  %.not531 = icmp eq i32 %.1500.ph, %.0480
  %145 = sext i32 %.1500.ph to i64
  %146 = getelementptr inbounds float, ptr %21, i64 %145
  %147 = add nsw i32 %.1500.ph, 1
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds float, ptr %21, i64 %148
  %150 = getelementptr inbounds float, ptr %22, i64 %145
  %151 = getelementptr inbounds float, ptr %27, i64 %145
  %152 = add i32 %.1500.ph, -1
  %153 = mul nsw i32 %.1500.ph, %23
  %154 = sext i32 %153 to i64
  %gep628 = getelementptr %struct.complex, ptr %invariant.gep616, i64 %154
  %smax = call i32 @llvm.smax.i32(i32 %.0480, i32 %.1500.ph)
  %wide.trip.count = sext i32 %smax to i64
  br label %155

155:                                              ; preds = %.outer, %272
  %.1 = phi i32 [ %202, %272 ], [ %.1.ph, %.outer ]
  br i1 %.not531, label %.thread549, label %156

156:                                              ; preds = %155
  store i32 %144, ptr %9, align 4, !tbaa !5
  br label %157

157:                                              ; preds = %158, %156
  %indvars.iv698 = phi i64 [ %indvars.iv.next699, %158 ], [ %145, %156 ]
  %exitcond.not = icmp eq i64 %indvars.iv698, %wide.trip.count
  br i1 %exitcond.not, label %.thread549, label %158

158:                                              ; preds = %157
  %159 = getelementptr inbounds float, ptr %22, i64 %indvars.iv698
  %160 = load float, ptr %159, align 4, !tbaa !13
  %161 = fcmp oge float %160, 0.000000e+00
  %162 = fneg float %160
  %163 = select i1 %161, float %160, float %162
  %164 = fmul float %163, %163
  %165 = getelementptr inbounds float, ptr %21, i64 %indvars.iv698
  %166 = load float, ptr %165, align 4, !tbaa !13
  %167 = fcmp oge float %166, 0.000000e+00
  %168 = fneg float %166
  %169 = select i1 %167, float %166, float %168
  %170 = fmul float %51, %169
  %indvars.iv.next699 = add nsw i64 %indvars.iv698, 1
  %171 = getelementptr float, ptr %2, i64 %indvars.iv698
  %172 = load float, ptr %171, align 4, !tbaa !13
  %173 = fcmp oge float %172, 0.000000e+00
  %174 = fneg float %172
  %175 = select i1 %173, float %172, float %174
  %176 = call float @llvm.fmuladd.f32(float %170, float %175, float %52)
  %177 = fcmp ugt float %164, %176
  br i1 %177, label %157, label %178, !llvm.loop !16

178:                                              ; preds = %158
  %179 = trunc nsw i64 %indvars.iv698 to i32
  %sext722 = shl i64 %indvars.iv698, 32
  %180 = ashr exact i64 %sext722, 30
  %181 = getelementptr inbounds i8, ptr %22, i64 %180
  store float 0.000000e+00, ptr %181, align 4, !tbaa !13
  br label %.thread549

.thread549:                                       ; preds = %157, %155, %178
  %.3498551 = phi i32 [ %179, %178 ], [ %.0480, %155 ], [ %.0480, %157 ]
  %182 = load float, ptr %146, align 4, !tbaa !13
  %183 = icmp eq i32 %.3498551, %.1500.ph
  br i1 %183, label %276, label %184

184:                                              ; preds = %.thread549
  %185 = icmp eq i32 %.3498551, %147
  br i1 %185, label %186, label %199

186:                                              ; preds = %184
  br i1 %.not.not, label %187, label %194

187:                                              ; preds = %186
  call void @slaev2_(ptr noundef nonnull %146, ptr noundef nonnull %150, ptr noundef nonnull %149, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %10, ptr noundef nonnull %14) #6
  %188 = load float, ptr %10, align 4, !tbaa !13
  store float %188, ptr %151, align 4, !tbaa !13
  %189 = load float, ptr %14, align 4, !tbaa !13
  %190 = load i32, ptr %1, align 4, !tbaa !5
  %191 = add i32 %152, %190
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds float, ptr %27, i64 %192
  store float %189, ptr %193, align 4, !tbaa !13
  call void @clasr_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.9, ptr noundef nonnull %1, ptr noundef nonnull @c__2, ptr noundef nonnull %151, ptr noundef nonnull %193, ptr noundef %gep628, ptr noundef nonnull %5) #6
  br label %195

194:                                              ; preds = %186
  call void @slae2_(ptr noundef nonnull %146, ptr noundef nonnull %150, ptr noundef nonnull %149, ptr noundef nonnull %19, ptr noundef nonnull %20) #6
  br label %195

195:                                              ; preds = %194, %187
  %196 = load float, ptr %19, align 4, !tbaa !13
  store float %196, ptr %146, align 4, !tbaa !13
  %197 = load float, ptr %20, align 4, !tbaa !13
  store float %197, ptr %149, align 4, !tbaa !13
  store float 0.000000e+00, ptr %150, align 4, !tbaa !13
  %198 = add nsw i32 %.1500.ph, 2
  %.not536 = icmp sgt i32 %198, %.0480
  br i1 %.not536, label %.loopexit557, label %.outer.backedge

199:                                              ; preds = %184
  %200 = icmp eq i32 %.1, %66
  br i1 %200, label %.loopexit557, label %201

201:                                              ; preds = %199
  %202 = add nsw i32 %.1, 1
  %203 = load float, ptr %149, align 4, !tbaa !13
  %204 = fsub float %203, %182
  %205 = load float, ptr %150, align 4, !tbaa !13
  %206 = fmul float %205, 2.000000e+00
  %207 = fdiv float %204, %206
  store float %207, ptr %12, align 4, !tbaa !13
  %208 = call float @slapy2_(ptr noundef nonnull %12, ptr noundef nonnull @c_b41) #6
  store float %208, ptr %13, align 4, !tbaa !13
  %209 = sext i32 %.3498551 to i64
  %210 = getelementptr inbounds float, ptr %21, i64 %209
  %211 = load float, ptr %210, align 4, !tbaa !13
  %212 = fsub float %211, %182
  %213 = load float, ptr %150, align 4, !tbaa !13
  %214 = load float, ptr %12, align 4, !tbaa !13
  %215 = fcmp ult float %214, 0.000000e+00
  %216 = fcmp oge float %208, 0.000000e+00
  %.neg533 = fneg float %208
  br i1 %215, label %219, label %217

217:                                              ; preds = %201
  %218 = select i1 %216, float %208, float %.neg533
  br label %221

219:                                              ; preds = %201
  %220 = select i1 %216, float %.neg533, float %208
  br label %221

221:                                              ; preds = %219, %217
  %222 = phi float [ %218, %217 ], [ %220, %219 ]
  %223 = fadd float %214, %222
  %224 = fdiv float %213, %223
  %225 = fadd float %212, %224
  store float %225, ptr %12, align 4, !tbaa !13
  store float 1.000000e+00, ptr %14, align 4, !tbaa !13
  store float 1.000000e+00, ptr %10, align 4, !tbaa !13
  store i32 %.1500.ph, ptr %9, align 4, !tbaa !5
  %.not534620.not = icmp sgt i32 %.3498551, %.1500.ph
  br i1 %.not534620.not, label %.lr.ph624.preheader, label %._crit_edge625

.lr.ph624.preheader:                              ; preds = %221
  %226 = add nsw i32 %.3498551, -1
  %sext703 = sext i32 %226 to i64
  br label %.lr.ph624

.lr.ph624:                                        ; preds = %.lr.ph624.preheader, %262
  %227 = phi float [ 1.000000e+00, %.lr.ph624.preheader ], [ %245, %262 ]
  %228 = phi float [ 1.000000e+00, %.lr.ph624.preheader ], [ %244, %262 ]
  %indvars.iv701.in = phi i64 [ %209, %.lr.ph624.preheader ], [ %indvars.iv701, %262 ]
  %.0491621 = phi float [ 0.000000e+00, %.lr.ph624.preheader ], [ %249, %262 ]
  %indvars.iv701 = add nsw i64 %indvars.iv701.in, -1
  %229 = getelementptr inbounds float, ptr %22, i64 %indvars.iv701
  %230 = load float, ptr %229, align 4, !tbaa !13
  %231 = fmul float %228, %230
  store float %231, ptr %11, align 4, !tbaa !13
  %232 = fmul float %230, %227
  call void @slartg_(ptr noundef nonnull %12, ptr noundef nonnull %11, ptr noundef nonnull %10, ptr noundef nonnull %14, ptr noundef nonnull %13) #6
  %233 = icmp eq i64 %indvars.iv701, %sext703
  br i1 %233, label %237, label %234

234:                                              ; preds = %.lr.ph624
  %235 = load float, ptr %13, align 4, !tbaa !13
  %236 = getelementptr i8, ptr %229, i64 4
  store float %235, ptr %236, align 4, !tbaa !13
  br label %237

237:                                              ; preds = %234, %.lr.ph624
  %238 = getelementptr float, ptr %21, i64 %indvars.iv701
  %239 = getelementptr i8, ptr %238, i64 4
  %240 = load float, ptr %239, align 4, !tbaa !13
  %241 = fsub float %240, %.0491621
  %242 = load float, ptr %238, align 4, !tbaa !13
  %243 = fsub float %242, %241
  %244 = load float, ptr %14, align 4, !tbaa !13
  %245 = load float, ptr %10, align 4, !tbaa !13
  %246 = fmul float %245, 2.000000e+00
  %247 = fmul float %232, %246
  %248 = call float @llvm.fmuladd.f32(float %243, float %244, float %247)
  store float %248, ptr %13, align 4, !tbaa !13
  %249 = fmul float %244, %248
  %250 = fadd float %241, %249
  store float %250, ptr %239, align 4, !tbaa !13
  %251 = fneg float %232
  %252 = call float @llvm.fmuladd.f32(float %245, float %248, float %251)
  store float %252, ptr %12, align 4, !tbaa !13
  br i1 %.not.not, label %253, label %262

253:                                              ; preds = %237
  %254 = getelementptr inbounds float, ptr %27, i64 %indvars.iv701
  store float %245, ptr %254, align 4, !tbaa !13
  %255 = fneg float %244
  %256 = load i32, ptr %1, align 4, !tbaa !5
  %257 = trunc nsw i64 %indvars.iv701 to i32
  %258 = add i32 %257, -1
  %259 = add i32 %258, %256
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds float, ptr %27, i64 %260
  store float %255, ptr %261, align 4, !tbaa !13
  br label %262

262:                                              ; preds = %237, %253
  %263 = load i32, ptr %9, align 4, !tbaa !5
  %264 = sext i32 %263 to i64
  %.not534.not = icmp sgt i64 %indvars.iv701, %264
  br i1 %.not534.not, label %.lr.ph624, label %._crit_edge625, !llvm.loop !17

._crit_edge625:                                   ; preds = %262, %221
  %265 = phi float [ %225, %221 ], [ %252, %262 ]
  %.0491.lcssa = phi float [ 0.000000e+00, %221 ], [ %249, %262 ]
  br i1 %.not.not, label %266, label %272

266:                                              ; preds = %._crit_edge625
  %reass.sub = sub i32 %.3498551, %.1500.ph
  %267 = add i32 %reass.sub, 1
  store i32 %267, ptr %16, align 4, !tbaa !5
  %268 = load i32, ptr %1, align 4, !tbaa !5
  %269 = add i32 %152, %268
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds float, ptr %27, i64 %270
  call void @clasr_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.9, ptr noundef nonnull %1, ptr noundef nonnull %16, ptr noundef nonnull %151, ptr noundef nonnull %271, ptr noundef %gep628, ptr noundef nonnull %5) #6
  %.pre720 = load float, ptr %12, align 4, !tbaa !13
  br label %272

272:                                              ; preds = %266, %._crit_edge625
  %273 = phi float [ %.pre720, %266 ], [ %265, %._crit_edge625 ]
  %274 = load float, ptr %146, align 4, !tbaa !13
  %275 = fsub float %274, %.0491.lcssa
  store float %275, ptr %146, align 4, !tbaa !13
  store float %273, ptr %150, align 4, !tbaa !13
  br label %155

276:                                              ; preds = %.thread549
  %.not537.not = icmp slt i32 %.1500.ph, %.0480
  br i1 %.not537.not, label %.outer.backedge, label %.loopexit557

.outer.backedge:                                  ; preds = %276, %195
  %.1500.ph.be = phi i32 [ %198, %195 ], [ %147, %276 ]
  br label %.outer

277:                                              ; preds = %.outer561, %427
  %.2 = phi i32 [ %334, %427 ], [ %.2.ph, %.outer561 ]
  br i1 %.not525, label %.thread553, label %278

278:                                              ; preds = %277
  store i32 %142, ptr %9, align 4, !tbaa !5
  br label %279

279:                                              ; preds = %280, %278
  %indvars.iv691 = phi i64 [ %indvars.iv.next692, %280 ], [ %324, %278 ]
  %.not526.not = icmp sgt i64 %indvars.iv691, %143
  br i1 %.not526.not, label %280, label %.thread553

280:                                              ; preds = %279
  %indvars.iv.next692 = add nsw i64 %indvars.iv691, -1
  %281 = getelementptr inbounds float, ptr %22, i64 %indvars.iv.next692
  %282 = load float, ptr %281, align 4, !tbaa !13
  %283 = fcmp oge float %282, 0.000000e+00
  %284 = fneg float %282
  %285 = select i1 %283, float %282, float %284
  %286 = fmul float %285, %285
  %287 = getelementptr inbounds float, ptr %21, i64 %indvars.iv691
  %288 = load float, ptr %287, align 4, !tbaa !13
  %289 = fcmp oge float %288, 0.000000e+00
  %290 = fneg float %288
  %291 = select i1 %289, float %288, float %290
  %292 = fmul float %51, %291
  %293 = getelementptr inbounds float, ptr %21, i64 %indvars.iv.next692
  %294 = load float, ptr %293, align 4, !tbaa !13
  %295 = fcmp oge float %294, 0.000000e+00
  %296 = fneg float %294
  %297 = select i1 %295, float %294, float %296
  %298 = call float @llvm.fmuladd.f32(float %292, float %297, float %52)
  %299 = fcmp ugt float %286, %298
  br i1 %299, label %279, label %300, !llvm.loop !18

300:                                              ; preds = %280
  %301 = trunc nsw i64 %indvars.iv691 to i32
  %sext = shl i64 %indvars.iv691, 32
  %302 = ashr exact i64 %sext, 30
  %gep615 = getelementptr i8, ptr %invariant.gep, i64 %302
  store float 0.000000e+00, ptr %gep615, align 4, !tbaa !13
  br label %.thread553

.thread553:                                       ; preds = %279, %277, %300
  %.5555 = phi i32 [ %301, %300 ], [ %.0480, %277 ], [ %.0480, %279 ]
  %303 = load float, ptr %325, align 4, !tbaa !13
  %304 = icmp eq i32 %.5555, %.2501.ph
  br i1 %304, label %431, label %305

305:                                              ; preds = %.thread553
  %306 = icmp eq i32 %.5555, %326
  br i1 %306, label %307, label %331

307:                                              ; preds = %305
  br i1 %.not.not, label %308, label %319

308:                                              ; preds = %307
  call void @slaev2_(ptr noundef nonnull %328, ptr noundef nonnull %329, ptr noundef nonnull %325, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %10, ptr noundef nonnull %14) #6
  %309 = load float, ptr %10, align 4, !tbaa !13
  %310 = getelementptr inbounds float, ptr %27, i64 %327
  store float %309, ptr %310, align 4, !tbaa !13
  %311 = load float, ptr %14, align 4, !tbaa !13
  %312 = load i32, ptr %1, align 4, !tbaa !5
  %313 = add i32 %.2501.ph, -2
  %314 = add i32 %313, %312
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds float, ptr %27, i64 %315
  store float %311, ptr %316, align 4, !tbaa !13
  %317 = mul nsw i32 %326, %23
  %318 = sext i32 %317 to i64
  %gep619 = getelementptr %struct.complex, ptr %invariant.gep616, i64 %318
  call void @clasr_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10, ptr noundef nonnull %1, ptr noundef nonnull @c__2, ptr noundef nonnull %310, ptr noundef nonnull %316, ptr noundef %gep619, ptr noundef nonnull %5) #6
  br label %320

319:                                              ; preds = %307
  call void @slae2_(ptr noundef nonnull %328, ptr noundef nonnull %329, ptr noundef nonnull %325, ptr noundef nonnull %19, ptr noundef nonnull %20) #6
  br label %320

320:                                              ; preds = %319, %308
  %321 = load float, ptr %19, align 4, !tbaa !13
  store float %321, ptr %328, align 4, !tbaa !13
  %322 = load float, ptr %20, align 4, !tbaa !13
  store float %322, ptr %325, align 4, !tbaa !13
  store float 0.000000e+00, ptr %329, align 4, !tbaa !13
  %323 = add nsw i32 %.2501.ph, -2
  %.not529 = icmp slt i32 %323, %.0480
  br i1 %.not529, label %.loopexit557, label %.outer561.backedge

.outer561:                                        ; preds = %.outer561.backedge, %.preheader559
  %.2501.ph = phi i32 [ %.0499, %.preheader559 ], [ %.2501.ph.be, %.outer561.backedge ]
  %.2.ph = phi i32 [ %.0481.ph, %.preheader559 ], [ %.2, %.outer561.backedge ]
  %.not525 = icmp eq i32 %.2501.ph, %.0480
  %324 = sext i32 %.2501.ph to i64
  %325 = getelementptr inbounds float, ptr %21, i64 %324
  %326 = add nsw i32 %.2501.ph, -1
  %327 = sext i32 %326 to i64
  %328 = getelementptr inbounds float, ptr %21, i64 %327
  %329 = getelementptr inbounds float, ptr %22, i64 %327
  %330 = add i32 %.2501.ph, 1
  br label %277

331:                                              ; preds = %305
  %332 = icmp eq i32 %.2, %66
  br i1 %332, label %.loopexit557, label %333

333:                                              ; preds = %331
  %334 = add nsw i32 %.2, 1
  %335 = load float, ptr %328, align 4, !tbaa !13
  %336 = fsub float %335, %303
  %337 = load float, ptr %329, align 4, !tbaa !13
  %338 = fmul float %337, 2.000000e+00
  %339 = fdiv float %336, %338
  store float %339, ptr %12, align 4, !tbaa !13
  %340 = call float @slapy2_(ptr noundef nonnull %12, ptr noundef nonnull @c_b41) #6
  store float %340, ptr %13, align 4, !tbaa !13
  %341 = sext i32 %.5555 to i64
  %342 = getelementptr inbounds float, ptr %21, i64 %341
  %343 = load float, ptr %342, align 4, !tbaa !13
  %344 = fsub float %343, %303
  %345 = load float, ptr %329, align 4, !tbaa !13
  %346 = load float, ptr %12, align 4, !tbaa !13
  %347 = fcmp ult float %346, 0.000000e+00
  %348 = fcmp oge float %340, 0.000000e+00
  %.neg = fneg float %340
  br i1 %347, label %351, label %349

349:                                              ; preds = %333
  %350 = select i1 %348, float %340, float %.neg
  br label %353

351:                                              ; preds = %333
  %352 = select i1 %348, float %.neg, float %340
  br label %353

353:                                              ; preds = %351, %349
  %354 = phi float [ %350, %349 ], [ %352, %351 ]
  %355 = fadd float %346, %354
  %356 = fdiv float %345, %355
  %357 = fadd float %344, %356
  store float %357, ptr %12, align 4, !tbaa !13
  store float 1.000000e+00, ptr %14, align 4, !tbaa !13
  store float 1.000000e+00, ptr %10, align 4, !tbaa !13
  store i32 %326, ptr %9, align 4, !tbaa !5
  %.not527607.not = icmp slt i32 %.5555, %.2501.ph
  br i1 %.not527607.not, label %358, label %._crit_edge612

358:                                              ; preds = %353
  %359 = getelementptr inbounds float, ptr %22, i64 %341
  %360 = load float, ptr %359, align 4, !tbaa !13
  store float %360, ptr %11, align 4, !tbaa !13
  call void @slartg_(ptr noundef nonnull %12, ptr noundef nonnull %11, ptr noundef nonnull %10, ptr noundef nonnull %14, ptr noundef nonnull %13) #6
  %.pre718 = load float, ptr %342, align 4, !tbaa !13
  %361 = getelementptr float, ptr %2, i64 %341
  %362 = load float, ptr %361, align 4, !tbaa !13
  %363 = fsub float %362, %.pre718
  %364 = load float, ptr %14, align 4, !tbaa !13
  %365 = load float, ptr %10, align 4, !tbaa !13
  %366 = fmul float %365, 2.000000e+00
  %367 = fmul float %360, %366
  %368 = call float @llvm.fmuladd.f32(float %363, float %364, float %367)
  store float %368, ptr %13, align 4, !tbaa !13
  %369 = fmul float %364, %368
  %370 = fadd float %.pre718, %369
  store float %370, ptr %342, align 4, !tbaa !13
  %371 = fneg float %360
  %372 = call float @llvm.fmuladd.f32(float %365, float %368, float %371)
  store float %372, ptr %12, align 4, !tbaa !13
  br i1 %.not.not, label %373, label %380

373:                                              ; preds = %358
  %374 = getelementptr inbounds float, ptr %27, i64 %341
  store float %365, ptr %374, align 4, !tbaa !13
  %375 = load i32, ptr %1, align 4, !tbaa !5
  %376 = add i32 %.5555, -1
  %377 = add i32 %376, %375
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds float, ptr %27, i64 %378
  store float %364, ptr %379, align 4, !tbaa !13
  br label %380

380:                                              ; preds = %373, %358
  %381 = load i32, ptr %9, align 4, !tbaa !5
  %.not527.not.peel = icmp slt i32 %.5555, %381
  br i1 %.not527.not.peel, label %.lr.ph611.peel.next, label %._crit_edge612

.lr.ph611.peel.next:                              ; preds = %380, %413
  %382 = phi float [ %397, %413 ], [ %365, %380 ]
  %383 = phi float [ %396, %413 ], [ %364, %380 ]
  %indvars.iv694.in = phi i64 [ %indvars.iv694, %413 ], [ %341, %380 ]
  %.1492608 = phi float [ %401, %413 ], [ %369, %380 ]
  %indvars.iv694 = add nsw i64 %indvars.iv694.in, 1
  %384 = getelementptr float, ptr %3, i64 %indvars.iv694.in
  %385 = load float, ptr %384, align 4, !tbaa !13
  %386 = fmul float %383, %385
  store float %386, ptr %11, align 4, !tbaa !13
  %387 = fmul float %385, %382
  call void @slartg_(ptr noundef nonnull %12, ptr noundef nonnull %11, ptr noundef nonnull %10, ptr noundef nonnull %14, ptr noundef nonnull %13) #6
  %388 = load float, ptr %13, align 4, !tbaa !13
  %389 = getelementptr i8, ptr %384, i64 -4
  store float %388, ptr %389, align 4, !tbaa !13
  %390 = getelementptr float, ptr %2, i64 %indvars.iv694.in
  %391 = load float, ptr %390, align 4, !tbaa !13
  %392 = fsub float %391, %.1492608
  %393 = getelementptr float, ptr %2, i64 %indvars.iv694
  %394 = load float, ptr %393, align 4, !tbaa !13
  %395 = fsub float %394, %392
  %396 = load float, ptr %14, align 4, !tbaa !13
  %397 = load float, ptr %10, align 4, !tbaa !13
  %398 = fmul float %397, 2.000000e+00
  %399 = fmul float %387, %398
  %400 = call float @llvm.fmuladd.f32(float %395, float %396, float %399)
  store float %400, ptr %13, align 4, !tbaa !13
  %401 = fmul float %396, %400
  %402 = fadd float %392, %401
  store float %402, ptr %390, align 4, !tbaa !13
  %403 = fneg float %387
  %404 = call float @llvm.fmuladd.f32(float %397, float %400, float %403)
  store float %404, ptr %12, align 4, !tbaa !13
  br i1 %.not.not, label %405, label %413

405:                                              ; preds = %.lr.ph611.peel.next
  %406 = getelementptr float, ptr %6, i64 %indvars.iv694.in
  store float %397, ptr %406, align 4, !tbaa !13
  %407 = load i32, ptr %1, align 4, !tbaa !5
  %408 = trunc nsw i64 %indvars.iv694 to i32
  %409 = add i32 %408, -1
  %410 = add i32 %409, %407
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds float, ptr %27, i64 %411
  store float %396, ptr %412, align 4, !tbaa !13
  br label %413

413:                                              ; preds = %.lr.ph611.peel.next, %405
  %414 = load i32, ptr %9, align 4, !tbaa !5
  %415 = sext i32 %414 to i64
  %.not527.not = icmp slt i64 %indvars.iv694, %415
  br i1 %.not527.not, label %.lr.ph611.peel.next, label %._crit_edge612, !llvm.loop !19

._crit_edge612:                                   ; preds = %413, %380, %353
  %416 = phi float [ %357, %353 ], [ %372, %380 ], [ %404, %413 ]
  %.1492.lcssa = phi float [ 0.000000e+00, %353 ], [ %369, %380 ], [ %401, %413 ]
  br i1 %.not.not, label %417, label %427

417:                                              ; preds = %._crit_edge612
  %418 = sub i32 %330, %.5555
  store i32 %418, ptr %16, align 4, !tbaa !5
  %419 = getelementptr inbounds float, ptr %27, i64 %341
  %420 = load i32, ptr %1, align 4, !tbaa !5
  %421 = add i32 %.5555, -1
  %422 = add i32 %421, %420
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds float, ptr %27, i64 %423
  %425 = mul nsw i32 %.5555, %23
  %426 = sext i32 %425 to i64
  %gep617 = getelementptr %struct.complex, ptr %invariant.gep616, i64 %426
  call void @clasr_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10, ptr noundef nonnull %1, ptr noundef nonnull %16, ptr noundef nonnull %419, ptr noundef nonnull %424, ptr noundef %gep617, ptr noundef nonnull %5) #6
  %.pre719 = load float, ptr %12, align 4, !tbaa !13
  br label %427

427:                                              ; preds = %417, %._crit_edge612
  %428 = phi float [ %.pre719, %417 ], [ %416, %._crit_edge612 ]
  %429 = load float, ptr %325, align 4, !tbaa !13
  %430 = fsub float %429, %.1492.lcssa
  store float %430, ptr %325, align 4, !tbaa !13
  store float %428, ptr %329, align 4, !tbaa !13
  br label %277

431:                                              ; preds = %.thread553
  %.not530.not = icmp sgt i32 %.2501.ph, %.0480
  br i1 %.not530.not, label %.outer561.backedge, label %.loopexit557

.outer561.backedge:                               ; preds = %431, %320
  %.2501.ph.be = phi i32 [ %323, %320 ], [ %326, %431 ]
  br label %.outer561

.loopexit557:                                     ; preds = %431, %320, %276, %195, %331, %199
  %.3 = phi i32 [ %66, %199 ], [ %66, %331 ], [ %.1, %195 ], [ %.1, %276 ], [ %.2, %320 ], [ %.2, %431 ]
  %.not = xor i1 %124, true
  %brmerge = or i1 %.not, %129
  %.mux = select i1 %.not, ptr %18, ptr %17
  br i1 %brmerge, label %.sink.split762, label %432

.sink.split762:                                   ; preds = %.loopexit557
  store i32 %116, ptr %9, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %.mux, ptr noundef nonnull %15, ptr noundef nonnull %9, ptr noundef nonnull @c__1, ptr noundef nonnull %118, ptr noundef nonnull %1, ptr noundef nonnull %7) #6
  store i32 %115, ptr %9, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %.mux, ptr noundef nonnull %15, ptr noundef nonnull %9, ptr noundef nonnull @c__1, ptr noundef nonnull %119, ptr noundef nonnull %1, ptr noundef nonnull %7) #6
  br label %432

432:                                              ; preds = %.loopexit557, %.sink.split762
  %433 = icmp eq i32 %.3, %66
  br i1 %433, label %434, label %.outer565

434:                                              ; preds = %432
  %435 = load i32, ptr %1, align 4, !tbaa !5
  %.not538.not631 = icmp sgt i32 %435, 1
  br i1 %.not538.not631, label %.lr.ph634.preheader, label %.loopexit

.lr.ph634.preheader:                              ; preds = %434
  %wide.trip.count708 = zext nneg i32 %435 to i64
  %436 = add nsw i64 %wide.trip.count708, -1
  %xtraiter = and i64 %436, 1
  %437 = icmp eq i32 %435, 2
  br i1 %437, label %.loopexit.loopexit800.unr-lcssa, label %.lr.ph634.preheader.new

.lr.ph634.preheader.new:                          ; preds = %.lr.ph634.preheader
  %unroll_iter = and i64 %436, -2
  br label %.lr.ph634

.lr.ph634:                                        ; preds = %450, %.lr.ph634.preheader.new
  %indvars.iv705 = phi i64 [ 1, %.lr.ph634.preheader.new ], [ %indvars.iv.next706.1, %450 ]
  %niter = phi i64 [ 0, %.lr.ph634.preheader.new ], [ %niter.next.1, %450 ]
  %438 = getelementptr inbounds float, ptr %22, i64 %indvars.iv705
  %439 = load float, ptr %438, align 4, !tbaa !13
  %440 = fcmp une float %439, 0.000000e+00
  br i1 %440, label %441, label %.lr.ph634.1

441:                                              ; preds = %.lr.ph634
  %442 = load i32, ptr %7, align 4, !tbaa !5
  %443 = add nsw i32 %442, 1
  store i32 %443, ptr %7, align 4, !tbaa !5
  br label %.lr.ph634.1

.lr.ph634.1:                                      ; preds = %.lr.ph634, %441
  %444 = getelementptr float, ptr %3, i64 %indvars.iv705
  %445 = load float, ptr %444, align 4, !tbaa !13
  %446 = fcmp une float %445, 0.000000e+00
  br i1 %446, label %447, label %450

447:                                              ; preds = %.lr.ph634.1
  %448 = load i32, ptr %7, align 4, !tbaa !5
  %449 = add nsw i32 %448, 1
  store i32 %449, ptr %7, align 4, !tbaa !5
  br label %450

450:                                              ; preds = %447, %.lr.ph634.1
  %indvars.iv.next706.1 = add nuw nsw i64 %indvars.iv705, 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 %.loopexit.loopexit800.unr-lcssa, label %.lr.ph634, !llvm.loop !21

.outer565._crit_edge:                             ; preds = %.outer565, %.backedge
  %.lcssa = phi i32 [ %113, %.backedge ], [ %69, %.outer565 ]
  br i1 %.not.not, label %452, label %451

451:                                              ; preds = %.outer565._crit_edge
  call void @slasrt_(ptr noundef nonnull @.str.2, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %7) #6
  br label %.loopexit

452:                                              ; preds = %.outer565._crit_edge
  store i32 %.lcssa, ptr %9, align 4, !tbaa !5
  %.not648 = icmp slt i32 %.lcssa, 2
  br i1 %.not648, label %.loopexit, label %.lr.ph651.preheader

.lr.ph651.preheader:                              ; preds = %452
  %453 = sext i32 %23 to i64
  br label %.lr.ph651

.lr.ph651:                                        ; preds = %.lr.ph651.preheader, %473
  %454 = phi i32 [ %.lcssa, %.lr.ph651.preheader ], [ %474, %473 ]
  %indvars.iv710 = phi i64 [ 2, %.lr.ph651.preheader ], [ %indvars.iv.next711, %473 ]
  %455 = add nsw i64 %indvars.iv710, -1
  %456 = getelementptr inbounds float, ptr %21, i64 %455
  %457 = load float, ptr %456, align 4, !tbaa !13
  %458 = load i32, ptr %1, align 4, !tbaa !5
  %459 = sext i32 %458 to i64
  %.not539635 = icmp sgt i64 %indvars.iv710, %459
  %460 = trunc nuw nsw i64 %455 to i32
  br i1 %.not539635, label %._crit_edge641, label %.lr.ph640.preheader

.lr.ph640.preheader:                              ; preds = %.lr.ph651
  %461 = add i32 %458, 1
  %wide.trip.count715 = zext i32 %461 to i64
  br label %.lr.ph640

.lr.ph640:                                        ; preds = %.lr.ph640.preheader, %.lr.ph640
  %indvars.iv712 = phi i64 [ %indvars.iv710, %.lr.ph640.preheader ], [ %indvars.iv.next713, %.lr.ph640 ]
  %.0488637 = phi i32 [ %460, %.lr.ph640.preheader ], [ %.1489, %.lr.ph640 ]
  %.2493636 = phi float [ %457, %.lr.ph640.preheader ], [ %.3494, %.lr.ph640 ]
  %462 = getelementptr inbounds float, ptr %21, i64 %indvars.iv712
  %463 = load float, ptr %462, align 4, !tbaa !13
  %464 = fcmp olt float %463, %.2493636
  %.3494 = select i1 %464, float %463, float %.2493636
  %465 = trunc nuw nsw i64 %indvars.iv712 to i32
  %.1489 = select i1 %464, i32 %465, i32 %.0488637
  %indvars.iv.next713 = add nuw nsw i64 %indvars.iv712, 1
  %exitcond716.not = icmp eq i64 %indvars.iv.next713, %wide.trip.count715
  br i1 %exitcond716.not, label %._crit_edge641, label %.lr.ph640, !llvm.loop !22

._crit_edge641:                                   ; preds = %.lr.ph640, %.lr.ph651
  %.2493.lcssa = phi float [ %457, %.lr.ph651 ], [ %.3494, %.lr.ph640 ]
  %.0488.lcssa = phi i32 [ %460, %.lr.ph651 ], [ %.1489, %.lr.ph640 ]
  %466 = zext i32 %.0488.lcssa to i64
  %.not540 = icmp eq i64 %455, %466
  br i1 %.not540, label %473, label %467

467:                                              ; preds = %._crit_edge641
  %468 = sext i32 %.0488.lcssa to i64
  %469 = getelementptr inbounds float, ptr %21, i64 %468
  store float %457, ptr %469, align 4, !tbaa !13
  store float %.2493.lcssa, ptr %456, align 4, !tbaa !13
  %470 = mul nsw i64 %455, %453
  %gep645 = getelementptr %struct.complex, ptr %invariant.gep616, i64 %470
  %471 = mul nsw i32 %.0488.lcssa, %23
  %472 = sext i32 %471 to i64
  %gep647 = getelementptr %struct.complex, ptr %invariant.gep616, i64 %472
  call void @cswap_(ptr noundef nonnull %1, ptr noundef %gep645, ptr noundef nonnull @c__1, ptr noundef %gep647, ptr noundef nonnull @c__1) #6
  %.pre721 = load i32, ptr %9, align 4, !tbaa !5
  br label %473

473:                                              ; preds = %._crit_edge641, %467
  %474 = phi i32 [ %454, %._crit_edge641 ], [ %.pre721, %467 ]
  %indvars.iv.next711 = add nuw nsw i64 %indvars.iv710, 1
  %475 = sext i32 %474 to i64
  %.not.not653 = icmp slt i64 %indvars.iv710, %475
  br i1 %.not.not653, label %.lr.ph651, label %.loopexit, !llvm.loop !23

.loopexit.loopexit800.unr-lcssa:                  ; preds = %450, %.lr.ph634.preheader
  %indvars.iv705.unr = phi i64 [ 1, %.lr.ph634.preheader ], [ %indvars.iv.next706.1, %450 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit, label %.lr.ph634.epil

.lr.ph634.epil:                                   ; preds = %.loopexit.loopexit800.unr-lcssa
  %476 = getelementptr inbounds float, ptr %22, i64 %indvars.iv705.unr
  %477 = load float, ptr %476, align 4, !tbaa !13
  %478 = fcmp une float %477, 0.000000e+00
  br i1 %478, label %479, label %.loopexit

479:                                              ; preds = %.lr.ph634.epil
  %480 = load i32, ptr %7, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr %7, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit800.unr-lcssa, %479, %.lr.ph634.epil, %473, %434, %452, %451, %45, %46, %44, %.thread546
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  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 i32 @xerbla_(ptr noundef, ptr noundef, i32 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 @claset_(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 @slascl_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #4

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

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

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

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

declare void @slartg_(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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #5

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

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

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


; Effective O3 passes: BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass