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

; 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 [11 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [13 x i8], align 1

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

76:                                               ; preds = %13
  %77 = load ptr, ptr %14, align 8, !tbaa !5
  %78 = load i32, ptr %77, align 4, !tbaa !9
  %79 = call i32 @ilatrans_(ptr noundef @.str.1)
  %80 = icmp eq i32 %78, %79
  br i1 %80, label %87, label %81

81:                                               ; preds = %76
  %82 = load ptr, ptr %14, align 8, !tbaa !5
  %83 = load i32, ptr %82, align 4, !tbaa !9
  %84 = call i32 @ilatrans_(ptr noundef @.str.2)
  %85 = icmp eq i32 %83, %84
  br i1 %85, label %87, label %86

86:                                               ; preds = %81
  store i32 1, ptr %35, align 4, !tbaa !9
  br label %149

87:                                               ; preds = %81, %76, %13
  %88 = load ptr, ptr %15, align 8, !tbaa !5
  %89 = load i32, ptr %88, align 4, !tbaa !9
  %90 = icmp slt i32 %89, 0
  br i1 %90, label %91, label %92

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

92:                                               ; preds = %87
  %93 = load ptr, ptr %16, align 8, !tbaa !5
  %94 = load i32, ptr %93, align 4, !tbaa !9
  %95 = icmp slt i32 %94, 0
  br i1 %95, label %96, label %97

96:                                               ; preds = %92
  store i32 3, ptr %35, align 4, !tbaa !9
  br label %147

97:                                               ; preds = %92
  %98 = load ptr, ptr %17, align 8, !tbaa !5
  %99 = load i32, ptr %98, align 4, !tbaa !9
  %100 = icmp slt i32 %99, 0
  br i1 %100, label %108, label %101

101:                                              ; preds = %97
  %102 = load ptr, ptr %17, align 8, !tbaa !5
  %103 = load i32, ptr %102, align 4, !tbaa !9
  %104 = load ptr, ptr %15, align 8, !tbaa !5
  %105 = load i32, ptr %104, align 4, !tbaa !9
  %106 = sub nsw i32 %105, 1
  %107 = icmp sgt i32 %103, %106
  br i1 %107, label %108, label %109

108:                                              ; preds = %101, %97
  store i32 4, ptr %35, align 4, !tbaa !9
  br label %146

109:                                              ; preds = %101
  %110 = load ptr, ptr %18, align 8, !tbaa !5
  %111 = load i32, ptr %110, align 4, !tbaa !9
  %112 = icmp slt i32 %111, 0
  br i1 %112, label %120, label %113

113:                                              ; preds = %109
  %114 = load ptr, ptr %18, align 8, !tbaa !5
  %115 = load i32, ptr %114, align 4, !tbaa !9
  %116 = load ptr, ptr %16, align 8, !tbaa !5
  %117 = load i32, ptr %116, align 4, !tbaa !9
  %118 = sub nsw i32 %117, 1
  %119 = icmp sgt i32 %115, %118
  br i1 %119, label %120, label %121

120:                                              ; preds = %113, %109
  store i32 5, ptr %35, align 4, !tbaa !9
  br label %145

121:                                              ; preds = %113
  %122 = load ptr, ptr %21, align 8, !tbaa !5
  %123 = load i32, ptr %122, align 4, !tbaa !9
  %124 = load ptr, ptr %17, align 8, !tbaa !5
  %125 = load i32, ptr %124, align 4, !tbaa !9
  %126 = load ptr, ptr %18, align 8, !tbaa !5
  %127 = load i32, ptr %126, align 4, !tbaa !9
  %128 = add nsw i32 %125, %127
  %129 = add nsw i32 %128, 1
  %130 = icmp slt i32 %123, %129
  br i1 %130, label %131, label %132

131:                                              ; preds = %121
  store i32 6, ptr %35, align 4, !tbaa !9
  br label %144

132:                                              ; preds = %121
  %133 = load ptr, ptr %23, align 8, !tbaa !5
  %134 = load i32, ptr %133, align 4, !tbaa !9
  %135 = icmp eq i32 %134, 0
  br i1 %135, label %136, label %137

136:                                              ; preds = %132
  store i32 8, ptr %35, align 4, !tbaa !9
  br label %143

137:                                              ; preds = %132
  %138 = load ptr, ptr %26, align 8, !tbaa !5
  %139 = load i32, ptr %138, align 4, !tbaa !9
  %140 = icmp eq i32 %139, 0
  br i1 %140, label %141, label %142

141:                                              ; preds = %137
  store i32 11, ptr %35, align 4, !tbaa !9
  br label %142

142:                                              ; preds = %141, %137
  br label %143

143:                                              ; preds = %142, %136
  br label %144

144:                                              ; preds = %143, %131
  br label %145

145:                                              ; preds = %144, %120
  br label %146

146:                                              ; preds = %145, %108
  br label %147

147:                                              ; preds = %146, %96
  br label %148

148:                                              ; preds = %147, %91
  br label %149

149:                                              ; preds = %148, %86
  %150 = load i32, ptr %35, align 4, !tbaa !9
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %152, label %154

152:                                              ; preds = %149
  %153 = call i32 @xerbla_(ptr noundef @.str.3, ptr noundef %35, i32 noundef 10)
  store i32 1, ptr %49, align 4
  br label %1271

154:                                              ; preds = %149
  %155 = load ptr, ptr %15, align 8, !tbaa !5
  %156 = load i32, ptr %155, align 4, !tbaa !9
  %157 = icmp eq i32 %156, 0
  br i1 %157, label %170, label %158

158:                                              ; preds = %154
  %159 = load ptr, ptr %16, align 8, !tbaa !5
  %160 = load i32, ptr %159, align 4, !tbaa !9
  %161 = icmp eq i32 %160, 0
  br i1 %161, label %170, label %162

162:                                              ; preds = %158
  %163 = load ptr, ptr %19, align 8, !tbaa !5
  %164 = load float, ptr %163, align 4, !tbaa !11
  %165 = fcmp oeq float %164, 0.000000e+00
  br i1 %165, label %166, label %171

166:                                              ; preds = %162
  %167 = load ptr, ptr %24, align 8, !tbaa !5
  %168 = load float, ptr %167, align 4, !tbaa !11
  %169 = fcmp oeq float %168, 1.000000e+00
  br i1 %169, label %170, label %171

170:                                              ; preds = %166, %158, %154
  store i32 1, ptr %49, align 4
  br label %1271

171:                                              ; preds = %166, %162
  %172 = load ptr, ptr %14, align 8, !tbaa !5
  %173 = load i32, ptr %172, align 4, !tbaa !9
  %174 = call i32 @ilatrans_(ptr noundef @.str)
  %175 = icmp eq i32 %173, %174
  br i1 %175, label %176, label %181

176:                                              ; preds = %171
  %177 = load ptr, ptr %16, align 8, !tbaa !5
  %178 = load i32, ptr %177, align 4, !tbaa !9
  store i32 %178, ptr %37, align 4, !tbaa !9
  %179 = load ptr, ptr %15, align 8, !tbaa !5
  %180 = load i32, ptr %179, align 4, !tbaa !9
  store i32 %180, ptr %38, align 4, !tbaa !9
  br label %186

181:                                              ; preds = %171
  %182 = load ptr, ptr %15, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  store i32 %183, ptr %37, align 4, !tbaa !9
  %184 = load ptr, ptr %16, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  store i32 %185, ptr %38, align 4, !tbaa !9
  br label %186

186:                                              ; preds = %181, %176
  %187 = load ptr, ptr %23, align 8, !tbaa !5
  %188 = load i32, ptr %187, align 4, !tbaa !9
  %189 = icmp sgt i32 %188, 0
  br i1 %189, label %190, label %191

190:                                              ; preds = %186
  store i32 1, ptr %47, align 4, !tbaa !9
  br label %198

191:                                              ; preds = %186
  %192 = load i32, ptr %37, align 4, !tbaa !9
  %193 = sub nsw i32 %192, 1
  %194 = load ptr, ptr %23, align 8, !tbaa !5
  %195 = load i32, ptr %194, align 4, !tbaa !9
  %196 = mul nsw i32 %193, %195
  %197 = sub nsw i32 1, %196
  store i32 %197, ptr %47, align 4, !tbaa !9
  br label %198

198:                                              ; preds = %191, %190
  %199 = load ptr, ptr %26, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  %201 = icmp sgt i32 %200, 0
  br i1 %201, label %202, label %203

202:                                              ; preds = %198
  store i32 1, ptr %48, align 4, !tbaa !9
  br label %210

203:                                              ; preds = %198
  %204 = load i32, ptr %38, align 4, !tbaa !9
  %205 = sub nsw i32 %204, 1
  %206 = load ptr, ptr %26, align 8, !tbaa !5
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = mul nsw i32 %205, %207
  %209 = sub nsw i32 1, %208
  store i32 %209, ptr %48, align 4, !tbaa !9
  br label %210

210:                                              ; preds = %203, %202
  %211 = call float @slamch_(ptr noundef @.str.4)
  store float %211, ptr %39, align 4, !tbaa !11
  %212 = load ptr, ptr %16, align 8, !tbaa !5
  %213 = load i32, ptr %212, align 4, !tbaa !9
  %214 = add nsw i32 %213, 1
  %215 = sitofp i32 %214 to float
  %216 = load float, ptr %39, align 4, !tbaa !11
  %217 = fmul float %215, %216
  store float %217, ptr %39, align 4, !tbaa !11
  %218 = load ptr, ptr %18, align 8, !tbaa !5
  %219 = load i32, ptr %218, align 4, !tbaa !9
  %220 = add nsw i32 %219, 1
  store i32 %220, ptr %43, align 4, !tbaa !9
  %221 = load ptr, ptr %17, align 8, !tbaa !5
  %222 = load i32, ptr %221, align 4, !tbaa !9
  %223 = add nsw i32 %222, 1
  store i32 %223, ptr %44, align 4, !tbaa !9
  %224 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %224, ptr %45, align 4, !tbaa !9
  %225 = load ptr, ptr %23, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = icmp eq i32 %226, 1
  br i1 %227, label %228, label %744

228:                                              ; preds = %210
  %229 = load ptr, ptr %14, align 8, !tbaa !5
  %230 = load i32, ptr %229, align 4, !tbaa !9
  %231 = call i32 @ilatrans_(ptr noundef @.str)
  %232 = icmp eq i32 %230, %231
  br i1 %232, label %233, label %488

233:                                              ; preds = %228
  %234 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %234, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %40, align 4, !tbaa !9
  br label %235

235:                                              ; preds = %484, %233
  %236 = load i32, ptr %40, align 4, !tbaa !9
  %237 = load i32, ptr %29, align 4, !tbaa !9
  %238 = icmp sle i32 %236, %237
  br i1 %238, label %239, label %487

239:                                              ; preds = %235
  %240 = load ptr, ptr %24, align 8, !tbaa !5
  %241 = load float, ptr %240, align 4, !tbaa !11
  %242 = fcmp oeq float %241, 0.000000e+00
  br i1 %242, label %243, label %248

243:                                              ; preds = %239
  store i32 1, ptr %42, align 4, !tbaa !9
  %244 = load ptr, ptr %25, align 8, !tbaa !5
  %245 = load i32, ptr %45, align 4, !tbaa !9
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds float, ptr %244, i64 %246
  store float 0.000000e+00, ptr %247, align 4, !tbaa !11
  br label %279

248:                                              ; preds = %239
  %249 = load ptr, ptr %25, align 8, !tbaa !5
  %250 = load i32, ptr %45, align 4, !tbaa !9
  %251 = sext i32 %250 to i64
  %252 = getelementptr inbounds float, ptr %249, i64 %251
  %253 = load float, ptr %252, align 4, !tbaa !11
  %254 = fcmp oeq float %253, 0.000000e+00
  br i1 %254, label %255, label %256

255:                                              ; preds = %248
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %278

256:                                              ; preds = %248
  store i32 0, ptr %42, align 4, !tbaa !9
  %257 = load ptr, ptr %24, align 8, !tbaa !5
  %258 = load float, ptr %257, align 4, !tbaa !11
  %259 = load ptr, ptr %25, align 8, !tbaa !5
  %260 = load i32, ptr %45, align 4, !tbaa !9
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds float, ptr %259, i64 %261
  %263 = load float, ptr %262, align 4, !tbaa !11
  store float %263, ptr %33, align 4, !tbaa !11
  %264 = load float, ptr %33, align 4, !tbaa !11
  %265 = fcmp oge float %264, 0.000000e+00
  br i1 %265, label %266, label %268

266:                                              ; preds = %256
  %267 = load float, ptr %33, align 4, !tbaa !11
  br label %271

268:                                              ; preds = %256
  %269 = load float, ptr %33, align 4, !tbaa !11
  %270 = fneg float %269
  br label %271

271:                                              ; preds = %268, %266
  %272 = phi float [ %267, %266 ], [ %270, %268 ]
  %273 = fmul float %258, %272
  %274 = load ptr, ptr %25, align 8, !tbaa !5
  %275 = load i32, ptr %45, align 4, !tbaa !9
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds float, ptr %274, i64 %276
  store float %273, ptr %277, align 4, !tbaa !11
  br label %278

278:                                              ; preds = %271, %255
  br label %279

279:                                              ; preds = %278, %243
  %280 = load ptr, ptr %19, align 8, !tbaa !5
  %281 = load float, ptr %280, align 4, !tbaa !11
  %282 = fcmp une float %281, 0.000000e+00
  br i1 %282, label %283, label %440

283:                                              ; preds = %279
  %284 = load i32, ptr %40, align 4, !tbaa !9
  %285 = load ptr, ptr %17, align 8, !tbaa !5
  %286 = load i32, ptr %285, align 4, !tbaa !9
  %287 = sub nsw i32 %284, %286
  store i32 %287, ptr %30, align 4, !tbaa !9
  %288 = load i32, ptr %40, align 4, !tbaa !9
  %289 = load ptr, ptr %18, align 8, !tbaa !5
  %290 = load i32, ptr %289, align 4, !tbaa !9
  %291 = add nsw i32 %288, %290
  store i32 %291, ptr %32, align 4, !tbaa !9
  %292 = load i32, ptr %32, align 4, !tbaa !9
  %293 = load i32, ptr %37, align 4, !tbaa !9
  %294 = icmp sle i32 %292, %293
  br i1 %294, label %295, label %297

295:                                              ; preds = %283
  %296 = load i32, ptr %32, align 4, !tbaa !9
  br label %299

297:                                              ; preds = %283
  %298 = load i32, ptr %37, align 4, !tbaa !9
  br label %299

299:                                              ; preds = %297, %295
  %300 = phi i32 [ %296, %295 ], [ %298, %297 ]
  store i32 %300, ptr %31, align 4, !tbaa !9
  %301 = load i32, ptr %30, align 4, !tbaa !9
  %302 = icmp sge i32 %301, 1
  br i1 %302, label %303, label %305

303:                                              ; preds = %299
  %304 = load i32, ptr %30, align 4, !tbaa !9
  br label %306

305:                                              ; preds = %299
  br label %306

306:                                              ; preds = %305, %303
  %307 = phi i32 [ %304, %303 ], [ 1, %305 ]
  store i32 %307, ptr %41, align 4, !tbaa !9
  br label %308

308:                                              ; preds = %436, %306
  %309 = load i32, ptr %41, align 4, !tbaa !9
  %310 = load i32, ptr %31, align 4, !tbaa !9
  %311 = icmp sle i32 %309, %310
  br i1 %311, label %312, label %439

312:                                              ; preds = %308
  %313 = load i32, ptr %43, align 4, !tbaa !9
  %314 = load i32, ptr %40, align 4, !tbaa !9
  %315 = add nsw i32 %313, %314
  %316 = load i32, ptr %41, align 4, !tbaa !9
  %317 = sub nsw i32 %315, %316
  %318 = load i32, ptr %41, align 4, !tbaa !9
  %319 = load i32, ptr %27, align 4, !tbaa !9
  %320 = mul nsw i32 %318, %319
  %321 = add nsw i32 %317, %320
  store i32 %321, ptr %30, align 4, !tbaa !9
  %322 = load ptr, ptr %20, align 8, !tbaa !5
  %323 = load i32, ptr %30, align 4, !tbaa !9
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds %struct.complex, ptr %322, i64 %324
  %326 = getelementptr inbounds %struct.complex, ptr %325, i32 0, i32 0
  %327 = load float, ptr %326, align 4, !tbaa !13
  store float %327, ptr %33, align 4, !tbaa !11
  %328 = load float, ptr %33, align 4, !tbaa !11
  %329 = fcmp oge float %328, 0.000000e+00
  br i1 %329, label %330, label %332

330:                                              ; preds = %312
  %331 = load float, ptr %33, align 4, !tbaa !11
  br label %335

332:                                              ; preds = %312
  %333 = load float, ptr %33, align 4, !tbaa !11
  %334 = fneg float %333
  br label %335

335:                                              ; preds = %332, %330
  %336 = phi float [ %331, %330 ], [ %334, %332 ]
  %337 = load ptr, ptr %20, align 8, !tbaa !5
  %338 = load i32, ptr %43, align 4, !tbaa !9
  %339 = load i32, ptr %40, align 4, !tbaa !9
  %340 = add nsw i32 %338, %339
  %341 = load i32, ptr %41, align 4, !tbaa !9
  %342 = sub nsw i32 %340, %341
  %343 = load i32, ptr %41, align 4, !tbaa !9
  %344 = load i32, ptr %27, align 4, !tbaa !9
  %345 = mul nsw i32 %343, %344
  %346 = add nsw i32 %342, %345
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds %struct.complex, ptr %337, i64 %347
  %349 = call <2 x float> @Cf(ptr noundef %348)
  store <2 x float> %349, ptr %50, align 4
  %350 = getelementptr inbounds { float, float }, ptr %50, i32 0, i32 0
  %351 = load float, ptr %350, align 4
  %352 = getelementptr inbounds { float, float }, ptr %50, i32 0, i32 1
  %353 = load float, ptr %352, align 4
  store float %353, ptr %34, align 4, !tbaa !11
  %354 = load float, ptr %34, align 4, !tbaa !11
  %355 = fcmp oge float %354, 0.000000e+00
  br i1 %355, label %356, label %358

356:                                              ; preds = %335
  %357 = load float, ptr %34, align 4, !tbaa !11
  br label %361

358:                                              ; preds = %335
  %359 = load float, ptr %34, align 4, !tbaa !11
  %360 = fneg float %359
  br label %361

361:                                              ; preds = %358, %356
  %362 = phi float [ %357, %356 ], [ %360, %358 ]
  %363 = fadd float %336, %362
  store float %363, ptr %36, align 4, !tbaa !11
  %364 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %364, ptr %30, align 4, !tbaa !9
  %365 = load i32, ptr %42, align 4, !tbaa !9
  %366 = icmp ne i32 %365, 0
  br i1 %366, label %367, label %388

367:                                              ; preds = %361
  %368 = load ptr, ptr %22, align 8, !tbaa !5
  %369 = load i32, ptr %30, align 4, !tbaa !9
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds %struct.complex, ptr %368, i64 %370
  %372 = getelementptr inbounds %struct.complex, ptr %371, i32 0, i32 0
  %373 = load float, ptr %372, align 4, !tbaa !13
  %374 = fcmp oeq float %373, 0.000000e+00
  br i1 %374, label %375, label %383

375:                                              ; preds = %367
  %376 = load ptr, ptr %22, align 8, !tbaa !5
  %377 = load i32, ptr %30, align 4, !tbaa !9
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds %struct.complex, ptr %376, i64 %378
  %380 = getelementptr inbounds %struct.complex, ptr %379, i32 0, i32 1
  %381 = load float, ptr %380, align 4, !tbaa !15
  %382 = fcmp oeq float %381, 0.000000e+00
  br i1 %382, label %386, label %383

383:                                              ; preds = %375, %367
  %384 = load float, ptr %36, align 4, !tbaa !11
  %385 = fcmp oeq float %384, 0.000000e+00
  br label %386

386:                                              ; preds = %383, %375
  %387 = phi i1 [ true, %375 ], [ %385, %383 ]
  br label %388

388:                                              ; preds = %386, %361
  %389 = phi i1 [ false, %361 ], [ %387, %386 ]
  %390 = zext i1 %389 to i32
  store i32 %390, ptr %42, align 4, !tbaa !9
  %391 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %391, ptr %30, align 4, !tbaa !9
  %392 = load ptr, ptr %19, align 8, !tbaa !5
  %393 = load float, ptr %392, align 4, !tbaa !11
  %394 = load ptr, ptr %22, align 8, !tbaa !5
  %395 = load i32, ptr %30, align 4, !tbaa !9
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds %struct.complex, ptr %394, i64 %396
  %398 = getelementptr inbounds %struct.complex, ptr %397, i32 0, i32 0
  %399 = load float, ptr %398, align 4, !tbaa !13
  store float %399, ptr %33, align 4, !tbaa !11
  %400 = load float, ptr %33, align 4, !tbaa !11
  %401 = fcmp oge float %400, 0.000000e+00
  br i1 %401, label %402, label %404

402:                                              ; preds = %388
  %403 = load float, ptr %33, align 4, !tbaa !11
  br label %407

404:                                              ; preds = %388
  %405 = load float, ptr %33, align 4, !tbaa !11
  %406 = fneg float %405
  br label %407

407:                                              ; preds = %404, %402
  %408 = phi float [ %403, %402 ], [ %406, %404 ]
  %409 = load ptr, ptr %22, align 8, !tbaa !5
  %410 = load i32, ptr %41, align 4, !tbaa !9
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds %struct.complex, ptr %409, i64 %411
  %413 = call <2 x float> @Cf(ptr noundef %412)
  store <2 x float> %413, ptr %51, align 4
  %414 = getelementptr inbounds { float, float }, ptr %51, i32 0, i32 0
  %415 = load float, ptr %414, align 4
  %416 = getelementptr inbounds { float, float }, ptr %51, i32 0, i32 1
  %417 = load float, ptr %416, align 4
  store float %417, ptr %34, align 4, !tbaa !11
  %418 = load float, ptr %34, align 4, !tbaa !11
  %419 = fcmp oge float %418, 0.000000e+00
  br i1 %419, label %420, label %422

420:                                              ; preds = %407
  %421 = load float, ptr %34, align 4, !tbaa !11
  br label %425

422:                                              ; preds = %407
  %423 = load float, ptr %34, align 4, !tbaa !11
  %424 = fneg float %423
  br label %425

425:                                              ; preds = %422, %420
  %426 = phi float [ %421, %420 ], [ %424, %422 ]
  %427 = fadd float %408, %426
  %428 = fmul float %393, %427
  %429 = load float, ptr %36, align 4, !tbaa !11
  %430 = load ptr, ptr %25, align 8, !tbaa !5
  %431 = load i32, ptr %45, 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 !11
  %435 = call float @llvm.fmuladd.f32(float %428, float %429, float %434)
  store float %435, ptr %433, align 4, !tbaa !11
  br label %436

436:                                              ; preds = %425
  %437 = load i32, ptr %41, align 4, !tbaa !9
  %438 = add nsw i32 %437, 1
  store i32 %438, ptr %41, align 4, !tbaa !9
  br label %308, !llvm.loop !16

439:                                              ; preds = %308
  br label %440

440:                                              ; preds = %439, %279
  %441 = load i32, ptr %42, align 4, !tbaa !9
  %442 = icmp ne i32 %441, 0
  br i1 %442, label %479, label %443

443:                                              ; preds = %440
  %444 = load ptr, ptr %25, align 8, !tbaa !5
  %445 = load i32, ptr %45, align 4, !tbaa !9
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds float, ptr %444, i64 %446
  %448 = load float, ptr %447, align 4, !tbaa !11
  %449 = fcmp oge float %448, 0.000000e+00
  br i1 %449, label %450, label %460

450:                                              ; preds = %443
  %451 = load float, ptr %39, align 4, !tbaa !11
  %452 = fcmp oge float %451, 0.000000e+00
  br i1 %452, label %453, label %455

453:                                              ; preds = %450
  %454 = load float, ptr %39, align 4, !tbaa !11
  br label %458

455:                                              ; preds = %450
  %456 = load float, ptr %39, align 4, !tbaa !11
  %457 = fneg float %456
  br label %458

458:                                              ; preds = %455, %453
  %459 = phi float [ %454, %453 ], [ %457, %455 ]
  br label %471

460:                                              ; preds = %443
  %461 = load float, ptr %39, align 4, !tbaa !11
  %462 = fcmp oge float %461, 0.000000e+00
  br i1 %462, label %463, label %465

463:                                              ; preds = %460
  %464 = load float, ptr %39, align 4, !tbaa !11
  br label %468

465:                                              ; preds = %460
  %466 = load float, ptr %39, align 4, !tbaa !11
  %467 = fneg float %466
  br label %468

468:                                              ; preds = %465, %463
  %469 = phi float [ %464, %463 ], [ %467, %465 ]
  %470 = fneg float %469
  br label %471

471:                                              ; preds = %468, %458
  %472 = phi float [ %459, %458 ], [ %470, %468 ]
  %473 = load ptr, ptr %25, align 8, !tbaa !5
  %474 = load i32, ptr %45, align 4, !tbaa !9
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds float, ptr %473, i64 %475
  %477 = load float, ptr %476, align 4, !tbaa !11
  %478 = fadd float %477, %472
  store float %478, ptr %476, align 4, !tbaa !11
  br label %479

479:                                              ; preds = %471, %440
  %480 = load ptr, ptr %26, align 8, !tbaa !5
  %481 = load i32, ptr %480, align 4, !tbaa !9
  %482 = load i32, ptr %45, align 4, !tbaa !9
  %483 = add nsw i32 %482, %481
  store i32 %483, ptr %45, align 4, !tbaa !9
  br label %484

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

487:                                              ; preds = %235
  br label %743

488:                                              ; preds = %228
  %489 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %489, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %40, align 4, !tbaa !9
  br label %490

490:                                              ; preds = %739, %488
  %491 = load i32, ptr %40, align 4, !tbaa !9
  %492 = load i32, ptr %29, align 4, !tbaa !9
  %493 = icmp sle i32 %491, %492
  br i1 %493, label %494, label %742

494:                                              ; preds = %490
  %495 = load ptr, ptr %24, align 8, !tbaa !5
  %496 = load float, ptr %495, align 4, !tbaa !11
  %497 = fcmp oeq float %496, 0.000000e+00
  br i1 %497, label %498, label %503

498:                                              ; preds = %494
  store i32 1, ptr %42, align 4, !tbaa !9
  %499 = load ptr, ptr %25, align 8, !tbaa !5
  %500 = load i32, ptr %45, align 4, !tbaa !9
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds float, ptr %499, i64 %501
  store float 0.000000e+00, ptr %502, align 4, !tbaa !11
  br label %534

503:                                              ; preds = %494
  %504 = load ptr, ptr %25, align 8, !tbaa !5
  %505 = load i32, ptr %45, align 4, !tbaa !9
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds float, ptr %504, i64 %506
  %508 = load float, ptr %507, align 4, !tbaa !11
  %509 = fcmp oeq float %508, 0.000000e+00
  br i1 %509, label %510, label %511

510:                                              ; preds = %503
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %533

511:                                              ; preds = %503
  store i32 0, ptr %42, align 4, !tbaa !9
  %512 = load ptr, ptr %24, align 8, !tbaa !5
  %513 = load float, ptr %512, align 4, !tbaa !11
  %514 = load ptr, ptr %25, align 8, !tbaa !5
  %515 = load i32, ptr %45, align 4, !tbaa !9
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds float, ptr %514, i64 %516
  %518 = load float, ptr %517, align 4, !tbaa !11
  store float %518, ptr %33, align 4, !tbaa !11
  %519 = load float, ptr %33, align 4, !tbaa !11
  %520 = fcmp oge float %519, 0.000000e+00
  br i1 %520, label %521, label %523

521:                                              ; preds = %511
  %522 = load float, ptr %33, align 4, !tbaa !11
  br label %526

523:                                              ; preds = %511
  %524 = load float, ptr %33, align 4, !tbaa !11
  %525 = fneg float %524
  br label %526

526:                                              ; preds = %523, %521
  %527 = phi float [ %522, %521 ], [ %525, %523 ]
  %528 = fmul float %513, %527
  %529 = load ptr, ptr %25, align 8, !tbaa !5
  %530 = load i32, ptr %45, align 4, !tbaa !9
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds float, ptr %529, i64 %531
  store float %528, ptr %532, align 4, !tbaa !11
  br label %533

533:                                              ; preds = %526, %510
  br label %534

534:                                              ; preds = %533, %498
  %535 = load ptr, ptr %19, align 8, !tbaa !5
  %536 = load float, ptr %535, align 4, !tbaa !11
  %537 = fcmp une float %536, 0.000000e+00
  br i1 %537, label %538, label %695

538:                                              ; preds = %534
  %539 = load i32, ptr %40, align 4, !tbaa !9
  %540 = load ptr, ptr %17, align 8, !tbaa !5
  %541 = load i32, ptr %540, align 4, !tbaa !9
  %542 = sub nsw i32 %539, %541
  store i32 %542, ptr %31, align 4, !tbaa !9
  %543 = load i32, ptr %40, align 4, !tbaa !9
  %544 = load ptr, ptr %18, align 8, !tbaa !5
  %545 = load i32, ptr %544, align 4, !tbaa !9
  %546 = add nsw i32 %543, %545
  store i32 %546, ptr %32, align 4, !tbaa !9
  %547 = load i32, ptr %32, align 4, !tbaa !9
  %548 = load i32, ptr %37, align 4, !tbaa !9
  %549 = icmp sle i32 %547, %548
  br i1 %549, label %550, label %552

550:                                              ; preds = %538
  %551 = load i32, ptr %32, align 4, !tbaa !9
  br label %554

552:                                              ; preds = %538
  %553 = load i32, ptr %37, align 4, !tbaa !9
  br label %554

554:                                              ; preds = %552, %550
  %555 = phi i32 [ %551, %550 ], [ %553, %552 ]
  store i32 %555, ptr %30, align 4, !tbaa !9
  %556 = load i32, ptr %31, align 4, !tbaa !9
  %557 = icmp sge i32 %556, 1
  br i1 %557, label %558, label %560

558:                                              ; preds = %554
  %559 = load i32, ptr %31, align 4, !tbaa !9
  br label %561

560:                                              ; preds = %554
  br label %561

561:                                              ; preds = %560, %558
  %562 = phi i32 [ %559, %558 ], [ 1, %560 ]
  store i32 %562, ptr %41, align 4, !tbaa !9
  br label %563

563:                                              ; preds = %691, %561
  %564 = load i32, ptr %41, align 4, !tbaa !9
  %565 = load i32, ptr %30, align 4, !tbaa !9
  %566 = icmp sle i32 %564, %565
  br i1 %566, label %567, label %694

567:                                              ; preds = %563
  %568 = load i32, ptr %44, align 4, !tbaa !9
  %569 = load i32, ptr %40, align 4, !tbaa !9
  %570 = sub nsw i32 %568, %569
  %571 = load i32, ptr %41, align 4, !tbaa !9
  %572 = add nsw i32 %570, %571
  %573 = load i32, ptr %40, align 4, !tbaa !9
  %574 = load i32, ptr %27, align 4, !tbaa !9
  %575 = mul nsw i32 %573, %574
  %576 = add nsw i32 %572, %575
  store i32 %576, ptr %31, align 4, !tbaa !9
  %577 = load ptr, ptr %20, align 8, !tbaa !5
  %578 = load i32, ptr %31, align 4, !tbaa !9
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds %struct.complex, ptr %577, i64 %579
  %581 = getelementptr inbounds %struct.complex, ptr %580, i32 0, i32 0
  %582 = load float, ptr %581, align 4, !tbaa !13
  store float %582, ptr %33, align 4, !tbaa !11
  %583 = load float, ptr %33, align 4, !tbaa !11
  %584 = fcmp oge float %583, 0.000000e+00
  br i1 %584, label %585, label %587

585:                                              ; preds = %567
  %586 = load float, ptr %33, align 4, !tbaa !11
  br label %590

587:                                              ; preds = %567
  %588 = load float, ptr %33, align 4, !tbaa !11
  %589 = fneg float %588
  br label %590

590:                                              ; preds = %587, %585
  %591 = phi float [ %586, %585 ], [ %589, %587 ]
  %592 = load ptr, ptr %20, align 8, !tbaa !5
  %593 = load i32, ptr %44, align 4, !tbaa !9
  %594 = load i32, ptr %40, align 4, !tbaa !9
  %595 = sub nsw i32 %593, %594
  %596 = load i32, ptr %41, align 4, !tbaa !9
  %597 = add nsw i32 %595, %596
  %598 = load i32, ptr %40, align 4, !tbaa !9
  %599 = load i32, ptr %27, align 4, !tbaa !9
  %600 = mul nsw i32 %598, %599
  %601 = add nsw i32 %597, %600
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds %struct.complex, ptr %592, i64 %602
  %604 = call <2 x float> @Cf(ptr noundef %603)
  store <2 x float> %604, ptr %52, align 4
  %605 = getelementptr inbounds { float, float }, ptr %52, i32 0, i32 0
  %606 = load float, ptr %605, align 4
  %607 = getelementptr inbounds { float, float }, ptr %52, i32 0, i32 1
  %608 = load float, ptr %607, align 4
  store float %608, ptr %34, align 4, !tbaa !11
  %609 = load float, ptr %34, align 4, !tbaa !11
  %610 = fcmp oge float %609, 0.000000e+00
  br i1 %610, label %611, label %613

611:                                              ; preds = %590
  %612 = load float, ptr %34, align 4, !tbaa !11
  br label %616

613:                                              ; preds = %590
  %614 = load float, ptr %34, align 4, !tbaa !11
  %615 = fneg float %614
  br label %616

616:                                              ; preds = %613, %611
  %617 = phi float [ %612, %611 ], [ %615, %613 ]
  %618 = fadd float %591, %617
  store float %618, ptr %36, align 4, !tbaa !11
  %619 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %619, ptr %31, align 4, !tbaa !9
  %620 = load i32, ptr %42, align 4, !tbaa !9
  %621 = icmp ne i32 %620, 0
  br i1 %621, label %622, label %643

622:                                              ; preds = %616
  %623 = load ptr, ptr %22, align 8, !tbaa !5
  %624 = load i32, ptr %31, align 4, !tbaa !9
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds %struct.complex, ptr %623, i64 %625
  %627 = getelementptr inbounds %struct.complex, ptr %626, i32 0, i32 0
  %628 = load float, ptr %627, align 4, !tbaa !13
  %629 = fcmp oeq float %628, 0.000000e+00
  br i1 %629, label %630, label %638

630:                                              ; preds = %622
  %631 = load ptr, ptr %22, align 8, !tbaa !5
  %632 = load i32, ptr %31, align 4, !tbaa !9
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds %struct.complex, ptr %631, i64 %633
  %635 = getelementptr inbounds %struct.complex, ptr %634, i32 0, i32 1
  %636 = load float, ptr %635, align 4, !tbaa !15
  %637 = fcmp oeq float %636, 0.000000e+00
  br i1 %637, label %641, label %638

638:                                              ; preds = %630, %622
  %639 = load float, ptr %36, align 4, !tbaa !11
  %640 = fcmp oeq float %639, 0.000000e+00
  br label %641

641:                                              ; preds = %638, %630
  %642 = phi i1 [ true, %630 ], [ %640, %638 ]
  br label %643

643:                                              ; preds = %641, %616
  %644 = phi i1 [ false, %616 ], [ %642, %641 ]
  %645 = zext i1 %644 to i32
  store i32 %645, ptr %42, align 4, !tbaa !9
  %646 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %646, ptr %31, align 4, !tbaa !9
  %647 = load ptr, ptr %19, align 8, !tbaa !5
  %648 = load float, ptr %647, align 4, !tbaa !11
  %649 = load ptr, ptr %22, align 8, !tbaa !5
  %650 = load i32, ptr %31, align 4, !tbaa !9
  %651 = sext i32 %650 to i64
  %652 = getelementptr inbounds %struct.complex, ptr %649, i64 %651
  %653 = getelementptr inbounds %struct.complex, ptr %652, i32 0, i32 0
  %654 = load float, ptr %653, align 4, !tbaa !13
  store float %654, ptr %33, align 4, !tbaa !11
  %655 = load float, ptr %33, align 4, !tbaa !11
  %656 = fcmp oge float %655, 0.000000e+00
  br i1 %656, label %657, label %659

657:                                              ; preds = %643
  %658 = load float, ptr %33, align 4, !tbaa !11
  br label %662

659:                                              ; preds = %643
  %660 = load float, ptr %33, align 4, !tbaa !11
  %661 = fneg float %660
  br label %662

662:                                              ; preds = %659, %657
  %663 = phi float [ %658, %657 ], [ %661, %659 ]
  %664 = load ptr, ptr %22, align 8, !tbaa !5
  %665 = load i32, ptr %41, align 4, !tbaa !9
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds %struct.complex, ptr %664, i64 %666
  %668 = call <2 x float> @Cf(ptr noundef %667)
  store <2 x float> %668, ptr %53, align 4
  %669 = getelementptr inbounds { float, float }, ptr %53, i32 0, i32 0
  %670 = load float, ptr %669, align 4
  %671 = getelementptr inbounds { float, float }, ptr %53, i32 0, i32 1
  %672 = load float, ptr %671, align 4
  store float %672, ptr %34, align 4, !tbaa !11
  %673 = load float, ptr %34, align 4, !tbaa !11
  %674 = fcmp oge float %673, 0.000000e+00
  br i1 %674, label %675, label %677

675:                                              ; preds = %662
  %676 = load float, ptr %34, align 4, !tbaa !11
  br label %680

677:                                              ; preds = %662
  %678 = load float, ptr %34, align 4, !tbaa !11
  %679 = fneg float %678
  br label %680

680:                                              ; preds = %677, %675
  %681 = phi float [ %676, %675 ], [ %679, %677 ]
  %682 = fadd float %663, %681
  %683 = fmul float %648, %682
  %684 = load float, ptr %36, align 4, !tbaa !11
  %685 = load ptr, ptr %25, align 8, !tbaa !5
  %686 = load i32, ptr %45, 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 !11
  %690 = call float @llvm.fmuladd.f32(float %683, float %684, float %689)
  store float %690, ptr %688, align 4, !tbaa !11
  br label %691

691:                                              ; preds = %680
  %692 = load i32, ptr %41, align 4, !tbaa !9
  %693 = add nsw i32 %692, 1
  store i32 %693, ptr %41, align 4, !tbaa !9
  br label %563, !llvm.loop !19

694:                                              ; preds = %563
  br label %695

695:                                              ; preds = %694, %534
  %696 = load i32, ptr %42, align 4, !tbaa !9
  %697 = icmp ne i32 %696, 0
  br i1 %697, label %734, label %698

698:                                              ; preds = %695
  %699 = load ptr, ptr %25, align 8, !tbaa !5
  %700 = load i32, ptr %45, align 4, !tbaa !9
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds float, ptr %699, i64 %701
  %703 = load float, ptr %702, align 4, !tbaa !11
  %704 = fcmp oge float %703, 0.000000e+00
  br i1 %704, label %705, label %715

705:                                              ; preds = %698
  %706 = load float, ptr %39, align 4, !tbaa !11
  %707 = fcmp oge float %706, 0.000000e+00
  br i1 %707, label %708, label %710

708:                                              ; preds = %705
  %709 = load float, ptr %39, align 4, !tbaa !11
  br label %713

710:                                              ; preds = %705
  %711 = load float, ptr %39, align 4, !tbaa !11
  %712 = fneg float %711
  br label %713

713:                                              ; preds = %710, %708
  %714 = phi float [ %709, %708 ], [ %712, %710 ]
  br label %726

715:                                              ; preds = %698
  %716 = load float, ptr %39, align 4, !tbaa !11
  %717 = fcmp oge float %716, 0.000000e+00
  br i1 %717, label %718, label %720

718:                                              ; preds = %715
  %719 = load float, ptr %39, align 4, !tbaa !11
  br label %723

720:                                              ; preds = %715
  %721 = load float, ptr %39, align 4, !tbaa !11
  %722 = fneg float %721
  br label %723

723:                                              ; preds = %720, %718
  %724 = phi float [ %719, %718 ], [ %722, %720 ]
  %725 = fneg float %724
  br label %726

726:                                              ; preds = %723, %713
  %727 = phi float [ %714, %713 ], [ %725, %723 ]
  %728 = load ptr, ptr %25, align 8, !tbaa !5
  %729 = load i32, ptr %45, align 4, !tbaa !9
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds float, ptr %728, i64 %730
  %732 = load float, ptr %731, align 4, !tbaa !11
  %733 = fadd float %732, %727
  store float %733, ptr %731, align 4, !tbaa !11
  br label %734

734:                                              ; preds = %726, %695
  %735 = load ptr, ptr %26, align 8, !tbaa !5
  %736 = load i32, ptr %735, align 4, !tbaa !9
  %737 = load i32, ptr %45, align 4, !tbaa !9
  %738 = add nsw i32 %737, %736
  store i32 %738, ptr %45, align 4, !tbaa !9
  br label %739

739:                                              ; preds = %734
  %740 = load i32, ptr %40, align 4, !tbaa !9
  %741 = add nsw i32 %740, 1
  store i32 %741, ptr %40, align 4, !tbaa !9
  br label %490, !llvm.loop !20

742:                                              ; preds = %490
  br label %743

743:                                              ; preds = %742, %487
  br label %1270

744:                                              ; preds = %210
  %745 = load ptr, ptr %14, align 8, !tbaa !5
  %746 = load i32, ptr %745, align 4, !tbaa !9
  %747 = call i32 @ilatrans_(ptr noundef @.str)
  %748 = icmp eq i32 %746, %747
  br i1 %748, label %749, label %1009

749:                                              ; preds = %744
  %750 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %750, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %40, align 4, !tbaa !9
  br label %751

751:                                              ; preds = %1005, %749
  %752 = load i32, ptr %40, align 4, !tbaa !9
  %753 = load i32, ptr %29, align 4, !tbaa !9
  %754 = icmp sle i32 %752, %753
  br i1 %754, label %755, label %1008

755:                                              ; preds = %751
  %756 = load ptr, ptr %24, align 8, !tbaa !5
  %757 = load float, ptr %756, align 4, !tbaa !11
  %758 = fcmp oeq float %757, 0.000000e+00
  br i1 %758, label %759, label %764

759:                                              ; preds = %755
  store i32 1, ptr %42, align 4, !tbaa !9
  %760 = load ptr, ptr %25, align 8, !tbaa !5
  %761 = load i32, ptr %45, align 4, !tbaa !9
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds float, ptr %760, i64 %762
  store float 0.000000e+00, ptr %763, align 4, !tbaa !11
  br label %795

764:                                              ; preds = %755
  %765 = load ptr, ptr %25, align 8, !tbaa !5
  %766 = load i32, ptr %45, align 4, !tbaa !9
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds float, ptr %765, i64 %767
  %769 = load float, ptr %768, align 4, !tbaa !11
  %770 = fcmp oeq float %769, 0.000000e+00
  br i1 %770, label %771, label %772

771:                                              ; preds = %764
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %794

772:                                              ; preds = %764
  store i32 0, ptr %42, align 4, !tbaa !9
  %773 = load ptr, ptr %24, align 8, !tbaa !5
  %774 = load float, ptr %773, align 4, !tbaa !11
  %775 = load ptr, ptr %25, align 8, !tbaa !5
  %776 = load i32, ptr %45, align 4, !tbaa !9
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds float, ptr %775, i64 %777
  %779 = load float, ptr %778, align 4, !tbaa !11
  store float %779, ptr %33, align 4, !tbaa !11
  %780 = load float, ptr %33, align 4, !tbaa !11
  %781 = fcmp oge float %780, 0.000000e+00
  br i1 %781, label %782, label %784

782:                                              ; preds = %772
  %783 = load float, ptr %33, align 4, !tbaa !11
  br label %787

784:                                              ; preds = %772
  %785 = load float, ptr %33, align 4, !tbaa !11
  %786 = fneg float %785
  br label %787

787:                                              ; preds = %784, %782
  %788 = phi float [ %783, %782 ], [ %786, %784 ]
  %789 = fmul float %774, %788
  %790 = load ptr, ptr %25, align 8, !tbaa !5
  %791 = load i32, ptr %45, align 4, !tbaa !9
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds float, ptr %790, i64 %792
  store float %789, ptr %793, align 4, !tbaa !11
  br label %794

794:                                              ; preds = %787, %771
  br label %795

795:                                              ; preds = %794, %759
  %796 = load ptr, ptr %19, align 8, !tbaa !5
  %797 = load float, ptr %796, align 4, !tbaa !11
  %798 = fcmp une float %797, 0.000000e+00
  br i1 %798, label %799, label %961

799:                                              ; preds = %795
  %800 = load i32, ptr %47, align 4, !tbaa !9
  store i32 %800, ptr %46, align 4, !tbaa !9
  %801 = load i32, ptr %40, align 4, !tbaa !9
  %802 = load ptr, ptr %17, align 8, !tbaa !5
  %803 = load i32, ptr %802, align 4, !tbaa !9
  %804 = sub nsw i32 %801, %803
  store i32 %804, ptr %30, align 4, !tbaa !9
  %805 = load i32, ptr %40, align 4, !tbaa !9
  %806 = load ptr, ptr %18, align 8, !tbaa !5
  %807 = load i32, ptr %806, align 4, !tbaa !9
  %808 = add nsw i32 %805, %807
  store i32 %808, ptr %32, align 4, !tbaa !9
  %809 = load i32, ptr %32, align 4, !tbaa !9
  %810 = load i32, ptr %37, align 4, !tbaa !9
  %811 = icmp sle i32 %809, %810
  br i1 %811, label %812, label %814

812:                                              ; preds = %799
  %813 = load i32, ptr %32, align 4, !tbaa !9
  br label %816

814:                                              ; preds = %799
  %815 = load i32, ptr %37, align 4, !tbaa !9
  br label %816

816:                                              ; preds = %814, %812
  %817 = phi i32 [ %813, %812 ], [ %815, %814 ]
  store i32 %817, ptr %31, align 4, !tbaa !9
  %818 = load i32, ptr %30, align 4, !tbaa !9
  %819 = icmp sge i32 %818, 1
  br i1 %819, label %820, label %822

820:                                              ; preds = %816
  %821 = load i32, ptr %30, align 4, !tbaa !9
  br label %823

822:                                              ; preds = %816
  br label %823

823:                                              ; preds = %822, %820
  %824 = phi i32 [ %821, %820 ], [ 1, %822 ]
  store i32 %824, ptr %41, align 4, !tbaa !9
  br label %825

825:                                              ; preds = %957, %823
  %826 = load i32, ptr %41, align 4, !tbaa !9
  %827 = load i32, ptr %31, align 4, !tbaa !9
  %828 = icmp sle i32 %826, %827
  br i1 %828, label %829, label %960

829:                                              ; preds = %825
  %830 = load i32, ptr %43, align 4, !tbaa !9
  %831 = load i32, ptr %40, align 4, !tbaa !9
  %832 = add nsw i32 %830, %831
  %833 = load i32, ptr %41, align 4, !tbaa !9
  %834 = sub nsw i32 %832, %833
  %835 = load i32, ptr %41, align 4, !tbaa !9
  %836 = load i32, ptr %27, align 4, !tbaa !9
  %837 = mul nsw i32 %835, %836
  %838 = add nsw i32 %834, %837
  store i32 %838, ptr %30, align 4, !tbaa !9
  %839 = load ptr, ptr %20, align 8, !tbaa !5
  %840 = load i32, ptr %30, align 4, !tbaa !9
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds %struct.complex, ptr %839, i64 %841
  %843 = getelementptr inbounds %struct.complex, ptr %842, i32 0, i32 0
  %844 = load float, ptr %843, align 4, !tbaa !13
  store float %844, ptr %33, align 4, !tbaa !11
  %845 = load float, ptr %33, align 4, !tbaa !11
  %846 = fcmp oge float %845, 0.000000e+00
  br i1 %846, label %847, label %849

847:                                              ; preds = %829
  %848 = load float, ptr %33, align 4, !tbaa !11
  br label %852

849:                                              ; preds = %829
  %850 = load float, ptr %33, align 4, !tbaa !11
  %851 = fneg float %850
  br label %852

852:                                              ; preds = %849, %847
  %853 = phi float [ %848, %847 ], [ %851, %849 ]
  %854 = load ptr, ptr %20, align 8, !tbaa !5
  %855 = load i32, ptr %43, align 4, !tbaa !9
  %856 = load i32, ptr %40, align 4, !tbaa !9
  %857 = add nsw i32 %855, %856
  %858 = load i32, ptr %41, align 4, !tbaa !9
  %859 = sub nsw i32 %857, %858
  %860 = load i32, ptr %41, align 4, !tbaa !9
  %861 = load i32, ptr %27, align 4, !tbaa !9
  %862 = mul nsw i32 %860, %861
  %863 = add nsw i32 %859, %862
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds %struct.complex, ptr %854, i64 %864
  %866 = call <2 x float> @Cf(ptr noundef %865)
  store <2 x float> %866, ptr %54, align 4
  %867 = getelementptr inbounds { float, float }, ptr %54, i32 0, i32 0
  %868 = load float, ptr %867, align 4
  %869 = getelementptr inbounds { float, float }, ptr %54, i32 0, i32 1
  %870 = load float, ptr %869, align 4
  store float %870, ptr %34, align 4, !tbaa !11
  %871 = load float, ptr %34, align 4, !tbaa !11
  %872 = fcmp oge float %871, 0.000000e+00
  br i1 %872, label %873, label %875

873:                                              ; preds = %852
  %874 = load float, ptr %34, align 4, !tbaa !11
  br label %878

875:                                              ; preds = %852
  %876 = load float, ptr %34, align 4, !tbaa !11
  %877 = fneg float %876
  br label %878

878:                                              ; preds = %875, %873
  %879 = phi float [ %874, %873 ], [ %877, %875 ]
  %880 = fadd float %853, %879
  store float %880, ptr %36, align 4, !tbaa !11
  %881 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %881, ptr %30, align 4, !tbaa !9
  %882 = load i32, ptr %42, align 4, !tbaa !9
  %883 = icmp ne i32 %882, 0
  br i1 %883, label %884, label %905

884:                                              ; preds = %878
  %885 = load ptr, ptr %22, align 8, !tbaa !5
  %886 = load i32, ptr %30, align 4, !tbaa !9
  %887 = sext i32 %886 to i64
  %888 = getelementptr inbounds %struct.complex, ptr %885, i64 %887
  %889 = getelementptr inbounds %struct.complex, ptr %888, i32 0, i32 0
  %890 = load float, ptr %889, align 4, !tbaa !13
  %891 = fcmp oeq float %890, 0.000000e+00
  br i1 %891, label %892, label %900

892:                                              ; preds = %884
  %893 = load ptr, ptr %22, align 8, !tbaa !5
  %894 = load i32, ptr %30, align 4, !tbaa !9
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds %struct.complex, ptr %893, i64 %895
  %897 = getelementptr inbounds %struct.complex, ptr %896, i32 0, i32 1
  %898 = load float, ptr %897, align 4, !tbaa !15
  %899 = fcmp oeq float %898, 0.000000e+00
  br i1 %899, label %903, label %900

900:                                              ; preds = %892, %884
  %901 = load float, ptr %36, align 4, !tbaa !11
  %902 = fcmp oeq float %901, 0.000000e+00
  br label %903

903:                                              ; preds = %900, %892
  %904 = phi i1 [ true, %892 ], [ %902, %900 ]
  br label %905

905:                                              ; preds = %903, %878
  %906 = phi i1 [ false, %878 ], [ %904, %903 ]
  %907 = zext i1 %906 to i32
  store i32 %907, ptr %42, align 4, !tbaa !9
  %908 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %908, ptr %30, align 4, !tbaa !9
  %909 = load ptr, ptr %19, align 8, !tbaa !5
  %910 = load float, ptr %909, align 4, !tbaa !11
  %911 = load ptr, ptr %22, align 8, !tbaa !5
  %912 = load i32, ptr %30, align 4, !tbaa !9
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds %struct.complex, ptr %911, i64 %913
  %915 = getelementptr inbounds %struct.complex, ptr %914, i32 0, i32 0
  %916 = load float, ptr %915, align 4, !tbaa !13
  store float %916, ptr %33, align 4, !tbaa !11
  %917 = load float, ptr %33, align 4, !tbaa !11
  %918 = fcmp oge float %917, 0.000000e+00
  br i1 %918, label %919, label %921

919:                                              ; preds = %905
  %920 = load float, ptr %33, align 4, !tbaa !11
  br label %924

921:                                              ; preds = %905
  %922 = load float, ptr %33, align 4, !tbaa !11
  %923 = fneg float %922
  br label %924

924:                                              ; preds = %921, %919
  %925 = phi float [ %920, %919 ], [ %923, %921 ]
  %926 = load ptr, ptr %22, align 8, !tbaa !5
  %927 = load i32, ptr %46, align 4, !tbaa !9
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds %struct.complex, ptr %926, i64 %928
  %930 = call <2 x float> @Cf(ptr noundef %929)
  store <2 x float> %930, ptr %55, align 4
  %931 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 0
  %932 = load float, ptr %931, align 4
  %933 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 1
  %934 = load float, ptr %933, align 4
  store float %934, ptr %34, align 4, !tbaa !11
  %935 = load float, ptr %34, align 4, !tbaa !11
  %936 = fcmp oge float %935, 0.000000e+00
  br i1 %936, label %937, label %939

937:                                              ; preds = %924
  %938 = load float, ptr %34, align 4, !tbaa !11
  br label %942

939:                                              ; preds = %924
  %940 = load float, ptr %34, align 4, !tbaa !11
  %941 = fneg float %940
  br label %942

942:                                              ; preds = %939, %937
  %943 = phi float [ %938, %937 ], [ %941, %939 ]
  %944 = fadd float %925, %943
  %945 = fmul float %910, %944
  %946 = load float, ptr %36, align 4, !tbaa !11
  %947 = load ptr, ptr %25, align 8, !tbaa !5
  %948 = load i32, ptr %45, align 4, !tbaa !9
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds float, ptr %947, i64 %949
  %951 = load float, ptr %950, align 4, !tbaa !11
  %952 = call float @llvm.fmuladd.f32(float %945, float %946, float %951)
  store float %952, ptr %950, align 4, !tbaa !11
  %953 = load ptr, ptr %23, align 8, !tbaa !5
  %954 = load i32, ptr %953, align 4, !tbaa !9
  %955 = load i32, ptr %46, align 4, !tbaa !9
  %956 = add nsw i32 %955, %954
  store i32 %956, ptr %46, align 4, !tbaa !9
  br label %957

957:                                              ; preds = %942
  %958 = load i32, ptr %41, align 4, !tbaa !9
  %959 = add nsw i32 %958, 1
  store i32 %959, ptr %41, align 4, !tbaa !9
  br label %825, !llvm.loop !21

960:                                              ; preds = %825
  br label %961

961:                                              ; preds = %960, %795
  %962 = load i32, ptr %42, align 4, !tbaa !9
  %963 = icmp ne i32 %962, 0
  br i1 %963, label %1000, label %964

964:                                              ; preds = %961
  %965 = load ptr, ptr %25, align 8, !tbaa !5
  %966 = load i32, ptr %45, align 4, !tbaa !9
  %967 = sext i32 %966 to i64
  %968 = getelementptr inbounds float, ptr %965, i64 %967
  %969 = load float, ptr %968, align 4, !tbaa !11
  %970 = fcmp oge float %969, 0.000000e+00
  br i1 %970, label %971, label %981

971:                                              ; preds = %964
  %972 = load float, ptr %39, align 4, !tbaa !11
  %973 = fcmp oge float %972, 0.000000e+00
  br i1 %973, label %974, label %976

974:                                              ; preds = %971
  %975 = load float, ptr %39, align 4, !tbaa !11
  br label %979

976:                                              ; preds = %971
  %977 = load float, ptr %39, align 4, !tbaa !11
  %978 = fneg float %977
  br label %979

979:                                              ; preds = %976, %974
  %980 = phi float [ %975, %974 ], [ %978, %976 ]
  br label %992

981:                                              ; preds = %964
  %982 = load float, ptr %39, align 4, !tbaa !11
  %983 = fcmp oge float %982, 0.000000e+00
  br i1 %983, label %984, label %986

984:                                              ; preds = %981
  %985 = load float, ptr %39, align 4, !tbaa !11
  br label %989

986:                                              ; preds = %981
  %987 = load float, ptr %39, align 4, !tbaa !11
  %988 = fneg float %987
  br label %989

989:                                              ; preds = %986, %984
  %990 = phi float [ %985, %984 ], [ %988, %986 ]
  %991 = fneg float %990
  br label %992

992:                                              ; preds = %989, %979
  %993 = phi float [ %980, %979 ], [ %991, %989 ]
  %994 = load ptr, ptr %25, align 8, !tbaa !5
  %995 = load i32, ptr %45, align 4, !tbaa !9
  %996 = sext i32 %995 to i64
  %997 = getelementptr inbounds float, ptr %994, i64 %996
  %998 = load float, ptr %997, align 4, !tbaa !11
  %999 = fadd float %998, %993
  store float %999, ptr %997, align 4, !tbaa !11
  br label %1000

1000:                                             ; preds = %992, %961
  %1001 = load ptr, ptr %26, align 8, !tbaa !5
  %1002 = load i32, ptr %1001, align 4, !tbaa !9
  %1003 = load i32, ptr %45, align 4, !tbaa !9
  %1004 = add nsw i32 %1003, %1002
  store i32 %1004, ptr %45, align 4, !tbaa !9
  br label %1005

1005:                                             ; preds = %1000
  %1006 = load i32, ptr %40, align 4, !tbaa !9
  %1007 = add nsw i32 %1006, 1
  store i32 %1007, ptr %40, align 4, !tbaa !9
  br label %751, !llvm.loop !22

1008:                                             ; preds = %751
  br label %1269

1009:                                             ; preds = %744
  %1010 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %1010, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %40, align 4, !tbaa !9
  br label %1011

1011:                                             ; preds = %1265, %1009
  %1012 = load i32, ptr %40, align 4, !tbaa !9
  %1013 = load i32, ptr %29, align 4, !tbaa !9
  %1014 = icmp sle i32 %1012, %1013
  br i1 %1014, label %1015, label %1268

1015:                                             ; preds = %1011
  %1016 = load ptr, ptr %24, align 8, !tbaa !5
  %1017 = load float, ptr %1016, align 4, !tbaa !11
  %1018 = fcmp oeq float %1017, 0.000000e+00
  br i1 %1018, label %1019, label %1024

1019:                                             ; preds = %1015
  store i32 1, ptr %42, align 4, !tbaa !9
  %1020 = load ptr, ptr %25, align 8, !tbaa !5
  %1021 = load i32, ptr %45, align 4, !tbaa !9
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds float, ptr %1020, i64 %1022
  store float 0.000000e+00, ptr %1023, align 4, !tbaa !11
  br label %1055

1024:                                             ; preds = %1015
  %1025 = load ptr, ptr %25, align 8, !tbaa !5
  %1026 = load i32, ptr %45, align 4, !tbaa !9
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds float, ptr %1025, i64 %1027
  %1029 = load float, ptr %1028, align 4, !tbaa !11
  %1030 = fcmp oeq float %1029, 0.000000e+00
  br i1 %1030, label %1031, label %1032

1031:                                             ; preds = %1024
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1054

1032:                                             ; preds = %1024
  store i32 0, ptr %42, align 4, !tbaa !9
  %1033 = load ptr, ptr %24, align 8, !tbaa !5
  %1034 = load float, ptr %1033, align 4, !tbaa !11
  %1035 = load ptr, ptr %25, align 8, !tbaa !5
  %1036 = load i32, ptr %45, align 4, !tbaa !9
  %1037 = sext i32 %1036 to i64
  %1038 = getelementptr inbounds float, ptr %1035, i64 %1037
  %1039 = load float, ptr %1038, align 4, !tbaa !11
  store float %1039, ptr %33, align 4, !tbaa !11
  %1040 = load float, ptr %33, align 4, !tbaa !11
  %1041 = fcmp oge float %1040, 0.000000e+00
  br i1 %1041, label %1042, label %1044

1042:                                             ; preds = %1032
  %1043 = load float, ptr %33, align 4, !tbaa !11
  br label %1047

1044:                                             ; preds = %1032
  %1045 = load float, ptr %33, align 4, !tbaa !11
  %1046 = fneg float %1045
  br label %1047

1047:                                             ; preds = %1044, %1042
  %1048 = phi float [ %1043, %1042 ], [ %1046, %1044 ]
  %1049 = fmul float %1034, %1048
  %1050 = load ptr, ptr %25, align 8, !tbaa !5
  %1051 = load i32, ptr %45, align 4, !tbaa !9
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds float, ptr %1050, i64 %1052
  store float %1049, ptr %1053, align 4, !tbaa !11
  br label %1054

1054:                                             ; preds = %1047, %1031
  br label %1055

1055:                                             ; preds = %1054, %1019
  %1056 = load ptr, ptr %19, align 8, !tbaa !5
  %1057 = load float, ptr %1056, align 4, !tbaa !11
  %1058 = fcmp une float %1057, 0.000000e+00
  br i1 %1058, label %1059, label %1221

1059:                                             ; preds = %1055
  %1060 = load i32, ptr %47, align 4, !tbaa !9
  store i32 %1060, ptr %46, align 4, !tbaa !9
  %1061 = load i32, ptr %40, align 4, !tbaa !9
  %1062 = load ptr, ptr %17, align 8, !tbaa !5
  %1063 = load i32, ptr %1062, align 4, !tbaa !9
  %1064 = sub nsw i32 %1061, %1063
  store i32 %1064, ptr %31, align 4, !tbaa !9
  %1065 = load i32, ptr %40, align 4, !tbaa !9
  %1066 = load ptr, ptr %18, align 8, !tbaa !5
  %1067 = load i32, ptr %1066, align 4, !tbaa !9
  %1068 = add nsw i32 %1065, %1067
  store i32 %1068, ptr %32, align 4, !tbaa !9
  %1069 = load i32, ptr %32, align 4, !tbaa !9
  %1070 = load i32, ptr %37, align 4, !tbaa !9
  %1071 = icmp sle i32 %1069, %1070
  br i1 %1071, label %1072, label %1074

1072:                                             ; preds = %1059
  %1073 = load i32, ptr %32, align 4, !tbaa !9
  br label %1076

1074:                                             ; preds = %1059
  %1075 = load i32, ptr %37, align 4, !tbaa !9
  br label %1076

1076:                                             ; preds = %1074, %1072
  %1077 = phi i32 [ %1073, %1072 ], [ %1075, %1074 ]
  store i32 %1077, ptr %30, align 4, !tbaa !9
  %1078 = load i32, ptr %31, align 4, !tbaa !9
  %1079 = icmp sge i32 %1078, 1
  br i1 %1079, label %1080, label %1082

1080:                                             ; preds = %1076
  %1081 = load i32, ptr %31, align 4, !tbaa !9
  br label %1083

1082:                                             ; preds = %1076
  br label %1083

1083:                                             ; preds = %1082, %1080
  %1084 = phi i32 [ %1081, %1080 ], [ 1, %1082 ]
  store i32 %1084, ptr %41, align 4, !tbaa !9
  br label %1085

1085:                                             ; preds = %1217, %1083
  %1086 = load i32, ptr %41, align 4, !tbaa !9
  %1087 = load i32, ptr %30, align 4, !tbaa !9
  %1088 = icmp sle i32 %1086, %1087
  br i1 %1088, label %1089, label %1220

1089:                                             ; preds = %1085
  %1090 = load i32, ptr %44, align 4, !tbaa !9
  %1091 = load i32, ptr %40, align 4, !tbaa !9
  %1092 = sub nsw i32 %1090, %1091
  %1093 = load i32, ptr %41, align 4, !tbaa !9
  %1094 = add nsw i32 %1092, %1093
  %1095 = load i32, ptr %40, align 4, !tbaa !9
  %1096 = load i32, ptr %27, align 4, !tbaa !9
  %1097 = mul nsw i32 %1095, %1096
  %1098 = add nsw i32 %1094, %1097
  store i32 %1098, ptr %31, align 4, !tbaa !9
  %1099 = load ptr, ptr %20, align 8, !tbaa !5
  %1100 = load i32, ptr %31, align 4, !tbaa !9
  %1101 = sext i32 %1100 to i64
  %1102 = getelementptr inbounds %struct.complex, ptr %1099, i64 %1101
  %1103 = getelementptr inbounds %struct.complex, ptr %1102, i32 0, i32 0
  %1104 = load float, ptr %1103, align 4, !tbaa !13
  store float %1104, ptr %33, align 4, !tbaa !11
  %1105 = load float, ptr %33, align 4, !tbaa !11
  %1106 = fcmp oge float %1105, 0.000000e+00
  br i1 %1106, label %1107, label %1109

1107:                                             ; preds = %1089
  %1108 = load float, ptr %33, align 4, !tbaa !11
  br label %1112

1109:                                             ; preds = %1089
  %1110 = load float, ptr %33, align 4, !tbaa !11
  %1111 = fneg float %1110
  br label %1112

1112:                                             ; preds = %1109, %1107
  %1113 = phi float [ %1108, %1107 ], [ %1111, %1109 ]
  %1114 = load ptr, ptr %20, align 8, !tbaa !5
  %1115 = load i32, ptr %44, align 4, !tbaa !9
  %1116 = load i32, ptr %40, align 4, !tbaa !9
  %1117 = sub nsw i32 %1115, %1116
  %1118 = load i32, ptr %41, align 4, !tbaa !9
  %1119 = add nsw i32 %1117, %1118
  %1120 = load i32, ptr %40, align 4, !tbaa !9
  %1121 = load i32, ptr %27, align 4, !tbaa !9
  %1122 = mul nsw i32 %1120, %1121
  %1123 = add nsw i32 %1119, %1122
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds %struct.complex, ptr %1114, i64 %1124
  %1126 = call <2 x float> @Cf(ptr noundef %1125)
  store <2 x float> %1126, ptr %56, align 4
  %1127 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 0
  %1128 = load float, ptr %1127, align 4
  %1129 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 1
  %1130 = load float, ptr %1129, align 4
  store float %1130, ptr %34, align 4, !tbaa !11
  %1131 = load float, ptr %34, align 4, !tbaa !11
  %1132 = fcmp oge float %1131, 0.000000e+00
  br i1 %1132, label %1133, label %1135

1133:                                             ; preds = %1112
  %1134 = load float, ptr %34, align 4, !tbaa !11
  br label %1138

1135:                                             ; preds = %1112
  %1136 = load float, ptr %34, align 4, !tbaa !11
  %1137 = fneg float %1136
  br label %1138

1138:                                             ; preds = %1135, %1133
  %1139 = phi float [ %1134, %1133 ], [ %1137, %1135 ]
  %1140 = fadd float %1113, %1139
  store float %1140, ptr %36, align 4, !tbaa !11
  %1141 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1141, ptr %31, align 4, !tbaa !9
  %1142 = load i32, ptr %42, align 4, !tbaa !9
  %1143 = icmp ne i32 %1142, 0
  br i1 %1143, label %1144, label %1165

1144:                                             ; preds = %1138
  %1145 = load ptr, ptr %22, align 8, !tbaa !5
  %1146 = load i32, ptr %31, align 4, !tbaa !9
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds %struct.complex, ptr %1145, i64 %1147
  %1149 = getelementptr inbounds %struct.complex, ptr %1148, i32 0, i32 0
  %1150 = load float, ptr %1149, align 4, !tbaa !13
  %1151 = fcmp oeq float %1150, 0.000000e+00
  br i1 %1151, label %1152, label %1160

1152:                                             ; preds = %1144
  %1153 = load ptr, ptr %22, align 8, !tbaa !5
  %1154 = load i32, ptr %31, align 4, !tbaa !9
  %1155 = sext i32 %1154 to i64
  %1156 = getelementptr inbounds %struct.complex, ptr %1153, i64 %1155
  %1157 = getelementptr inbounds %struct.complex, ptr %1156, i32 0, i32 1
  %1158 = load float, ptr %1157, align 4, !tbaa !15
  %1159 = fcmp oeq float %1158, 0.000000e+00
  br i1 %1159, label %1163, label %1160

1160:                                             ; preds = %1152, %1144
  %1161 = load float, ptr %36, align 4, !tbaa !11
  %1162 = fcmp oeq float %1161, 0.000000e+00
  br label %1163

1163:                                             ; preds = %1160, %1152
  %1164 = phi i1 [ true, %1152 ], [ %1162, %1160 ]
  br label %1165

1165:                                             ; preds = %1163, %1138
  %1166 = phi i1 [ false, %1138 ], [ %1164, %1163 ]
  %1167 = zext i1 %1166 to i32
  store i32 %1167, ptr %42, align 4, !tbaa !9
  %1168 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1168, ptr %31, align 4, !tbaa !9
  %1169 = load ptr, ptr %19, align 8, !tbaa !5
  %1170 = load float, ptr %1169, align 4, !tbaa !11
  %1171 = load ptr, ptr %22, align 8, !tbaa !5
  %1172 = load i32, ptr %31, align 4, !tbaa !9
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds %struct.complex, ptr %1171, i64 %1173
  %1175 = getelementptr inbounds %struct.complex, ptr %1174, i32 0, i32 0
  %1176 = load float, ptr %1175, align 4, !tbaa !13
  store float %1176, ptr %33, align 4, !tbaa !11
  %1177 = load float, ptr %33, align 4, !tbaa !11
  %1178 = fcmp oge float %1177, 0.000000e+00
  br i1 %1178, label %1179, label %1181

1179:                                             ; preds = %1165
  %1180 = load float, ptr %33, align 4, !tbaa !11
  br label %1184

1181:                                             ; preds = %1165
  %1182 = load float, ptr %33, align 4, !tbaa !11
  %1183 = fneg float %1182
  br label %1184

1184:                                             ; preds = %1181, %1179
  %1185 = phi float [ %1180, %1179 ], [ %1183, %1181 ]
  %1186 = load ptr, ptr %22, align 8, !tbaa !5
  %1187 = load i32, ptr %46, align 4, !tbaa !9
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds %struct.complex, ptr %1186, i64 %1188
  %1190 = call <2 x float> @Cf(ptr noundef %1189)
  store <2 x float> %1190, ptr %57, align 4
  %1191 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 0
  %1192 = load float, ptr %1191, align 4
  %1193 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 1
  %1194 = load float, ptr %1193, align 4
  store float %1194, ptr %34, align 4, !tbaa !11
  %1195 = load float, ptr %34, align 4, !tbaa !11
  %1196 = fcmp oge float %1195, 0.000000e+00
  br i1 %1196, label %1197, label %1199

1197:                                             ; preds = %1184
  %1198 = load float, ptr %34, align 4, !tbaa !11
  br label %1202

1199:                                             ; preds = %1184
  %1200 = load float, ptr %34, align 4, !tbaa !11
  %1201 = fneg float %1200
  br label %1202

1202:                                             ; preds = %1199, %1197
  %1203 = phi float [ %1198, %1197 ], [ %1201, %1199 ]
  %1204 = fadd float %1185, %1203
  %1205 = fmul float %1170, %1204
  %1206 = load float, ptr %36, align 4, !tbaa !11
  %1207 = load ptr, ptr %25, align 8, !tbaa !5
  %1208 = load i32, ptr %45, align 4, !tbaa !9
  %1209 = sext i32 %1208 to i64
  %1210 = getelementptr inbounds float, ptr %1207, i64 %1209
  %1211 = load float, ptr %1210, align 4, !tbaa !11
  %1212 = call float @llvm.fmuladd.f32(float %1205, float %1206, float %1211)
  store float %1212, ptr %1210, align 4, !tbaa !11
  %1213 = load ptr, ptr %23, align 8, !tbaa !5
  %1214 = load i32, ptr %1213, align 4, !tbaa !9
  %1215 = load i32, ptr %46, align 4, !tbaa !9
  %1216 = add nsw i32 %1215, %1214
  store i32 %1216, ptr %46, align 4, !tbaa !9
  br label %1217

1217:                                             ; preds = %1202
  %1218 = load i32, ptr %41, align 4, !tbaa !9
  %1219 = add nsw i32 %1218, 1
  store i32 %1219, ptr %41, align 4, !tbaa !9
  br label %1085, !llvm.loop !23

1220:                                             ; preds = %1085
  br label %1221

1221:                                             ; preds = %1220, %1055
  %1222 = load i32, ptr %42, align 4, !tbaa !9
  %1223 = icmp ne i32 %1222, 0
  br i1 %1223, label %1260, label %1224

1224:                                             ; preds = %1221
  %1225 = load ptr, ptr %25, align 8, !tbaa !5
  %1226 = load i32, ptr %45, align 4, !tbaa !9
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds float, ptr %1225, i64 %1227
  %1229 = load float, ptr %1228, align 4, !tbaa !11
  %1230 = fcmp oge float %1229, 0.000000e+00
  br i1 %1230, label %1231, label %1241

1231:                                             ; preds = %1224
  %1232 = load float, ptr %39, align 4, !tbaa !11
  %1233 = fcmp oge float %1232, 0.000000e+00
  br i1 %1233, label %1234, label %1236

1234:                                             ; preds = %1231
  %1235 = load float, ptr %39, align 4, !tbaa !11
  br label %1239

1236:                                             ; preds = %1231
  %1237 = load float, ptr %39, align 4, !tbaa !11
  %1238 = fneg float %1237
  br label %1239

1239:                                             ; preds = %1236, %1234
  %1240 = phi float [ %1235, %1234 ], [ %1238, %1236 ]
  br label %1252

1241:                                             ; preds = %1224
  %1242 = load float, ptr %39, align 4, !tbaa !11
  %1243 = fcmp oge float %1242, 0.000000e+00
  br i1 %1243, label %1244, label %1246

1244:                                             ; preds = %1241
  %1245 = load float, ptr %39, align 4, !tbaa !11
  br label %1249

1246:                                             ; preds = %1241
  %1247 = load float, ptr %39, align 4, !tbaa !11
  %1248 = fneg float %1247
  br label %1249

1249:                                             ; preds = %1246, %1244
  %1250 = phi float [ %1245, %1244 ], [ %1248, %1246 ]
  %1251 = fneg float %1250
  br label %1252

1252:                                             ; preds = %1249, %1239
  %1253 = phi float [ %1240, %1239 ], [ %1251, %1249 ]
  %1254 = load ptr, ptr %25, align 8, !tbaa !5
  %1255 = load i32, ptr %45, align 4, !tbaa !9
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds float, ptr %1254, i64 %1256
  %1258 = load float, ptr %1257, align 4, !tbaa !11
  %1259 = fadd float %1258, %1253
  store float %1259, ptr %1257, align 4, !tbaa !11
  br label %1260

1260:                                             ; preds = %1252, %1221
  %1261 = load ptr, ptr %26, align 8, !tbaa !5
  %1262 = load i32, ptr %1261, align 4, !tbaa !9
  %1263 = load i32, ptr %45, align 4, !tbaa !9
  %1264 = add nsw i32 %1263, %1262
  store i32 %1264, ptr %45, align 4, !tbaa !9
  br label %1265

1265:                                             ; preds = %1260
  %1266 = load i32, ptr %40, align 4, !tbaa !9
  %1267 = add nsw i32 %1266, 1
  store i32 %1267, ptr %40, align 4, !tbaa !9
  br label %1011, !llvm.loop !24

1268:                                             ; preds = %1011
  br label %1269

1269:                                             ; preds = %1268, %1008
  br label %1270

1270:                                             ; preds = %1269, %743
  store i32 1, ptr %49, align 4
  br label %1271

1271:                                             ; preds = %1270, %170, %152
  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
  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 @ilatrans_(ptr noundef) #2

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

declare float @slamch_(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) #3

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "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 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "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, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!14, !12, i64 0}
!14 = !{!"", !12, i64 0, !12, i64 4}
!15 = !{!14, !12, i64 4}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!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 [11 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [13 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @cla_gbamv_(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr noundef %6, ptr nocapture noundef readonly %7, ptr noundef %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture noundef %11, ptr nocapture noundef readonly %12) local_unnamed_addr #0 {
  %14 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  %15 = load i32, ptr %7, align 4, !tbaa !5
  %narrow = xor i32 %15, -1
  %16 = sext i32 %narrow to i64
  %17 = getelementptr inbounds %struct.complex, ptr %6, i64 %16
  %18 = getelementptr inbounds i8, ptr %8, i64 -8
  %19 = getelementptr inbounds i8, ptr %11, i64 -4
  %20 = load i32, ptr %0, align 4, !tbaa !5
  %21 = tail call i32 @ilatrans_(ptr noundef nonnull @.str) #6
  %22 = icmp eq i32 %20, %21
  br i1 %22, label %32, label %23

23:                                               ; preds = %13
  %24 = load i32, ptr %0, align 4, !tbaa !5
  %25 = tail call i32 @ilatrans_(ptr noundef nonnull @.str.1) #6
  %26 = icmp eq i32 %24, %25
  br i1 %26, label %32, label %27

27:                                               ; preds = %23
  %28 = load i32, ptr %0, align 4, !tbaa !5
  %29 = tail call i32 @ilatrans_(ptr noundef nonnull @.str.2) #6
  %30 = icmp eq i32 %28, %29
  br i1 %30, label %32, label %31

31:                                               ; preds = %27
  store i32 1, ptr %14, align 4, !tbaa !5
  br label %.thread

32:                                               ; preds = %27, %23, %13
  %33 = load i32, ptr %1, align 4, !tbaa !5
  %34 = icmp slt i32 %33, 0
  br i1 %34, label %35, label %36

35:                                               ; preds = %32
  store i32 2, ptr %14, align 4, !tbaa !5
  br label %.thread

36:                                               ; preds = %32
  %37 = load i32, ptr %2, align 4, !tbaa !5
  %38 = icmp slt i32 %37, 0
  br i1 %38, label %39, label %40

39:                                               ; preds = %36
  store i32 3, ptr %14, align 4, !tbaa !5
  br label %.thread

40:                                               ; preds = %36
  %41 = load i32, ptr %3, align 4, !tbaa !5
  %or.cond = icmp ult i32 %41, %33
  br i1 %or.cond, label %43, label %42

42:                                               ; preds = %40
  store i32 4, ptr %14, align 4, !tbaa !5
  br label %.thread

43:                                               ; preds = %40
  %44 = load i32, ptr %4, align 4, !tbaa !5
  %or.cond455 = icmp ult i32 %44, %37
  br i1 %or.cond455, label %46, label %45

45:                                               ; preds = %43
  store i32 5, ptr %14, align 4, !tbaa !5
  br label %.thread

46:                                               ; preds = %43
  %47 = load i32, ptr %7, align 4, !tbaa !5
  %48 = add nuw nsw i32 %44, %41
  %.not430 = icmp sgt i32 %47, %48
  br i1 %.not430, label %50, label %49

49:                                               ; preds = %46
  store i32 6, ptr %14, align 4, !tbaa !5
  br label %.thread

50:                                               ; preds = %46
  %51 = load i32, ptr %9, align 4, !tbaa !5
  %52 = icmp eq i32 %51, 0
  br i1 %52, label %53, label %54

53:                                               ; preds = %50
  store i32 8, ptr %14, align 4, !tbaa !5
  br label %.thread

54:                                               ; preds = %50
  %55 = load i32, ptr %12, align 4, !tbaa !5
  %56 = icmp eq i32 %55, 0
  br i1 %56, label %57, label %59

57:                                               ; preds = %54
  store i32 11, ptr %14, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %31, %39, %45, %53, %57, %49, %42, %35
  %58 = call i32 @xerbla_(ptr noundef nonnull @.str.3, ptr noundef nonnull %14, i32 noundef 10) #6
  br label %.loopexit459

59:                                               ; preds = %54
  %60 = load float, ptr %5, align 4, !tbaa !9
  %61 = fcmp oeq float %60, 0.000000e+00
  br i1 %61, label %62, label %65

62:                                               ; preds = %59
  %63 = load float, ptr %10, align 4, !tbaa !9
  %64 = fcmp oeq float %63, 1.000000e+00
  br i1 %64, label %.loopexit459, label %65

65:                                               ; preds = %62, %59
  %66 = load i32, ptr %0, align 4, !tbaa !5
  %67 = tail call i32 @ilatrans_(ptr noundef nonnull @.str) #6
  %68 = icmp eq i32 %66, %67
  %. = select i1 %68, ptr %2, ptr %1
  %.456 = select i1 %68, ptr %1, ptr %2
  %.0413 = load i32, ptr %.456, align 4, !tbaa !5
  %.0414 = load i32, ptr %., align 4, !tbaa !5
  %69 = load i32, ptr %9, align 4, !tbaa !5
  %70 = add nsw i32 %.0414, -1
  %71 = mul nsw i32 %70, %69
  %72 = sub nsw i32 1, %71
  %.inv = icmp slt i32 %69, 1
  %.0397 = select i1 %.inv, i32 %72, i32 1
  %73 = load i32, ptr %12, align 4, !tbaa !5
  %74 = add nsw i32 %.0413, -1
  %75 = mul nsw i32 %73, %74
  %76 = sub nsw i32 1, %75
  %.inv458 = icmp slt i32 %73, 1
  %.0 = select i1 %.inv458, i32 %76, i32 1
  %77 = tail call float @slamch_(ptr noundef nonnull @.str.4) #6
  %78 = load i32, ptr %2, align 4, !tbaa !5
  %79 = add nsw i32 %78, 1
  %80 = sitofp i32 %79 to float
  %81 = fmul float %77, %80
  %82 = load i32, ptr %4, align 4, !tbaa !5
  %83 = add nsw i32 %82, 1
  %84 = load i32, ptr %3, align 4, !tbaa !5
  %85 = add nsw i32 %84, 1
  %86 = load i32, ptr %9, align 4, !tbaa !5
  %87 = icmp eq i32 %86, 1
  %88 = load i32, ptr %0, align 4, !tbaa !5
  %89 = tail call i32 @ilatrans_(ptr noundef nonnull @.str) #6
  %90 = icmp eq i32 %88, %89
  %.not449504 = icmp slt i32 %.0413, 1
  br i1 %87, label %91, label %255

91:                                               ; preds = %65
  br i1 %90, label %.preheader, label %.preheader461

.preheader461:                                    ; preds = %91
  br i1 %.not449504, label %.loopexit459, label %.lr.ph498

.lr.ph498:                                        ; preds = %.preheader461
  %92 = fcmp oge float %81, 0.000000e+00
  %93 = fneg float %81
  br label %176

.preheader:                                       ; preds = %91
  br i1 %.not449504, label %.loopexit459, label %.lr.ph508

.lr.ph508:                                        ; preds = %.preheader
  %94 = fcmp oge float %81, 0.000000e+00
  %95 = fneg float %81
  %96 = sext i32 %15 to i64
  br label %97

97:                                               ; preds = %.lr.ph508, %172
  %.0399507 = phi i32 [ %.0, %.lr.ph508 ], [ %174, %172 ]
  %.0409505 = phi i32 [ 1, %.lr.ph508 ], [ %175, %172 ]
  %98 = load float, ptr %10, align 4, !tbaa !9
  %99 = fcmp oeq float %98, 0.000000e+00
  %100 = sext i32 %.0399507 to i64
  %101 = getelementptr inbounds float, ptr %19, i64 %100
  br i1 %99, label %.sink.split, label %102

102:                                              ; preds = %97
  %103 = load float, ptr %101, align 4, !tbaa !9
  %104 = fcmp oeq float %103, 0.000000e+00
  br i1 %104, label %110, label %105

105:                                              ; preds = %102
  %106 = fcmp oge float %103, 0.000000e+00
  %107 = fneg float %103
  %108 = select i1 %106, float %103, float %107
  %109 = fmul float %98, %108
  br label %.sink.split

.sink.split:                                      ; preds = %97, %105
  %.sink = phi float [ %109, %105 ], [ 0.000000e+00, %97 ]
  %.0401.ph = phi i32 [ 0, %105 ], [ 1, %97 ]
  store float %.sink, ptr %101, align 4, !tbaa !9
  br label %110

110:                                              ; preds = %.sink.split, %102
  %111 = phi float [ %103, %102 ], [ %.sink, %.sink.split ]
  %.0401 = phi i32 [ 1, %102 ], [ %.0401.ph, %.sink.split ]
  %112 = load float, ptr %5, align 4, !tbaa !9
  %113 = fcmp une float %112, 0.000000e+00
  br i1 %113, label %114, label %.loopexit

114:                                              ; preds = %110
  %115 = load i32, ptr %3, align 4, !tbaa !5
  %116 = sub i32 %.0409505, %115
  %117 = load i32, ptr %4, align 4, !tbaa !5
  %118 = add nsw i32 %117, %.0409505
  %119 = tail call i32 @llvm.smin.i32(i32 %118, i32 %.0414)
  %120 = tail call i32 @llvm.smax.i32(i32 %116, i32 1)
  %.not451499 = icmp sgt i32 %120, %119
  br i1 %.not451499, label %.loopexit, label %.lr.ph502

.lr.ph502:                                        ; preds = %114
  %121 = add nsw i32 %.0409505, %83
  %122 = sext i32 %.0399507 to i64
  %123 = getelementptr inbounds float, ptr %19, i64 %122
  %124 = zext nneg i32 %120 to i64
  %125 = zext nneg i32 %119 to i64
  br label %126

126:                                              ; preds = %.lr.ph502, %._crit_edge544
  %indvars.iv531 = phi i64 [ %124, %.lr.ph502 ], [ %indvars.iv.next532, %._crit_edge544 ]
  %.1402501 = phi i32 [ %.0401, %.lr.ph502 ], [ %151, %._crit_edge544 ]
  %127 = trunc nuw nsw i64 %indvars.iv531 to i32
  %128 = sub i32 %121, %127
  %129 = mul nsw i64 %indvars.iv531, %96
  %130 = sext i32 %128 to i64
  %131 = getelementptr %struct.complex, ptr %17, i64 %129
  %132 = getelementptr %struct.complex, ptr %131, i64 %130
  %133 = load float, ptr %132, align 4, !tbaa !11
  %134 = fcmp oge float %133, 0.000000e+00
  %135 = fneg float %133
  %136 = select i1 %134, float %133, float %135
  %137 = tail call <2 x float> @Cf(ptr noundef nonnull %132)
  %.sroa.07.4.vec.extract = extractelement <2 x float> %137, i64 1
  %138 = fcmp oge float %.sroa.07.4.vec.extract, 0.000000e+00
  %139 = fneg float %.sroa.07.4.vec.extract
  %140 = select i1 %138, float %.sroa.07.4.vec.extract, float %139
  %141 = fadd float %136, %140
  %.not454 = icmp eq i32 %.1402501, 0
  %.phi.trans.insert545 = getelementptr inbounds %struct.complex, ptr %18, i64 %indvars.iv531
  %.pre546 = load float, ptr %.phi.trans.insert545, align 4, !tbaa !11
  br i1 %.not454, label %._crit_edge544, label %142

142:                                              ; preds = %126
  %143 = fcmp oeq float %.pre546, 0.000000e+00
  br i1 %143, label %144, label %148

144:                                              ; preds = %142
  %145 = getelementptr inbounds i8, ptr %.phi.trans.insert545, i64 4
  %146 = load float, ptr %145, align 4, !tbaa !13
  %147 = fcmp oeq float %146, 0.000000e+00
  br i1 %147, label %._crit_edge544, label %148

148:                                              ; preds = %144, %142
  %149 = fcmp oeq float %141, 0.000000e+00
  br label %._crit_edge544

._crit_edge544:                                   ; preds = %126, %144, %148
  %150 = phi i1 [ true, %144 ], [ %149, %148 ], [ false, %126 ]
  %151 = zext i1 %150 to i32
  %152 = load float, ptr %5, align 4, !tbaa !9
  %153 = getelementptr inbounds %struct.complex, ptr %18, i64 %indvars.iv531
  %154 = fcmp oge float %.pre546, 0.000000e+00
  %155 = fneg float %.pre546
  %156 = select i1 %154, float %.pre546, float %155
  %157 = tail call <2 x float> @Cf(ptr noundef nonnull %153)
  %.sroa.06.4.vec.extract = extractelement <2 x float> %157, i64 1
  %158 = fcmp oge float %.sroa.06.4.vec.extract, 0.000000e+00
  %159 = fneg float %.sroa.06.4.vec.extract
  %160 = select i1 %158, float %.sroa.06.4.vec.extract, float %159
  %161 = fadd float %156, %160
  %162 = fmul float %152, %161
  %163 = load float, ptr %123, align 4, !tbaa !9
  %164 = tail call float @llvm.fmuladd.f32(float %162, float %141, float %163)
  store float %164, ptr %123, align 4, !tbaa !9
  %indvars.iv.next532 = add nuw nsw i64 %indvars.iv531, 1
  %.not451.not = icmp ult i64 %indvars.iv531, %125
  br i1 %.not451.not, label %126, label %.loopexit, !llvm.loop !14

.loopexit:                                        ; preds = %._crit_edge544, %114, %110
  %165 = phi float [ %111, %110 ], [ %111, %114 ], [ %164, %._crit_edge544 ]
  %.2403 = phi i32 [ %.0401, %110 ], [ %.0401, %114 ], [ %151, %._crit_edge544 ]
  %.not452 = icmp eq i32 %.2403, 0
  br i1 %.not452, label %166, label %172

166:                                              ; preds = %.loopexit
  %167 = sext i32 %.0399507 to i64
  %168 = getelementptr inbounds float, ptr %19, i64 %167
  %169 = fcmp ult float %165, 0.000000e+00
  %170 = xor i1 %94, %169
  %.509 = select i1 %170, float %81, float %95
  %171 = fadd float %165, %.509
  store float %171, ptr %168, align 4, !tbaa !9
  br label %172

172:                                              ; preds = %166, %.loopexit
  %173 = load i32, ptr %12, align 4, !tbaa !5
  %174 = add nsw i32 %173, %.0399507
  %175 = add nuw i32 %.0409505, 1
  %exitcond534.not = icmp eq i32 %.0409505, %.0413
  br i1 %exitcond534.not, label %.loopexit459, label %97, !llvm.loop !16

176:                                              ; preds = %.lr.ph498, %251
  %.1400497 = phi i32 [ %.0, %.lr.ph498 ], [ %253, %251 ]
  %.1410495 = phi i32 [ 1, %.lr.ph498 ], [ %254, %251 ]
  %177 = load float, ptr %10, align 4, !tbaa !9
  %178 = fcmp oeq float %177, 0.000000e+00
  %179 = sext i32 %.1400497 to i64
  %180 = getelementptr inbounds float, ptr %19, i64 %179
  br i1 %178, label %.sink.split558, label %181

181:                                              ; preds = %176
  %182 = load float, ptr %180, align 4, !tbaa !9
  %183 = fcmp oeq float %182, 0.000000e+00
  br i1 %183, label %189, label %184

184:                                              ; preds = %181
  %185 = fcmp oge float %182, 0.000000e+00
  %186 = fneg float %182
  %187 = select i1 %185, float %182, float %186
  %188 = fmul float %177, %187
  br label %.sink.split558

.sink.split558:                                   ; preds = %176, %184
  %.sink560 = phi float [ %188, %184 ], [ 0.000000e+00, %176 ]
  %.3404.ph = phi i32 [ 0, %184 ], [ 1, %176 ]
  store float %.sink560, ptr %180, align 4, !tbaa !9
  br label %189

189:                                              ; preds = %.sink.split558, %181
  %190 = phi float [ %182, %181 ], [ %.sink560, %.sink.split558 ]
  %.3404 = phi i32 [ 1, %181 ], [ %.3404.ph, %.sink.split558 ]
  %191 = load float, ptr %5, align 4, !tbaa !9
  %192 = fcmp une float %191, 0.000000e+00
  br i1 %192, label %193, label %.loopexit460

193:                                              ; preds = %189
  %194 = load i32, ptr %3, align 4, !tbaa !5
  %195 = sub i32 %.1410495, %194
  %196 = load i32, ptr %4, align 4, !tbaa !5
  %197 = add nsw i32 %196, %.1410495
  %198 = tail call i32 @llvm.smin.i32(i32 %197, i32 %.0414)
  %199 = tail call i32 @llvm.smax.i32(i32 %195, i32 1)
  %.not445489 = icmp sgt i32 %199, %198
  br i1 %.not445489, label %.loopexit460, label %.lr.ph492

.lr.ph492:                                        ; preds = %193
  %200 = sub i32 %85, %.1410495
  %201 = mul nsw i32 %.1410495, %15
  %202 = add i32 %200, %201
  %203 = sext i32 %.1400497 to i64
  %204 = getelementptr inbounds float, ptr %19, i64 %203
  %205 = zext nneg i32 %199 to i64
  %206 = zext nneg i32 %198 to i64
  br label %207

207:                                              ; preds = %.lr.ph492, %._crit_edge541
  %indvars.iv526 = phi i64 [ %205, %.lr.ph492 ], [ %indvars.iv.next527, %._crit_edge541 ]
  %.4491 = phi i32 [ %.3404, %.lr.ph492 ], [ %230, %._crit_edge541 ]
  %208 = trunc nuw nsw i64 %indvars.iv526 to i32
  %209 = add i32 %202, %208
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds %struct.complex, ptr %17, i64 %210
  %212 = load float, ptr %211, align 4, !tbaa !11
  %213 = fcmp oge float %212, 0.000000e+00
  %214 = fneg float %212
  %215 = select i1 %213, float %212, float %214
  %216 = tail call <2 x float> @Cf(ptr noundef nonnull %211)
  %.sroa.05.4.vec.extract = extractelement <2 x float> %216, i64 1
  %217 = fcmp oge float %.sroa.05.4.vec.extract, 0.000000e+00
  %218 = fneg float %.sroa.05.4.vec.extract
  %219 = select i1 %217, float %.sroa.05.4.vec.extract, float %218
  %220 = fadd float %215, %219
  %.not448 = icmp eq i32 %.4491, 0
  %.phi.trans.insert542 = getelementptr inbounds %struct.complex, ptr %18, i64 %indvars.iv526
  %.pre543 = load float, ptr %.phi.trans.insert542, align 4, !tbaa !11
  br i1 %.not448, label %._crit_edge541, label %221

221:                                              ; preds = %207
  %222 = fcmp oeq float %.pre543, 0.000000e+00
  br i1 %222, label %223, label %227

223:                                              ; preds = %221
  %224 = getelementptr inbounds i8, ptr %.phi.trans.insert542, i64 4
  %225 = load float, ptr %224, align 4, !tbaa !13
  %226 = fcmp oeq float %225, 0.000000e+00
  br i1 %226, label %._crit_edge541, label %227

227:                                              ; preds = %223, %221
  %228 = fcmp oeq float %220, 0.000000e+00
  br label %._crit_edge541

._crit_edge541:                                   ; preds = %207, %223, %227
  %229 = phi i1 [ true, %223 ], [ %228, %227 ], [ false, %207 ]
  %230 = zext i1 %229 to i32
  %231 = load float, ptr %5, align 4, !tbaa !9
  %232 = getelementptr inbounds %struct.complex, ptr %18, i64 %indvars.iv526
  %233 = fcmp oge float %.pre543, 0.000000e+00
  %234 = fneg float %.pre543
  %235 = select i1 %233, float %.pre543, float %234
  %236 = tail call <2 x float> @Cf(ptr noundef nonnull %232)
  %.sroa.04.4.vec.extract = extractelement <2 x float> %236, i64 1
  %237 = fcmp oge float %.sroa.04.4.vec.extract, 0.000000e+00
  %238 = fneg float %.sroa.04.4.vec.extract
  %239 = select i1 %237, float %.sroa.04.4.vec.extract, float %238
  %240 = fadd float %235, %239
  %241 = fmul float %231, %240
  %242 = load float, ptr %204, align 4, !tbaa !9
  %243 = tail call float @llvm.fmuladd.f32(float %241, float %220, float %242)
  store float %243, ptr %204, align 4, !tbaa !9
  %indvars.iv.next527 = add nuw nsw i64 %indvars.iv526, 1
  %.not445.not = icmp ult i64 %indvars.iv526, %206
  br i1 %.not445.not, label %207, label %.loopexit460, !llvm.loop !17

.loopexit460:                                     ; preds = %._crit_edge541, %193, %189
  %244 = phi float [ %190, %189 ], [ %190, %193 ], [ %243, %._crit_edge541 ]
  %.5 = phi i32 [ %.3404, %189 ], [ %.3404, %193 ], [ %230, %._crit_edge541 ]
  %.not446 = icmp eq i32 %.5, 0
  br i1 %.not446, label %245, label %251

245:                                              ; preds = %.loopexit460
  %246 = sext i32 %.1400497 to i64
  %247 = getelementptr inbounds float, ptr %19, i64 %246
  %248 = fcmp ult float %244, 0.000000e+00
  %249 = xor i1 %92, %248
  %.510 = select i1 %249, float %81, float %93
  %250 = fadd float %244, %.510
  store float %250, ptr %247, align 4, !tbaa !9
  br label %251

251:                                              ; preds = %245, %.loopexit460
  %252 = load i32, ptr %12, align 4, !tbaa !5
  %253 = add nsw i32 %252, %.1400497
  %254 = add nuw i32 %.1410495, 1
  %exitcond529.not = icmp eq i32 %.1410495, %.0413
  br i1 %exitcond529.not, label %.loopexit459, label %176, !llvm.loop !18

255:                                              ; preds = %65
  br i1 %90, label %.preheader464, label %.preheader467

.preheader467:                                    ; preds = %255
  br i1 %.not449504, label %.loopexit459, label %.lr.ph477

.lr.ph477:                                        ; preds = %.preheader467
  %256 = fcmp oge float %81, 0.000000e+00
  %257 = fneg float %81
  br label %342

.preheader464:                                    ; preds = %255
  br i1 %.not449504, label %.loopexit459, label %.lr.ph488

.lr.ph488:                                        ; preds = %.preheader464
  %258 = fcmp oge float %81, 0.000000e+00
  %259 = fneg float %81
  %260 = sext i32 %15 to i64
  br label %261

261:                                              ; preds = %.lr.ph488, %338
  %.2487 = phi i32 [ %.0, %.lr.ph488 ], [ %340, %338 ]
  %.2411485 = phi i32 [ 1, %.lr.ph488 ], [ %341, %338 ]
  %262 = load float, ptr %10, align 4, !tbaa !9
  %263 = fcmp oeq float %262, 0.000000e+00
  %264 = sext i32 %.2487 to i64
  %265 = getelementptr inbounds float, ptr %19, i64 %264
  br i1 %263, label %.sink.split561, label %266

266:                                              ; preds = %261
  %267 = load float, ptr %265, align 4, !tbaa !9
  %268 = fcmp oeq float %267, 0.000000e+00
  br i1 %268, label %274, label %269

269:                                              ; preds = %266
  %270 = fcmp oge float %267, 0.000000e+00
  %271 = fneg float %267
  %272 = select i1 %270, float %267, float %271
  %273 = fmul float %262, %272
  br label %.sink.split561

.sink.split561:                                   ; preds = %261, %269
  %.sink563 = phi float [ %273, %269 ], [ 0.000000e+00, %261 ]
  %.6.ph = phi i32 [ 0, %269 ], [ 1, %261 ]
  store float %.sink563, ptr %265, align 4, !tbaa !9
  br label %274

274:                                              ; preds = %.sink.split561, %266
  %275 = phi float [ %267, %266 ], [ %.sink563, %.sink.split561 ]
  %.6 = phi i32 [ 1, %266 ], [ %.6.ph, %.sink.split561 ]
  %276 = load float, ptr %5, align 4, !tbaa !9
  %277 = fcmp une float %276, 0.000000e+00
  br i1 %277, label %278, label %.loopexit463

278:                                              ; preds = %274
  %279 = load i32, ptr %3, align 4, !tbaa !5
  %280 = sub i32 %.2411485, %279
  %281 = load i32, ptr %4, align 4, !tbaa !5
  %282 = add nsw i32 %281, %.2411485
  %283 = tail call i32 @llvm.smin.i32(i32 %282, i32 %.0414)
  %284 = tail call i32 @llvm.smax.i32(i32 %280, i32 1)
  %.not439478 = icmp sgt i32 %284, %283
  br i1 %.not439478, label %.loopexit463, label %.lr.ph482

.lr.ph482:                                        ; preds = %278
  %285 = add nsw i32 %.2411485, %83
  %286 = sext i32 %.2487 to i64
  %287 = getelementptr inbounds float, ptr %19, i64 %286
  %288 = zext nneg i32 %284 to i64
  %289 = zext nneg i32 %283 to i64
  br label %290

290:                                              ; preds = %.lr.ph482, %._crit_edge537
  %indvars.iv521 = phi i64 [ %288, %.lr.ph482 ], [ %indvars.iv.next522, %._crit_edge537 ]
  %.0398481 = phi i32 [ %.0397, %.lr.ph482 ], [ %330, %._crit_edge537 ]
  %.7480 = phi i32 [ %.6, %.lr.ph482 ], [ %315, %._crit_edge537 ]
  %291 = trunc nuw nsw i64 %indvars.iv521 to i32
  %292 = sub i32 %285, %291
  %293 = mul nsw i64 %indvars.iv521, %260
  %294 = sext i32 %292 to i64
  %295 = getelementptr %struct.complex, ptr %17, i64 %293
  %296 = getelementptr %struct.complex, ptr %295, i64 %294
  %297 = load float, ptr %296, align 4, !tbaa !11
  %298 = fcmp oge float %297, 0.000000e+00
  %299 = fneg float %297
  %300 = select i1 %298, float %297, float %299
  %301 = tail call <2 x float> @Cf(ptr noundef nonnull %296)
  %.sroa.03.4.vec.extract = extractelement <2 x float> %301, i64 1
  %302 = fcmp oge float %.sroa.03.4.vec.extract, 0.000000e+00
  %303 = fneg float %.sroa.03.4.vec.extract
  %304 = select i1 %302, float %.sroa.03.4.vec.extract, float %303
  %305 = fadd float %300, %304
  %.not442 = icmp eq i32 %.7480, 0
  %.phi.trans.insert538 = sext i32 %.0398481 to i64
  %.phi.trans.insert539 = getelementptr inbounds %struct.complex, ptr %18, i64 %.phi.trans.insert538
  %.pre540 = load float, ptr %.phi.trans.insert539, align 4, !tbaa !11
  br i1 %.not442, label %._crit_edge537, label %306

306:                                              ; preds = %290
  %307 = fcmp oeq float %.pre540, 0.000000e+00
  br i1 %307, label %308, label %312

308:                                              ; preds = %306
  %309 = getelementptr inbounds i8, ptr %.phi.trans.insert539, i64 4
  %310 = load float, ptr %309, align 4, !tbaa !13
  %311 = fcmp oeq float %310, 0.000000e+00
  br i1 %311, label %._crit_edge537, label %312

312:                                              ; preds = %308, %306
  %313 = fcmp oeq float %305, 0.000000e+00
  br label %._crit_edge537

._crit_edge537:                                   ; preds = %290, %308, %312
  %314 = phi i1 [ true, %308 ], [ %313, %312 ], [ false, %290 ]
  %315 = zext i1 %314 to i32
  %316 = load float, ptr %5, align 4, !tbaa !9
  %317 = getelementptr inbounds %struct.complex, ptr %18, i64 %.phi.trans.insert538
  %318 = fcmp oge float %.pre540, 0.000000e+00
  %319 = fneg float %.pre540
  %320 = select i1 %318, float %.pre540, float %319
  %321 = tail call <2 x float> @Cf(ptr noundef nonnull %317)
  %.sroa.02.4.vec.extract = extractelement <2 x float> %321, i64 1
  %322 = fcmp oge float %.sroa.02.4.vec.extract, 0.000000e+00
  %323 = fneg float %.sroa.02.4.vec.extract
  %324 = select i1 %322, float %.sroa.02.4.vec.extract, float %323
  %325 = fadd float %320, %324
  %326 = fmul float %316, %325
  %327 = load float, ptr %287, align 4, !tbaa !9
  %328 = tail call float @llvm.fmuladd.f32(float %326, float %305, float %327)
  store float %328, ptr %287, align 4, !tbaa !9
  %329 = load i32, ptr %9, align 4, !tbaa !5
  %330 = add nsw i32 %329, %.0398481
  %indvars.iv.next522 = add nuw nsw i64 %indvars.iv521, 1
  %.not439.not = icmp ult i64 %indvars.iv521, %289
  br i1 %.not439.not, label %290, label %.loopexit463, !llvm.loop !19

.loopexit463:                                     ; preds = %._crit_edge537, %278, %274
  %331 = phi float [ %275, %274 ], [ %275, %278 ], [ %328, %._crit_edge537 ]
  %.8 = phi i32 [ %.6, %274 ], [ %.6, %278 ], [ %315, %._crit_edge537 ]
  %.not440 = icmp eq i32 %.8, 0
  br i1 %.not440, label %332, label %338

332:                                              ; preds = %.loopexit463
  %333 = sext i32 %.2487 to i64
  %334 = getelementptr inbounds float, ptr %19, i64 %333
  %335 = fcmp ult float %331, 0.000000e+00
  %336 = xor i1 %258, %335
  %.511 = select i1 %336, float %81, float %259
  %337 = fadd float %331, %.511
  store float %337, ptr %334, align 4, !tbaa !9
  br label %338

338:                                              ; preds = %332, %.loopexit463
  %339 = load i32, ptr %12, align 4, !tbaa !5
  %340 = add nsw i32 %339, %.2487
  %341 = add nuw i32 %.2411485, 1
  %exitcond524.not = icmp eq i32 %.2411485, %.0413
  br i1 %exitcond524.not, label %.loopexit459, label %261, !llvm.loop !20

342:                                              ; preds = %.lr.ph477, %419
  %.3476 = phi i32 [ %.0, %.lr.ph477 ], [ %421, %419 ]
  %.3412474 = phi i32 [ 1, %.lr.ph477 ], [ %422, %419 ]
  %343 = load float, ptr %10, align 4, !tbaa !9
  %344 = fcmp oeq float %343, 0.000000e+00
  %345 = sext i32 %.3476 to i64
  %346 = getelementptr inbounds float, ptr %19, i64 %345
  br i1 %344, label %.sink.split564, label %347

347:                                              ; preds = %342
  %348 = load float, ptr %346, align 4, !tbaa !9
  %349 = fcmp oeq float %348, 0.000000e+00
  br i1 %349, label %355, label %350

350:                                              ; preds = %347
  %351 = fcmp oge float %348, 0.000000e+00
  %352 = fneg float %348
  %353 = select i1 %351, float %348, float %352
  %354 = fmul float %343, %353
  br label %.sink.split564

.sink.split564:                                   ; preds = %342, %350
  %.sink566 = phi float [ %354, %350 ], [ 0.000000e+00, %342 ]
  %.9.ph = phi i32 [ 0, %350 ], [ 1, %342 ]
  store float %.sink566, ptr %346, align 4, !tbaa !9
  br label %355

355:                                              ; preds = %.sink.split564, %347
  %356 = phi float [ %348, %347 ], [ %.sink566, %.sink.split564 ]
  %.9 = phi i32 [ 1, %347 ], [ %.9.ph, %.sink.split564 ]
  %357 = load float, ptr %5, align 4, !tbaa !9
  %358 = fcmp une float %357, 0.000000e+00
  br i1 %358, label %359, label %.loopexit466

359:                                              ; preds = %355
  %360 = load i32, ptr %3, align 4, !tbaa !5
  %361 = sub i32 %.3412474, %360
  %362 = load i32, ptr %4, align 4, !tbaa !5
  %363 = add nsw i32 %362, %.3412474
  %364 = tail call i32 @llvm.smin.i32(i32 %363, i32 %.0414)
  %365 = tail call i32 @llvm.smax.i32(i32 %361, i32 1)
  %.not434469 = icmp sgt i32 %365, %364
  br i1 %.not434469, label %.loopexit466, label %.lr.ph

.lr.ph:                                           ; preds = %359
  %366 = sub i32 %85, %.3412474
  %367 = mul nsw i32 %.3412474, %15
  %368 = add i32 %366, %367
  %369 = sext i32 %.3476 to i64
  %370 = getelementptr inbounds float, ptr %19, i64 %369
  %371 = zext nneg i32 %365 to i64
  %372 = zext nneg i32 %364 to i64
  br label %373

373:                                              ; preds = %.lr.ph, %._crit_edge
  %indvars.iv = phi i64 [ %371, %.lr.ph ], [ %indvars.iv.next, %._crit_edge ]
  %.1472 = phi i32 [ %.0397, %.lr.ph ], [ %411, %._crit_edge ]
  %.10471 = phi i32 [ %.9, %.lr.ph ], [ %396, %._crit_edge ]
  %374 = trunc nuw nsw i64 %indvars.iv to i32
  %375 = add i32 %368, %374
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds %struct.complex, ptr %17, i64 %376
  %378 = load float, ptr %377, align 4, !tbaa !11
  %379 = fcmp oge float %378, 0.000000e+00
  %380 = fneg float %378
  %381 = select i1 %379, float %378, float %380
  %382 = tail call <2 x float> @Cf(ptr noundef nonnull %377)
  %.sroa.01.4.vec.extract = extractelement <2 x float> %382, i64 1
  %383 = fcmp oge float %.sroa.01.4.vec.extract, 0.000000e+00
  %384 = fneg float %.sroa.01.4.vec.extract
  %385 = select i1 %383, float %.sroa.01.4.vec.extract, float %384
  %386 = fadd float %381, %385
  %.not436 = icmp eq i32 %.10471, 0
  %.phi.trans.insert = sext i32 %.1472 to i64
  %.phi.trans.insert536 = getelementptr inbounds %struct.complex, ptr %18, i64 %.phi.trans.insert
  %.pre = load float, ptr %.phi.trans.insert536, align 4, !tbaa !11
  br i1 %.not436, label %._crit_edge, label %387

387:                                              ; preds = %373
  %388 = fcmp oeq float %.pre, 0.000000e+00
  br i1 %388, label %389, label %393

389:                                              ; preds = %387
  %390 = getelementptr inbounds i8, ptr %.phi.trans.insert536, i64 4
  %391 = load float, ptr %390, align 4, !tbaa !13
  %392 = fcmp oeq float %391, 0.000000e+00
  br i1 %392, label %._crit_edge, label %393

393:                                              ; preds = %389, %387
  %394 = fcmp oeq float %386, 0.000000e+00
  br label %._crit_edge

._crit_edge:                                      ; preds = %373, %389, %393
  %395 = phi i1 [ true, %389 ], [ %394, %393 ], [ false, %373 ]
  %396 = zext i1 %395 to i32
  %397 = load float, ptr %5, align 4, !tbaa !9
  %398 = getelementptr inbounds %struct.complex, ptr %18, i64 %.phi.trans.insert
  %399 = fcmp oge float %.pre, 0.000000e+00
  %400 = fneg float %.pre
  %401 = select i1 %399, float %.pre, float %400
  %402 = tail call <2 x float> @Cf(ptr noundef nonnull %398)
  %.sroa.0.4.vec.extract = extractelement <2 x float> %402, i64 1
  %403 = fcmp oge float %.sroa.0.4.vec.extract, 0.000000e+00
  %404 = fneg float %.sroa.0.4.vec.extract
  %405 = select i1 %403, float %.sroa.0.4.vec.extract, float %404
  %406 = fadd float %401, %405
  %407 = fmul float %397, %406
  %408 = load float, ptr %370, align 4, !tbaa !9
  %409 = tail call float @llvm.fmuladd.f32(float %407, float %386, float %408)
  store float %409, ptr %370, align 4, !tbaa !9
  %410 = load i32, ptr %9, align 4, !tbaa !5
  %411 = add nsw i32 %410, %.1472
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %.not434.not = icmp ult i64 %indvars.iv, %372
  br i1 %.not434.not, label %373, label %.loopexit466, !llvm.loop !21

.loopexit466:                                     ; preds = %._crit_edge, %359, %355
  %412 = phi float [ %356, %355 ], [ %356, %359 ], [ %409, %._crit_edge ]
  %.11 = phi i32 [ %.9, %355 ], [ %.9, %359 ], [ %396, %._crit_edge ]
  %.not435 = icmp eq i32 %.11, 0
  br i1 %.not435, label %413, label %419

413:                                              ; preds = %.loopexit466
  %414 = sext i32 %.3476 to i64
  %415 = getelementptr inbounds float, ptr %19, i64 %414
  %416 = fcmp ult float %412, 0.000000e+00
  %417 = xor i1 %256, %416
  %.512 = select i1 %417, float %81, float %257
  %418 = fadd float %412, %.512
  store float %418, ptr %415, align 4, !tbaa !9
  br label %419

419:                                              ; preds = %413, %.loopexit466
  %420 = load i32, ptr %12, align 4, !tbaa !5
  %421 = add nsw i32 %420, %.3476
  %422 = add nuw i32 %.3412474, 1
  %exitcond.not = icmp eq i32 %.3412474, %.0413
  br i1 %exitcond.not, label %.loopexit459, label %342, !llvm.loop !22

.loopexit459:                                     ; preds = %419, %338, %251, %172, %.preheader467, %.preheader464, %.preheader461, %.preheader, %62, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #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 @ilatrans_(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: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) local_unnamed_addr #3

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

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

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

; 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"="64" "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 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "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, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"", !10, i64 0, !10, i64 4}
!13 = !{!12, !10, i64 4}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}


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