; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/TESTING/MATGEN (clatmt)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.12 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c__5 = external hidden global i32, align 4
@c_true = external hidden global i32, align 4
@c_false = external hidden global i32, align 4

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

166:                                              ; preds = %17
  %167 = load ptr, ptr %19, align 8, !tbaa !5
  %168 = load i32, ptr %167, align 4, !tbaa !9
  %169 = icmp eq i32 %168, 0
  br i1 %169, label %170, label %171

170:                                              ; preds = %166, %17
  store i32 1, ptr %99, align 4
  br label %4785

171:                                              ; preds = %166
  %172 = load ptr, ptr %20, align 8, !tbaa !5
  %173 = call i32 @lsame_(ptr noundef %172, ptr noundef @.str)
  %174 = icmp ne i32 %173, 0
  br i1 %174, label %175, label %176

175:                                              ; preds = %171
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %189

176:                                              ; preds = %171
  %177 = load ptr, ptr %20, align 8, !tbaa !5
  %178 = call i32 @lsame_(ptr noundef %177, ptr noundef @.str.1)
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %180, label %181

180:                                              ; preds = %176
  store i32 2, ptr %68, align 4, !tbaa !9
  br label %188

181:                                              ; preds = %176
  %182 = load ptr, ptr %20, align 8, !tbaa !5
  %183 = call i32 @lsame_(ptr noundef %182, ptr noundef @.str.2)
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %185, label %186

185:                                              ; preds = %181
  store i32 3, ptr %68, align 4, !tbaa !9
  br label %187

186:                                              ; preds = %181
  store i32 -1, ptr %68, align 4, !tbaa !9
  br label %187

187:                                              ; preds = %186, %185
  br label %188

188:                                              ; preds = %187, %180
  br label %189

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

193:                                              ; preds = %189
  store i32 1, ptr %55, align 4, !tbaa !9
  store i32 0, ptr %86, align 4, !tbaa !9
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %213

194:                                              ; preds = %189
  %195 = load ptr, ptr %22, align 8, !tbaa !5
  %196 = call i32 @lsame_(ptr noundef %195, ptr noundef @.str.3)
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %198, label %199

198:                                              ; preds = %194
  store i32 2, ptr %55, align 4, !tbaa !9
  store i32 0, ptr %86, align 4, !tbaa !9
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %212

199:                                              ; preds = %194
  %200 = load ptr, ptr %22, align 8, !tbaa !5
  %201 = call i32 @lsame_(ptr noundef %200, ptr noundef @.str.1)
  %202 = icmp ne i32 %201, 0
  br i1 %202, label %203, label %204

203:                                              ; preds = %199
  store i32 2, ptr %55, align 4, !tbaa !9
  store i32 0, ptr %86, align 4, !tbaa !9
  store i32 1, ptr %53, align 4, !tbaa !9
  br label %211

204:                                              ; preds = %199
  %205 = load ptr, ptr %22, align 8, !tbaa !5
  %206 = call i32 @lsame_(ptr noundef %205, ptr noundef @.str.4)
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %208, label %209

208:                                              ; preds = %204
  store i32 2, ptr %55, align 4, !tbaa !9
  store i32 1, ptr %86, align 4, !tbaa !9
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %210

209:                                              ; preds = %204
  store i32 -1, ptr %55, align 4, !tbaa !9
  br label %210

210:                                              ; preds = %209, %208
  br label %211

211:                                              ; preds = %210, %203
  br label %212

212:                                              ; preds = %211, %198
  br label %213

213:                                              ; preds = %212, %193
  store i32 0, ptr %93, align 4, !tbaa !9
  %214 = load ptr, ptr %30, align 8, !tbaa !5
  %215 = call i32 @lsame_(ptr noundef %214, ptr noundef @.str.2)
  %216 = icmp ne i32 %215, 0
  br i1 %216, label %217, label %218

217:                                              ; preds = %213
  store i32 0, ptr %64, align 4, !tbaa !9
  br label %261

218:                                              ; preds = %213
  %219 = load ptr, ptr %30, align 8, !tbaa !5
  %220 = call i32 @lsame_(ptr noundef %219, ptr noundef @.str)
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %222, label %223

222:                                              ; preds = %218
  store i32 1, ptr %64, align 4, !tbaa !9
  store i32 1, ptr %93, align 4, !tbaa !9
  br label %260

223:                                              ; preds = %218
  %224 = load ptr, ptr %30, align 8, !tbaa !5
  %225 = call i32 @lsame_(ptr noundef %224, ptr noundef @.str.5)
  %226 = icmp ne i32 %225, 0
  br i1 %226, label %227, label %228

227:                                              ; preds = %223
  store i32 2, ptr %64, align 4, !tbaa !9
  store i32 1, ptr %93, align 4, !tbaa !9
  br label %259

228:                                              ; preds = %223
  %229 = load ptr, ptr %30, align 8, !tbaa !5
  %230 = call i32 @lsame_(ptr noundef %229, ptr noundef @.str.6)
  %231 = icmp ne i32 %230, 0
  br i1 %231, label %232, label %233

232:                                              ; preds = %228
  store i32 3, ptr %64, align 4, !tbaa !9
  store i32 2, ptr %93, align 4, !tbaa !9
  br label %258

233:                                              ; preds = %228
  %234 = load ptr, ptr %30, align 8, !tbaa !5
  %235 = call i32 @lsame_(ptr noundef %234, ptr noundef @.str.7)
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %237, label %238

237:                                              ; preds = %233
  store i32 4, ptr %64, align 4, !tbaa !9
  store i32 3, ptr %93, align 4, !tbaa !9
  br label %257

238:                                              ; preds = %233
  %239 = load ptr, ptr %30, align 8, !tbaa !5
  %240 = call i32 @lsame_(ptr noundef %239, ptr noundef @.str.8)
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %243

242:                                              ; preds = %238
  store i32 5, ptr %64, align 4, !tbaa !9
  store i32 3, ptr %93, align 4, !tbaa !9
  br label %256

243:                                              ; preds = %238
  %244 = load ptr, ptr %30, align 8, !tbaa !5
  %245 = call i32 @lsame_(ptr noundef %244, ptr noundef @.str.9)
  %246 = icmp ne i32 %245, 0
  br i1 %246, label %247, label %248

247:                                              ; preds = %243
  store i32 6, ptr %64, align 4, !tbaa !9
  store i32 2, ptr %93, align 4, !tbaa !9
  br label %255

248:                                              ; preds = %243
  %249 = load ptr, ptr %30, align 8, !tbaa !5
  %250 = call i32 @lsame_(ptr noundef %249, ptr noundef @.str.10)
  %251 = icmp ne i32 %250, 0
  br i1 %251, label %252, label %253

252:                                              ; preds = %248
  store i32 7, ptr %64, align 4, !tbaa !9
  br label %254

253:                                              ; preds = %248
  store i32 -1, ptr %64, align 4, !tbaa !9
  br label %254

254:                                              ; preds = %253, %252
  br label %255

255:                                              ; preds = %254, %247
  br label %256

256:                                              ; preds = %255, %242
  br label %257

257:                                              ; preds = %256, %237
  br label %258

258:                                              ; preds = %257, %232
  br label %259

259:                                              ; preds = %258, %227
  br label %260

260:                                              ; preds = %259, %222
  br label %261

261:                                              ; preds = %260, %217
  %262 = load ptr, ptr %18, align 8, !tbaa !5
  %263 = load i32, ptr %262, align 4, !tbaa !9
  %264 = load ptr, ptr %19, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  %266 = icmp sle i32 %263, %265
  br i1 %266, label %267, label %270

267:                                              ; preds = %261
  %268 = load ptr, ptr %18, align 8, !tbaa !5
  %269 = load i32, ptr %268, align 4, !tbaa !9
  br label %273

270:                                              ; preds = %261
  %271 = load ptr, ptr %19, align 8, !tbaa !5
  %272 = load i32, ptr %271, align 4, !tbaa !9
  br label %273

273:                                              ; preds = %270, %267
  %274 = phi i32 [ %269, %267 ], [ %272, %270 ]
  store i32 %274, ptr %69, align 4, !tbaa !9
  %275 = load ptr, ptr %28, align 8, !tbaa !5
  %276 = load i32, ptr %275, align 4, !tbaa !9
  store i32 %276, ptr %37, align 4, !tbaa !9
  %277 = load ptr, ptr %18, align 8, !tbaa !5
  %278 = load i32, ptr %277, align 4, !tbaa !9
  %279 = sub nsw i32 %278, 1
  store i32 %279, ptr %38, align 4, !tbaa !9
  %280 = load i32, ptr %37, align 4, !tbaa !9
  %281 = load i32, ptr %38, align 4, !tbaa !9
  %282 = icmp sle i32 %280, %281
  br i1 %282, label %283, label %285

283:                                              ; preds = %273
  %284 = load i32, ptr %37, align 4, !tbaa !9
  br label %287

285:                                              ; preds = %273
  %286 = load i32, ptr %38, align 4, !tbaa !9
  br label %287

287:                                              ; preds = %285, %283
  %288 = phi i32 [ %284, %283 ], [ %286, %285 ]
  store i32 %288, ptr %95, align 4, !tbaa !9
  %289 = load ptr, ptr %29, align 8, !tbaa !5
  %290 = load i32, ptr %289, align 4, !tbaa !9
  store i32 %290, ptr %37, align 4, !tbaa !9
  %291 = load ptr, ptr %19, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = sub nsw i32 %292, 1
  store i32 %293, ptr %38, align 4, !tbaa !9
  %294 = load i32, ptr %37, align 4, !tbaa !9
  %295 = load i32, ptr %38, align 4, !tbaa !9
  %296 = icmp sle i32 %294, %295
  br i1 %296, label %297, label %299

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

299:                                              ; preds = %287
  %300 = load i32, ptr %38, align 4, !tbaa !9
  br label %301

301:                                              ; preds = %299, %297
  %302 = phi i32 [ %298, %297 ], [ %300, %299 ]
  store i32 %302, ptr %98, align 4, !tbaa !9
  %303 = load ptr, ptr %18, align 8, !tbaa !5
  %304 = load i32, ptr %303, align 4, !tbaa !9
  store i32 %304, ptr %37, align 4, !tbaa !9
  %305 = load ptr, ptr %19, align 8, !tbaa !5
  %306 = load i32, ptr %305, align 4, !tbaa !9
  %307 = load i32, ptr %95, align 4, !tbaa !9
  %308 = add nsw i32 %306, %307
  store i32 %308, ptr %38, align 4, !tbaa !9
  %309 = load i32, ptr %37, align 4, !tbaa !9
  %310 = load i32, ptr %38, align 4, !tbaa !9
  %311 = icmp sle i32 %309, %310
  br i1 %311, label %312, label %314

312:                                              ; preds = %301
  %313 = load i32, ptr %37, align 4, !tbaa !9
  br label %316

314:                                              ; preds = %301
  %315 = load i32, ptr %38, align 4, !tbaa !9
  br label %316

316:                                              ; preds = %314, %312
  %317 = phi i32 [ %313, %312 ], [ %315, %314 ]
  store i32 %317, ptr %82, align 4, !tbaa !9
  %318 = load ptr, ptr %19, align 8, !tbaa !5
  %319 = load i32, ptr %318, align 4, !tbaa !9
  store i32 %319, ptr %37, align 4, !tbaa !9
  %320 = load ptr, ptr %18, align 8, !tbaa !5
  %321 = load i32, ptr %320, align 4, !tbaa !9
  %322 = load i32, ptr %98, align 4, !tbaa !9
  %323 = add nsw i32 %321, %322
  store i32 %323, ptr %38, align 4, !tbaa !9
  %324 = load i32, ptr %37, align 4, !tbaa !9
  %325 = load i32, ptr %38, align 4, !tbaa !9
  %326 = icmp sle i32 %324, %325
  br i1 %326, label %327, label %329

327:                                              ; preds = %316
  %328 = load i32, ptr %37, align 4, !tbaa !9
  br label %331

329:                                              ; preds = %316
  %330 = load i32, ptr %38, align 4, !tbaa !9
  br label %331

331:                                              ; preds = %329, %327
  %332 = phi i32 [ %328, %327 ], [ %330, %329 ]
  store i32 %332, ptr %75, align 4, !tbaa !9
  %333 = load i32, ptr %64, align 4, !tbaa !9
  %334 = icmp eq i32 %333, 5
  br i1 %334, label %338, label %335

335:                                              ; preds = %331
  %336 = load i32, ptr %64, align 4, !tbaa !9
  %337 = icmp eq i32 %336, 6
  br i1 %337, label %338, label %341

338:                                              ; preds = %335, %331
  %339 = load i32, ptr %98, align 4, !tbaa !9
  %340 = add nsw i32 %339, 1
  store i32 %340, ptr %83, align 4, !tbaa !9
  br label %353

341:                                              ; preds = %335
  %342 = load i32, ptr %64, align 4, !tbaa !9
  %343 = icmp eq i32 %342, 7
  br i1 %343, label %344, label %349

344:                                              ; preds = %341
  %345 = load i32, ptr %95, align 4, !tbaa !9
  %346 = load i32, ptr %98, align 4, !tbaa !9
  %347 = add nsw i32 %345, %346
  %348 = add nsw i32 %347, 1
  store i32 %348, ptr %83, align 4, !tbaa !9
  br label %352

349:                                              ; preds = %341
  %350 = load ptr, ptr %18, align 8, !tbaa !5
  %351 = load i32, ptr %350, align 4, !tbaa !9
  store i32 %351, ptr %83, align 4, !tbaa !9
  br label %352

352:                                              ; preds = %349, %344
  br label %353

353:                                              ; preds = %352, %338
  store i32 0, ptr %87, align 4, !tbaa !9
  %354 = load i32, ptr %55, align 4, !tbaa !9
  %355 = icmp eq i32 %354, 1
  br i1 %355, label %356, label %378

356:                                              ; preds = %353
  store i32 1, ptr %37, align 4, !tbaa !9
  %357 = load i32, ptr %82, align 4, !tbaa !9
  %358 = load i32, ptr %75, align 4, !tbaa !9
  %359 = add nsw i32 %357, %358
  store i32 %359, ptr %38, align 4, !tbaa !9
  %360 = load i32, ptr %95, align 4, !tbaa !9
  %361 = load i32, ptr %98, align 4, !tbaa !9
  %362 = add nsw i32 %360, %361
  %363 = sitofp i32 %362 to float
  %364 = load i32, ptr %37, align 4, !tbaa !9
  %365 = load i32, ptr %38, align 4, !tbaa !9
  %366 = icmp sge i32 %364, %365
  br i1 %366, label %367, label %369

367:                                              ; preds = %356
  %368 = load i32, ptr %37, align 4, !tbaa !9
  br label %371

369:                                              ; preds = %356
  %370 = load i32, ptr %38, align 4, !tbaa !9
  br label %371

371:                                              ; preds = %369, %367
  %372 = phi i32 [ %368, %367 ], [ %370, %369 ]
  %373 = sitofp i32 %372 to float
  %374 = fmul float %373, 0x3FD3333340000000
  %375 = fcmp olt float %363, %374
  br i1 %375, label %376, label %377

376:                                              ; preds = %371
  store i32 1, ptr %87, align 4, !tbaa !9
  br label %377

377:                                              ; preds = %376, %371
  br label %386

378:                                              ; preds = %353
  %379 = load i32, ptr %95, align 4, !tbaa !9
  %380 = shl i32 %379, 1
  %381 = load ptr, ptr %18, align 8, !tbaa !5
  %382 = load i32, ptr %381, align 4, !tbaa !9
  %383 = icmp slt i32 %380, %382
  br i1 %383, label %384, label %385

384:                                              ; preds = %378
  store i32 1, ptr %87, align 4, !tbaa !9
  br label %385

385:                                              ; preds = %384, %378
  br label %386

386:                                              ; preds = %385, %377
  %387 = load ptr, ptr %32, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  %389 = load ptr, ptr %18, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  %391 = icmp slt i32 %388, %390
  br i1 %391, label %392, label %398

392:                                              ; preds = %386
  %393 = load ptr, ptr %32, align 8, !tbaa !5
  %394 = load i32, ptr %393, align 4, !tbaa !9
  %395 = load i32, ptr %83, align 4, !tbaa !9
  %396 = icmp sge i32 %394, %395
  br i1 %396, label %397, label %398

397:                                              ; preds = %392
  store i32 1, ptr %87, align 4, !tbaa !9
  br label %398

398:                                              ; preds = %397, %392, %386
  %399 = load ptr, ptr %18, align 8, !tbaa !5
  %400 = load i32, ptr %399, align 4, !tbaa !9
  %401 = icmp slt i32 %400, 0
  br i1 %401, label %402, label %404

402:                                              ; preds = %398
  %403 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %403, align 4, !tbaa !9
  br label %555

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

410:                                              ; preds = %404
  %411 = load i32, ptr %55, align 4, !tbaa !9
  %412 = icmp ne i32 %411, 1
  br i1 %412, label %413, label %415

413:                                              ; preds = %410
  %414 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %414, align 4, !tbaa !9
  br label %554

415:                                              ; preds = %410, %404
  %416 = load ptr, ptr %19, align 8, !tbaa !5
  %417 = load i32, ptr %416, align 4, !tbaa !9
  %418 = icmp slt i32 %417, 0
  br i1 %418, label %419, label %421

419:                                              ; preds = %415
  %420 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -2, ptr %420, align 4, !tbaa !9
  br label %553

421:                                              ; preds = %415
  %422 = load i32, ptr %68, align 4, !tbaa !9
  %423 = icmp eq i32 %422, -1
  br i1 %423, label %424, label %426

424:                                              ; preds = %421
  %425 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -3, ptr %425, align 4, !tbaa !9
  br label %552

426:                                              ; preds = %421
  %427 = load i32, ptr %55, align 4, !tbaa !9
  %428 = icmp eq i32 %427, -1
  br i1 %428, label %429, label %431

429:                                              ; preds = %426
  %430 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %430, align 4, !tbaa !9
  br label %551

431:                                              ; preds = %426
  %432 = load ptr, ptr %24, align 8, !tbaa !5
  %433 = load i32, ptr %432, align 4, !tbaa !9
  %434 = icmp sge i32 %433, 0
  br i1 %434, label %435, label %438

435:                                              ; preds = %431
  %436 = load ptr, ptr %24, align 8, !tbaa !5
  %437 = load i32, ptr %436, align 4, !tbaa !9
  br label %442

438:                                              ; preds = %431
  %439 = load ptr, ptr %24, align 8, !tbaa !5
  %440 = load i32, ptr %439, align 4, !tbaa !9
  %441 = sub nsw i32 0, %440
  br label %442

442:                                              ; preds = %438, %435
  %443 = phi i32 [ %437, %435 ], [ %441, %438 ]
  %444 = icmp sgt i32 %443, 6
  br i1 %444, label %445, label %447

445:                                              ; preds = %442
  %446 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -7, ptr %446, align 4, !tbaa !9
  br label %550

447:                                              ; preds = %442
  %448 = load ptr, ptr %24, align 8, !tbaa !5
  %449 = load i32, ptr %448, align 4, !tbaa !9
  %450 = icmp ne i32 %449, 0
  br i1 %450, label %451, label %471

451:                                              ; preds = %447
  %452 = load ptr, ptr %24, align 8, !tbaa !5
  %453 = load i32, ptr %452, align 4, !tbaa !9
  %454 = icmp sge i32 %453, 0
  br i1 %454, label %455, label %458

455:                                              ; preds = %451
  %456 = load ptr, ptr %24, align 8, !tbaa !5
  %457 = load i32, ptr %456, align 4, !tbaa !9
  br label %462

458:                                              ; preds = %451
  %459 = load ptr, ptr %24, align 8, !tbaa !5
  %460 = load i32, ptr %459, align 4, !tbaa !9
  %461 = sub nsw i32 0, %460
  br label %462

462:                                              ; preds = %458, %455
  %463 = phi i32 [ %457, %455 ], [ %461, %458 ]
  %464 = icmp ne i32 %463, 6
  br i1 %464, label %465, label %471

465:                                              ; preds = %462
  %466 = load ptr, ptr %25, align 8, !tbaa !5
  %467 = load float, ptr %466, align 4, !tbaa !11
  %468 = fcmp olt float %467, 1.000000e+00
  br i1 %468, label %469, label %471

469:                                              ; preds = %465
  %470 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -8, ptr %470, align 4, !tbaa !9
  br label %549

471:                                              ; preds = %465, %462, %447
  %472 = load ptr, ptr %28, align 8, !tbaa !5
  %473 = load i32, ptr %472, align 4, !tbaa !9
  %474 = icmp slt i32 %473, 0
  br i1 %474, label %475, label %477

475:                                              ; preds = %471
  %476 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -10, ptr %476, align 4, !tbaa !9
  br label %548

477:                                              ; preds = %471
  %478 = load ptr, ptr %29, align 8, !tbaa !5
  %479 = load i32, ptr %478, align 4, !tbaa !9
  %480 = icmp slt i32 %479, 0
  br i1 %480, label %490, label %481

481:                                              ; preds = %477
  %482 = load i32, ptr %55, align 4, !tbaa !9
  %483 = icmp ne i32 %482, 1
  br i1 %483, label %484, label %492

484:                                              ; preds = %481
  %485 = load ptr, ptr %28, align 8, !tbaa !5
  %486 = load i32, ptr %485, align 4, !tbaa !9
  %487 = load ptr, ptr %29, align 8, !tbaa !5
  %488 = load i32, ptr %487, align 4, !tbaa !9
  %489 = icmp ne i32 %486, %488
  br i1 %489, label %490, label %492

490:                                              ; preds = %484, %477
  %491 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -11, ptr %491, align 4, !tbaa !9
  br label %547

492:                                              ; preds = %484, %481
  %493 = load i32, ptr %64, align 4, !tbaa !9
  %494 = icmp eq i32 %493, -1
  br i1 %494, label %530, label %495

495:                                              ; preds = %492
  %496 = load i32, ptr %93, align 4, !tbaa !9
  %497 = icmp eq i32 %496, 1
  br i1 %497, label %498, label %501

498:                                              ; preds = %495
  %499 = load i32, ptr %55, align 4, !tbaa !9
  %500 = icmp eq i32 %499, 1
  br i1 %500, label %530, label %501

501:                                              ; preds = %498, %495
  %502 = load i32, ptr %93, align 4, !tbaa !9
  %503 = icmp eq i32 %502, 2
  br i1 %503, label %504, label %511

504:                                              ; preds = %501
  %505 = load i32, ptr %55, align 4, !tbaa !9
  %506 = icmp eq i32 %505, 1
  br i1 %506, label %507, label %511

507:                                              ; preds = %504
  %508 = load ptr, ptr %28, align 8, !tbaa !5
  %509 = load i32, ptr %508, align 4, !tbaa !9
  %510 = icmp sgt i32 %509, 0
  br i1 %510, label %530, label %511

511:                                              ; preds = %507, %504, %501
  %512 = load i32, ptr %93, align 4, !tbaa !9
  %513 = icmp eq i32 %512, 3
  br i1 %513, label %514, label %521

514:                                              ; preds = %511
  %515 = load i32, ptr %55, align 4, !tbaa !9
  %516 = icmp eq i32 %515, 1
  br i1 %516, label %517, label %521

517:                                              ; preds = %514
  %518 = load ptr, ptr %29, align 8, !tbaa !5
  %519 = load i32, ptr %518, align 4, !tbaa !9
  %520 = icmp sgt i32 %519, 0
  br i1 %520, label %530, label %521

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

524:                                              ; preds = %521
  %525 = load ptr, ptr %18, align 8, !tbaa !5
  %526 = load i32, ptr %525, align 4, !tbaa !9
  %527 = load ptr, ptr %19, align 8, !tbaa !5
  %528 = load i32, ptr %527, align 4, !tbaa !9
  %529 = icmp ne i32 %526, %528
  br i1 %529, label %530, label %532

530:                                              ; preds = %524, %517, %507, %498, %492
  %531 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -12, ptr %531, align 4, !tbaa !9
  br label %546

532:                                              ; preds = %524, %521
  %533 = load ptr, ptr %32, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = load i32, ptr %83, align 4, !tbaa !9
  %536 = icmp sge i32 1, %535
  br i1 %536, label %537, label %538

537:                                              ; preds = %532
  br label %540

538:                                              ; preds = %532
  %539 = load i32, ptr %83, align 4, !tbaa !9
  br label %540

540:                                              ; preds = %538, %537
  %541 = phi i32 [ 1, %537 ], [ %539, %538 ]
  %542 = icmp slt i32 %534, %541
  br i1 %542, label %543, label %545

543:                                              ; preds = %540
  %544 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -14, ptr %544, align 4, !tbaa !9
  br label %545

545:                                              ; preds = %543, %540
  br label %546

546:                                              ; preds = %545, %530
  br label %547

547:                                              ; preds = %546, %490
  br label %548

548:                                              ; preds = %547, %475
  br label %549

549:                                              ; preds = %548, %469
  br label %550

550:                                              ; preds = %549, %445
  br label %551

551:                                              ; preds = %550, %429
  br label %552

552:                                              ; preds = %551, %424
  br label %553

553:                                              ; preds = %552, %419
  br label %554

554:                                              ; preds = %553, %413
  br label %555

555:                                              ; preds = %554, %402
  %556 = load ptr, ptr %34, align 8, !tbaa !5
  %557 = load i32, ptr %556, align 4, !tbaa !9
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %564

559:                                              ; preds = %555
  %560 = load ptr, ptr %34, align 8, !tbaa !5
  %561 = load i32, ptr %560, align 4, !tbaa !9
  %562 = sub nsw i32 0, %561
  store i32 %562, ptr %37, align 4, !tbaa !9
  %563 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %37, i32 noundef 6)
  store i32 1, ptr %99, align 4
  br label %4785

564:                                              ; preds = %555
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %565

565:                                              ; preds = %588, %564
  %566 = load i32, ptr %57, align 4, !tbaa !9
  %567 = icmp sle i32 %566, 4
  br i1 %567, label %568, label %591

568:                                              ; preds = %565
  %569 = load ptr, ptr %21, align 8, !tbaa !5
  %570 = load i32, ptr %57, align 4, !tbaa !9
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds i32, ptr %569, i64 %571
  %573 = load i32, ptr %572, align 4, !tbaa !9
  store i32 %573, ptr %37, align 4, !tbaa !9
  %574 = load i32, ptr %37, align 4, !tbaa !9
  %575 = icmp sge i32 %574, 0
  br i1 %575, label %576, label %578

576:                                              ; preds = %568
  %577 = load i32, ptr %37, align 4, !tbaa !9
  br label %581

578:                                              ; preds = %568
  %579 = load i32, ptr %37, align 4, !tbaa !9
  %580 = sub nsw i32 0, %579
  br label %581

581:                                              ; preds = %578, %576
  %582 = phi i32 [ %577, %576 ], [ %580, %578 ]
  %583 = srem i32 %582, 4096
  %584 = load ptr, ptr %21, align 8, !tbaa !5
  %585 = load i32, ptr %57, align 4, !tbaa !9
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds i32, ptr %584, i64 %586
  store i32 %583, ptr %587, align 4, !tbaa !9
  br label %588

588:                                              ; preds = %581
  %589 = load i32, ptr %57, align 4, !tbaa !9
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr %57, align 4, !tbaa !9
  br label %565, !llvm.loop !13

591:                                              ; preds = %565
  %592 = load ptr, ptr %21, align 8, !tbaa !5
  %593 = getelementptr inbounds i32, ptr %592, i64 4
  %594 = load i32, ptr %593, align 4, !tbaa !9
  %595 = srem i32 %594, 2
  %596 = icmp ne i32 %595, 1
  br i1 %596, label %597, label %602

597:                                              ; preds = %591
  %598 = load ptr, ptr %21, align 8, !tbaa !5
  %599 = getelementptr inbounds i32, ptr %598, i64 4
  %600 = load i32, ptr %599, align 4, !tbaa !9
  %601 = add nsw i32 %600, 1
  store i32 %601, ptr %599, align 4, !tbaa !9
  br label %602

602:                                              ; preds = %597, %591
  %603 = load ptr, ptr %24, align 8, !tbaa !5
  %604 = load ptr, ptr %25, align 8, !tbaa !5
  %605 = load ptr, ptr %21, align 8, !tbaa !5
  %606 = getelementptr inbounds i32, ptr %605, i64 1
  %607 = load ptr, ptr %23, align 8, !tbaa !5
  %608 = getelementptr inbounds float, ptr %607, i64 1
  %609 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slatm7_(ptr noundef %603, ptr noundef %604, ptr noundef %86, ptr noundef %68, ptr noundef %606, ptr noundef %608, ptr noundef %69, ptr noundef %609, ptr noundef %66)
  %610 = load i32, ptr %66, align 4, !tbaa !9
  %611 = icmp ne i32 %610, 0
  br i1 %611, label %612, label %614

612:                                              ; preds = %602
  %613 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 1, ptr %613, align 4, !tbaa !9
  store i32 1, ptr %99, align 4
  br label %4785

614:                                              ; preds = %602
  %615 = load ptr, ptr %23, align 8, !tbaa !5
  %616 = getelementptr inbounds float, ptr %615, i64 1
  %617 = load float, ptr %616, align 4, !tbaa !11
  %618 = fcmp oge float %617, 0.000000e+00
  br i1 %618, label %619, label %623

619:                                              ; preds = %614
  %620 = load ptr, ptr %23, align 8, !tbaa !5
  %621 = getelementptr inbounds float, ptr %620, i64 1
  %622 = load float, ptr %621, align 4, !tbaa !11
  br label %628

623:                                              ; preds = %614
  %624 = load ptr, ptr %23, align 8, !tbaa !5
  %625 = getelementptr inbounds float, ptr %624, i64 1
  %626 = load float, ptr %625, align 4, !tbaa !11
  %627 = fneg float %626
  br label %628

628:                                              ; preds = %623, %619
  %629 = phi float [ %622, %619 ], [ %627, %623 ]
  %630 = load ptr, ptr %23, align 8, !tbaa !5
  %631 = load ptr, ptr %27, align 8, !tbaa !5
  %632 = load i32, ptr %631, align 4, !tbaa !9
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds float, ptr %630, i64 %633
  %635 = load float, ptr %634, align 4, !tbaa !11
  store float %635, ptr %43, align 4, !tbaa !11
  %636 = load float, ptr %43, align 4, !tbaa !11
  %637 = fcmp oge float %636, 0.000000e+00
  br i1 %637, label %638, label %640

638:                                              ; preds = %628
  %639 = load float, ptr %43, align 4, !tbaa !11
  br label %643

640:                                              ; preds = %628
  %641 = load float, ptr %43, align 4, !tbaa !11
  %642 = fneg float %641
  br label %643

643:                                              ; preds = %640, %638
  %644 = phi float [ %639, %638 ], [ %642, %640 ]
  %645 = fcmp ole float %629, %644
  br i1 %645, label %646, label %647

646:                                              ; preds = %643
  store i32 1, ptr %90, align 4, !tbaa !9
  br label %648

647:                                              ; preds = %643
  store i32 0, ptr %90, align 4, !tbaa !9
  br label %648

648:                                              ; preds = %647, %646
  %649 = load ptr, ptr %24, align 8, !tbaa !5
  %650 = load i32, ptr %649, align 4, !tbaa !9
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %652, label %730

652:                                              ; preds = %648
  %653 = load ptr, ptr %24, align 8, !tbaa !5
  %654 = load i32, ptr %653, align 4, !tbaa !9
  %655 = icmp sge i32 %654, 0
  br i1 %655, label %656, label %659

656:                                              ; preds = %652
  %657 = load ptr, ptr %24, align 8, !tbaa !5
  %658 = load i32, ptr %657, align 4, !tbaa !9
  br label %663

659:                                              ; preds = %652
  %660 = load ptr, ptr %24, align 8, !tbaa !5
  %661 = load i32, ptr %660, align 4, !tbaa !9
  %662 = sub nsw i32 0, %661
  br label %663

663:                                              ; preds = %659, %656
  %664 = phi i32 [ %658, %656 ], [ %662, %659 ]
  %665 = icmp ne i32 %664, 6
  br i1 %665, label %666, label %730

666:                                              ; preds = %663
  %667 = load ptr, ptr %23, align 8, !tbaa !5
  %668 = getelementptr inbounds float, ptr %667, i64 1
  %669 = load float, ptr %668, align 4, !tbaa !11
  %670 = fcmp oge float %669, 0.000000e+00
  br i1 %670, label %671, label %675

671:                                              ; preds = %666
  %672 = load ptr, ptr %23, align 8, !tbaa !5
  %673 = getelementptr inbounds float, ptr %672, i64 1
  %674 = load float, ptr %673, align 4, !tbaa !11
  br label %680

675:                                              ; preds = %666
  %676 = load ptr, ptr %23, align 8, !tbaa !5
  %677 = getelementptr inbounds float, ptr %676, i64 1
  %678 = load float, ptr %677, align 4, !tbaa !11
  %679 = fneg float %678
  br label %680

680:                                              ; preds = %675, %671
  %681 = phi float [ %674, %671 ], [ %679, %675 ]
  store float %681, ptr %52, align 4, !tbaa !11
  %682 = load ptr, ptr %27, align 8, !tbaa !5
  %683 = load i32, ptr %682, align 4, !tbaa !9
  store i32 %683, ptr %37, align 4, !tbaa !9
  store i32 2, ptr %57, align 4, !tbaa !9
  br label %684

684:                                              ; preds = %713, %680
  %685 = load i32, ptr %57, align 4, !tbaa !9
  %686 = load i32, ptr %37, align 4, !tbaa !9
  %687 = icmp sle i32 %685, %686
  br i1 %687, label %688, label %716

688:                                              ; preds = %684
  %689 = load float, ptr %52, align 4, !tbaa !11
  store float %689, ptr %44, align 4, !tbaa !11
  %690 = load ptr, ptr %23, align 8, !tbaa !5
  %691 = load i32, ptr %57, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds float, ptr %690, i64 %692
  %694 = load float, ptr %693, align 4, !tbaa !11
  store float %694, ptr %43, align 4, !tbaa !11
  %695 = load float, ptr %43, align 4, !tbaa !11
  %696 = fcmp oge float %695, 0.000000e+00
  br i1 %696, label %697, label %699

697:                                              ; preds = %688
  %698 = load float, ptr %43, align 4, !tbaa !11
  br label %702

699:                                              ; preds = %688
  %700 = load float, ptr %43, align 4, !tbaa !11
  %701 = fneg float %700
  br label %702

702:                                              ; preds = %699, %697
  %703 = phi float [ %698, %697 ], [ %701, %699 ]
  store float %703, ptr %45, align 4, !tbaa !11
  %704 = load float, ptr %44, align 4, !tbaa !11
  %705 = load float, ptr %45, align 4, !tbaa !11
  %706 = fcmp oge float %704, %705
  br i1 %706, label %707, label %709

707:                                              ; preds = %702
  %708 = load float, ptr %44, align 4, !tbaa !11
  br label %711

709:                                              ; preds = %702
  %710 = load float, ptr %45, align 4, !tbaa !11
  br label %711

711:                                              ; preds = %709, %707
  %712 = phi float [ %708, %707 ], [ %710, %709 ]
  store float %712, ptr %52, align 4, !tbaa !11
  br label %713

713:                                              ; preds = %711
  %714 = load i32, ptr %57, align 4, !tbaa !9
  %715 = add nsw i32 %714, 1
  store i32 %715, ptr %57, align 4, !tbaa !9
  br label %684, !llvm.loop !15

716:                                              ; preds = %684
  %717 = load float, ptr %52, align 4, !tbaa !11
  %718 = fcmp ogt float %717, 0.000000e+00
  br i1 %718, label %719, label %724

719:                                              ; preds = %716
  %720 = load ptr, ptr %26, align 8, !tbaa !5
  %721 = load float, ptr %720, align 4, !tbaa !11
  %722 = load float, ptr %52, align 4, !tbaa !11
  %723 = fdiv float %721, %722
  store float %723, ptr %61, align 4, !tbaa !11
  br label %726

724:                                              ; preds = %716
  %725 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 2, ptr %725, align 4, !tbaa !9
  store i32 1, ptr %99, align 4
  br label %4785

726:                                              ; preds = %719
  %727 = load ptr, ptr %27, align 8, !tbaa !5
  %728 = load ptr, ptr %23, align 8, !tbaa !5
  %729 = getelementptr inbounds float, ptr %728, i64 1
  call void @sscal_(ptr noundef %727, ptr noundef %61, ptr noundef %729, ptr noundef @c__1)
  br label %730

730:                                              ; preds = %726, %663, %648
  %731 = load ptr, ptr %32, align 8, !tbaa !5
  %732 = load ptr, ptr %19, align 8, !tbaa !5
  %733 = load ptr, ptr %31, align 8, !tbaa !5
  %734 = load i32, ptr %36, align 4, !tbaa !9
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds %struct.complex, ptr %733, i64 %735
  %737 = load ptr, ptr %32, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.12, ptr noundef %731, ptr noundef %732, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %736, ptr noundef %737)
  %738 = load i32, ptr %64, align 4, !tbaa !9
  %739 = icmp sgt i32 %738, 4
  br i1 %739, label %740, label %751

740:                                              ; preds = %730
  %741 = load ptr, ptr %32, align 8, !tbaa !5
  %742 = load i32, ptr %741, align 4, !tbaa !9
  %743 = sub nsw i32 %742, 1
  store i32 %743, ptr %50, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  %744 = load i32, ptr %64, align 4, !tbaa !9
  %745 = icmp sgt i32 %744, 5
  br i1 %745, label %746, label %749

746:                                              ; preds = %740
  %747 = load i32, ptr %98, align 4, !tbaa !9
  %748 = add nsw i32 %747, 1
  store i32 %748, ptr %85, align 4, !tbaa !9
  br label %750

749:                                              ; preds = %740
  store i32 1, ptr %85, align 4, !tbaa !9
  br label %750

750:                                              ; preds = %749, %746
  br label %754

751:                                              ; preds = %730
  %752 = load ptr, ptr %32, align 8, !tbaa !5
  %753 = load i32, ptr %752, align 4, !tbaa !9
  store i32 %753, ptr %50, align 4, !tbaa !9
  store i32 0, ptr %71, align 4, !tbaa !9
  store i32 0, ptr %85, align 4, !tbaa !9
  br label %754

754:                                              ; preds = %751, %750
  store i32 0, ptr %81, align 4, !tbaa !9
  %755 = load i32, ptr %95, align 4, !tbaa !9
  %756 = icmp eq i32 %755, 0
  br i1 %756, label %757, label %811

757:                                              ; preds = %754
  %758 = load i32, ptr %98, align 4, !tbaa !9
  %759 = icmp eq i32 %758, 0
  br i1 %759, label %760, label %811

760:                                              ; preds = %757
  %761 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %761, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %762

762:                                              ; preds = %799, %760
  %763 = load i32, ptr %58, align 4, !tbaa !9
  %764 = load i32, ptr %37, align 4, !tbaa !9
  %765 = icmp sle i32 %763, %764
  br i1 %765, label %766, label %802

766:                                              ; preds = %762
  %767 = load i32, ptr %71, align 4, !tbaa !9
  %768 = sub nsw i32 1, %767
  %769 = load i32, ptr %58, align 4, !tbaa !9
  %770 = mul nsw i32 %768, %769
  %771 = load i32, ptr %85, align 4, !tbaa !9
  %772 = add nsw i32 %770, %771
  %773 = load i32, ptr %58, align 4, !tbaa !9
  %774 = load i32, ptr %35, align 4, !tbaa !9
  %775 = mul nsw i32 %773, %774
  %776 = add nsw i32 %772, %775
  store i32 %776, ptr %38, align 4, !tbaa !9
  %777 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %777, ptr %39, align 4, !tbaa !9
  %778 = load ptr, ptr %23, align 8, !tbaa !5
  %779 = load i32, ptr %39, align 4, !tbaa !9
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds float, ptr %778, i64 %780
  %782 = load float, ptr %781, align 4, !tbaa !11
  %783 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %782, ptr %783, align 4, !tbaa !16
  %784 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %784, align 4, !tbaa !18
  %785 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %786 = load float, ptr %785, align 4, !tbaa !16
  %787 = load ptr, ptr %31, align 8, !tbaa !5
  %788 = load i32, ptr %38, align 4, !tbaa !9
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds %struct.complex, ptr %787, i64 %789
  %791 = getelementptr inbounds %struct.complex, ptr %790, i32 0, i32 0
  store float %786, ptr %791, align 4, !tbaa !16
  %792 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %793 = load float, ptr %792, align 4, !tbaa !18
  %794 = load ptr, ptr %31, align 8, !tbaa !5
  %795 = load i32, ptr %38, align 4, !tbaa !9
  %796 = sext i32 %795 to i64
  %797 = getelementptr inbounds %struct.complex, ptr %794, i64 %796
  %798 = getelementptr inbounds %struct.complex, ptr %797, i32 0, i32 1
  store float %793, ptr %798, align 4, !tbaa !18
  br label %799

799:                                              ; preds = %766
  %800 = load i32, ptr %58, align 4, !tbaa !9
  %801 = add nsw i32 %800, 1
  store i32 %801, ptr %58, align 4, !tbaa !9
  br label %762, !llvm.loop !19

802:                                              ; preds = %762
  %803 = load i32, ptr %64, align 4, !tbaa !9
  %804 = icmp sle i32 %803, 2
  br i1 %804, label %808, label %805

805:                                              ; preds = %802
  %806 = load i32, ptr %64, align 4, !tbaa !9
  %807 = icmp sge i32 %806, 5
  br i1 %807, label %808, label %810

808:                                              ; preds = %805, %802
  %809 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %809, ptr %81, align 4, !tbaa !9
  br label %810

810:                                              ; preds = %808, %805
  br label %4250

811:                                              ; preds = %757, %754
  %812 = load i32, ptr %87, align 4, !tbaa !9
  %813 = icmp ne i32 %812, 0
  br i1 %813, label %814, label %4198

814:                                              ; preds = %811
  %815 = load i32, ptr %55, align 4, !tbaa !9
  %816 = icmp eq i32 %815, 1
  br i1 %816, label %817, label %2639

817:                                              ; preds = %814
  %818 = load i32, ptr %64, align 4, !tbaa !9
  %819 = icmp sgt i32 %818, 4
  br i1 %819, label %820, label %822

820:                                              ; preds = %817
  %821 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %821, ptr %81, align 4, !tbaa !9
  br label %823

822:                                              ; preds = %817
  store i32 0, ptr %81, align 4, !tbaa !9
  br label %823

823:                                              ; preds = %822, %820
  %824 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %824, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %825

825:                                              ; preds = %862, %823
  %826 = load i32, ptr %58, align 4, !tbaa !9
  %827 = load i32, ptr %37, align 4, !tbaa !9
  %828 = icmp sle i32 %826, %827
  br i1 %828, label %829, label %865

829:                                              ; preds = %825
  %830 = load i32, ptr %71, align 4, !tbaa !9
  %831 = sub nsw i32 1, %830
  %832 = load i32, ptr %58, align 4, !tbaa !9
  %833 = mul nsw i32 %831, %832
  %834 = load i32, ptr %85, align 4, !tbaa !9
  %835 = add nsw i32 %833, %834
  %836 = load i32, ptr %58, align 4, !tbaa !9
  %837 = load i32, ptr %35, align 4, !tbaa !9
  %838 = mul nsw i32 %836, %837
  %839 = add nsw i32 %835, %838
  store i32 %839, ptr %38, align 4, !tbaa !9
  %840 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %840, ptr %39, align 4, !tbaa !9
  %841 = load ptr, ptr %23, align 8, !tbaa !5
  %842 = load i32, ptr %39, align 4, !tbaa !9
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds float, ptr %841, i64 %843
  %845 = load float, ptr %844, align 4, !tbaa !11
  %846 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %845, ptr %846, align 4, !tbaa !16
  %847 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %847, align 4, !tbaa !18
  %848 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %849 = load float, ptr %848, align 4, !tbaa !16
  %850 = load ptr, ptr %31, align 8, !tbaa !5
  %851 = load i32, ptr %38, align 4, !tbaa !9
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds %struct.complex, ptr %850, i64 %852
  %854 = getelementptr inbounds %struct.complex, ptr %853, i32 0, i32 0
  store float %849, ptr %854, align 4, !tbaa !16
  %855 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %856 = load float, ptr %855, align 4, !tbaa !18
  %857 = load ptr, ptr %31, align 8, !tbaa !5
  %858 = load i32, ptr %38, align 4, !tbaa !9
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds %struct.complex, ptr %857, i64 %859
  %861 = getelementptr inbounds %struct.complex, ptr %860, i32 0, i32 1
  store float %856, ptr %861, align 4, !tbaa !18
  br label %862

862:                                              ; preds = %829
  %863 = load i32, ptr %58, align 4, !tbaa !9
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr %58, align 4, !tbaa !9
  br label %825, !llvm.loop !20

865:                                              ; preds = %825
  %866 = load i32, ptr %90, align 4, !tbaa !9
  %867 = icmp ne i32 %866, 0
  br i1 %867, label %868, label %1776

868:                                              ; preds = %865
  store i32 0, ptr %96, align 4, !tbaa !9
  %869 = load i32, ptr %98, align 4, !tbaa !9
  store i32 %869, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %97, align 4, !tbaa !9
  br label %870

870:                                              ; preds = %1318, %868
  %871 = load i32, ptr %97, align 4, !tbaa !9
  %872 = load i32, ptr %37, align 4, !tbaa !9
  %873 = icmp sle i32 %871, %872
  br i1 %873, label %874, label %1321

874:                                              ; preds = %870
  %875 = load ptr, ptr %18, align 8, !tbaa !5
  %876 = load i32, ptr %875, align 4, !tbaa !9
  %877 = load i32, ptr %97, align 4, !tbaa !9
  %878 = add nsw i32 %876, %877
  store i32 %878, ptr %39, align 4, !tbaa !9
  %879 = load i32, ptr %39, align 4, !tbaa !9
  %880 = load ptr, ptr %19, align 8, !tbaa !5
  %881 = load i32, ptr %880, align 4, !tbaa !9
  %882 = icmp sle i32 %879, %881
  br i1 %882, label %883, label %885

883:                                              ; preds = %874
  %884 = load i32, ptr %39, align 4, !tbaa !9
  br label %888

885:                                              ; preds = %874
  %886 = load ptr, ptr %19, align 8, !tbaa !5
  %887 = load i32, ptr %886, align 4, !tbaa !9
  br label %888

888:                                              ; preds = %885, %883
  %889 = phi i32 [ %884, %883 ], [ %887, %885 ]
  %890 = load i32, ptr %96, align 4, !tbaa !9
  %891 = add nsw i32 %889, %890
  %892 = sub nsw i32 %891, 1
  store i32 %892, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %80, align 4, !tbaa !9
  br label %893

893:                                              ; preds = %1314, %888
  %894 = load i32, ptr %80, align 4, !tbaa !9
  %895 = load i32, ptr %38, align 4, !tbaa !9
  %896 = icmp sle i32 %894, %895
  br i1 %896, label %897, label %1317

897:                                              ; preds = %893
  %898 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %898, align 4, !tbaa !16
  %899 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %899, align 4, !tbaa !18
  %900 = load ptr, ptr %21, align 8, !tbaa !5
  %901 = getelementptr inbounds i32, ptr %900, i64 1
  %902 = call float @slarnd_(ptr noundef @c__1, ptr noundef %901)
  %903 = fmul float %902, 0x401921FB60000000
  store float %903, ptr %62, align 4, !tbaa !11
  %904 = load float, ptr %62, align 4, !tbaa !11
  %905 = fpext float %904 to double
  %906 = call double @cos(double noundef %905) #8
  %907 = fptrunc double %906 to float
  store float %907, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #8
  %908 = load ptr, ptr %21, align 8, !tbaa !5
  %909 = getelementptr inbounds i32, ptr %908, i64 1
  %910 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %909)
  store <2 x float> %910, ptr %100, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %100, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  %911 = load float, ptr %43, align 4, !tbaa !11
  %912 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %913 = load float, ptr %912, align 4, !tbaa !16
  %914 = fmul float %911, %913
  %915 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %914, ptr %915, align 4, !tbaa !16
  %916 = load float, ptr %43, align 4, !tbaa !11
  %917 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %918 = load float, ptr %917, align 4, !tbaa !18
  %919 = fmul float %916, %918
  %920 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %919, ptr %920, align 4, !tbaa !18
  %921 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %922 = load float, ptr %921, align 4, !tbaa !16
  %923 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %922, ptr %923, align 4, !tbaa !16
  %924 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %925 = load float, ptr %924, align 4, !tbaa !18
  %926 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %925, ptr %926, align 4, !tbaa !18
  %927 = load float, ptr %62, align 4, !tbaa !11
  %928 = fpext float %927 to double
  %929 = call double @sin(double noundef %928) #8
  %930 = fptrunc double %929 to float
  store float %930, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #8
  %931 = load ptr, ptr %21, align 8, !tbaa !5
  %932 = getelementptr inbounds i32, ptr %931, i64 1
  %933 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %932)
  store <2 x float> %933, ptr %101, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %101, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  %934 = load float, ptr %43, align 4, !tbaa !11
  %935 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %936 = load float, ptr %935, align 4, !tbaa !16
  %937 = fmul float %934, %936
  %938 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %937, ptr %938, align 4, !tbaa !16
  %939 = load float, ptr %43, align 4, !tbaa !11
  %940 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %941 = load float, ptr %940, align 4, !tbaa !18
  %942 = fmul float %939, %941
  %943 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %942, ptr %943, align 4, !tbaa !18
  %944 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %945 = load float, ptr %944, align 4, !tbaa !16
  %946 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %945, ptr %946, align 4, !tbaa !16
  %947 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %948 = load float, ptr %947, align 4, !tbaa !18
  %949 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %948, ptr %949, align 4, !tbaa !18
  store i32 1, ptr %39, align 4, !tbaa !9
  %950 = load i32, ptr %80, align 4, !tbaa !9
  %951 = load i32, ptr %96, align 4, !tbaa !9
  %952 = sub nsw i32 %950, %951
  store i32 %952, ptr %40, align 4, !tbaa !9
  %953 = load i32, ptr %39, align 4, !tbaa !9
  %954 = load i32, ptr %40, align 4, !tbaa !9
  %955 = icmp sge i32 %953, %954
  br i1 %955, label %956, label %958

956:                                              ; preds = %897
  %957 = load i32, ptr %39, align 4, !tbaa !9
  br label %960

958:                                              ; preds = %897
  %959 = load i32, ptr %40, align 4, !tbaa !9
  br label %960

960:                                              ; preds = %958, %956
  %961 = phi i32 [ %957, %956 ], [ %959, %958 ]
  store i32 %961, ptr %51, align 4, !tbaa !9
  %962 = load i32, ptr %80, align 4, !tbaa !9
  %963 = load ptr, ptr %18, align 8, !tbaa !5
  %964 = load i32, ptr %963, align 4, !tbaa !9
  %965 = icmp slt i32 %962, %964
  br i1 %965, label %966, label %1002

966:                                              ; preds = %960
  %967 = load ptr, ptr %19, align 8, !tbaa !5
  %968 = load i32, ptr %967, align 4, !tbaa !9
  store i32 %968, ptr %39, align 4, !tbaa !9
  %969 = load i32, ptr %80, align 4, !tbaa !9
  %970 = load i32, ptr %97, align 4, !tbaa !9
  %971 = add nsw i32 %969, %970
  store i32 %971, ptr %40, align 4, !tbaa !9
  %972 = load i32, ptr %39, align 4, !tbaa !9
  %973 = load i32, ptr %40, align 4, !tbaa !9
  %974 = icmp sle i32 %972, %973
  br i1 %974, label %975, label %977

975:                                              ; preds = %966
  %976 = load i32, ptr %39, align 4, !tbaa !9
  br label %979

977:                                              ; preds = %966
  %978 = load i32, ptr %40, align 4, !tbaa !9
  br label %979

979:                                              ; preds = %977, %975
  %980 = phi i32 [ %976, %975 ], [ %978, %977 ]
  %981 = add nsw i32 %980, 1
  %982 = load i32, ptr %51, align 4, !tbaa !9
  %983 = sub nsw i32 %981, %982
  store i32 %983, ptr %76, align 4, !tbaa !9
  %984 = load i32, ptr %80, align 4, !tbaa !9
  %985 = load i32, ptr %96, align 4, !tbaa !9
  %986 = icmp sgt i32 %984, %985
  %987 = zext i1 %986 to i32
  store i32 %987, ptr %49, align 4, !tbaa !9
  %988 = load ptr, ptr %31, align 8, !tbaa !5
  %989 = load i32, ptr %80, align 4, !tbaa !9
  %990 = load i32, ptr %71, align 4, !tbaa !9
  %991 = load i32, ptr %51, align 4, !tbaa !9
  %992 = mul nsw i32 %990, %991
  %993 = sub nsw i32 %989, %992
  %994 = load i32, ptr %85, align 4, !tbaa !9
  %995 = add nsw i32 %993, %994
  %996 = load i32, ptr %51, align 4, !tbaa !9
  %997 = load i32, ptr %35, align 4, !tbaa !9
  %998 = mul nsw i32 %996, %997
  %999 = add nsw i32 %995, %998
  %1000 = sext i32 %999 to i64
  %1001 = getelementptr inbounds %struct.complex, ptr %988, i64 %1000
  call void @clarot_(ptr noundef @c_true, ptr noundef %49, ptr noundef @c_false, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %1001, ptr noundef %50, ptr noundef %70, ptr noundef %72)
  br label %1002

1002:                                             ; preds = %979, %960
  %1003 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %1003, ptr %79, align 4, !tbaa !9
  %1004 = load i32, ptr %51, align 4, !tbaa !9
  store i32 %1004, ptr %73, align 4, !tbaa !9
  %1005 = load i32, ptr %96, align 4, !tbaa !9
  %1006 = sub nsw i32 0, %1005
  %1007 = load i32, ptr %97, align 4, !tbaa !9
  %1008 = sub nsw i32 %1006, %1007
  store i32 %1008, ptr %39, align 4, !tbaa !9
  %1009 = load i32, ptr %80, align 4, !tbaa !9
  %1010 = load i32, ptr %96, align 4, !tbaa !9
  %1011 = sub nsw i32 %1009, %1010
  store i32 %1011, ptr %94, align 4, !tbaa !9
  br label %1012

1012:                                             ; preds = %1309, %1002
  %1013 = load i32, ptr %39, align 4, !tbaa !9
  %1014 = icmp slt i32 %1013, 0
  br i1 %1014, label %1015, label %1019

1015:                                             ; preds = %1012
  %1016 = load i32, ptr %94, align 4, !tbaa !9
  %1017 = icmp sge i32 %1016, 1
  %1018 = zext i1 %1017 to i32
  br label %1023

1019:                                             ; preds = %1012
  %1020 = load i32, ptr %94, align 4, !tbaa !9
  %1021 = icmp sle i32 %1020, 1
  %1022 = zext i1 %1021 to i32
  br label %1023

1023:                                             ; preds = %1019, %1015
  %1024 = phi i32 [ %1018, %1015 ], [ %1022, %1019 ]
  %1025 = icmp ne i32 %1024, 0
  br i1 %1025, label %1026, label %1313

1026:                                             ; preds = %1023
  %1027 = load i32, ptr %79, align 4, !tbaa !9
  %1028 = load ptr, ptr %18, align 8, !tbaa !5
  %1029 = load i32, ptr %1028, align 4, !tbaa !9
  %1030 = icmp slt i32 %1027, %1029
  br i1 %1030, label %1031, label %1129

1031:                                             ; preds = %1026
  %1032 = load ptr, ptr %31, align 8, !tbaa !5
  %1033 = load i32, ptr %79, align 4, !tbaa !9
  %1034 = add nsw i32 %1033, 1
  %1035 = load i32, ptr %71, align 4, !tbaa !9
  %1036 = load i32, ptr %73, align 4, !tbaa !9
  %1037 = add nsw i32 %1036, 1
  %1038 = mul nsw i32 %1035, %1037
  %1039 = sub nsw i32 %1034, %1038
  %1040 = load i32, ptr %85, align 4, !tbaa !9
  %1041 = add nsw i32 %1039, %1040
  %1042 = load i32, ptr %73, align 4, !tbaa !9
  %1043 = add nsw i32 %1042, 1
  %1044 = load i32, ptr %35, align 4, !tbaa !9
  %1045 = mul nsw i32 %1043, %1044
  %1046 = add nsw i32 %1041, %1045
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds %struct.complex, ptr %1032, i64 %1047
  call void @clartg_(ptr noundef %1048, ptr noundef %70, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #8
  %1049 = load ptr, ptr %21, align 8, !tbaa !5
  %1050 = getelementptr inbounds i32, ptr %1049, i64 1
  %1051 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %1050)
  store <2 x float> %1051, ptr %102, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %102, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #8
  %1052 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1053 = load float, ptr %1052, align 4, !tbaa !16
  %1054 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %1053, ptr %1054, align 4, !tbaa !16
  %1055 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1056 = load float, ptr %1055, align 4, !tbaa !18
  %1057 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %1056, ptr %1057, align 4, !tbaa !18
  %1058 = load float, ptr %63, align 4, !tbaa !11
  %1059 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1060 = load float, ptr %1059, align 4, !tbaa !16
  %1061 = fmul float %1058, %1060
  %1062 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1061, ptr %1062, align 4, !tbaa !16
  %1063 = load float, ptr %63, align 4, !tbaa !11
  %1064 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1065 = load float, ptr %1064, align 4, !tbaa !18
  %1066 = fmul float %1063, %1065
  %1067 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1066, ptr %1067, align 4, !tbaa !18
  %1068 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %1068, ptr %103, align 4
  %1069 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %1070 = load float, ptr %1069, align 4
  %1071 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  %1072 = load float, ptr %1071, align 4
  %1073 = fneg float %1072
  %1074 = call ptr @_pCf(ptr noundef %46)
  %1075 = getelementptr inbounds { float, float }, ptr %1074, i32 0, i32 0
  %1076 = getelementptr inbounds { float, float }, ptr %1074, i32 0, i32 1
  store float %1070, ptr %1075, align 4
  store float %1073, ptr %1076, align 4
  %1077 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1078 = load float, ptr %1077, align 4, !tbaa !16
  %1079 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1078, ptr %1079, align 4, !tbaa !16
  %1080 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1081 = load float, ptr %1080, align 4, !tbaa !18
  %1082 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1081, ptr %1082, align 4, !tbaa !18
  %1083 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1084 = load float, ptr %1083, align 4, !tbaa !16
  %1085 = fneg float %1084
  %1086 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1085, ptr %1086, align 4, !tbaa !16
  %1087 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1088 = load float, ptr %1087, align 4, !tbaa !18
  %1089 = fneg float %1088
  %1090 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1089, ptr %1090, align 4, !tbaa !18
  %1091 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1092 = load float, ptr %1091, align 4, !tbaa !16
  %1093 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1094 = load float, ptr %1093, align 4, !tbaa !16
  %1095 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1096 = load float, ptr %1095, align 4, !tbaa !18
  %1097 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1098 = load float, ptr %1097, align 4, !tbaa !18
  %1099 = fmul float %1096, %1098
  %1100 = fneg float %1099
  %1101 = call float @llvm.fmuladd.f32(float %1092, float %1094, float %1100)
  %1102 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1101, ptr %1102, align 4, !tbaa !16
  %1103 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1104 = load float, ptr %1103, align 4, !tbaa !16
  %1105 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1106 = load float, ptr %1105, align 4, !tbaa !18
  %1107 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1108 = load float, ptr %1107, align 4, !tbaa !18
  %1109 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1110 = load float, ptr %1109, align 4, !tbaa !16
  %1111 = fmul float %1108, %1110
  %1112 = call float @llvm.fmuladd.f32(float %1104, float %1106, float %1111)
  %1113 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1112, ptr %1113, align 4, !tbaa !18
  %1114 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %1114, ptr %104, align 4
  %1115 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %1116 = load float, ptr %1115, align 4
  %1117 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  %1118 = load float, ptr %1117, align 4
  %1119 = fneg float %1118
  %1120 = call ptr @_pCf(ptr noundef %46)
  %1121 = getelementptr inbounds { float, float }, ptr %1120, i32 0, i32 0
  %1122 = getelementptr inbounds { float, float }, ptr %1120, i32 0, i32 1
  store float %1116, ptr %1121, align 4
  store float %1119, ptr %1122, align 4
  %1123 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1124 = load float, ptr %1123, align 4, !tbaa !16
  %1125 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1124, ptr %1125, align 4, !tbaa !16
  %1126 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1127 = load float, ptr %1126, align 4, !tbaa !18
  %1128 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1127, ptr %1128, align 4, !tbaa !18
  br label %1129

1129:                                             ; preds = %1031, %1026
  store i32 1, ptr %40, align 4, !tbaa !9
  %1130 = load i32, ptr %94, align 4, !tbaa !9
  %1131 = load i32, ptr %97, align 4, !tbaa !9
  %1132 = sub nsw i32 %1130, %1131
  store i32 %1132, ptr %41, align 4, !tbaa !9
  %1133 = load i32, ptr %40, align 4, !tbaa !9
  %1134 = load i32, ptr %41, align 4, !tbaa !9
  %1135 = icmp sge i32 %1133, %1134
  br i1 %1135, label %1136, label %1138

1136:                                             ; preds = %1129
  %1137 = load i32, ptr %40, align 4, !tbaa !9
  br label %1140

1138:                                             ; preds = %1129
  %1139 = load i32, ptr %41, align 4, !tbaa !9
  br label %1140

1140:                                             ; preds = %1138, %1136
  %1141 = phi i32 [ %1137, %1136 ], [ %1139, %1138 ]
  store i32 %1141, ptr %54, align 4, !tbaa !9
  %1142 = load i32, ptr %79, align 4, !tbaa !9
  %1143 = add nsw i32 %1142, 2
  %1144 = load i32, ptr %54, align 4, !tbaa !9
  %1145 = sub nsw i32 %1143, %1144
  store i32 %1145, ptr %76, align 4, !tbaa !9
  %1146 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float 0.000000e+00, ptr %1146, align 4, !tbaa !16
  %1147 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float 0.000000e+00, ptr %1147, align 4, !tbaa !18
  %1148 = load i32, ptr %94, align 4, !tbaa !9
  %1149 = load i32, ptr %97, align 4, !tbaa !9
  %1150 = icmp sgt i32 %1148, %1149
  %1151 = zext i1 %1150 to i32
  store i32 %1151, ptr %88, align 4, !tbaa !9
  %1152 = load ptr, ptr %31, align 8, !tbaa !5
  %1153 = load i32, ptr %54, align 4, !tbaa !9
  %1154 = load i32, ptr %71, align 4, !tbaa !9
  %1155 = load i32, ptr %73, align 4, !tbaa !9
  %1156 = mul nsw i32 %1154, %1155
  %1157 = sub nsw i32 %1153, %1156
  %1158 = load i32, ptr %85, align 4, !tbaa !9
  %1159 = add nsw i32 %1157, %1158
  %1160 = load i32, ptr %73, align 4, !tbaa !9
  %1161 = load i32, ptr %35, align 4, !tbaa !9
  %1162 = mul nsw i32 %1160, %1161
  %1163 = add nsw i32 %1159, %1162
  %1164 = sext i32 %1163 to i64
  %1165 = getelementptr inbounds %struct.complex, ptr %1152, i64 %1164
  call void @clarot_(ptr noundef @c_false, ptr noundef %88, ptr noundef @c_true, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %1165, ptr noundef %50, ptr noundef %67, ptr noundef %70)
  %1166 = load i32, ptr %88, align 4, !tbaa !9
  %1167 = icmp ne i32 %1166, 0
  br i1 %1167, label %1168, label %1308

1168:                                             ; preds = %1140
  %1169 = load ptr, ptr %31, align 8, !tbaa !5
  %1170 = load i32, ptr %54, align 4, !tbaa !9
  %1171 = add nsw i32 %1170, 1
  %1172 = load i32, ptr %71, align 4, !tbaa !9
  %1173 = load i32, ptr %73, align 4, !tbaa !9
  %1174 = add nsw i32 %1173, 1
  %1175 = mul nsw i32 %1172, %1174
  %1176 = sub nsw i32 %1171, %1175
  %1177 = load i32, ptr %85, align 4, !tbaa !9
  %1178 = add nsw i32 %1176, %1177
  %1179 = load i32, ptr %73, align 4, !tbaa !9
  %1180 = add nsw i32 %1179, 1
  %1181 = load i32, ptr %35, align 4, !tbaa !9
  %1182 = mul nsw i32 %1180, %1181
  %1183 = add nsw i32 %1178, %1182
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds %struct.complex, ptr %1169, i64 %1184
  call void @clartg_(ptr noundef %1185, ptr noundef %67, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #8
  %1186 = load ptr, ptr %21, align 8, !tbaa !5
  %1187 = getelementptr inbounds i32, ptr %1186, i64 1
  %1188 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %1187)
  store <2 x float> %1188, ptr %105, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %105, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #8
  %1189 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1190 = load float, ptr %1189, align 4, !tbaa !16
  %1191 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %1190, ptr %1191, align 4, !tbaa !16
  %1192 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1193 = load float, ptr %1192, align 4, !tbaa !18
  %1194 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %1193, ptr %1194, align 4, !tbaa !18
  %1195 = load float, ptr %63, align 4, !tbaa !11
  %1196 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1197 = load float, ptr %1196, align 4, !tbaa !16
  %1198 = fmul float %1195, %1197
  %1199 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1198, ptr %1199, align 4, !tbaa !16
  %1200 = load float, ptr %63, align 4, !tbaa !11
  %1201 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1202 = load float, ptr %1201, align 4, !tbaa !18
  %1203 = fmul float %1200, %1202
  %1204 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1203, ptr %1204, align 4, !tbaa !18
  %1205 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %1205, ptr %106, align 4
  %1206 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 0
  %1207 = load float, ptr %1206, align 4
  %1208 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 1
  %1209 = load float, ptr %1208, align 4
  %1210 = fneg float %1209
  %1211 = call ptr @_pCf(ptr noundef %46)
  %1212 = getelementptr inbounds { float, float }, ptr %1211, i32 0, i32 0
  %1213 = getelementptr inbounds { float, float }, ptr %1211, i32 0, i32 1
  store float %1207, ptr %1212, align 4
  store float %1210, ptr %1213, align 4
  %1214 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1215 = load float, ptr %1214, align 4, !tbaa !16
  %1216 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1215, ptr %1216, align 4, !tbaa !16
  %1217 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1218 = load float, ptr %1217, align 4, !tbaa !18
  %1219 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1218, ptr %1219, align 4, !tbaa !18
  %1220 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1221 = load float, ptr %1220, align 4, !tbaa !16
  %1222 = fneg float %1221
  %1223 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1222, ptr %1223, align 4, !tbaa !16
  %1224 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1225 = load float, ptr %1224, align 4, !tbaa !18
  %1226 = fneg float %1225
  %1227 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1226, ptr %1227, align 4, !tbaa !18
  %1228 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1229 = load float, ptr %1228, align 4, !tbaa !16
  %1230 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1231 = load float, ptr %1230, align 4, !tbaa !16
  %1232 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1233 = load float, ptr %1232, align 4, !tbaa !18
  %1234 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1235 = load float, ptr %1234, align 4, !tbaa !18
  %1236 = fmul float %1233, %1235
  %1237 = fneg float %1236
  %1238 = call float @llvm.fmuladd.f32(float %1229, float %1231, float %1237)
  %1239 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1238, ptr %1239, align 4, !tbaa !16
  %1240 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1241 = load float, ptr %1240, align 4, !tbaa !16
  %1242 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1243 = load float, ptr %1242, align 4, !tbaa !18
  %1244 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1245 = load float, ptr %1244, align 4, !tbaa !18
  %1246 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1247 = load float, ptr %1246, align 4, !tbaa !16
  %1248 = fmul float %1245, %1247
  %1249 = call float @llvm.fmuladd.f32(float %1241, float %1243, float %1248)
  %1250 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1249, ptr %1250, align 4, !tbaa !18
  %1251 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %1251, ptr %107, align 4
  %1252 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 0
  %1253 = load float, ptr %1252, align 4
  %1254 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 1
  %1255 = load float, ptr %1254, align 4
  %1256 = fneg float %1255
  %1257 = call ptr @_pCf(ptr noundef %46)
  %1258 = getelementptr inbounds { float, float }, ptr %1257, i32 0, i32 0
  %1259 = getelementptr inbounds { float, float }, ptr %1257, i32 0, i32 1
  store float %1253, ptr %1258, align 4
  store float %1256, ptr %1259, align 4
  %1260 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1261 = load float, ptr %1260, align 4, !tbaa !16
  %1262 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1261, ptr %1262, align 4, !tbaa !16
  %1263 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1264 = load float, ptr %1263, align 4, !tbaa !18
  %1265 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1264, ptr %1265, align 4, !tbaa !18
  store i32 1, ptr %40, align 4, !tbaa !9
  %1266 = load i32, ptr %94, align 4, !tbaa !9
  %1267 = load i32, ptr %97, align 4, !tbaa !9
  %1268 = sub nsw i32 %1266, %1267
  %1269 = load i32, ptr %96, align 4, !tbaa !9
  %1270 = sub nsw i32 %1268, %1269
  store i32 %1270, ptr %41, align 4, !tbaa !9
  %1271 = load i32, ptr %40, align 4, !tbaa !9
  %1272 = load i32, ptr %41, align 4, !tbaa !9
  %1273 = icmp sge i32 %1271, %1272
  br i1 %1273, label %1274, label %1276

1274:                                             ; preds = %1168
  %1275 = load i32, ptr %40, align 4, !tbaa !9
  br label %1278

1276:                                             ; preds = %1168
  %1277 = load i32, ptr %41, align 4, !tbaa !9
  br label %1278

1278:                                             ; preds = %1276, %1274
  %1279 = phi i32 [ %1275, %1274 ], [ %1277, %1276 ]
  store i32 %1279, ptr %51, align 4, !tbaa !9
  %1280 = load i32, ptr %73, align 4, !tbaa !9
  %1281 = add nsw i32 %1280, 2
  %1282 = load i32, ptr %51, align 4, !tbaa !9
  %1283 = sub nsw i32 %1281, %1282
  store i32 %1283, ptr %76, align 4, !tbaa !9
  %1284 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %1284, align 4, !tbaa !16
  %1285 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %1285, align 4, !tbaa !18
  %1286 = load i32, ptr %94, align 4, !tbaa !9
  %1287 = load i32, ptr %97, align 4, !tbaa !9
  %1288 = load i32, ptr %96, align 4, !tbaa !9
  %1289 = add nsw i32 %1287, %1288
  %1290 = icmp sgt i32 %1286, %1289
  %1291 = zext i1 %1290 to i32
  store i32 %1291, ptr %49, align 4, !tbaa !9
  %1292 = load ptr, ptr %31, align 8, !tbaa !5
  %1293 = load i32, ptr %54, align 4, !tbaa !9
  %1294 = load i32, ptr %71, align 4, !tbaa !9
  %1295 = load i32, ptr %51, align 4, !tbaa !9
  %1296 = mul nsw i32 %1294, %1295
  %1297 = sub nsw i32 %1293, %1296
  %1298 = load i32, ptr %85, align 4, !tbaa !9
  %1299 = add nsw i32 %1297, %1298
  %1300 = load i32, ptr %51, align 4, !tbaa !9
  %1301 = load i32, ptr %35, align 4, !tbaa !9
  %1302 = mul nsw i32 %1300, %1301
  %1303 = add nsw i32 %1299, %1302
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds %struct.complex, ptr %1292, i64 %1304
  call void @clarot_(ptr noundef @c_true, ptr noundef %49, ptr noundef @c_true, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %1305, ptr noundef %50, ptr noundef %70, ptr noundef %67)
  %1306 = load i32, ptr %51, align 4, !tbaa !9
  store i32 %1306, ptr %73, align 4, !tbaa !9
  %1307 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1307, ptr %79, align 4, !tbaa !9
  br label %1308

1308:                                             ; preds = %1278, %1140
  br label %1309

1309:                                             ; preds = %1308
  %1310 = load i32, ptr %39, align 4, !tbaa !9
  %1311 = load i32, ptr %94, align 4, !tbaa !9
  %1312 = add nsw i32 %1311, %1310
  store i32 %1312, ptr %94, align 4, !tbaa !9
  br label %1012, !llvm.loop !22

1313:                                             ; preds = %1023
  br label %1314

1314:                                             ; preds = %1313
  %1315 = load i32, ptr %80, align 4, !tbaa !9
  %1316 = add nsw i32 %1315, 1
  store i32 %1316, ptr %80, align 4, !tbaa !9
  br label %893, !llvm.loop !23

1317:                                             ; preds = %893
  br label %1318

1318:                                             ; preds = %1317
  %1319 = load i32, ptr %97, align 4, !tbaa !9
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr %97, align 4, !tbaa !9
  br label %870, !llvm.loop !24

1321:                                             ; preds = %870
  %1322 = load i32, ptr %98, align 4, !tbaa !9
  store i32 %1322, ptr %97, align 4, !tbaa !9
  %1323 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %1323, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %96, align 4, !tbaa !9
  br label %1324

1324:                                             ; preds = %1772, %1321
  %1325 = load i32, ptr %96, align 4, !tbaa !9
  %1326 = load i32, ptr %37, align 4, !tbaa !9
  %1327 = icmp sle i32 %1325, %1326
  br i1 %1327, label %1328, label %1775

1328:                                             ; preds = %1324
  %1329 = load ptr, ptr %19, align 8, !tbaa !5
  %1330 = load i32, ptr %1329, align 4, !tbaa !9
  %1331 = load i32, ptr %96, align 4, !tbaa !9
  %1332 = add nsw i32 %1330, %1331
  store i32 %1332, ptr %39, align 4, !tbaa !9
  %1333 = load i32, ptr %39, align 4, !tbaa !9
  %1334 = load ptr, ptr %18, align 8, !tbaa !5
  %1335 = load i32, ptr %1334, align 4, !tbaa !9
  %1336 = icmp sle i32 %1333, %1335
  br i1 %1336, label %1337, label %1339

1337:                                             ; preds = %1328
  %1338 = load i32, ptr %39, align 4, !tbaa !9
  br label %1342

1339:                                             ; preds = %1328
  %1340 = load ptr, ptr %18, align 8, !tbaa !5
  %1341 = load i32, ptr %1340, align 4, !tbaa !9
  br label %1342

1342:                                             ; preds = %1339, %1337
  %1343 = phi i32 [ %1338, %1337 ], [ %1341, %1339 ]
  %1344 = load i32, ptr %97, align 4, !tbaa !9
  %1345 = add nsw i32 %1343, %1344
  %1346 = sub nsw i32 %1345, 1
  store i32 %1346, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %1347

1347:                                             ; preds = %1768, %1342
  %1348 = load i32, ptr %74, align 4, !tbaa !9
  %1349 = load i32, ptr %38, align 4, !tbaa !9
  %1350 = icmp sle i32 %1348, %1349
  br i1 %1350, label %1351, label %1771

1351:                                             ; preds = %1347
  %1352 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %1352, align 4, !tbaa !16
  %1353 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %1353, align 4, !tbaa !18
  %1354 = load ptr, ptr %21, align 8, !tbaa !5
  %1355 = getelementptr inbounds i32, ptr %1354, i64 1
  %1356 = call float @slarnd_(ptr noundef @c__1, ptr noundef %1355)
  %1357 = fmul float %1356, 0x401921FB60000000
  store float %1357, ptr %62, align 4, !tbaa !11
  %1358 = load float, ptr %62, align 4, !tbaa !11
  %1359 = fpext float %1358 to double
  %1360 = call double @cos(double noundef %1359) #8
  %1361 = fptrunc double %1360 to float
  store float %1361, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #8
  %1362 = load ptr, ptr %21, align 8, !tbaa !5
  %1363 = getelementptr inbounds i32, ptr %1362, i64 1
  %1364 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %1363)
  store <2 x float> %1364, ptr %108, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %108, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  %1365 = load float, ptr %43, align 4, !tbaa !11
  %1366 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %1367 = load float, ptr %1366, align 4, !tbaa !16
  %1368 = fmul float %1365, %1367
  %1369 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1368, ptr %1369, align 4, !tbaa !16
  %1370 = load float, ptr %43, align 4, !tbaa !11
  %1371 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %1372 = load float, ptr %1371, align 4, !tbaa !18
  %1373 = fmul float %1370, %1372
  %1374 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1373, ptr %1374, align 4, !tbaa !18
  %1375 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1376 = load float, ptr %1375, align 4, !tbaa !16
  %1377 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1376, ptr %1377, align 4, !tbaa !16
  %1378 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1379 = load float, ptr %1378, align 4, !tbaa !18
  %1380 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1379, ptr %1380, align 4, !tbaa !18
  %1381 = load float, ptr %62, align 4, !tbaa !11
  %1382 = fpext float %1381 to double
  %1383 = call double @sin(double noundef %1382) #8
  %1384 = fptrunc double %1383 to float
  store float %1384, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #8
  %1385 = load ptr, ptr %21, align 8, !tbaa !5
  %1386 = getelementptr inbounds i32, ptr %1385, i64 1
  %1387 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %1386)
  store <2 x float> %1387, ptr %109, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %109, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #8
  %1388 = load float, ptr %43, align 4, !tbaa !11
  %1389 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %1390 = load float, ptr %1389, align 4, !tbaa !16
  %1391 = fmul float %1388, %1390
  %1392 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1391, ptr %1392, align 4, !tbaa !16
  %1393 = load float, ptr %43, align 4, !tbaa !11
  %1394 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %1395 = load float, ptr %1394, align 4, !tbaa !18
  %1396 = fmul float %1393, %1395
  %1397 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1396, ptr %1397, align 4, !tbaa !18
  %1398 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1399 = load float, ptr %1398, align 4, !tbaa !16
  %1400 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1399, ptr %1400, align 4, !tbaa !16
  %1401 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1402 = load float, ptr %1401, align 4, !tbaa !18
  %1403 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1402, ptr %1403, align 4, !tbaa !18
  store i32 1, ptr %39, align 4, !tbaa !9
  %1404 = load i32, ptr %74, align 4, !tbaa !9
  %1405 = load i32, ptr %97, align 4, !tbaa !9
  %1406 = sub nsw i32 %1404, %1405
  store i32 %1406, ptr %40, align 4, !tbaa !9
  %1407 = load i32, ptr %39, align 4, !tbaa !9
  %1408 = load i32, ptr %40, align 4, !tbaa !9
  %1409 = icmp sge i32 %1407, %1408
  br i1 %1409, label %1410, label %1412

1410:                                             ; preds = %1351
  %1411 = load i32, ptr %39, align 4, !tbaa !9
  br label %1414

1412:                                             ; preds = %1351
  %1413 = load i32, ptr %40, align 4, !tbaa !9
  br label %1414

1414:                                             ; preds = %1412, %1410
  %1415 = phi i32 [ %1411, %1410 ], [ %1413, %1412 ]
  store i32 %1415, ptr %54, align 4, !tbaa !9
  %1416 = load i32, ptr %74, align 4, !tbaa !9
  %1417 = load ptr, ptr %19, align 8, !tbaa !5
  %1418 = load i32, ptr %1417, align 4, !tbaa !9
  %1419 = icmp slt i32 %1416, %1418
  br i1 %1419, label %1420, label %1456

1420:                                             ; preds = %1414
  %1421 = load ptr, ptr %18, align 8, !tbaa !5
  %1422 = load i32, ptr %1421, align 4, !tbaa !9
  store i32 %1422, ptr %39, align 4, !tbaa !9
  %1423 = load i32, ptr %74, align 4, !tbaa !9
  %1424 = load i32, ptr %96, align 4, !tbaa !9
  %1425 = add nsw i32 %1423, %1424
  store i32 %1425, ptr %40, align 4, !tbaa !9
  %1426 = load i32, ptr %39, align 4, !tbaa !9
  %1427 = load i32, ptr %40, align 4, !tbaa !9
  %1428 = icmp sle i32 %1426, %1427
  br i1 %1428, label %1429, label %1431

1429:                                             ; preds = %1420
  %1430 = load i32, ptr %39, align 4, !tbaa !9
  br label %1433

1431:                                             ; preds = %1420
  %1432 = load i32, ptr %40, align 4, !tbaa !9
  br label %1433

1433:                                             ; preds = %1431, %1429
  %1434 = phi i32 [ %1430, %1429 ], [ %1432, %1431 ]
  %1435 = add nsw i32 %1434, 1
  %1436 = load i32, ptr %54, align 4, !tbaa !9
  %1437 = sub nsw i32 %1435, %1436
  store i32 %1437, ptr %76, align 4, !tbaa !9
  %1438 = load i32, ptr %74, align 4, !tbaa !9
  %1439 = load i32, ptr %97, align 4, !tbaa !9
  %1440 = icmp sgt i32 %1438, %1439
  %1441 = zext i1 %1440 to i32
  store i32 %1441, ptr %49, align 4, !tbaa !9
  %1442 = load ptr, ptr %31, align 8, !tbaa !5
  %1443 = load i32, ptr %54, align 4, !tbaa !9
  %1444 = load i32, ptr %71, align 4, !tbaa !9
  %1445 = load i32, ptr %74, align 4, !tbaa !9
  %1446 = mul nsw i32 %1444, %1445
  %1447 = sub nsw i32 %1443, %1446
  %1448 = load i32, ptr %85, align 4, !tbaa !9
  %1449 = add nsw i32 %1447, %1448
  %1450 = load i32, ptr %74, align 4, !tbaa !9
  %1451 = load i32, ptr %35, align 4, !tbaa !9
  %1452 = mul nsw i32 %1450, %1451
  %1453 = add nsw i32 %1449, %1452
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds %struct.complex, ptr %1442, i64 %1454
  call void @clarot_(ptr noundef @c_false, ptr noundef %49, ptr noundef @c_false, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %1455, ptr noundef %50, ptr noundef %70, ptr noundef %72)
  br label %1456

1456:                                             ; preds = %1433, %1414
  %1457 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1457, ptr %73, align 4, !tbaa !9
  %1458 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1458, ptr %79, align 4, !tbaa !9
  %1459 = load i32, ptr %96, align 4, !tbaa !9
  %1460 = sub nsw i32 0, %1459
  %1461 = load i32, ptr %97, align 4, !tbaa !9
  %1462 = sub nsw i32 %1460, %1461
  store i32 %1462, ptr %39, align 4, !tbaa !9
  %1463 = load i32, ptr %74, align 4, !tbaa !9
  %1464 = load i32, ptr %97, align 4, !tbaa !9
  %1465 = sub nsw i32 %1463, %1464
  store i32 %1465, ptr %94, align 4, !tbaa !9
  br label %1466

1466:                                             ; preds = %1763, %1456
  %1467 = load i32, ptr %39, align 4, !tbaa !9
  %1468 = icmp slt i32 %1467, 0
  br i1 %1468, label %1469, label %1473

1469:                                             ; preds = %1466
  %1470 = load i32, ptr %94, align 4, !tbaa !9
  %1471 = icmp sge i32 %1470, 1
  %1472 = zext i1 %1471 to i32
  br label %1477

1473:                                             ; preds = %1466
  %1474 = load i32, ptr %94, align 4, !tbaa !9
  %1475 = icmp sle i32 %1474, 1
  %1476 = zext i1 %1475 to i32
  br label %1477

1477:                                             ; preds = %1473, %1469
  %1478 = phi i32 [ %1472, %1469 ], [ %1476, %1473 ]
  %1479 = icmp ne i32 %1478, 0
  br i1 %1479, label %1480, label %1767

1480:                                             ; preds = %1477
  %1481 = load i32, ptr %73, align 4, !tbaa !9
  %1482 = load ptr, ptr %19, align 8, !tbaa !5
  %1483 = load i32, ptr %1482, align 4, !tbaa !9
  %1484 = icmp slt i32 %1481, %1483
  br i1 %1484, label %1485, label %1583

1485:                                             ; preds = %1480
  %1486 = load ptr, ptr %31, align 8, !tbaa !5
  %1487 = load i32, ptr %79, align 4, !tbaa !9
  %1488 = add nsw i32 %1487, 1
  %1489 = load i32, ptr %71, align 4, !tbaa !9
  %1490 = load i32, ptr %73, align 4, !tbaa !9
  %1491 = add nsw i32 %1490, 1
  %1492 = mul nsw i32 %1489, %1491
  %1493 = sub nsw i32 %1488, %1492
  %1494 = load i32, ptr %85, align 4, !tbaa !9
  %1495 = add nsw i32 %1493, %1494
  %1496 = load i32, ptr %73, align 4, !tbaa !9
  %1497 = add nsw i32 %1496, 1
  %1498 = load i32, ptr %35, align 4, !tbaa !9
  %1499 = mul nsw i32 %1497, %1498
  %1500 = add nsw i32 %1495, %1499
  %1501 = sext i32 %1500 to i64
  %1502 = getelementptr inbounds %struct.complex, ptr %1486, i64 %1501
  call void @clartg_(ptr noundef %1502, ptr noundef %70, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #8
  %1503 = load ptr, ptr %21, align 8, !tbaa !5
  %1504 = getelementptr inbounds i32, ptr %1503, i64 1
  %1505 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %1504)
  store <2 x float> %1505, ptr %110, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %110, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #8
  %1506 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1507 = load float, ptr %1506, align 4, !tbaa !16
  %1508 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %1507, ptr %1508, align 4, !tbaa !16
  %1509 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1510 = load float, ptr %1509, align 4, !tbaa !18
  %1511 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %1510, ptr %1511, align 4, !tbaa !18
  %1512 = load float, ptr %63, align 4, !tbaa !11
  %1513 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1514 = load float, ptr %1513, align 4, !tbaa !16
  %1515 = fmul float %1512, %1514
  %1516 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1515, ptr %1516, align 4, !tbaa !16
  %1517 = load float, ptr %63, align 4, !tbaa !11
  %1518 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1519 = load float, ptr %1518, align 4, !tbaa !18
  %1520 = fmul float %1517, %1519
  %1521 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1520, ptr %1521, align 4, !tbaa !18
  %1522 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %1522, ptr %111, align 4
  %1523 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 0
  %1524 = load float, ptr %1523, align 4
  %1525 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 1
  %1526 = load float, ptr %1525, align 4
  %1527 = fneg float %1526
  %1528 = call ptr @_pCf(ptr noundef %46)
  %1529 = getelementptr inbounds { float, float }, ptr %1528, i32 0, i32 0
  %1530 = getelementptr inbounds { float, float }, ptr %1528, i32 0, i32 1
  store float %1524, ptr %1529, align 4
  store float %1527, ptr %1530, align 4
  %1531 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1532 = load float, ptr %1531, align 4, !tbaa !16
  %1533 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1532, ptr %1533, align 4, !tbaa !16
  %1534 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1535 = load float, ptr %1534, align 4, !tbaa !18
  %1536 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1535, ptr %1536, align 4, !tbaa !18
  %1537 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1538 = load float, ptr %1537, align 4, !tbaa !16
  %1539 = fneg float %1538
  %1540 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1539, ptr %1540, align 4, !tbaa !16
  %1541 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1542 = load float, ptr %1541, align 4, !tbaa !18
  %1543 = fneg float %1542
  %1544 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1543, ptr %1544, align 4, !tbaa !18
  %1545 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1546 = load float, ptr %1545, align 4, !tbaa !16
  %1547 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1548 = load float, ptr %1547, align 4, !tbaa !16
  %1549 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1550 = load float, ptr %1549, align 4, !tbaa !18
  %1551 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1552 = load float, ptr %1551, align 4, !tbaa !18
  %1553 = fmul float %1550, %1552
  %1554 = fneg float %1553
  %1555 = call float @llvm.fmuladd.f32(float %1546, float %1548, float %1554)
  %1556 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1555, ptr %1556, align 4, !tbaa !16
  %1557 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1558 = load float, ptr %1557, align 4, !tbaa !16
  %1559 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1560 = load float, ptr %1559, align 4, !tbaa !18
  %1561 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1562 = load float, ptr %1561, align 4, !tbaa !18
  %1563 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1564 = load float, ptr %1563, align 4, !tbaa !16
  %1565 = fmul float %1562, %1564
  %1566 = call float @llvm.fmuladd.f32(float %1558, float %1560, float %1565)
  %1567 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1566, ptr %1567, align 4, !tbaa !18
  %1568 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %1568, ptr %112, align 4
  %1569 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 0
  %1570 = load float, ptr %1569, align 4
  %1571 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 1
  %1572 = load float, ptr %1571, align 4
  %1573 = fneg float %1572
  %1574 = call ptr @_pCf(ptr noundef %46)
  %1575 = getelementptr inbounds { float, float }, ptr %1574, i32 0, i32 0
  %1576 = getelementptr inbounds { float, float }, ptr %1574, i32 0, i32 1
  store float %1570, ptr %1575, align 4
  store float %1573, ptr %1576, align 4
  %1577 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1578 = load float, ptr %1577, align 4, !tbaa !16
  %1579 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1578, ptr %1579, align 4, !tbaa !16
  %1580 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1581 = load float, ptr %1580, align 4, !tbaa !18
  %1582 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1581, ptr %1582, align 4, !tbaa !18
  br label %1583

1583:                                             ; preds = %1485, %1480
  store i32 1, ptr %40, align 4, !tbaa !9
  %1584 = load i32, ptr %94, align 4, !tbaa !9
  %1585 = load i32, ptr %96, align 4, !tbaa !9
  %1586 = sub nsw i32 %1584, %1585
  store i32 %1586, ptr %41, align 4, !tbaa !9
  %1587 = load i32, ptr %40, align 4, !tbaa !9
  %1588 = load i32, ptr %41, align 4, !tbaa !9
  %1589 = icmp sge i32 %1587, %1588
  br i1 %1589, label %1590, label %1592

1590:                                             ; preds = %1583
  %1591 = load i32, ptr %40, align 4, !tbaa !9
  br label %1594

1592:                                             ; preds = %1583
  %1593 = load i32, ptr %41, align 4, !tbaa !9
  br label %1594

1594:                                             ; preds = %1592, %1590
  %1595 = phi i32 [ %1591, %1590 ], [ %1593, %1592 ]
  store i32 %1595, ptr %51, align 4, !tbaa !9
  %1596 = load i32, ptr %73, align 4, !tbaa !9
  %1597 = add nsw i32 %1596, 2
  %1598 = load i32, ptr %51, align 4, !tbaa !9
  %1599 = sub nsw i32 %1597, %1598
  store i32 %1599, ptr %76, align 4, !tbaa !9
  %1600 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float 0.000000e+00, ptr %1600, align 4, !tbaa !16
  %1601 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float 0.000000e+00, ptr %1601, align 4, !tbaa !18
  %1602 = load i32, ptr %94, align 4, !tbaa !9
  %1603 = load i32, ptr %96, align 4, !tbaa !9
  %1604 = icmp sgt i32 %1602, %1603
  %1605 = zext i1 %1604 to i32
  store i32 %1605, ptr %88, align 4, !tbaa !9
  %1606 = load ptr, ptr %31, align 8, !tbaa !5
  %1607 = load i32, ptr %79, align 4, !tbaa !9
  %1608 = load i32, ptr %71, align 4, !tbaa !9
  %1609 = load i32, ptr %51, align 4, !tbaa !9
  %1610 = mul nsw i32 %1608, %1609
  %1611 = sub nsw i32 %1607, %1610
  %1612 = load i32, ptr %85, align 4, !tbaa !9
  %1613 = add nsw i32 %1611, %1612
  %1614 = load i32, ptr %51, align 4, !tbaa !9
  %1615 = load i32, ptr %35, align 4, !tbaa !9
  %1616 = mul nsw i32 %1614, %1615
  %1617 = add nsw i32 %1613, %1616
  %1618 = sext i32 %1617 to i64
  %1619 = getelementptr inbounds %struct.complex, ptr %1606, i64 %1618
  call void @clarot_(ptr noundef @c_true, ptr noundef %88, ptr noundef @c_true, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %1619, ptr noundef %50, ptr noundef %67, ptr noundef %70)
  %1620 = load i32, ptr %88, align 4, !tbaa !9
  %1621 = icmp ne i32 %1620, 0
  br i1 %1621, label %1622, label %1762

1622:                                             ; preds = %1594
  %1623 = load ptr, ptr %31, align 8, !tbaa !5
  %1624 = load i32, ptr %79, align 4, !tbaa !9
  %1625 = add nsw i32 %1624, 1
  %1626 = load i32, ptr %71, align 4, !tbaa !9
  %1627 = load i32, ptr %51, align 4, !tbaa !9
  %1628 = add nsw i32 %1627, 1
  %1629 = mul nsw i32 %1626, %1628
  %1630 = sub nsw i32 %1625, %1629
  %1631 = load i32, ptr %85, align 4, !tbaa !9
  %1632 = add nsw i32 %1630, %1631
  %1633 = load i32, ptr %51, align 4, !tbaa !9
  %1634 = add nsw i32 %1633, 1
  %1635 = load i32, ptr %35, align 4, !tbaa !9
  %1636 = mul nsw i32 %1634, %1635
  %1637 = add nsw i32 %1632, %1636
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds %struct.complex, ptr %1623, i64 %1638
  call void @clartg_(ptr noundef %1639, ptr noundef %67, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #8
  %1640 = load ptr, ptr %21, align 8, !tbaa !5
  %1641 = getelementptr inbounds i32, ptr %1640, i64 1
  %1642 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %1641)
  store <2 x float> %1642, ptr %113, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %113, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #8
  %1643 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1644 = load float, ptr %1643, align 4, !tbaa !16
  %1645 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %1644, ptr %1645, align 4, !tbaa !16
  %1646 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1647 = load float, ptr %1646, align 4, !tbaa !18
  %1648 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %1647, ptr %1648, align 4, !tbaa !18
  %1649 = load float, ptr %63, align 4, !tbaa !11
  %1650 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1651 = load float, ptr %1650, align 4, !tbaa !16
  %1652 = fmul float %1649, %1651
  %1653 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1652, ptr %1653, align 4, !tbaa !16
  %1654 = load float, ptr %63, align 4, !tbaa !11
  %1655 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1656 = load float, ptr %1655, align 4, !tbaa !18
  %1657 = fmul float %1654, %1656
  %1658 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1657, ptr %1658, align 4, !tbaa !18
  %1659 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %1659, ptr %114, align 4
  %1660 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 0
  %1661 = load float, ptr %1660, align 4
  %1662 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 1
  %1663 = load float, ptr %1662, align 4
  %1664 = fneg float %1663
  %1665 = call ptr @_pCf(ptr noundef %46)
  %1666 = getelementptr inbounds { float, float }, ptr %1665, i32 0, i32 0
  %1667 = getelementptr inbounds { float, float }, ptr %1665, i32 0, i32 1
  store float %1661, ptr %1666, align 4
  store float %1664, ptr %1667, align 4
  %1668 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1669 = load float, ptr %1668, align 4, !tbaa !16
  %1670 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1669, ptr %1670, align 4, !tbaa !16
  %1671 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1672 = load float, ptr %1671, align 4, !tbaa !18
  %1673 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1672, ptr %1673, align 4, !tbaa !18
  %1674 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1675 = load float, ptr %1674, align 4, !tbaa !16
  %1676 = fneg float %1675
  %1677 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1676, ptr %1677, align 4, !tbaa !16
  %1678 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1679 = load float, ptr %1678, align 4, !tbaa !18
  %1680 = fneg float %1679
  %1681 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1680, ptr %1681, align 4, !tbaa !18
  %1682 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1683 = load float, ptr %1682, align 4, !tbaa !16
  %1684 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1685 = load float, ptr %1684, align 4, !tbaa !16
  %1686 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1687 = load float, ptr %1686, align 4, !tbaa !18
  %1688 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1689 = load float, ptr %1688, align 4, !tbaa !18
  %1690 = fmul float %1687, %1689
  %1691 = fneg float %1690
  %1692 = call float @llvm.fmuladd.f32(float %1683, float %1685, float %1691)
  %1693 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1692, ptr %1693, align 4, !tbaa !16
  %1694 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1695 = load float, ptr %1694, align 4, !tbaa !16
  %1696 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1697 = load float, ptr %1696, align 4, !tbaa !18
  %1698 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1699 = load float, ptr %1698, align 4, !tbaa !18
  %1700 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1701 = load float, ptr %1700, align 4, !tbaa !16
  %1702 = fmul float %1699, %1701
  %1703 = call float @llvm.fmuladd.f32(float %1695, float %1697, float %1702)
  %1704 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1703, ptr %1704, align 4, !tbaa !18
  %1705 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %1705, ptr %115, align 4
  %1706 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 0
  %1707 = load float, ptr %1706, align 4
  %1708 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 1
  %1709 = load float, ptr %1708, align 4
  %1710 = fneg float %1709
  %1711 = call ptr @_pCf(ptr noundef %46)
  %1712 = getelementptr inbounds { float, float }, ptr %1711, i32 0, i32 0
  %1713 = getelementptr inbounds { float, float }, ptr %1711, i32 0, i32 1
  store float %1707, ptr %1712, align 4
  store float %1710, ptr %1713, align 4
  %1714 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1715 = load float, ptr %1714, align 4, !tbaa !16
  %1716 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1715, ptr %1716, align 4, !tbaa !16
  %1717 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1718 = load float, ptr %1717, align 4, !tbaa !18
  %1719 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1718, ptr %1719, align 4, !tbaa !18
  store i32 1, ptr %40, align 4, !tbaa !9
  %1720 = load i32, ptr %94, align 4, !tbaa !9
  %1721 = load i32, ptr %96, align 4, !tbaa !9
  %1722 = sub nsw i32 %1720, %1721
  %1723 = load i32, ptr %97, align 4, !tbaa !9
  %1724 = sub nsw i32 %1722, %1723
  store i32 %1724, ptr %41, align 4, !tbaa !9
  %1725 = load i32, ptr %40, align 4, !tbaa !9
  %1726 = load i32, ptr %41, align 4, !tbaa !9
  %1727 = icmp sge i32 %1725, %1726
  br i1 %1727, label %1728, label %1730

1728:                                             ; preds = %1622
  %1729 = load i32, ptr %40, align 4, !tbaa !9
  br label %1732

1730:                                             ; preds = %1622
  %1731 = load i32, ptr %41, align 4, !tbaa !9
  br label %1732

1732:                                             ; preds = %1730, %1728
  %1733 = phi i32 [ %1729, %1728 ], [ %1731, %1730 ]
  store i32 %1733, ptr %54, align 4, !tbaa !9
  %1734 = load i32, ptr %79, align 4, !tbaa !9
  %1735 = add nsw i32 %1734, 2
  %1736 = load i32, ptr %54, align 4, !tbaa !9
  %1737 = sub nsw i32 %1735, %1736
  store i32 %1737, ptr %76, align 4, !tbaa !9
  %1738 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %1738, align 4, !tbaa !16
  %1739 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %1739, align 4, !tbaa !18
  %1740 = load i32, ptr %94, align 4, !tbaa !9
  %1741 = load i32, ptr %96, align 4, !tbaa !9
  %1742 = load i32, ptr %97, align 4, !tbaa !9
  %1743 = add nsw i32 %1741, %1742
  %1744 = icmp sgt i32 %1740, %1743
  %1745 = zext i1 %1744 to i32
  store i32 %1745, ptr %49, align 4, !tbaa !9
  %1746 = load ptr, ptr %31, align 8, !tbaa !5
  %1747 = load i32, ptr %54, align 4, !tbaa !9
  %1748 = load i32, ptr %71, align 4, !tbaa !9
  %1749 = load i32, ptr %51, align 4, !tbaa !9
  %1750 = mul nsw i32 %1748, %1749
  %1751 = sub nsw i32 %1747, %1750
  %1752 = load i32, ptr %85, align 4, !tbaa !9
  %1753 = add nsw i32 %1751, %1752
  %1754 = load i32, ptr %51, align 4, !tbaa !9
  %1755 = load i32, ptr %35, align 4, !tbaa !9
  %1756 = mul nsw i32 %1754, %1755
  %1757 = add nsw i32 %1753, %1756
  %1758 = sext i32 %1757 to i64
  %1759 = getelementptr inbounds %struct.complex, ptr %1746, i64 %1758
  call void @clarot_(ptr noundef @c_false, ptr noundef %49, ptr noundef @c_true, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %1759, ptr noundef %50, ptr noundef %70, ptr noundef %67)
  %1760 = load i32, ptr %51, align 4, !tbaa !9
  store i32 %1760, ptr %73, align 4, !tbaa !9
  %1761 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1761, ptr %79, align 4, !tbaa !9
  br label %1762

1762:                                             ; preds = %1732, %1594
  br label %1763

1763:                                             ; preds = %1762
  %1764 = load i32, ptr %39, align 4, !tbaa !9
  %1765 = load i32, ptr %94, align 4, !tbaa !9
  %1766 = add nsw i32 %1765, %1764
  store i32 %1766, ptr %94, align 4, !tbaa !9
  br label %1466, !llvm.loop !25

1767:                                             ; preds = %1477
  br label %1768

1768:                                             ; preds = %1767
  %1769 = load i32, ptr %74, align 4, !tbaa !9
  %1770 = add nsw i32 %1769, 1
  store i32 %1770, ptr %74, align 4, !tbaa !9
  br label %1347, !llvm.loop !26

1771:                                             ; preds = %1347
  br label %1772

1772:                                             ; preds = %1771
  %1773 = load i32, ptr %96, align 4, !tbaa !9
  %1774 = add nsw i32 %1773, 1
  store i32 %1774, ptr %96, align 4, !tbaa !9
  br label %1324, !llvm.loop !27

1775:                                             ; preds = %1324
  br label %2638

1776:                                             ; preds = %865
  store i32 0, ptr %96, align 4, !tbaa !9
  %1777 = load i32, ptr %98, align 4, !tbaa !9
  store i32 %1777, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %97, align 4, !tbaa !9
  br label %1778

1778:                                             ; preds = %2203, %1776
  %1779 = load i32, ptr %97, align 4, !tbaa !9
  %1780 = load i32, ptr %37, align 4, !tbaa !9
  %1781 = icmp sle i32 %1779, %1780
  br i1 %1781, label %1782, label %2206

1782:                                             ; preds = %1778
  %1783 = load ptr, ptr %18, align 8, !tbaa !5
  %1784 = load i32, ptr %1783, align 4, !tbaa !9
  store i32 %1784, ptr %38, align 4, !tbaa !9
  %1785 = load ptr, ptr %19, align 8, !tbaa !5
  %1786 = load i32, ptr %1785, align 4, !tbaa !9
  %1787 = load i32, ptr %96, align 4, !tbaa !9
  %1788 = add nsw i32 %1786, %1787
  store i32 %1788, ptr %39, align 4, !tbaa !9
  %1789 = load i32, ptr %38, align 4, !tbaa !9
  %1790 = load i32, ptr %39, align 4, !tbaa !9
  %1791 = icmp sle i32 %1789, %1790
  br i1 %1791, label %1792, label %1794

1792:                                             ; preds = %1782
  %1793 = load i32, ptr %38, align 4, !tbaa !9
  br label %1796

1794:                                             ; preds = %1782
  %1795 = load i32, ptr %39, align 4, !tbaa !9
  br label %1796

1796:                                             ; preds = %1794, %1792
  %1797 = phi i32 [ %1793, %1792 ], [ %1795, %1794 ]
  %1798 = sub nsw i32 %1797, 1
  store i32 %1798, ptr %78, align 4, !tbaa !9
  %1799 = load ptr, ptr %18, align 8, !tbaa !5
  %1800 = load i32, ptr %1799, align 4, !tbaa !9
  %1801 = load i32, ptr %97, align 4, !tbaa !9
  %1802 = add nsw i32 %1800, %1801
  store i32 %1802, ptr %38, align 4, !tbaa !9
  %1803 = load i32, ptr %96, align 4, !tbaa !9
  %1804 = sub nsw i32 1, %1803
  store i32 %1804, ptr %39, align 4, !tbaa !9
  %1805 = load i32, ptr %38, align 4, !tbaa !9
  %1806 = load ptr, ptr %19, align 8, !tbaa !5
  %1807 = load i32, ptr %1806, align 4, !tbaa !9
  %1808 = icmp sle i32 %1805, %1807
  br i1 %1808, label %1809, label %1811

1809:                                             ; preds = %1796
  %1810 = load i32, ptr %38, align 4, !tbaa !9
  br label %1814

1811:                                             ; preds = %1796
  %1812 = load ptr, ptr %19, align 8, !tbaa !5
  %1813 = load i32, ptr %1812, align 4, !tbaa !9
  br label %1814

1814:                                             ; preds = %1811, %1809
  %1815 = phi i32 [ %1810, %1809 ], [ %1813, %1811 ]
  %1816 = sub nsw i32 %1815, 1
  store i32 %1816, ptr %74, align 4, !tbaa !9
  br label %1817

1817:                                             ; preds = %2199, %1814
  %1818 = load i32, ptr %74, align 4, !tbaa !9
  %1819 = load i32, ptr %39, align 4, !tbaa !9
  %1820 = icmp sge i32 %1818, %1819
  br i1 %1820, label %1821, label %2202

1821:                                             ; preds = %1817
  %1822 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %1822, align 4, !tbaa !16
  %1823 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %1823, align 4, !tbaa !18
  %1824 = load ptr, ptr %21, align 8, !tbaa !5
  %1825 = getelementptr inbounds i32, ptr %1824, i64 1
  %1826 = call float @slarnd_(ptr noundef @c__1, ptr noundef %1825)
  %1827 = fmul float %1826, 0x401921FB60000000
  store float %1827, ptr %62, align 4, !tbaa !11
  %1828 = load float, ptr %62, align 4, !tbaa !11
  %1829 = fpext float %1828 to double
  %1830 = call double @cos(double noundef %1829) #8
  %1831 = fptrunc double %1830 to float
  store float %1831, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #8
  %1832 = load ptr, ptr %21, align 8, !tbaa !5
  %1833 = getelementptr inbounds i32, ptr %1832, i64 1
  %1834 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %1833)
  store <2 x float> %1834, ptr %116, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %116, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #8
  %1835 = load float, ptr %43, align 4, !tbaa !11
  %1836 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %1837 = load float, ptr %1836, align 4, !tbaa !16
  %1838 = fmul float %1835, %1837
  %1839 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1838, ptr %1839, align 4, !tbaa !16
  %1840 = load float, ptr %43, align 4, !tbaa !11
  %1841 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %1842 = load float, ptr %1841, align 4, !tbaa !18
  %1843 = fmul float %1840, %1842
  %1844 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1843, ptr %1844, align 4, !tbaa !18
  %1845 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1846 = load float, ptr %1845, align 4, !tbaa !16
  %1847 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1846, ptr %1847, align 4, !tbaa !16
  %1848 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1849 = load float, ptr %1848, align 4, !tbaa !18
  %1850 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1849, ptr %1850, align 4, !tbaa !18
  %1851 = load float, ptr %62, align 4, !tbaa !11
  %1852 = fpext float %1851 to double
  %1853 = call double @sin(double noundef %1852) #8
  %1854 = fptrunc double %1853 to float
  store float %1854, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #8
  %1855 = load ptr, ptr %21, align 8, !tbaa !5
  %1856 = getelementptr inbounds i32, ptr %1855, i64 1
  %1857 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %1856)
  store <2 x float> %1857, ptr %117, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %117, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #8
  %1858 = load float, ptr %43, align 4, !tbaa !11
  %1859 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %1860 = load float, ptr %1859, align 4, !tbaa !16
  %1861 = fmul float %1858, %1860
  %1862 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1861, ptr %1862, align 4, !tbaa !16
  %1863 = load float, ptr %43, align 4, !tbaa !11
  %1864 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %1865 = load float, ptr %1864, align 4, !tbaa !18
  %1866 = fmul float %1863, %1865
  %1867 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1866, ptr %1867, align 4, !tbaa !18
  %1868 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1869 = load float, ptr %1868, align 4, !tbaa !16
  %1870 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1869, ptr %1870, align 4, !tbaa !16
  %1871 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1872 = load float, ptr %1871, align 4, !tbaa !18
  %1873 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1872, ptr %1873, align 4, !tbaa !18
  store i32 1, ptr %38, align 4, !tbaa !9
  %1874 = load i32, ptr %74, align 4, !tbaa !9
  %1875 = load i32, ptr %97, align 4, !tbaa !9
  %1876 = sub nsw i32 %1874, %1875
  %1877 = add nsw i32 %1876, 1
  store i32 %1877, ptr %40, align 4, !tbaa !9
  %1878 = load i32, ptr %38, align 4, !tbaa !9
  %1879 = load i32, ptr %40, align 4, !tbaa !9
  %1880 = icmp sge i32 %1878, %1879
  br i1 %1880, label %1881, label %1883

1881:                                             ; preds = %1821
  %1882 = load i32, ptr %38, align 4, !tbaa !9
  br label %1885

1883:                                             ; preds = %1821
  %1884 = load i32, ptr %40, align 4, !tbaa !9
  br label %1885

1885:                                             ; preds = %1883, %1881
  %1886 = phi i32 [ %1882, %1881 ], [ %1884, %1883 ]
  store i32 %1886, ptr %54, align 4, !tbaa !9
  %1887 = load i32, ptr %74, align 4, !tbaa !9
  %1888 = icmp sgt i32 %1887, 0
  br i1 %1888, label %1889, label %1929

1889:                                             ; preds = %1885
  %1890 = load ptr, ptr %18, align 8, !tbaa !5
  %1891 = load i32, ptr %1890, align 4, !tbaa !9
  store i32 %1891, ptr %38, align 4, !tbaa !9
  %1892 = load i32, ptr %74, align 4, !tbaa !9
  %1893 = load i32, ptr %96, align 4, !tbaa !9
  %1894 = add nsw i32 %1892, %1893
  %1895 = add nsw i32 %1894, 1
  store i32 %1895, ptr %40, align 4, !tbaa !9
  %1896 = load i32, ptr %38, align 4, !tbaa !9
  %1897 = load i32, ptr %40, align 4, !tbaa !9
  %1898 = icmp sle i32 %1896, %1897
  br i1 %1898, label %1899, label %1901

1899:                                             ; preds = %1889
  %1900 = load i32, ptr %38, align 4, !tbaa !9
  br label %1903

1901:                                             ; preds = %1889
  %1902 = load i32, ptr %40, align 4, !tbaa !9
  br label %1903

1903:                                             ; preds = %1901, %1899
  %1904 = phi i32 [ %1900, %1899 ], [ %1902, %1901 ]
  %1905 = add nsw i32 %1904, 1
  %1906 = load i32, ptr %54, align 4, !tbaa !9
  %1907 = sub nsw i32 %1905, %1906
  store i32 %1907, ptr %76, align 4, !tbaa !9
  %1908 = load i32, ptr %74, align 4, !tbaa !9
  %1909 = load i32, ptr %96, align 4, !tbaa !9
  %1910 = add nsw i32 %1908, %1909
  %1911 = load ptr, ptr %18, align 8, !tbaa !5
  %1912 = load i32, ptr %1911, align 4, !tbaa !9
  %1913 = icmp slt i32 %1910, %1912
  %1914 = zext i1 %1913 to i32
  store i32 %1914, ptr %49, align 4, !tbaa !9
  %1915 = load ptr, ptr %31, align 8, !tbaa !5
  %1916 = load i32, ptr %54, align 4, !tbaa !9
  %1917 = load i32, ptr %71, align 4, !tbaa !9
  %1918 = load i32, ptr %74, align 4, !tbaa !9
  %1919 = mul nsw i32 %1917, %1918
  %1920 = sub nsw i32 %1916, %1919
  %1921 = load i32, ptr %85, align 4, !tbaa !9
  %1922 = add nsw i32 %1920, %1921
  %1923 = load i32, ptr %74, align 4, !tbaa !9
  %1924 = load i32, ptr %35, align 4, !tbaa !9
  %1925 = mul nsw i32 %1923, %1924
  %1926 = add nsw i32 %1922, %1925
  %1927 = sext i32 %1926 to i64
  %1928 = getelementptr inbounds %struct.complex, ptr %1915, i64 %1927
  call void @clarot_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %49, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %1928, ptr noundef %50, ptr noundef %72, ptr noundef %70)
  br label %1929

1929:                                             ; preds = %1903, %1885
  %1930 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1930, ptr %73, align 4, !tbaa !9
  %1931 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1931, ptr %38, align 4, !tbaa !9
  %1932 = load i32, ptr %96, align 4, !tbaa !9
  %1933 = load i32, ptr %97, align 4, !tbaa !9
  %1934 = add nsw i32 %1932, %1933
  store i32 %1934, ptr %40, align 4, !tbaa !9
  %1935 = load i32, ptr %74, align 4, !tbaa !9
  %1936 = load i32, ptr %96, align 4, !tbaa !9
  %1937 = add nsw i32 %1935, %1936
  store i32 %1937, ptr %94, align 4, !tbaa !9
  br label %1938

1938:                                             ; preds = %2194, %1929
  %1939 = load i32, ptr %40, align 4, !tbaa !9
  %1940 = icmp slt i32 %1939, 0
  br i1 %1940, label %1941, label %1946

1941:                                             ; preds = %1938
  %1942 = load i32, ptr %94, align 4, !tbaa !9
  %1943 = load i32, ptr %38, align 4, !tbaa !9
  %1944 = icmp sge i32 %1942, %1943
  %1945 = zext i1 %1944 to i32
  br label %1951

1946:                                             ; preds = %1938
  %1947 = load i32, ptr %94, align 4, !tbaa !9
  %1948 = load i32, ptr %38, align 4, !tbaa !9
  %1949 = icmp sle i32 %1947, %1948
  %1950 = zext i1 %1949 to i32
  br label %1951

1951:                                             ; preds = %1946, %1941
  %1952 = phi i32 [ %1945, %1941 ], [ %1950, %1946 ]
  %1953 = icmp ne i32 %1952, 0
  br i1 %1953, label %1954, label %2198

1954:                                             ; preds = %1951
  %1955 = load i32, ptr %73, align 4, !tbaa !9
  %1956 = icmp sgt i32 %1955, 0
  %1957 = zext i1 %1956 to i32
  store i32 %1957, ptr %89, align 4, !tbaa !9
  %1958 = load i32, ptr %89, align 4, !tbaa !9
  %1959 = icmp ne i32 %1958, 0
  br i1 %1959, label %1960, label %2029

1960:                                             ; preds = %1954
  %1961 = load ptr, ptr %31, align 8, !tbaa !5
  %1962 = load i32, ptr %94, align 4, !tbaa !9
  %1963 = load i32, ptr %71, align 4, !tbaa !9
  %1964 = load i32, ptr %73, align 4, !tbaa !9
  %1965 = mul nsw i32 %1963, %1964
  %1966 = sub nsw i32 %1962, %1965
  %1967 = load i32, ptr %85, align 4, !tbaa !9
  %1968 = add nsw i32 %1966, %1967
  %1969 = load i32, ptr %73, align 4, !tbaa !9
  %1970 = load i32, ptr %35, align 4, !tbaa !9
  %1971 = mul nsw i32 %1969, %1970
  %1972 = add nsw i32 %1968, %1971
  %1973 = sext i32 %1972 to i64
  %1974 = getelementptr inbounds %struct.complex, ptr %1961, i64 %1973
  call void @clartg_(ptr noundef %1974, ptr noundef %70, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #8
  %1975 = load ptr, ptr %21, align 8, !tbaa !5
  %1976 = getelementptr inbounds i32, ptr %1975, i64 1
  %1977 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %1976)
  store <2 x float> %1977, ptr %118, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %118, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #8
  %1978 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1979 = load float, ptr %1978, align 4, !tbaa !16
  %1980 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %1979, ptr %1980, align 4, !tbaa !16
  %1981 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1982 = load float, ptr %1981, align 4, !tbaa !18
  %1983 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %1982, ptr %1983, align 4, !tbaa !18
  %1984 = load float, ptr %63, align 4, !tbaa !11
  %1985 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1986 = load float, ptr %1985, align 4, !tbaa !16
  %1987 = fmul float %1984, %1986
  %1988 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1987, ptr %1988, align 4, !tbaa !16
  %1989 = load float, ptr %63, align 4, !tbaa !11
  %1990 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1991 = load float, ptr %1990, align 4, !tbaa !18
  %1992 = fmul float %1989, %1991
  %1993 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1992, ptr %1993, align 4, !tbaa !18
  %1994 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1995 = load float, ptr %1994, align 4, !tbaa !16
  %1996 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1995, ptr %1996, align 4, !tbaa !16
  %1997 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1998 = load float, ptr %1997, align 4, !tbaa !18
  %1999 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1998, ptr %1999, align 4, !tbaa !18
  %2000 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2001 = load float, ptr %2000, align 4, !tbaa !16
  %2002 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2003 = load float, ptr %2002, align 4, !tbaa !16
  %2004 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2005 = load float, ptr %2004, align 4, !tbaa !18
  %2006 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2007 = load float, ptr %2006, align 4, !tbaa !18
  %2008 = fmul float %2005, %2007
  %2009 = fneg float %2008
  %2010 = call float @llvm.fmuladd.f32(float %2001, float %2003, float %2009)
  %2011 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2010, ptr %2011, align 4, !tbaa !16
  %2012 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2013 = load float, ptr %2012, align 4, !tbaa !16
  %2014 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2015 = load float, ptr %2014, align 4, !tbaa !18
  %2016 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2017 = load float, ptr %2016, align 4, !tbaa !18
  %2018 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2019 = load float, ptr %2018, align 4, !tbaa !16
  %2020 = fmul float %2017, %2019
  %2021 = call float @llvm.fmuladd.f32(float %2013, float %2015, float %2020)
  %2022 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2021, ptr %2022, align 4, !tbaa !18
  %2023 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2024 = load float, ptr %2023, align 4, !tbaa !16
  %2025 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %2024, ptr %2025, align 4, !tbaa !16
  %2026 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2027 = load float, ptr %2026, align 4, !tbaa !18
  %2028 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %2027, ptr %2028, align 4, !tbaa !18
  br label %2029

2029:                                             ; preds = %1960, %1954
  %2030 = load i32, ptr %73, align 4, !tbaa !9
  %2031 = icmp sge i32 1, %2030
  br i1 %2031, label %2032, label %2033

2032:                                             ; preds = %2029
  br label %2035

2033:                                             ; preds = %2029
  %2034 = load i32, ptr %73, align 4, !tbaa !9
  br label %2035

2035:                                             ; preds = %2033, %2032
  %2036 = phi i32 [ 1, %2032 ], [ %2034, %2033 ]
  store i32 %2036, ptr %73, align 4, !tbaa !9
  %2037 = load ptr, ptr %19, align 8, !tbaa !5
  %2038 = load i32, ptr %2037, align 4, !tbaa !9
  %2039 = sub nsw i32 %2038, 1
  store i32 %2039, ptr %41, align 4, !tbaa !9
  %2040 = load i32, ptr %94, align 4, !tbaa !9
  %2041 = load i32, ptr %97, align 4, !tbaa !9
  %2042 = add nsw i32 %2040, %2041
  store i32 %2042, ptr %42, align 4, !tbaa !9
  %2043 = load i32, ptr %41, align 4, !tbaa !9
  %2044 = load i32, ptr %42, align 4, !tbaa !9
  %2045 = icmp sle i32 %2043, %2044
  br i1 %2045, label %2046, label %2048

2046:                                             ; preds = %2035
  %2047 = load i32, ptr %41, align 4, !tbaa !9
  br label %2050

2048:                                             ; preds = %2035
  %2049 = load i32, ptr %42, align 4, !tbaa !9
  br label %2050

2050:                                             ; preds = %2048, %2046
  %2051 = phi i32 [ %2047, %2046 ], [ %2049, %2048 ]
  store i32 %2051, ptr %51, align 4, !tbaa !9
  %2052 = load i32, ptr %94, align 4, !tbaa !9
  %2053 = load i32, ptr %97, align 4, !tbaa !9
  %2054 = add nsw i32 %2052, %2053
  %2055 = load ptr, ptr %19, align 8, !tbaa !5
  %2056 = load i32, ptr %2055, align 4, !tbaa !9
  %2057 = icmp slt i32 %2054, %2056
  %2058 = zext i1 %2057 to i32
  store i32 %2058, ptr %88, align 4, !tbaa !9
  %2059 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float 0.000000e+00, ptr %2059, align 4, !tbaa !16
  %2060 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float 0.000000e+00, ptr %2060, align 4, !tbaa !18
  %2061 = load i32, ptr %51, align 4, !tbaa !9
  %2062 = add nsw i32 %2061, 2
  %2063 = load i32, ptr %73, align 4, !tbaa !9
  %2064 = sub nsw i32 %2062, %2063
  store i32 %2064, ptr %41, align 4, !tbaa !9
  %2065 = load ptr, ptr %31, align 8, !tbaa !5
  %2066 = load i32, ptr %94, align 4, !tbaa !9
  %2067 = load i32, ptr %71, align 4, !tbaa !9
  %2068 = load i32, ptr %73, align 4, !tbaa !9
  %2069 = mul nsw i32 %2067, %2068
  %2070 = sub nsw i32 %2066, %2069
  %2071 = load i32, ptr %85, align 4, !tbaa !9
  %2072 = add nsw i32 %2070, %2071
  %2073 = load i32, ptr %73, align 4, !tbaa !9
  %2074 = load i32, ptr %35, align 4, !tbaa !9
  %2075 = mul nsw i32 %2073, %2074
  %2076 = add nsw i32 %2072, %2075
  %2077 = sext i32 %2076 to i64
  %2078 = getelementptr inbounds %struct.complex, ptr %2065, i64 %2077
  call void @clarot_(ptr noundef @c_true, ptr noundef %89, ptr noundef %88, ptr noundef %41, ptr noundef %56, ptr noundef %60, ptr noundef %2078, ptr noundef %50, ptr noundef %70, ptr noundef %67)
  %2079 = load i32, ptr %88, align 4, !tbaa !9
  %2080 = icmp ne i32 %2079, 0
  br i1 %2080, label %2081, label %2193

2081:                                             ; preds = %2050
  %2082 = load ptr, ptr %31, align 8, !tbaa !5
  %2083 = load i32, ptr %94, align 4, !tbaa !9
  %2084 = load i32, ptr %71, align 4, !tbaa !9
  %2085 = load i32, ptr %51, align 4, !tbaa !9
  %2086 = mul nsw i32 %2084, %2085
  %2087 = sub nsw i32 %2083, %2086
  %2088 = load i32, ptr %85, align 4, !tbaa !9
  %2089 = add nsw i32 %2087, %2088
  %2090 = load i32, ptr %51, align 4, !tbaa !9
  %2091 = load i32, ptr %35, align 4, !tbaa !9
  %2092 = mul nsw i32 %2090, %2091
  %2093 = add nsw i32 %2089, %2092
  %2094 = sext i32 %2093 to i64
  %2095 = getelementptr inbounds %struct.complex, ptr %2082, i64 %2094
  call void @clartg_(ptr noundef %2095, ptr noundef %67, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #8
  %2096 = load ptr, ptr %21, align 8, !tbaa !5
  %2097 = getelementptr inbounds i32, ptr %2096, i64 1
  %2098 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %2097)
  store <2 x float> %2098, ptr %119, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %119, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #8
  %2099 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2100 = load float, ptr %2099, align 4, !tbaa !16
  %2101 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %2100, ptr %2101, align 4, !tbaa !16
  %2102 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2103 = load float, ptr %2102, align 4, !tbaa !18
  %2104 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %2103, ptr %2104, align 4, !tbaa !18
  %2105 = load float, ptr %63, align 4, !tbaa !11
  %2106 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2107 = load float, ptr %2106, align 4, !tbaa !16
  %2108 = fmul float %2105, %2107
  %2109 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2108, ptr %2109, align 4, !tbaa !16
  %2110 = load float, ptr %63, align 4, !tbaa !11
  %2111 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2112 = load float, ptr %2111, align 4, !tbaa !18
  %2113 = fmul float %2110, %2112
  %2114 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2113, ptr %2114, align 4, !tbaa !18
  %2115 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2116 = load float, ptr %2115, align 4, !tbaa !16
  %2117 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %2116, ptr %2117, align 4, !tbaa !16
  %2118 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2119 = load float, ptr %2118, align 4, !tbaa !18
  %2120 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %2119, ptr %2120, align 4, !tbaa !18
  %2121 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2122 = load float, ptr %2121, align 4, !tbaa !16
  %2123 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2124 = load float, ptr %2123, align 4, !tbaa !16
  %2125 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2126 = load float, ptr %2125, align 4, !tbaa !18
  %2127 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2128 = load float, ptr %2127, align 4, !tbaa !18
  %2129 = fmul float %2126, %2128
  %2130 = fneg float %2129
  %2131 = call float @llvm.fmuladd.f32(float %2122, float %2124, float %2130)
  %2132 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2131, ptr %2132, align 4, !tbaa !16
  %2133 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2134 = load float, ptr %2133, align 4, !tbaa !16
  %2135 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2136 = load float, ptr %2135, align 4, !tbaa !18
  %2137 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2138 = load float, ptr %2137, align 4, !tbaa !18
  %2139 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2140 = load float, ptr %2139, align 4, !tbaa !16
  %2141 = fmul float %2138, %2140
  %2142 = call float @llvm.fmuladd.f32(float %2134, float %2136, float %2141)
  %2143 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2142, ptr %2143, align 4, !tbaa !18
  %2144 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2145 = load float, ptr %2144, align 4, !tbaa !16
  %2146 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %2145, ptr %2146, align 4, !tbaa !16
  %2147 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2148 = load float, ptr %2147, align 4, !tbaa !18
  %2149 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %2148, ptr %2149, align 4, !tbaa !18
  %2150 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %2150, ptr %41, align 4, !tbaa !9
  %2151 = load i32, ptr %94, align 4, !tbaa !9
  %2152 = load i32, ptr %96, align 4, !tbaa !9
  %2153 = add nsw i32 %2151, %2152
  %2154 = load i32, ptr %97, align 4, !tbaa !9
  %2155 = add nsw i32 %2153, %2154
  store i32 %2155, ptr %42, align 4, !tbaa !9
  %2156 = load i32, ptr %41, align 4, !tbaa !9
  %2157 = load i32, ptr %42, align 4, !tbaa !9
  %2158 = icmp sle i32 %2156, %2157
  br i1 %2158, label %2159, label %2161

2159:                                             ; preds = %2081
  %2160 = load i32, ptr %41, align 4, !tbaa !9
  br label %2163

2161:                                             ; preds = %2081
  %2162 = load i32, ptr %42, align 4, !tbaa !9
  br label %2163

2163:                                             ; preds = %2161, %2159
  %2164 = phi i32 [ %2160, %2159 ], [ %2162, %2161 ]
  %2165 = add nsw i32 %2164, 2
  %2166 = load i32, ptr %94, align 4, !tbaa !9
  %2167 = sub nsw i32 %2165, %2166
  store i32 %2167, ptr %76, align 4, !tbaa !9
  %2168 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %2168, align 4, !tbaa !16
  %2169 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %2169, align 4, !tbaa !18
  %2170 = load i32, ptr %94, align 4, !tbaa !9
  %2171 = load i32, ptr %96, align 4, !tbaa !9
  %2172 = add nsw i32 %2170, %2171
  %2173 = load i32, ptr %97, align 4, !tbaa !9
  %2174 = add nsw i32 %2172, %2173
  %2175 = load i32, ptr %78, align 4, !tbaa !9
  %2176 = icmp sle i32 %2174, %2175
  %2177 = zext i1 %2176 to i32
  store i32 %2177, ptr %49, align 4, !tbaa !9
  %2178 = load ptr, ptr %31, align 8, !tbaa !5
  %2179 = load i32, ptr %94, align 4, !tbaa !9
  %2180 = load i32, ptr %71, align 4, !tbaa !9
  %2181 = load i32, ptr %51, align 4, !tbaa !9
  %2182 = mul nsw i32 %2180, %2181
  %2183 = sub nsw i32 %2179, %2182
  %2184 = load i32, ptr %85, align 4, !tbaa !9
  %2185 = add nsw i32 %2183, %2184
  %2186 = load i32, ptr %51, align 4, !tbaa !9
  %2187 = load i32, ptr %35, align 4, !tbaa !9
  %2188 = mul nsw i32 %2186, %2187
  %2189 = add nsw i32 %2185, %2188
  %2190 = sext i32 %2189 to i64
  %2191 = getelementptr inbounds %struct.complex, ptr %2178, i64 %2190
  call void @clarot_(ptr noundef @c_false, ptr noundef @c_true, ptr noundef %49, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %2191, ptr noundef %50, ptr noundef %67, ptr noundef %70)
  %2192 = load i32, ptr %51, align 4, !tbaa !9
  store i32 %2192, ptr %73, align 4, !tbaa !9
  br label %2193

2193:                                             ; preds = %2163, %2050
  br label %2194

2194:                                             ; preds = %2193
  %2195 = load i32, ptr %40, align 4, !tbaa !9
  %2196 = load i32, ptr %94, align 4, !tbaa !9
  %2197 = add nsw i32 %2196, %2195
  store i32 %2197, ptr %94, align 4, !tbaa !9
  br label %1938, !llvm.loop !28

2198:                                             ; preds = %1951
  br label %2199

2199:                                             ; preds = %2198
  %2200 = load i32, ptr %74, align 4, !tbaa !9
  %2201 = add nsw i32 %2200, -1
  store i32 %2201, ptr %74, align 4, !tbaa !9
  br label %1817, !llvm.loop !29

2202:                                             ; preds = %1817
  br label %2203

2203:                                             ; preds = %2202
  %2204 = load i32, ptr %97, align 4, !tbaa !9
  %2205 = add nsw i32 %2204, 1
  store i32 %2205, ptr %97, align 4, !tbaa !9
  br label %1778, !llvm.loop !30

2206:                                             ; preds = %1778
  %2207 = load i32, ptr %98, align 4, !tbaa !9
  store i32 %2207, ptr %97, align 4, !tbaa !9
  %2208 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %2208, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %96, align 4, !tbaa !9
  br label %2209

2209:                                             ; preds = %2634, %2206
  %2210 = load i32, ptr %96, align 4, !tbaa !9
  %2211 = load i32, ptr %37, align 4, !tbaa !9
  %2212 = icmp sle i32 %2210, %2211
  br i1 %2212, label %2213, label %2637

2213:                                             ; preds = %2209
  %2214 = load ptr, ptr %19, align 8, !tbaa !5
  %2215 = load i32, ptr %2214, align 4, !tbaa !9
  store i32 %2215, ptr %39, align 4, !tbaa !9
  %2216 = load ptr, ptr %18, align 8, !tbaa !5
  %2217 = load i32, ptr %2216, align 4, !tbaa !9
  %2218 = load i32, ptr %97, align 4, !tbaa !9
  %2219 = add nsw i32 %2217, %2218
  store i32 %2219, ptr %40, align 4, !tbaa !9
  %2220 = load i32, ptr %39, align 4, !tbaa !9
  %2221 = load i32, ptr %40, align 4, !tbaa !9
  %2222 = icmp sle i32 %2220, %2221
  br i1 %2222, label %2223, label %2225

2223:                                             ; preds = %2213
  %2224 = load i32, ptr %39, align 4, !tbaa !9
  br label %2227

2225:                                             ; preds = %2213
  %2226 = load i32, ptr %40, align 4, !tbaa !9
  br label %2227

2227:                                             ; preds = %2225, %2223
  %2228 = phi i32 [ %2224, %2223 ], [ %2226, %2225 ]
  %2229 = sub nsw i32 %2228, 1
  store i32 %2229, ptr %78, align 4, !tbaa !9
  %2230 = load ptr, ptr %19, align 8, !tbaa !5
  %2231 = load i32, ptr %2230, align 4, !tbaa !9
  %2232 = load i32, ptr %96, align 4, !tbaa !9
  %2233 = add nsw i32 %2231, %2232
  store i32 %2233, ptr %39, align 4, !tbaa !9
  %2234 = load i32, ptr %97, align 4, !tbaa !9
  %2235 = sub nsw i32 1, %2234
  store i32 %2235, ptr %40, align 4, !tbaa !9
  %2236 = load i32, ptr %39, align 4, !tbaa !9
  %2237 = load ptr, ptr %18, align 8, !tbaa !5
  %2238 = load i32, ptr %2237, align 4, !tbaa !9
  %2239 = icmp sle i32 %2236, %2238
  br i1 %2239, label %2240, label %2242

2240:                                             ; preds = %2227
  %2241 = load i32, ptr %39, align 4, !tbaa !9
  br label %2245

2242:                                             ; preds = %2227
  %2243 = load ptr, ptr %18, align 8, !tbaa !5
  %2244 = load i32, ptr %2243, align 4, !tbaa !9
  br label %2245

2245:                                             ; preds = %2242, %2240
  %2246 = phi i32 [ %2241, %2240 ], [ %2244, %2242 ]
  %2247 = sub nsw i32 %2246, 1
  store i32 %2247, ptr %80, align 4, !tbaa !9
  br label %2248

2248:                                             ; preds = %2630, %2245
  %2249 = load i32, ptr %80, align 4, !tbaa !9
  %2250 = load i32, ptr %40, align 4, !tbaa !9
  %2251 = icmp sge i32 %2249, %2250
  br i1 %2251, label %2252, label %2633

2252:                                             ; preds = %2248
  %2253 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %2253, align 4, !tbaa !16
  %2254 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %2254, align 4, !tbaa !18
  %2255 = load ptr, ptr %21, align 8, !tbaa !5
  %2256 = getelementptr inbounds i32, ptr %2255, i64 1
  %2257 = call float @slarnd_(ptr noundef @c__1, ptr noundef %2256)
  %2258 = fmul float %2257, 0x401921FB60000000
  store float %2258, ptr %62, align 4, !tbaa !11
  %2259 = load float, ptr %62, align 4, !tbaa !11
  %2260 = fpext float %2259 to double
  %2261 = call double @cos(double noundef %2260) #8
  %2262 = fptrunc double %2261 to float
  store float %2262, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #8
  %2263 = load ptr, ptr %21, align 8, !tbaa !5
  %2264 = getelementptr inbounds i32, ptr %2263, i64 1
  %2265 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %2264)
  store <2 x float> %2265, ptr %120, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %120, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #8
  %2266 = load float, ptr %43, align 4, !tbaa !11
  %2267 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %2268 = load float, ptr %2267, align 4, !tbaa !16
  %2269 = fmul float %2266, %2268
  %2270 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2269, ptr %2270, align 4, !tbaa !16
  %2271 = load float, ptr %43, align 4, !tbaa !11
  %2272 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %2273 = load float, ptr %2272, align 4, !tbaa !18
  %2274 = fmul float %2271, %2273
  %2275 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2274, ptr %2275, align 4, !tbaa !18
  %2276 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2277 = load float, ptr %2276, align 4, !tbaa !16
  %2278 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %2277, ptr %2278, align 4, !tbaa !16
  %2279 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2280 = load float, ptr %2279, align 4, !tbaa !18
  %2281 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %2280, ptr %2281, align 4, !tbaa !18
  %2282 = load float, ptr %62, align 4, !tbaa !11
  %2283 = fpext float %2282 to double
  %2284 = call double @sin(double noundef %2283) #8
  %2285 = fptrunc double %2284 to float
  store float %2285, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #8
  %2286 = load ptr, ptr %21, align 8, !tbaa !5
  %2287 = getelementptr inbounds i32, ptr %2286, i64 1
  %2288 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %2287)
  store <2 x float> %2288, ptr %121, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %121, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #8
  %2289 = load float, ptr %43, align 4, !tbaa !11
  %2290 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %2291 = load float, ptr %2290, align 4, !tbaa !16
  %2292 = fmul float %2289, %2291
  %2293 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2292, ptr %2293, align 4, !tbaa !16
  %2294 = load float, ptr %43, align 4, !tbaa !11
  %2295 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %2296 = load float, ptr %2295, align 4, !tbaa !18
  %2297 = fmul float %2294, %2296
  %2298 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2297, ptr %2298, align 4, !tbaa !18
  %2299 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2300 = load float, ptr %2299, align 4, !tbaa !16
  %2301 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %2300, ptr %2301, align 4, !tbaa !16
  %2302 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2303 = load float, ptr %2302, align 4, !tbaa !18
  %2304 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %2303, ptr %2304, align 4, !tbaa !18
  store i32 1, ptr %39, align 4, !tbaa !9
  %2305 = load i32, ptr %80, align 4, !tbaa !9
  %2306 = load i32, ptr %96, align 4, !tbaa !9
  %2307 = sub nsw i32 %2305, %2306
  %2308 = add nsw i32 %2307, 1
  store i32 %2308, ptr %38, align 4, !tbaa !9
  %2309 = load i32, ptr %39, align 4, !tbaa !9
  %2310 = load i32, ptr %38, align 4, !tbaa !9
  %2311 = icmp sge i32 %2309, %2310
  br i1 %2311, label %2312, label %2314

2312:                                             ; preds = %2252
  %2313 = load i32, ptr %39, align 4, !tbaa !9
  br label %2316

2314:                                             ; preds = %2252
  %2315 = load i32, ptr %38, align 4, !tbaa !9
  br label %2316

2316:                                             ; preds = %2314, %2312
  %2317 = phi i32 [ %2313, %2312 ], [ %2315, %2314 ]
  store i32 %2317, ptr %51, align 4, !tbaa !9
  %2318 = load i32, ptr %80, align 4, !tbaa !9
  %2319 = icmp sgt i32 %2318, 0
  br i1 %2319, label %2320, label %2360

2320:                                             ; preds = %2316
  %2321 = load ptr, ptr %19, align 8, !tbaa !5
  %2322 = load i32, ptr %2321, align 4, !tbaa !9
  store i32 %2322, ptr %39, align 4, !tbaa !9
  %2323 = load i32, ptr %80, align 4, !tbaa !9
  %2324 = load i32, ptr %97, align 4, !tbaa !9
  %2325 = add nsw i32 %2323, %2324
  %2326 = add nsw i32 %2325, 1
  store i32 %2326, ptr %38, align 4, !tbaa !9
  %2327 = load i32, ptr %39, align 4, !tbaa !9
  %2328 = load i32, ptr %38, align 4, !tbaa !9
  %2329 = icmp sle i32 %2327, %2328
  br i1 %2329, label %2330, label %2332

2330:                                             ; preds = %2320
  %2331 = load i32, ptr %39, align 4, !tbaa !9
  br label %2334

2332:                                             ; preds = %2320
  %2333 = load i32, ptr %38, align 4, !tbaa !9
  br label %2334

2334:                                             ; preds = %2332, %2330
  %2335 = phi i32 [ %2331, %2330 ], [ %2333, %2332 ]
  %2336 = add nsw i32 %2335, 1
  %2337 = load i32, ptr %51, align 4, !tbaa !9
  %2338 = sub nsw i32 %2336, %2337
  store i32 %2338, ptr %76, align 4, !tbaa !9
  %2339 = load i32, ptr %80, align 4, !tbaa !9
  %2340 = load i32, ptr %97, align 4, !tbaa !9
  %2341 = add nsw i32 %2339, %2340
  %2342 = load ptr, ptr %19, align 8, !tbaa !5
  %2343 = load i32, ptr %2342, align 4, !tbaa !9
  %2344 = icmp slt i32 %2341, %2343
  %2345 = zext i1 %2344 to i32
  store i32 %2345, ptr %49, align 4, !tbaa !9
  %2346 = load ptr, ptr %31, align 8, !tbaa !5
  %2347 = load i32, ptr %80, align 4, !tbaa !9
  %2348 = load i32, ptr %71, align 4, !tbaa !9
  %2349 = load i32, ptr %51, align 4, !tbaa !9
  %2350 = mul nsw i32 %2348, %2349
  %2351 = sub nsw i32 %2347, %2350
  %2352 = load i32, ptr %85, align 4, !tbaa !9
  %2353 = add nsw i32 %2351, %2352
  %2354 = load i32, ptr %51, align 4, !tbaa !9
  %2355 = load i32, ptr %35, align 4, !tbaa !9
  %2356 = mul nsw i32 %2354, %2355
  %2357 = add nsw i32 %2353, %2356
  %2358 = sext i32 %2357 to i64
  %2359 = getelementptr inbounds %struct.complex, ptr %2346, i64 %2358
  call void @clarot_(ptr noundef @c_true, ptr noundef @c_false, ptr noundef %49, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %2359, ptr noundef %50, ptr noundef %72, ptr noundef %70)
  br label %2360

2360:                                             ; preds = %2334, %2316
  %2361 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %2361, ptr %79, align 4, !tbaa !9
  %2362 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %2362, ptr %39, align 4, !tbaa !9
  %2363 = load i32, ptr %96, align 4, !tbaa !9
  %2364 = load i32, ptr %97, align 4, !tbaa !9
  %2365 = add nsw i32 %2363, %2364
  store i32 %2365, ptr %38, align 4, !tbaa !9
  %2366 = load i32, ptr %80, align 4, !tbaa !9
  %2367 = load i32, ptr %97, align 4, !tbaa !9
  %2368 = add nsw i32 %2366, %2367
  store i32 %2368, ptr %94, align 4, !tbaa !9
  br label %2369

2369:                                             ; preds = %2625, %2360
  %2370 = load i32, ptr %38, align 4, !tbaa !9
  %2371 = icmp slt i32 %2370, 0
  br i1 %2371, label %2372, label %2377

2372:                                             ; preds = %2369
  %2373 = load i32, ptr %94, align 4, !tbaa !9
  %2374 = load i32, ptr %39, align 4, !tbaa !9
  %2375 = icmp sge i32 %2373, %2374
  %2376 = zext i1 %2375 to i32
  br label %2382

2377:                                             ; preds = %2369
  %2378 = load i32, ptr %94, align 4, !tbaa !9
  %2379 = load i32, ptr %39, align 4, !tbaa !9
  %2380 = icmp sle i32 %2378, %2379
  %2381 = zext i1 %2380 to i32
  br label %2382

2382:                                             ; preds = %2377, %2372
  %2383 = phi i32 [ %2376, %2372 ], [ %2381, %2377 ]
  %2384 = icmp ne i32 %2383, 0
  br i1 %2384, label %2385, label %2629

2385:                                             ; preds = %2382
  %2386 = load i32, ptr %79, align 4, !tbaa !9
  %2387 = icmp sgt i32 %2386, 0
  %2388 = zext i1 %2387 to i32
  store i32 %2388, ptr %89, align 4, !tbaa !9
  %2389 = load i32, ptr %89, align 4, !tbaa !9
  %2390 = icmp ne i32 %2389, 0
  br i1 %2390, label %2391, label %2460

2391:                                             ; preds = %2385
  %2392 = load ptr, ptr %31, align 8, !tbaa !5
  %2393 = load i32, ptr %79, align 4, !tbaa !9
  %2394 = load i32, ptr %71, align 4, !tbaa !9
  %2395 = load i32, ptr %94, align 4, !tbaa !9
  %2396 = mul nsw i32 %2394, %2395
  %2397 = sub nsw i32 %2393, %2396
  %2398 = load i32, ptr %85, align 4, !tbaa !9
  %2399 = add nsw i32 %2397, %2398
  %2400 = load i32, ptr %94, align 4, !tbaa !9
  %2401 = load i32, ptr %35, align 4, !tbaa !9
  %2402 = mul nsw i32 %2400, %2401
  %2403 = add nsw i32 %2399, %2402
  %2404 = sext i32 %2403 to i64
  %2405 = getelementptr inbounds %struct.complex, ptr %2392, i64 %2404
  call void @clartg_(ptr noundef %2405, ptr noundef %70, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #8
  %2406 = load ptr, ptr %21, align 8, !tbaa !5
  %2407 = getelementptr inbounds i32, ptr %2406, i64 1
  %2408 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %2407)
  store <2 x float> %2408, ptr %122, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %122, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #8
  %2409 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2410 = load float, ptr %2409, align 4, !tbaa !16
  %2411 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %2410, ptr %2411, align 4, !tbaa !16
  %2412 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2413 = load float, ptr %2412, align 4, !tbaa !18
  %2414 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %2413, ptr %2414, align 4, !tbaa !18
  %2415 = load float, ptr %63, align 4, !tbaa !11
  %2416 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2417 = load float, ptr %2416, align 4, !tbaa !16
  %2418 = fmul float %2415, %2417
  %2419 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2418, ptr %2419, align 4, !tbaa !16
  %2420 = load float, ptr %63, align 4, !tbaa !11
  %2421 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2422 = load float, ptr %2421, align 4, !tbaa !18
  %2423 = fmul float %2420, %2422
  %2424 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2423, ptr %2424, align 4, !tbaa !18
  %2425 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2426 = load float, ptr %2425, align 4, !tbaa !16
  %2427 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %2426, ptr %2427, align 4, !tbaa !16
  %2428 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2429 = load float, ptr %2428, align 4, !tbaa !18
  %2430 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %2429, ptr %2430, align 4, !tbaa !18
  %2431 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2432 = load float, ptr %2431, align 4, !tbaa !16
  %2433 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2434 = load float, ptr %2433, align 4, !tbaa !16
  %2435 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2436 = load float, ptr %2435, align 4, !tbaa !18
  %2437 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2438 = load float, ptr %2437, align 4, !tbaa !18
  %2439 = fmul float %2436, %2438
  %2440 = fneg float %2439
  %2441 = call float @llvm.fmuladd.f32(float %2432, float %2434, float %2440)
  %2442 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2441, ptr %2442, align 4, !tbaa !16
  %2443 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2444 = load float, ptr %2443, align 4, !tbaa !16
  %2445 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2446 = load float, ptr %2445, align 4, !tbaa !18
  %2447 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2448 = load float, ptr %2447, align 4, !tbaa !18
  %2449 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2450 = load float, ptr %2449, align 4, !tbaa !16
  %2451 = fmul float %2448, %2450
  %2452 = call float @llvm.fmuladd.f32(float %2444, float %2446, float %2451)
  %2453 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2452, ptr %2453, align 4, !tbaa !18
  %2454 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2455 = load float, ptr %2454, align 4, !tbaa !16
  %2456 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %2455, ptr %2456, align 4, !tbaa !16
  %2457 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2458 = load float, ptr %2457, align 4, !tbaa !18
  %2459 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %2458, ptr %2459, align 4, !tbaa !18
  br label %2460

2460:                                             ; preds = %2391, %2385
  %2461 = load i32, ptr %79, align 4, !tbaa !9
  %2462 = icmp sge i32 1, %2461
  br i1 %2462, label %2463, label %2464

2463:                                             ; preds = %2460
  br label %2466

2464:                                             ; preds = %2460
  %2465 = load i32, ptr %79, align 4, !tbaa !9
  br label %2466

2466:                                             ; preds = %2464, %2463
  %2467 = phi i32 [ 1, %2463 ], [ %2465, %2464 ]
  store i32 %2467, ptr %79, align 4, !tbaa !9
  %2468 = load ptr, ptr %18, align 8, !tbaa !5
  %2469 = load i32, ptr %2468, align 4, !tbaa !9
  %2470 = sub nsw i32 %2469, 1
  store i32 %2470, ptr %41, align 4, !tbaa !9
  %2471 = load i32, ptr %94, align 4, !tbaa !9
  %2472 = load i32, ptr %96, align 4, !tbaa !9
  %2473 = add nsw i32 %2471, %2472
  store i32 %2473, ptr %42, align 4, !tbaa !9
  %2474 = load i32, ptr %41, align 4, !tbaa !9
  %2475 = load i32, ptr %42, align 4, !tbaa !9
  %2476 = icmp sle i32 %2474, %2475
  br i1 %2476, label %2477, label %2479

2477:                                             ; preds = %2466
  %2478 = load i32, ptr %41, align 4, !tbaa !9
  br label %2481

2479:                                             ; preds = %2466
  %2480 = load i32, ptr %42, align 4, !tbaa !9
  br label %2481

2481:                                             ; preds = %2479, %2477
  %2482 = phi i32 [ %2478, %2477 ], [ %2480, %2479 ]
  store i32 %2482, ptr %54, align 4, !tbaa !9
  %2483 = load i32, ptr %94, align 4, !tbaa !9
  %2484 = load i32, ptr %96, align 4, !tbaa !9
  %2485 = add nsw i32 %2483, %2484
  %2486 = load ptr, ptr %18, align 8, !tbaa !5
  %2487 = load i32, ptr %2486, align 4, !tbaa !9
  %2488 = icmp slt i32 %2485, %2487
  %2489 = zext i1 %2488 to i32
  store i32 %2489, ptr %88, align 4, !tbaa !9
  %2490 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float 0.000000e+00, ptr %2490, align 4, !tbaa !16
  %2491 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float 0.000000e+00, ptr %2491, align 4, !tbaa !18
  %2492 = load i32, ptr %54, align 4, !tbaa !9
  %2493 = add nsw i32 %2492, 2
  %2494 = load i32, ptr %79, align 4, !tbaa !9
  %2495 = sub nsw i32 %2493, %2494
  store i32 %2495, ptr %41, align 4, !tbaa !9
  %2496 = load ptr, ptr %31, align 8, !tbaa !5
  %2497 = load i32, ptr %79, align 4, !tbaa !9
  %2498 = load i32, ptr %71, align 4, !tbaa !9
  %2499 = load i32, ptr %94, align 4, !tbaa !9
  %2500 = mul nsw i32 %2498, %2499
  %2501 = sub nsw i32 %2497, %2500
  %2502 = load i32, ptr %85, align 4, !tbaa !9
  %2503 = add nsw i32 %2501, %2502
  %2504 = load i32, ptr %94, align 4, !tbaa !9
  %2505 = load i32, ptr %35, align 4, !tbaa !9
  %2506 = mul nsw i32 %2504, %2505
  %2507 = add nsw i32 %2503, %2506
  %2508 = sext i32 %2507 to i64
  %2509 = getelementptr inbounds %struct.complex, ptr %2496, i64 %2508
  call void @clarot_(ptr noundef @c_false, ptr noundef %89, ptr noundef %88, ptr noundef %41, ptr noundef %56, ptr noundef %60, ptr noundef %2509, ptr noundef %50, ptr noundef %70, ptr noundef %67)
  %2510 = load i32, ptr %88, align 4, !tbaa !9
  %2511 = icmp ne i32 %2510, 0
  br i1 %2511, label %2512, label %2624

2512:                                             ; preds = %2481
  %2513 = load ptr, ptr %31, align 8, !tbaa !5
  %2514 = load i32, ptr %54, align 4, !tbaa !9
  %2515 = load i32, ptr %71, align 4, !tbaa !9
  %2516 = load i32, ptr %94, align 4, !tbaa !9
  %2517 = mul nsw i32 %2515, %2516
  %2518 = sub nsw i32 %2514, %2517
  %2519 = load i32, ptr %85, align 4, !tbaa !9
  %2520 = add nsw i32 %2518, %2519
  %2521 = load i32, ptr %94, align 4, !tbaa !9
  %2522 = load i32, ptr %35, align 4, !tbaa !9
  %2523 = mul nsw i32 %2521, %2522
  %2524 = add nsw i32 %2520, %2523
  %2525 = sext i32 %2524 to i64
  %2526 = getelementptr inbounds %struct.complex, ptr %2513, i64 %2525
  call void @clartg_(ptr noundef %2526, ptr noundef %67, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #8
  %2527 = load ptr, ptr %21, align 8, !tbaa !5
  %2528 = getelementptr inbounds i32, ptr %2527, i64 1
  %2529 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %2528)
  store <2 x float> %2529, ptr %123, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %123, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #8
  %2530 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2531 = load float, ptr %2530, align 4, !tbaa !16
  %2532 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %2531, ptr %2532, align 4, !tbaa !16
  %2533 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2534 = load float, ptr %2533, align 4, !tbaa !18
  %2535 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %2534, ptr %2535, align 4, !tbaa !18
  %2536 = load float, ptr %63, align 4, !tbaa !11
  %2537 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2538 = load float, ptr %2537, align 4, !tbaa !16
  %2539 = fmul float %2536, %2538
  %2540 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2539, ptr %2540, align 4, !tbaa !16
  %2541 = load float, ptr %63, align 4, !tbaa !11
  %2542 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2543 = load float, ptr %2542, align 4, !tbaa !18
  %2544 = fmul float %2541, %2543
  %2545 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2544, ptr %2545, align 4, !tbaa !18
  %2546 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2547 = load float, ptr %2546, align 4, !tbaa !16
  %2548 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %2547, ptr %2548, align 4, !tbaa !16
  %2549 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2550 = load float, ptr %2549, align 4, !tbaa !18
  %2551 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %2550, ptr %2551, align 4, !tbaa !18
  %2552 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2553 = load float, ptr %2552, align 4, !tbaa !16
  %2554 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2555 = load float, ptr %2554, align 4, !tbaa !16
  %2556 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2557 = load float, ptr %2556, align 4, !tbaa !18
  %2558 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2559 = load float, ptr %2558, align 4, !tbaa !18
  %2560 = fmul float %2557, %2559
  %2561 = fneg float %2560
  %2562 = call float @llvm.fmuladd.f32(float %2553, float %2555, float %2561)
  %2563 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2562, ptr %2563, align 4, !tbaa !16
  %2564 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2565 = load float, ptr %2564, align 4, !tbaa !16
  %2566 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2567 = load float, ptr %2566, align 4, !tbaa !18
  %2568 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2569 = load float, ptr %2568, align 4, !tbaa !18
  %2570 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2571 = load float, ptr %2570, align 4, !tbaa !16
  %2572 = fmul float %2569, %2571
  %2573 = call float @llvm.fmuladd.f32(float %2565, float %2567, float %2572)
  %2574 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2573, ptr %2574, align 4, !tbaa !18
  %2575 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2576 = load float, ptr %2575, align 4, !tbaa !16
  %2577 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %2576, ptr %2577, align 4, !tbaa !16
  %2578 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2579 = load float, ptr %2578, align 4, !tbaa !18
  %2580 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %2579, ptr %2580, align 4, !tbaa !18
  %2581 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %2581, ptr %41, align 4, !tbaa !9
  %2582 = load i32, ptr %94, align 4, !tbaa !9
  %2583 = load i32, ptr %96, align 4, !tbaa !9
  %2584 = add nsw i32 %2582, %2583
  %2585 = load i32, ptr %97, align 4, !tbaa !9
  %2586 = add nsw i32 %2584, %2585
  store i32 %2586, ptr %42, align 4, !tbaa !9
  %2587 = load i32, ptr %41, align 4, !tbaa !9
  %2588 = load i32, ptr %42, align 4, !tbaa !9
  %2589 = icmp sle i32 %2587, %2588
  br i1 %2589, label %2590, label %2592

2590:                                             ; preds = %2512
  %2591 = load i32, ptr %41, align 4, !tbaa !9
  br label %2594

2592:                                             ; preds = %2512
  %2593 = load i32, ptr %42, align 4, !tbaa !9
  br label %2594

2594:                                             ; preds = %2592, %2590
  %2595 = phi i32 [ %2591, %2590 ], [ %2593, %2592 ]
  %2596 = add nsw i32 %2595, 2
  %2597 = load i32, ptr %94, align 4, !tbaa !9
  %2598 = sub nsw i32 %2596, %2597
  store i32 %2598, ptr %76, align 4, !tbaa !9
  %2599 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %2599, align 4, !tbaa !16
  %2600 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %2600, align 4, !tbaa !18
  %2601 = load i32, ptr %94, align 4, !tbaa !9
  %2602 = load i32, ptr %96, align 4, !tbaa !9
  %2603 = add nsw i32 %2601, %2602
  %2604 = load i32, ptr %97, align 4, !tbaa !9
  %2605 = add nsw i32 %2603, %2604
  %2606 = load i32, ptr %78, align 4, !tbaa !9
  %2607 = icmp sle i32 %2605, %2606
  %2608 = zext i1 %2607 to i32
  store i32 %2608, ptr %49, align 4, !tbaa !9
  %2609 = load ptr, ptr %31, align 8, !tbaa !5
  %2610 = load i32, ptr %54, align 4, !tbaa !9
  %2611 = load i32, ptr %71, align 4, !tbaa !9
  %2612 = load i32, ptr %94, align 4, !tbaa !9
  %2613 = mul nsw i32 %2611, %2612
  %2614 = sub nsw i32 %2610, %2613
  %2615 = load i32, ptr %85, align 4, !tbaa !9
  %2616 = add nsw i32 %2614, %2615
  %2617 = load i32, ptr %94, align 4, !tbaa !9
  %2618 = load i32, ptr %35, align 4, !tbaa !9
  %2619 = mul nsw i32 %2617, %2618
  %2620 = add nsw i32 %2616, %2619
  %2621 = sext i32 %2620 to i64
  %2622 = getelementptr inbounds %struct.complex, ptr %2609, i64 %2621
  call void @clarot_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %49, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %2622, ptr noundef %50, ptr noundef %67, ptr noundef %70)
  %2623 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %2623, ptr %79, align 4, !tbaa !9
  br label %2624

2624:                                             ; preds = %2594, %2481
  br label %2625

2625:                                             ; preds = %2624
  %2626 = load i32, ptr %38, align 4, !tbaa !9
  %2627 = load i32, ptr %94, align 4, !tbaa !9
  %2628 = add nsw i32 %2627, %2626
  store i32 %2628, ptr %94, align 4, !tbaa !9
  br label %2369, !llvm.loop !31

2629:                                             ; preds = %2382
  br label %2630

2630:                                             ; preds = %2629
  %2631 = load i32, ptr %80, align 4, !tbaa !9
  %2632 = add nsw i32 %2631, -1
  store i32 %2632, ptr %80, align 4, !tbaa !9
  br label %2248, !llvm.loop !32

2633:                                             ; preds = %2248
  br label %2634

2634:                                             ; preds = %2633
  %2635 = load i32, ptr %96, align 4, !tbaa !9
  %2636 = add nsw i32 %2635, 1
  store i32 %2636, ptr %96, align 4, !tbaa !9
  br label %2209, !llvm.loop !33

2637:                                             ; preds = %2209
  br label %2638

2638:                                             ; preds = %2637, %1775
  br label %4197

2639:                                             ; preds = %814
  %2640 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %2640, ptr %81, align 4, !tbaa !9
  %2641 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %2641, ptr %65, align 4, !tbaa !9
  %2642 = load i32, ptr %90, align 4, !tbaa !9
  %2643 = icmp ne i32 %2642, 0
  br i1 %2643, label %2644, label %3419

2644:                                             ; preds = %2639
  %2645 = load i32, ptr %64, align 4, !tbaa !9
  %2646 = icmp sge i32 %2645, 5
  br i1 %2646, label %2647, label %2650

2647:                                             ; preds = %2644
  store i32 6, ptr %81, align 4, !tbaa !9
  %2648 = load i32, ptr %98, align 4, !tbaa !9
  %2649 = add nsw i32 %2648, 1
  store i32 %2649, ptr %65, align 4, !tbaa !9
  br label %2651

2650:                                             ; preds = %2644
  store i32 1, ptr %81, align 4, !tbaa !9
  br label %2651

2651:                                             ; preds = %2650, %2647
  %2652 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %2652, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %2653

2653:                                             ; preds = %2690, %2651
  %2654 = load i32, ptr %58, align 4, !tbaa !9
  %2655 = load i32, ptr %37, align 4, !tbaa !9
  %2656 = icmp sle i32 %2654, %2655
  br i1 %2656, label %2657, label %2693

2657:                                             ; preds = %2653
  %2658 = load i32, ptr %71, align 4, !tbaa !9
  %2659 = sub nsw i32 1, %2658
  %2660 = load i32, ptr %58, align 4, !tbaa !9
  %2661 = mul nsw i32 %2659, %2660
  %2662 = load i32, ptr %65, align 4, !tbaa !9
  %2663 = add nsw i32 %2661, %2662
  %2664 = load i32, ptr %58, align 4, !tbaa !9
  %2665 = load i32, ptr %35, align 4, !tbaa !9
  %2666 = mul nsw i32 %2664, %2665
  %2667 = add nsw i32 %2663, %2666
  store i32 %2667, ptr %40, align 4, !tbaa !9
  %2668 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %2668, ptr %38, align 4, !tbaa !9
  %2669 = load ptr, ptr %23, align 8, !tbaa !5
  %2670 = load i32, ptr %38, align 4, !tbaa !9
  %2671 = sext i32 %2670 to i64
  %2672 = getelementptr inbounds float, ptr %2669, i64 %2671
  %2673 = load float, ptr %2672, align 4, !tbaa !11
  %2674 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2673, ptr %2674, align 4, !tbaa !16
  %2675 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %2675, align 4, !tbaa !18
  %2676 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2677 = load float, ptr %2676, align 4, !tbaa !16
  %2678 = load ptr, ptr %31, align 8, !tbaa !5
  %2679 = load i32, ptr %40, align 4, !tbaa !9
  %2680 = sext i32 %2679 to i64
  %2681 = getelementptr inbounds %struct.complex, ptr %2678, i64 %2680
  %2682 = getelementptr inbounds %struct.complex, ptr %2681, i32 0, i32 0
  store float %2677, ptr %2682, align 4, !tbaa !16
  %2683 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2684 = load float, ptr %2683, align 4, !tbaa !18
  %2685 = load ptr, ptr %31, align 8, !tbaa !5
  %2686 = load i32, ptr %40, align 4, !tbaa !9
  %2687 = sext i32 %2686 to i64
  %2688 = getelementptr inbounds %struct.complex, ptr %2685, i64 %2687
  %2689 = getelementptr inbounds %struct.complex, ptr %2688, i32 0, i32 1
  store float %2684, ptr %2689, align 4, !tbaa !18
  br label %2690

2690:                                             ; preds = %2657
  %2691 = load i32, ptr %58, align 4, !tbaa !9
  %2692 = add nsw i32 %2691, 1
  store i32 %2692, ptr %58, align 4, !tbaa !9
  br label %2653, !llvm.loop !34

2693:                                             ; preds = %2653
  %2694 = load i32, ptr %98, align 4, !tbaa !9
  store i32 %2694, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %2695

2695:                                             ; preds = %3197, %2693
  %2696 = load i32, ptr %59, align 4, !tbaa !9
  %2697 = load i32, ptr %37, align 4, !tbaa !9
  %2698 = icmp sle i32 %2696, %2697
  br i1 %2698, label %2699, label %3200

2699:                                             ; preds = %2695
  %2700 = load ptr, ptr %19, align 8, !tbaa !5
  %2701 = load i32, ptr %2700, align 4, !tbaa !9
  %2702 = sub nsw i32 %2701, 1
  store i32 %2702, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %2703

2703:                                             ; preds = %3193, %2699
  %2704 = load i32, ptr %74, align 4, !tbaa !9
  %2705 = load i32, ptr %40, align 4, !tbaa !9
  %2706 = icmp sle i32 %2704, %2705
  br i1 %2706, label %2707, label %3196

2707:                                             ; preds = %2703
  store i32 1, ptr %38, align 4, !tbaa !9
  %2708 = load i32, ptr %74, align 4, !tbaa !9
  %2709 = load i32, ptr %59, align 4, !tbaa !9
  %2710 = sub nsw i32 %2708, %2709
  store i32 %2710, ptr %39, align 4, !tbaa !9
  %2711 = load i32, ptr %38, align 4, !tbaa !9
  %2712 = load i32, ptr %39, align 4, !tbaa !9
  %2713 = icmp sge i32 %2711, %2712
  br i1 %2713, label %2714, label %2716

2714:                                             ; preds = %2707
  %2715 = load i32, ptr %38, align 4, !tbaa !9
  br label %2718

2716:                                             ; preds = %2707
  %2717 = load i32, ptr %39, align 4, !tbaa !9
  br label %2718

2718:                                             ; preds = %2716, %2714
  %2719 = phi i32 [ %2715, %2714 ], [ %2717, %2716 ]
  store i32 %2719, ptr %54, align 4, !tbaa !9
  %2720 = load i32, ptr %74, align 4, !tbaa !9
  %2721 = add nsw i32 %2720, 1
  store i32 %2721, ptr %38, align 4, !tbaa !9
  %2722 = load i32, ptr %59, align 4, !tbaa !9
  %2723 = add nsw i32 %2722, 2
  store i32 %2723, ptr %39, align 4, !tbaa !9
  %2724 = load i32, ptr %38, align 4, !tbaa !9
  %2725 = load i32, ptr %39, align 4, !tbaa !9
  %2726 = icmp sle i32 %2724, %2725
  br i1 %2726, label %2727, label %2729

2727:                                             ; preds = %2718
  %2728 = load i32, ptr %38, align 4, !tbaa !9
  br label %2731

2729:                                             ; preds = %2718
  %2730 = load i32, ptr %39, align 4, !tbaa !9
  br label %2731

2731:                                             ; preds = %2729, %2727
  %2732 = phi i32 [ %2728, %2727 ], [ %2730, %2729 ]
  store i32 %2732, ptr %76, align 4, !tbaa !9
  %2733 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %2733, align 4, !tbaa !16
  %2734 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %2734, align 4, !tbaa !18
  %2735 = load i32, ptr %74, align 4, !tbaa !9
  %2736 = load i32, ptr %71, align 4, !tbaa !9
  %2737 = load i32, ptr %74, align 4, !tbaa !9
  %2738 = add nsw i32 %2737, 1
  %2739 = mul nsw i32 %2736, %2738
  %2740 = sub nsw i32 %2735, %2739
  %2741 = load i32, ptr %65, align 4, !tbaa !9
  %2742 = add nsw i32 %2740, %2741
  %2743 = load i32, ptr %74, align 4, !tbaa !9
  %2744 = add nsw i32 %2743, 1
  %2745 = load i32, ptr %35, align 4, !tbaa !9
  %2746 = mul nsw i32 %2744, %2745
  %2747 = add nsw i32 %2742, %2746
  store i32 %2747, ptr %38, align 4, !tbaa !9
  %2748 = load ptr, ptr %31, align 8, !tbaa !5
  %2749 = load i32, ptr %38, align 4, !tbaa !9
  %2750 = sext i32 %2749 to i64
  %2751 = getelementptr inbounds %struct.complex, ptr %2748, i64 %2750
  %2752 = getelementptr inbounds %struct.complex, ptr %2751, i32 0, i32 0
  %2753 = load float, ptr %2752, align 4, !tbaa !16
  %2754 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %2753, ptr %2754, align 4, !tbaa !16
  %2755 = load ptr, ptr %31, align 8, !tbaa !5
  %2756 = load i32, ptr %38, align 4, !tbaa !9
  %2757 = sext i32 %2756 to i64
  %2758 = getelementptr inbounds %struct.complex, ptr %2755, i64 %2757
  %2759 = getelementptr inbounds %struct.complex, ptr %2758, i32 0, i32 1
  %2760 = load float, ptr %2759, align 4, !tbaa !18
  %2761 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %2760, ptr %2761, align 4, !tbaa !18
  %2762 = load ptr, ptr %21, align 8, !tbaa !5
  %2763 = getelementptr inbounds i32, ptr %2762, i64 1
  %2764 = call float @slarnd_(ptr noundef @c__1, ptr noundef %2763)
  %2765 = fmul float %2764, 0x401921FB60000000
  store float %2765, ptr %62, align 4, !tbaa !11
  %2766 = load float, ptr %62, align 4, !tbaa !11
  %2767 = fpext float %2766 to double
  %2768 = call double @cos(double noundef %2767) #8
  %2769 = fptrunc double %2768 to float
  store float %2769, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #8
  %2770 = load ptr, ptr %21, align 8, !tbaa !5
  %2771 = getelementptr inbounds i32, ptr %2770, i64 1
  %2772 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %2771)
  store <2 x float> %2772, ptr %124, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %124, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  %2773 = load float, ptr %43, align 4, !tbaa !11
  %2774 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %2775 = load float, ptr %2774, align 4, !tbaa !16
  %2776 = fmul float %2773, %2775
  %2777 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2776, ptr %2777, align 4, !tbaa !16
  %2778 = load float, ptr %43, align 4, !tbaa !11
  %2779 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %2780 = load float, ptr %2779, align 4, !tbaa !18
  %2781 = fmul float %2778, %2780
  %2782 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2781, ptr %2782, align 4, !tbaa !18
  %2783 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2784 = load float, ptr %2783, align 4, !tbaa !16
  %2785 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %2784, ptr %2785, align 4, !tbaa !16
  %2786 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2787 = load float, ptr %2786, align 4, !tbaa !18
  %2788 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %2787, ptr %2788, align 4, !tbaa !18
  %2789 = load float, ptr %62, align 4, !tbaa !11
  %2790 = fpext float %2789 to double
  %2791 = call double @sin(double noundef %2790) #8
  %2792 = fptrunc double %2791 to float
  store float %2792, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #8
  %2793 = load ptr, ptr %21, align 8, !tbaa !5
  %2794 = getelementptr inbounds i32, ptr %2793, i64 1
  %2795 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %2794)
  store <2 x float> %2795, ptr %125, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %125, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #8
  %2796 = load float, ptr %43, align 4, !tbaa !11
  %2797 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %2798 = load float, ptr %2797, align 4, !tbaa !16
  %2799 = fmul float %2796, %2798
  %2800 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2799, ptr %2800, align 4, !tbaa !16
  %2801 = load float, ptr %43, align 4, !tbaa !11
  %2802 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %2803 = load float, ptr %2802, align 4, !tbaa !18
  %2804 = fmul float %2801, %2803
  %2805 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2804, ptr %2805, align 4, !tbaa !18
  %2806 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2807 = load float, ptr %2806, align 4, !tbaa !16
  %2808 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %2807, ptr %2808, align 4, !tbaa !16
  %2809 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2810 = load float, ptr %2809, align 4, !tbaa !18
  %2811 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %2810, ptr %2811, align 4, !tbaa !18
  %2812 = load i32, ptr %53, align 4, !tbaa !9
  %2813 = icmp ne i32 %2812, 0
  br i1 %2813, label %2814, label %2827

2814:                                             ; preds = %2731
  %2815 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %2816 = load float, ptr %2815, align 4, !tbaa !16
  %2817 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  store float %2816, ptr %2817, align 4, !tbaa !16
  %2818 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %2819 = load float, ptr %2818, align 4, !tbaa !18
  %2820 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  store float %2819, ptr %2820, align 4, !tbaa !18
  %2821 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2822 = load float, ptr %2821, align 4, !tbaa !16
  %2823 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %2822, ptr %2823, align 4, !tbaa !16
  %2824 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2825 = load float, ptr %2824, align 4, !tbaa !18
  %2826 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %2825, ptr %2826, align 4, !tbaa !18
  br label %2873

2827:                                             ; preds = %2731
  %2828 = call <2 x float> @Cf(ptr noundef %67)
  store <2 x float> %2828, ptr %126, align 4
  %2829 = getelementptr inbounds { float, float }, ptr %126, i32 0, i32 0
  %2830 = load float, ptr %2829, align 4
  %2831 = getelementptr inbounds { float, float }, ptr %126, i32 0, i32 1
  %2832 = load float, ptr %2831, align 4
  %2833 = fneg float %2832
  %2834 = call ptr @_pCf(ptr noundef %46)
  %2835 = getelementptr inbounds { float, float }, ptr %2834, i32 0, i32 0
  %2836 = getelementptr inbounds { float, float }, ptr %2834, i32 0, i32 1
  store float %2830, ptr %2835, align 4
  store float %2833, ptr %2836, align 4
  %2837 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2838 = load float, ptr %2837, align 4, !tbaa !16
  %2839 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %2838, ptr %2839, align 4, !tbaa !16
  %2840 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2841 = load float, ptr %2840, align 4, !tbaa !18
  %2842 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %2841, ptr %2842, align 4, !tbaa !18
  %2843 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %2843, ptr %127, align 4
  %2844 = getelementptr inbounds { float, float }, ptr %127, i32 0, i32 0
  %2845 = load float, ptr %2844, align 4
  %2846 = getelementptr inbounds { float, float }, ptr %127, i32 0, i32 1
  %2847 = load float, ptr %2846, align 4
  %2848 = fneg float %2847
  %2849 = call ptr @_pCf(ptr noundef %46)
  %2850 = getelementptr inbounds { float, float }, ptr %2849, i32 0, i32 0
  %2851 = getelementptr inbounds { float, float }, ptr %2849, i32 0, i32 1
  store float %2845, ptr %2850, align 4
  store float %2848, ptr %2851, align 4
  %2852 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2853 = load float, ptr %2852, align 4, !tbaa !16
  %2854 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  store float %2853, ptr %2854, align 4, !tbaa !16
  %2855 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2856 = load float, ptr %2855, align 4, !tbaa !18
  %2857 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  store float %2856, ptr %2857, align 4, !tbaa !18
  %2858 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %2858, ptr %128, align 4
  %2859 = getelementptr inbounds { float, float }, ptr %128, i32 0, i32 0
  %2860 = load float, ptr %2859, align 4
  %2861 = getelementptr inbounds { float, float }, ptr %128, i32 0, i32 1
  %2862 = load float, ptr %2861, align 4
  %2863 = fneg float %2862
  %2864 = call ptr @_pCf(ptr noundef %46)
  %2865 = getelementptr inbounds { float, float }, ptr %2864, i32 0, i32 0
  %2866 = getelementptr inbounds { float, float }, ptr %2864, i32 0, i32 1
  store float %2860, ptr %2865, align 4
  store float %2863, ptr %2866, align 4
  %2867 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2868 = load float, ptr %2867, align 4, !tbaa !16
  %2869 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %2868, ptr %2869, align 4, !tbaa !16
  %2870 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2871 = load float, ptr %2870, align 4, !tbaa !18
  %2872 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %2871, ptr %2872, align 4, !tbaa !18
  br label %2873

2873:                                             ; preds = %2827, %2814
  %2874 = load i32, ptr %74, align 4, !tbaa !9
  %2875 = load i32, ptr %59, align 4, !tbaa !9
  %2876 = icmp sgt i32 %2874, %2875
  %2877 = zext i1 %2876 to i32
  store i32 %2877, ptr %49, align 4, !tbaa !9
  %2878 = load ptr, ptr %31, align 8, !tbaa !5
  %2879 = load i32, ptr %54, align 4, !tbaa !9
  %2880 = load i32, ptr %71, align 4, !tbaa !9
  %2881 = load i32, ptr %74, align 4, !tbaa !9
  %2882 = mul nsw i32 %2880, %2881
  %2883 = sub nsw i32 %2879, %2882
  %2884 = load i32, ptr %65, align 4, !tbaa !9
  %2885 = add nsw i32 %2883, %2884
  %2886 = load i32, ptr %74, align 4, !tbaa !9
  %2887 = load i32, ptr %35, align 4, !tbaa !9
  %2888 = mul nsw i32 %2886, %2887
  %2889 = add nsw i32 %2885, %2888
  %2890 = sext i32 %2889 to i64
  %2891 = getelementptr inbounds %struct.complex, ptr %2878, i64 %2890
  call void @clarot_(ptr noundef @c_false, ptr noundef %49, ptr noundef @c_true, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %2891, ptr noundef %50, ptr noundef %70, ptr noundef %67)
  %2892 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %2892, ptr %39, align 4, !tbaa !9
  %2893 = load ptr, ptr %19, align 8, !tbaa !5
  %2894 = load i32, ptr %2893, align 4, !tbaa !9
  %2895 = load i32, ptr %74, align 4, !tbaa !9
  %2896 = sub nsw i32 %2894, %2895
  store i32 %2896, ptr %41, align 4, !tbaa !9
  %2897 = load i32, ptr %39, align 4, !tbaa !9
  %2898 = load i32, ptr %41, align 4, !tbaa !9
  %2899 = icmp sle i32 %2897, %2898
  br i1 %2899, label %2900, label %2902

2900:                                             ; preds = %2873
  %2901 = load i32, ptr %39, align 4, !tbaa !9
  br label %2904

2902:                                             ; preds = %2873
  %2903 = load i32, ptr %41, align 4, !tbaa !9
  br label %2904

2904:                                             ; preds = %2902, %2900
  %2905 = phi i32 [ %2901, %2900 ], [ %2903, %2902 ]
  %2906 = add nsw i32 %2905, 1
  store i32 %2906, ptr %38, align 4, !tbaa !9
  %2907 = load ptr, ptr %31, align 8, !tbaa !5
  %2908 = load i32, ptr %71, align 4, !tbaa !9
  %2909 = sub nsw i32 1, %2908
  %2910 = load i32, ptr %74, align 4, !tbaa !9
  %2911 = mul nsw i32 %2909, %2910
  %2912 = load i32, ptr %65, align 4, !tbaa !9
  %2913 = add nsw i32 %2911, %2912
  %2914 = load i32, ptr %74, align 4, !tbaa !9
  %2915 = load i32, ptr %35, align 4, !tbaa !9
  %2916 = mul nsw i32 %2914, %2915
  %2917 = add nsw i32 %2913, %2916
  %2918 = sext i32 %2917 to i64
  %2919 = getelementptr inbounds %struct.complex, ptr %2907, i64 %2918
  call void @clarot_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef @c_false, ptr noundef %38, ptr noundef %77, ptr noundef %84, ptr noundef %2919, ptr noundef %50, ptr noundef %67, ptr noundef %72)
  %2920 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %2920, ptr %51, align 4, !tbaa !9
  %2921 = load i32, ptr %59, align 4, !tbaa !9
  %2922 = sub nsw i32 0, %2921
  store i32 %2922, ptr %38, align 4, !tbaa !9
  %2923 = load i32, ptr %74, align 4, !tbaa !9
  %2924 = load i32, ptr %59, align 4, !tbaa !9
  %2925 = sub nsw i32 %2923, %2924
  store i32 %2925, ptr %94, align 4, !tbaa !9
  br label %2926

2926:                                             ; preds = %3188, %2904
  %2927 = load i32, ptr %38, align 4, !tbaa !9
  %2928 = icmp slt i32 %2927, 0
  br i1 %2928, label %2929, label %2933

2929:                                             ; preds = %2926
  %2930 = load i32, ptr %94, align 4, !tbaa !9
  %2931 = icmp sge i32 %2930, 1
  %2932 = zext i1 %2931 to i32
  br label %2937

2933:                                             ; preds = %2926
  %2934 = load i32, ptr %94, align 4, !tbaa !9
  %2935 = icmp sle i32 %2934, 1
  %2936 = zext i1 %2935 to i32
  br label %2937

2937:                                             ; preds = %2933, %2929
  %2938 = phi i32 [ %2932, %2929 ], [ %2936, %2933 ]
  %2939 = icmp ne i32 %2938, 0
  br i1 %2939, label %2940, label %3192

2940:                                             ; preds = %2937
  %2941 = load ptr, ptr %31, align 8, !tbaa !5
  %2942 = load i32, ptr %94, align 4, !tbaa !9
  %2943 = add nsw i32 %2942, 1
  %2944 = load i32, ptr %71, align 4, !tbaa !9
  %2945 = load i32, ptr %51, align 4, !tbaa !9
  %2946 = add nsw i32 %2945, 1
  %2947 = mul nsw i32 %2944, %2946
  %2948 = sub nsw i32 %2943, %2947
  %2949 = load i32, ptr %65, align 4, !tbaa !9
  %2950 = add nsw i32 %2948, %2949
  %2951 = load i32, ptr %51, align 4, !tbaa !9
  %2952 = add nsw i32 %2951, 1
  %2953 = load i32, ptr %35, align 4, !tbaa !9
  %2954 = mul nsw i32 %2952, %2953
  %2955 = add nsw i32 %2950, %2954
  %2956 = sext i32 %2955 to i64
  %2957 = getelementptr inbounds %struct.complex, ptr %2941, i64 %2956
  call void @clartg_(ptr noundef %2957, ptr noundef %70, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #8
  %2958 = load ptr, ptr %21, align 8, !tbaa !5
  %2959 = getelementptr inbounds i32, ptr %2958, i64 1
  %2960 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %2959)
  store <2 x float> %2960, ptr %129, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %129, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #8
  %2961 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2962 = load float, ptr %2961, align 4, !tbaa !16
  %2963 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %2962, ptr %2963, align 4, !tbaa !16
  %2964 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2965 = load float, ptr %2964, align 4, !tbaa !18
  %2966 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %2965, ptr %2966, align 4, !tbaa !18
  %2967 = load float, ptr %63, align 4, !tbaa !11
  %2968 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %2969 = load float, ptr %2968, align 4, !tbaa !16
  %2970 = fmul float %2967, %2969
  %2971 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %2970, ptr %2971, align 4, !tbaa !16
  %2972 = load float, ptr %63, align 4, !tbaa !11
  %2973 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %2974 = load float, ptr %2973, align 4, !tbaa !18
  %2975 = fmul float %2972, %2974
  %2976 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %2975, ptr %2976, align 4, !tbaa !18
  %2977 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %2977, ptr %130, align 4
  %2978 = getelementptr inbounds { float, float }, ptr %130, i32 0, i32 0
  %2979 = load float, ptr %2978, align 4
  %2980 = getelementptr inbounds { float, float }, ptr %130, i32 0, i32 1
  %2981 = load float, ptr %2980, align 4
  %2982 = fneg float %2981
  %2983 = call ptr @_pCf(ptr noundef %46)
  %2984 = getelementptr inbounds { float, float }, ptr %2983, i32 0, i32 0
  %2985 = getelementptr inbounds { float, float }, ptr %2983, i32 0, i32 1
  store float %2979, ptr %2984, align 4
  store float %2982, ptr %2985, align 4
  %2986 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2987 = load float, ptr %2986, align 4, !tbaa !16
  %2988 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %2987, ptr %2988, align 4, !tbaa !16
  %2989 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2990 = load float, ptr %2989, align 4, !tbaa !18
  %2991 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %2990, ptr %2991, align 4, !tbaa !18
  %2992 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %2993 = load float, ptr %2992, align 4, !tbaa !16
  %2994 = fneg float %2993
  %2995 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2994, ptr %2995, align 4, !tbaa !16
  %2996 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %2997 = load float, ptr %2996, align 4, !tbaa !18
  %2998 = fneg float %2997
  %2999 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %2998, ptr %2999, align 4, !tbaa !18
  %3000 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %3001 = load float, ptr %3000, align 4, !tbaa !16
  %3002 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %3003 = load float, ptr %3002, align 4, !tbaa !16
  %3004 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %3005 = load float, ptr %3004, align 4, !tbaa !18
  %3006 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %3007 = load float, ptr %3006, align 4, !tbaa !18
  %3008 = fmul float %3005, %3007
  %3009 = fneg float %3008
  %3010 = call float @llvm.fmuladd.f32(float %3001, float %3003, float %3009)
  %3011 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %3010, ptr %3011, align 4, !tbaa !16
  %3012 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %3013 = load float, ptr %3012, align 4, !tbaa !16
  %3014 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %3015 = load float, ptr %3014, align 4, !tbaa !18
  %3016 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %3017 = load float, ptr %3016, align 4, !tbaa !18
  %3018 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %3019 = load float, ptr %3018, align 4, !tbaa !16
  %3020 = fmul float %3017, %3019
  %3021 = call float @llvm.fmuladd.f32(float %3013, float %3015, float %3020)
  %3022 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %3021, ptr %3022, align 4, !tbaa !18
  %3023 = call <2 x float> @Cf(ptr noundef %47)
  store <2 x float> %3023, ptr %131, align 4
  %3024 = getelementptr inbounds { float, float }, ptr %131, i32 0, i32 0
  %3025 = load float, ptr %3024, align 4
  %3026 = getelementptr inbounds { float, float }, ptr %131, i32 0, i32 1
  %3027 = load float, ptr %3026, align 4
  %3028 = fneg float %3027
  %3029 = call ptr @_pCf(ptr noundef %46)
  %3030 = getelementptr inbounds { float, float }, ptr %3029, i32 0, i32 0
  %3031 = getelementptr inbounds { float, float }, ptr %3029, i32 0, i32 1
  store float %3025, ptr %3030, align 4
  store float %3028, ptr %3031, align 4
  %3032 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3033 = load float, ptr %3032, align 4, !tbaa !16
  %3034 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %3033, ptr %3034, align 4, !tbaa !16
  %3035 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3036 = load float, ptr %3035, align 4, !tbaa !18
  %3037 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %3036, ptr %3037, align 4, !tbaa !18
  %3038 = load i32, ptr %94, align 4, !tbaa !9
  %3039 = load i32, ptr %71, align 4, !tbaa !9
  %3040 = load i32, ptr %94, align 4, !tbaa !9
  %3041 = add nsw i32 %3040, 1
  %3042 = mul nsw i32 %3039, %3041
  %3043 = sub nsw i32 %3038, %3042
  %3044 = load i32, ptr %65, align 4, !tbaa !9
  %3045 = add nsw i32 %3043, %3044
  %3046 = load i32, ptr %94, align 4, !tbaa !9
  %3047 = add nsw i32 %3046, 1
  %3048 = load i32, ptr %35, align 4, !tbaa !9
  %3049 = mul nsw i32 %3047, %3048
  %3050 = add nsw i32 %3045, %3049
  store i32 %3050, ptr %39, align 4, !tbaa !9
  %3051 = load ptr, ptr %31, align 8, !tbaa !5
  %3052 = load i32, ptr %39, align 4, !tbaa !9
  %3053 = sext i32 %3052 to i64
  %3054 = getelementptr inbounds %struct.complex, ptr %3051, i64 %3053
  %3055 = getelementptr inbounds %struct.complex, ptr %3054, i32 0, i32 0
  %3056 = load float, ptr %3055, align 4, !tbaa !16
  %3057 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %3056, ptr %3057, align 4, !tbaa !16
  %3058 = load ptr, ptr %31, align 8, !tbaa !5
  %3059 = load i32, ptr %39, align 4, !tbaa !9
  %3060 = sext i32 %3059 to i64
  %3061 = getelementptr inbounds %struct.complex, ptr %3058, i64 %3060
  %3062 = getelementptr inbounds %struct.complex, ptr %3061, i32 0, i32 1
  %3063 = load float, ptr %3062, align 4, !tbaa !18
  %3064 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %3063, ptr %3064, align 4, !tbaa !18
  %3065 = load i32, ptr %53, align 4, !tbaa !9
  %3066 = icmp ne i32 %3065, 0
  br i1 %3066, label %3067, label %3080

3067:                                             ; preds = %2940
  %3068 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %3069 = load float, ptr %3068, align 4, !tbaa !16
  %3070 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  store float %3069, ptr %3070, align 4, !tbaa !16
  %3071 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %3072 = load float, ptr %3071, align 4, !tbaa !18
  %3073 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  store float %3072, ptr %3073, align 4, !tbaa !18
  %3074 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %3075 = load float, ptr %3074, align 4, !tbaa !16
  %3076 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %3075, ptr %3076, align 4, !tbaa !16
  %3077 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %3078 = load float, ptr %3077, align 4, !tbaa !18
  %3079 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %3078, ptr %3079, align 4, !tbaa !18
  br label %3126

3080:                                             ; preds = %2940
  %3081 = call <2 x float> @Cf(ptr noundef %67)
  store <2 x float> %3081, ptr %132, align 4
  %3082 = getelementptr inbounds { float, float }, ptr %132, i32 0, i32 0
  %3083 = load float, ptr %3082, align 4
  %3084 = getelementptr inbounds { float, float }, ptr %132, i32 0, i32 1
  %3085 = load float, ptr %3084, align 4
  %3086 = fneg float %3085
  %3087 = call ptr @_pCf(ptr noundef %46)
  %3088 = getelementptr inbounds { float, float }, ptr %3087, i32 0, i32 0
  %3089 = getelementptr inbounds { float, float }, ptr %3087, i32 0, i32 1
  store float %3083, ptr %3088, align 4
  store float %3086, ptr %3089, align 4
  %3090 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3091 = load float, ptr %3090, align 4, !tbaa !16
  %3092 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %3091, ptr %3092, align 4, !tbaa !16
  %3093 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3094 = load float, ptr %3093, align 4, !tbaa !18
  %3095 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %3094, ptr %3095, align 4, !tbaa !18
  %3096 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %3096, ptr %133, align 4
  %3097 = getelementptr inbounds { float, float }, ptr %133, i32 0, i32 0
  %3098 = load float, ptr %3097, align 4
  %3099 = getelementptr inbounds { float, float }, ptr %133, i32 0, i32 1
  %3100 = load float, ptr %3099, align 4
  %3101 = fneg float %3100
  %3102 = call ptr @_pCf(ptr noundef %46)
  %3103 = getelementptr inbounds { float, float }, ptr %3102, i32 0, i32 0
  %3104 = getelementptr inbounds { float, float }, ptr %3102, i32 0, i32 1
  store float %3098, ptr %3103, align 4
  store float %3101, ptr %3104, align 4
  %3105 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3106 = load float, ptr %3105, align 4, !tbaa !16
  %3107 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  store float %3106, ptr %3107, align 4, !tbaa !16
  %3108 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3109 = load float, ptr %3108, align 4, !tbaa !18
  %3110 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  store float %3109, ptr %3110, align 4, !tbaa !18
  %3111 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %3111, ptr %134, align 4
  %3112 = getelementptr inbounds { float, float }, ptr %134, i32 0, i32 0
  %3113 = load float, ptr %3112, align 4
  %3114 = getelementptr inbounds { float, float }, ptr %134, i32 0, i32 1
  %3115 = load float, ptr %3114, align 4
  %3116 = fneg float %3115
  %3117 = call ptr @_pCf(ptr noundef %46)
  %3118 = getelementptr inbounds { float, float }, ptr %3117, i32 0, i32 0
  %3119 = getelementptr inbounds { float, float }, ptr %3117, i32 0, i32 1
  store float %3113, ptr %3118, align 4
  store float %3116, ptr %3119, align 4
  %3120 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3121 = load float, ptr %3120, align 4, !tbaa !16
  %3122 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %3121, ptr %3122, align 4, !tbaa !16
  %3123 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3124 = load float, ptr %3123, align 4, !tbaa !18
  %3125 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %3124, ptr %3125, align 4, !tbaa !18
  br label %3126

3126:                                             ; preds = %3080, %3067
  %3127 = load i32, ptr %59, align 4, !tbaa !9
  %3128 = add nsw i32 %3127, 2
  store i32 %3128, ptr %39, align 4, !tbaa !9
  %3129 = load ptr, ptr %31, align 8, !tbaa !5
  %3130 = load i32, ptr %71, align 4, !tbaa !9
  %3131 = sub nsw i32 1, %3130
  %3132 = load i32, ptr %94, align 4, !tbaa !9
  %3133 = mul nsw i32 %3131, %3132
  %3134 = load i32, ptr %65, align 4, !tbaa !9
  %3135 = add nsw i32 %3133, %3134
  %3136 = load i32, ptr %94, align 4, !tbaa !9
  %3137 = load i32, ptr %35, align 4, !tbaa !9
  %3138 = mul nsw i32 %3136, %3137
  %3139 = add nsw i32 %3135, %3138
  %3140 = sext i32 %3139 to i64
  %3141 = getelementptr inbounds %struct.complex, ptr %3129, i64 %3140
  call void @clarot_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef @c_true, ptr noundef %39, ptr noundef %56, ptr noundef %60, ptr noundef %3141, ptr noundef %50, ptr noundef %67, ptr noundef %70)
  store i32 1, ptr %39, align 4, !tbaa !9
  %3142 = load i32, ptr %94, align 4, !tbaa !9
  %3143 = load i32, ptr %59, align 4, !tbaa !9
  %3144 = sub nsw i32 %3142, %3143
  store i32 %3144, ptr %41, align 4, !tbaa !9
  %3145 = load i32, ptr %39, align 4, !tbaa !9
  %3146 = load i32, ptr %41, align 4, !tbaa !9
  %3147 = icmp sge i32 %3145, %3146
  br i1 %3147, label %3148, label %3150

3148:                                             ; preds = %3126
  %3149 = load i32, ptr %39, align 4, !tbaa !9
  br label %3152

3150:                                             ; preds = %3126
  %3151 = load i32, ptr %41, align 4, !tbaa !9
  br label %3152

3152:                                             ; preds = %3150, %3148
  %3153 = phi i32 [ %3149, %3148 ], [ %3151, %3150 ]
  store i32 %3153, ptr %54, align 4, !tbaa !9
  %3154 = load i32, ptr %94, align 4, !tbaa !9
  %3155 = add nsw i32 %3154, 1
  store i32 %3155, ptr %39, align 4, !tbaa !9
  %3156 = load i32, ptr %59, align 4, !tbaa !9
  %3157 = add nsw i32 %3156, 2
  store i32 %3157, ptr %41, align 4, !tbaa !9
  %3158 = load i32, ptr %39, align 4, !tbaa !9
  %3159 = load i32, ptr %41, align 4, !tbaa !9
  %3160 = icmp sle i32 %3158, %3159
  br i1 %3160, label %3161, label %3163

3161:                                             ; preds = %3152
  %3162 = load i32, ptr %39, align 4, !tbaa !9
  br label %3165

3163:                                             ; preds = %3152
  %3164 = load i32, ptr %41, align 4, !tbaa !9
  br label %3165

3165:                                             ; preds = %3163, %3161
  %3166 = phi i32 [ %3162, %3161 ], [ %3164, %3163 ]
  store i32 %3166, ptr %76, align 4, !tbaa !9
  %3167 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %3167, align 4, !tbaa !16
  %3168 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %3168, align 4, !tbaa !18
  %3169 = load i32, ptr %94, align 4, !tbaa !9
  %3170 = load i32, ptr %59, align 4, !tbaa !9
  %3171 = icmp sgt i32 %3169, %3170
  %3172 = zext i1 %3171 to i32
  store i32 %3172, ptr %49, align 4, !tbaa !9
  %3173 = load ptr, ptr %31, align 8, !tbaa !5
  %3174 = load i32, ptr %54, align 4, !tbaa !9
  %3175 = load i32, ptr %71, align 4, !tbaa !9
  %3176 = load i32, ptr %94, align 4, !tbaa !9
  %3177 = mul nsw i32 %3175, %3176
  %3178 = sub nsw i32 %3174, %3177
  %3179 = load i32, ptr %65, align 4, !tbaa !9
  %3180 = add nsw i32 %3178, %3179
  %3181 = load i32, ptr %94, align 4, !tbaa !9
  %3182 = load i32, ptr %35, align 4, !tbaa !9
  %3183 = mul nsw i32 %3181, %3182
  %3184 = add nsw i32 %3180, %3183
  %3185 = sext i32 %3184 to i64
  %3186 = getelementptr inbounds %struct.complex, ptr %3173, i64 %3185
  call void @clarot_(ptr noundef @c_false, ptr noundef %49, ptr noundef @c_true, ptr noundef %76, ptr noundef %77, ptr noundef %84, ptr noundef %3186, ptr noundef %50, ptr noundef %70, ptr noundef %67)
  %3187 = load i32, ptr %94, align 4, !tbaa !9
  store i32 %3187, ptr %51, align 4, !tbaa !9
  br label %3188

3188:                                             ; preds = %3165
  %3189 = load i32, ptr %38, align 4, !tbaa !9
  %3190 = load i32, ptr %94, align 4, !tbaa !9
  %3191 = add nsw i32 %3190, %3189
  store i32 %3191, ptr %94, align 4, !tbaa !9
  br label %2926, !llvm.loop !35

3192:                                             ; preds = %2937
  br label %3193

3193:                                             ; preds = %3192
  %3194 = load i32, ptr %74, align 4, !tbaa !9
  %3195 = add nsw i32 %3194, 1
  store i32 %3195, ptr %74, align 4, !tbaa !9
  br label %2703, !llvm.loop !36

3196:                                             ; preds = %2703
  br label %3197

3197:                                             ; preds = %3196
  %3198 = load i32, ptr %59, align 4, !tbaa !9
  %3199 = add nsw i32 %3198, 1
  store i32 %3199, ptr %59, align 4, !tbaa !9
  br label %2695, !llvm.loop !37

3200:                                             ; preds = %2695
  %3201 = load i32, ptr %64, align 4, !tbaa !9
  %3202 = load i32, ptr %81, align 4, !tbaa !9
  %3203 = icmp ne i32 %3201, %3202
  br i1 %3203, label %3204, label %3418

3204:                                             ; preds = %3200
  %3205 = load i32, ptr %64, align 4, !tbaa !9
  %3206 = icmp ne i32 %3205, 3
  br i1 %3206, label %3207, label %3418

3207:                                             ; preds = %3204
  %3208 = load ptr, ptr %19, align 8, !tbaa !5
  %3209 = load i32, ptr %3208, align 4, !tbaa !9
  store i32 %3209, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %3210

3210:                                             ; preds = %3357, %3207
  %3211 = load i32, ptr %74, align 4, !tbaa !9
  %3212 = load i32, ptr %37, align 4, !tbaa !9
  %3213 = icmp sle i32 %3211, %3212
  br i1 %3213, label %3214, label %3360

3214:                                             ; preds = %3210
  %3215 = load i32, ptr %85, align 4, !tbaa !9
  %3216 = load i32, ptr %71, align 4, !tbaa !9
  %3217 = load i32, ptr %74, align 4, !tbaa !9
  %3218 = mul nsw i32 %3216, %3217
  %3219 = sub nsw i32 %3215, %3218
  store i32 %3219, ptr %54, align 4, !tbaa !9
  %3220 = load i32, ptr %53, align 4, !tbaa !9
  %3221 = icmp ne i32 %3220, 0
  br i1 %3221, label %3222, label %3287

3222:                                             ; preds = %3214
  %3223 = load ptr, ptr %19, align 8, !tbaa !5
  %3224 = load i32, ptr %3223, align 4, !tbaa !9
  store i32 %3224, ptr %38, align 4, !tbaa !9
  %3225 = load i32, ptr %74, align 4, !tbaa !9
  %3226 = load i32, ptr %98, align 4, !tbaa !9
  %3227 = add nsw i32 %3225, %3226
  store i32 %3227, ptr %39, align 4, !tbaa !9
  %3228 = load i32, ptr %38, align 4, !tbaa !9
  %3229 = load i32, ptr %39, align 4, !tbaa !9
  %3230 = icmp sle i32 %3228, %3229
  br i1 %3230, label %3231, label %3233

3231:                                             ; preds = %3222
  %3232 = load i32, ptr %38, align 4, !tbaa !9
  br label %3235

3233:                                             ; preds = %3222
  %3234 = load i32, ptr %39, align 4, !tbaa !9
  br label %3235

3235:                                             ; preds = %3233, %3231
  %3236 = phi i32 [ %3232, %3231 ], [ %3234, %3233 ]
  store i32 %3236, ptr %40, align 4, !tbaa !9
  %3237 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %3237, ptr %80, align 4, !tbaa !9
  br label %3238

3238:                                             ; preds = %3283, %3235
  %3239 = load i32, ptr %80, align 4, !tbaa !9
  %3240 = load i32, ptr %40, align 4, !tbaa !9
  %3241 = icmp sle i32 %3239, %3240
  br i1 %3241, label %3242, label %3286

3242:                                             ; preds = %3238
  %3243 = load i32, ptr %80, align 4, !tbaa !9
  %3244 = load i32, ptr %54, align 4, !tbaa !9
  %3245 = add nsw i32 %3243, %3244
  %3246 = load i32, ptr %74, align 4, !tbaa !9
  %3247 = load i32, ptr %35, align 4, !tbaa !9
  %3248 = mul nsw i32 %3246, %3247
  %3249 = add nsw i32 %3245, %3248
  store i32 %3249, ptr %38, align 4, !tbaa !9
  %3250 = load i32, ptr %74, align 4, !tbaa !9
  %3251 = load i32, ptr %71, align 4, !tbaa !9
  %3252 = load i32, ptr %80, align 4, !tbaa !9
  %3253 = mul nsw i32 %3251, %3252
  %3254 = sub nsw i32 %3250, %3253
  %3255 = load i32, ptr %65, align 4, !tbaa !9
  %3256 = add nsw i32 %3254, %3255
  %3257 = load i32, ptr %80, align 4, !tbaa !9
  %3258 = load i32, ptr %35, align 4, !tbaa !9
  %3259 = mul nsw i32 %3257, %3258
  %3260 = add nsw i32 %3256, %3259
  store i32 %3260, ptr %39, align 4, !tbaa !9
  %3261 = load ptr, ptr %31, align 8, !tbaa !5
  %3262 = load i32, ptr %39, align 4, !tbaa !9
  %3263 = sext i32 %3262 to i64
  %3264 = getelementptr inbounds %struct.complex, ptr %3261, i64 %3263
  %3265 = getelementptr inbounds %struct.complex, ptr %3264, i32 0, i32 0
  %3266 = load float, ptr %3265, align 4, !tbaa !16
  %3267 = load ptr, ptr %31, align 8, !tbaa !5
  %3268 = load i32, ptr %38, align 4, !tbaa !9
  %3269 = sext i32 %3268 to i64
  %3270 = getelementptr inbounds %struct.complex, ptr %3267, i64 %3269
  %3271 = getelementptr inbounds %struct.complex, ptr %3270, i32 0, i32 0
  store float %3266, ptr %3271, align 4, !tbaa !16
  %3272 = load ptr, ptr %31, align 8, !tbaa !5
  %3273 = load i32, ptr %39, align 4, !tbaa !9
  %3274 = sext i32 %3273 to i64
  %3275 = getelementptr inbounds %struct.complex, ptr %3272, i64 %3274
  %3276 = getelementptr inbounds %struct.complex, ptr %3275, i32 0, i32 1
  %3277 = load float, ptr %3276, align 4, !tbaa !18
  %3278 = load ptr, ptr %31, align 8, !tbaa !5
  %3279 = load i32, ptr %38, align 4, !tbaa !9
  %3280 = sext i32 %3279 to i64
  %3281 = getelementptr inbounds %struct.complex, ptr %3278, i64 %3280
  %3282 = getelementptr inbounds %struct.complex, ptr %3281, i32 0, i32 1
  store float %3277, ptr %3282, align 4, !tbaa !18
  br label %3283

3283:                                             ; preds = %3242
  %3284 = load i32, ptr %80, align 4, !tbaa !9
  %3285 = add nsw i32 %3284, 1
  store i32 %3285, ptr %80, align 4, !tbaa !9
  br label %3238, !llvm.loop !38

3286:                                             ; preds = %3238
  br label %3356

3287:                                             ; preds = %3214
  %3288 = load ptr, ptr %19, align 8, !tbaa !5
  %3289 = load i32, ptr %3288, align 4, !tbaa !9
  store i32 %3289, ptr %38, align 4, !tbaa !9
  %3290 = load i32, ptr %74, align 4, !tbaa !9
  %3291 = load i32, ptr %98, align 4, !tbaa !9
  %3292 = add nsw i32 %3290, %3291
  store i32 %3292, ptr %39, align 4, !tbaa !9
  %3293 = load i32, ptr %38, align 4, !tbaa !9
  %3294 = load i32, ptr %39, align 4, !tbaa !9
  %3295 = icmp sle i32 %3293, %3294
  br i1 %3295, label %3296, label %3298

3296:                                             ; preds = %3287
  %3297 = load i32, ptr %38, align 4, !tbaa !9
  br label %3300

3298:                                             ; preds = %3287
  %3299 = load i32, ptr %39, align 4, !tbaa !9
  br label %3300

3300:                                             ; preds = %3298, %3296
  %3301 = phi i32 [ %3297, %3296 ], [ %3299, %3298 ]
  store i32 %3301, ptr %40, align 4, !tbaa !9
  %3302 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %3302, ptr %80, align 4, !tbaa !9
  br label %3303

3303:                                             ; preds = %3352, %3300
  %3304 = load i32, ptr %80, align 4, !tbaa !9
  %3305 = load i32, ptr %40, align 4, !tbaa !9
  %3306 = icmp sle i32 %3304, %3305
  br i1 %3306, label %3307, label %3355

3307:                                             ; preds = %3303
  %3308 = load i32, ptr %80, align 4, !tbaa !9
  %3309 = load i32, ptr %54, align 4, !tbaa !9
  %3310 = add nsw i32 %3308, %3309
  %3311 = load i32, ptr %74, align 4, !tbaa !9
  %3312 = load i32, ptr %35, align 4, !tbaa !9
  %3313 = mul nsw i32 %3311, %3312
  %3314 = add nsw i32 %3310, %3313
  store i32 %3314, ptr %38, align 4, !tbaa !9
  %3315 = load ptr, ptr %31, align 8, !tbaa !5
  %3316 = load i32, ptr %74, align 4, !tbaa !9
  %3317 = load i32, ptr %71, align 4, !tbaa !9
  %3318 = load i32, ptr %80, align 4, !tbaa !9
  %3319 = mul nsw i32 %3317, %3318
  %3320 = sub nsw i32 %3316, %3319
  %3321 = load i32, ptr %65, align 4, !tbaa !9
  %3322 = add nsw i32 %3320, %3321
  %3323 = load i32, ptr %80, align 4, !tbaa !9
  %3324 = load i32, ptr %35, align 4, !tbaa !9
  %3325 = mul nsw i32 %3323, %3324
  %3326 = add nsw i32 %3322, %3325
  %3327 = sext i32 %3326 to i64
  %3328 = getelementptr inbounds %struct.complex, ptr %3315, i64 %3327
  %3329 = call <2 x float> @Cf(ptr noundef %3328)
  store <2 x float> %3329, ptr %135, align 4
  %3330 = getelementptr inbounds { float, float }, ptr %135, i32 0, i32 0
  %3331 = load float, ptr %3330, align 4
  %3332 = getelementptr inbounds { float, float }, ptr %135, i32 0, i32 1
  %3333 = load float, ptr %3332, align 4
  %3334 = fneg float %3333
  %3335 = call ptr @_pCf(ptr noundef %46)
  %3336 = getelementptr inbounds { float, float }, ptr %3335, i32 0, i32 0
  %3337 = getelementptr inbounds { float, float }, ptr %3335, i32 0, i32 1
  store float %3331, ptr %3336, align 4
  store float %3334, ptr %3337, align 4
  %3338 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3339 = load float, ptr %3338, align 4, !tbaa !16
  %3340 = load ptr, ptr %31, align 8, !tbaa !5
  %3341 = load i32, ptr %38, align 4, !tbaa !9
  %3342 = sext i32 %3341 to i64
  %3343 = getelementptr inbounds %struct.complex, ptr %3340, i64 %3342
  %3344 = getelementptr inbounds %struct.complex, ptr %3343, i32 0, i32 0
  store float %3339, ptr %3344, align 4, !tbaa !16
  %3345 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3346 = load float, ptr %3345, align 4, !tbaa !18
  %3347 = load ptr, ptr %31, align 8, !tbaa !5
  %3348 = load i32, ptr %38, align 4, !tbaa !9
  %3349 = sext i32 %3348 to i64
  %3350 = getelementptr inbounds %struct.complex, ptr %3347, i64 %3349
  %3351 = getelementptr inbounds %struct.complex, ptr %3350, i32 0, i32 1
  store float %3346, ptr %3351, align 4, !tbaa !18
  br label %3352

3352:                                             ; preds = %3307
  %3353 = load i32, ptr %80, align 4, !tbaa !9
  %3354 = add nsw i32 %3353, 1
  store i32 %3354, ptr %80, align 4, !tbaa !9
  br label %3303, !llvm.loop !39

3355:                                             ; preds = %3303
  br label %3356

3356:                                             ; preds = %3355, %3286
  br label %3357

3357:                                             ; preds = %3356
  %3358 = load i32, ptr %74, align 4, !tbaa !9
  %3359 = add nsw i32 %3358, 1
  store i32 %3359, ptr %74, align 4, !tbaa !9
  br label %3210, !llvm.loop !40

3360:                                             ; preds = %3210
  %3361 = load i32, ptr %64, align 4, !tbaa !9
  %3362 = icmp eq i32 %3361, 5
  br i1 %3362, label %3363, label %3411

3363:                                             ; preds = %3360
  %3364 = load ptr, ptr %19, align 8, !tbaa !5
  %3365 = load i32, ptr %3364, align 4, !tbaa !9
  store i32 %3365, ptr %37, align 4, !tbaa !9
  %3366 = load ptr, ptr %19, align 8, !tbaa !5
  %3367 = load i32, ptr %3366, align 4, !tbaa !9
  %3368 = load i32, ptr %98, align 4, !tbaa !9
  %3369 = sub nsw i32 %3367, %3368
  %3370 = add nsw i32 %3369, 1
  store i32 %3370, ptr %74, align 4, !tbaa !9
  br label %3371

3371:                                             ; preds = %3407, %3363
  %3372 = load i32, ptr %74, align 4, !tbaa !9
  %3373 = load i32, ptr %37, align 4, !tbaa !9
  %3374 = icmp sle i32 %3372, %3373
  br i1 %3374, label %3375, label %3410

3375:                                             ; preds = %3371
  %3376 = load i32, ptr %98, align 4, !tbaa !9
  %3377 = add nsw i32 %3376, 1
  store i32 %3377, ptr %40, align 4, !tbaa !9
  %3378 = load ptr, ptr %19, align 8, !tbaa !5
  %3379 = load i32, ptr %3378, align 4, !tbaa !9
  %3380 = add nsw i32 %3379, 2
  %3381 = load i32, ptr %74, align 4, !tbaa !9
  %3382 = sub nsw i32 %3380, %3381
  store i32 %3382, ptr %80, align 4, !tbaa !9
  br label %3383

3383:                                             ; preds = %3403, %3375
  %3384 = load i32, ptr %80, align 4, !tbaa !9
  %3385 = load i32, ptr %40, align 4, !tbaa !9
  %3386 = icmp sle i32 %3384, %3385
  br i1 %3386, label %3387, label %3406

3387:                                             ; preds = %3383
  %3388 = load i32, ptr %80, align 4, !tbaa !9
  %3389 = load i32, ptr %74, align 4, !tbaa !9
  %3390 = load i32, ptr %35, align 4, !tbaa !9
  %3391 = mul nsw i32 %3389, %3390
  %3392 = add nsw i32 %3388, %3391
  store i32 %3392, ptr %38, align 4, !tbaa !9
  %3393 = load ptr, ptr %31, align 8, !tbaa !5
  %3394 = load i32, ptr %38, align 4, !tbaa !9
  %3395 = sext i32 %3394 to i64
  %3396 = getelementptr inbounds %struct.complex, ptr %3393, i64 %3395
  %3397 = getelementptr inbounds %struct.complex, ptr %3396, i32 0, i32 0
  store float 0.000000e+00, ptr %3397, align 4, !tbaa !16
  %3398 = load ptr, ptr %31, align 8, !tbaa !5
  %3399 = load i32, ptr %38, align 4, !tbaa !9
  %3400 = sext i32 %3399 to i64
  %3401 = getelementptr inbounds %struct.complex, ptr %3398, i64 %3400
  %3402 = getelementptr inbounds %struct.complex, ptr %3401, i32 0, i32 1
  store float 0.000000e+00, ptr %3402, align 4, !tbaa !18
  br label %3403

3403:                                             ; preds = %3387
  %3404 = load i32, ptr %80, align 4, !tbaa !9
  %3405 = add nsw i32 %3404, 1
  store i32 %3405, ptr %80, align 4, !tbaa !9
  br label %3383, !llvm.loop !41

3406:                                             ; preds = %3383
  br label %3407

3407:                                             ; preds = %3406
  %3408 = load i32, ptr %74, align 4, !tbaa !9
  %3409 = add nsw i32 %3408, 1
  store i32 %3409, ptr %74, align 4, !tbaa !9
  br label %3371, !llvm.loop !42

3410:                                             ; preds = %3371
  br label %3411

3411:                                             ; preds = %3410, %3360
  %3412 = load i32, ptr %81, align 4, !tbaa !9
  %3413 = icmp eq i32 %3412, 6
  br i1 %3413, label %3414, label %3416

3414:                                             ; preds = %3411
  %3415 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %3415, ptr %81, align 4, !tbaa !9
  br label %3417

3416:                                             ; preds = %3411
  store i32 0, ptr %81, align 4, !tbaa !9
  br label %3417

3417:                                             ; preds = %3416, %3414
  br label %3418

3418:                                             ; preds = %3417, %3204, %3200
  br label %4142

3419:                                             ; preds = %2639
  %3420 = load i32, ptr %64, align 4, !tbaa !9
  %3421 = icmp sge i32 %3420, 5
  br i1 %3421, label %3422, label %3427

3422:                                             ; preds = %3419
  store i32 5, ptr %81, align 4, !tbaa !9
  %3423 = load i32, ptr %64, align 4, !tbaa !9
  %3424 = icmp eq i32 %3423, 6
  br i1 %3424, label %3425, label %3426

3425:                                             ; preds = %3422
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %3426

3426:                                             ; preds = %3425, %3422
  br label %3428

3427:                                             ; preds = %3419
  store i32 2, ptr %81, align 4, !tbaa !9
  br label %3428

3428:                                             ; preds = %3427, %3426
  %3429 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %3429, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %3430

3430:                                             ; preds = %3467, %3428
  %3431 = load i32, ptr %58, align 4, !tbaa !9
  %3432 = load i32, ptr %37, align 4, !tbaa !9
  %3433 = icmp sle i32 %3431, %3432
  br i1 %3433, label %3434, label %3470

3434:                                             ; preds = %3430
  %3435 = load i32, ptr %71, align 4, !tbaa !9
  %3436 = sub nsw i32 1, %3435
  %3437 = load i32, ptr %58, align 4, !tbaa !9
  %3438 = mul nsw i32 %3436, %3437
  %3439 = load i32, ptr %65, align 4, !tbaa !9
  %3440 = add nsw i32 %3438, %3439
  %3441 = load i32, ptr %58, align 4, !tbaa !9
  %3442 = load i32, ptr %35, align 4, !tbaa !9
  %3443 = mul nsw i32 %3441, %3442
  %3444 = add nsw i32 %3440, %3443
  store i32 %3444, ptr %40, align 4, !tbaa !9
  %3445 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %3445, ptr %38, align 4, !tbaa !9
  %3446 = load ptr, ptr %23, align 8, !tbaa !5
  %3447 = load i32, ptr %38, align 4, !tbaa !9
  %3448 = sext i32 %3447 to i64
  %3449 = getelementptr inbounds float, ptr %3446, i64 %3448
  %3450 = load float, ptr %3449, align 4, !tbaa !11
  %3451 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3450, ptr %3451, align 4, !tbaa !16
  %3452 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %3452, align 4, !tbaa !18
  %3453 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3454 = load float, ptr %3453, align 4, !tbaa !16
  %3455 = load ptr, ptr %31, align 8, !tbaa !5
  %3456 = load i32, ptr %40, align 4, !tbaa !9
  %3457 = sext i32 %3456 to i64
  %3458 = getelementptr inbounds %struct.complex, ptr %3455, i64 %3457
  %3459 = getelementptr inbounds %struct.complex, ptr %3458, i32 0, i32 0
  store float %3454, ptr %3459, align 4, !tbaa !16
  %3460 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3461 = load float, ptr %3460, align 4, !tbaa !18
  %3462 = load ptr, ptr %31, align 8, !tbaa !5
  %3463 = load i32, ptr %40, align 4, !tbaa !9
  %3464 = sext i32 %3463 to i64
  %3465 = getelementptr inbounds %struct.complex, ptr %3462, i64 %3464
  %3466 = getelementptr inbounds %struct.complex, ptr %3465, i32 0, i32 1
  store float %3461, ptr %3466, align 4, !tbaa !18
  br label %3467

3467:                                             ; preds = %3434
  %3468 = load i32, ptr %58, align 4, !tbaa !9
  %3469 = add nsw i32 %3468, 1
  store i32 %3469, ptr %58, align 4, !tbaa !9
  br label %3430, !llvm.loop !43

3470:                                             ; preds = %3430
  %3471 = load i32, ptr %98, align 4, !tbaa !9
  store i32 %3471, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %3472

3472:                                             ; preds = %3934, %3470
  %3473 = load i32, ptr %59, align 4, !tbaa !9
  %3474 = load i32, ptr %37, align 4, !tbaa !9
  %3475 = icmp sle i32 %3473, %3474
  br i1 %3475, label %3476, label %3937

3476:                                             ; preds = %3472
  %3477 = load ptr, ptr %19, align 8, !tbaa !5
  %3478 = load i32, ptr %3477, align 4, !tbaa !9
  %3479 = sub nsw i32 %3478, 1
  store i32 %3479, ptr %74, align 4, !tbaa !9
  br label %3480

3480:                                             ; preds = %3930, %3476
  %3481 = load i32, ptr %74, align 4, !tbaa !9
  %3482 = icmp sge i32 %3481, 1
  br i1 %3482, label %3483, label %3933

3483:                                             ; preds = %3480
  %3484 = load ptr, ptr %19, align 8, !tbaa !5
  %3485 = load i32, ptr %3484, align 4, !tbaa !9
  %3486 = add nsw i32 %3485, 1
  %3487 = load i32, ptr %74, align 4, !tbaa !9
  %3488 = sub nsw i32 %3486, %3487
  store i32 %3488, ptr %40, align 4, !tbaa !9
  %3489 = load i32, ptr %59, align 4, !tbaa !9
  %3490 = add nsw i32 %3489, 2
  store i32 %3490, ptr %38, align 4, !tbaa !9
  %3491 = load i32, ptr %40, align 4, !tbaa !9
  %3492 = load i32, ptr %38, align 4, !tbaa !9
  %3493 = icmp sle i32 %3491, %3492
  br i1 %3493, label %3494, label %3496

3494:                                             ; preds = %3483
  %3495 = load i32, ptr %40, align 4, !tbaa !9
  br label %3498

3496:                                             ; preds = %3483
  %3497 = load i32, ptr %38, align 4, !tbaa !9
  br label %3498

3498:                                             ; preds = %3496, %3494
  %3499 = phi i32 [ %3495, %3494 ], [ %3497, %3496 ]
  store i32 %3499, ptr %76, align 4, !tbaa !9
  %3500 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %3500, align 4, !tbaa !16
  %3501 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %3501, align 4, !tbaa !18
  %3502 = load i32, ptr %71, align 4, !tbaa !9
  %3503 = sub nsw i32 1, %3502
  %3504 = load i32, ptr %74, align 4, !tbaa !9
  %3505 = mul nsw i32 %3503, %3504
  %3506 = add nsw i32 %3505, 1
  %3507 = load i32, ptr %65, align 4, !tbaa !9
  %3508 = add nsw i32 %3506, %3507
  %3509 = load i32, ptr %74, align 4, !tbaa !9
  %3510 = load i32, ptr %35, align 4, !tbaa !9
  %3511 = mul nsw i32 %3509, %3510
  %3512 = add nsw i32 %3508, %3511
  store i32 %3512, ptr %40, align 4, !tbaa !9
  %3513 = load ptr, ptr %31, align 8, !tbaa !5
  %3514 = load i32, ptr %40, align 4, !tbaa !9
  %3515 = sext i32 %3514 to i64
  %3516 = getelementptr inbounds %struct.complex, ptr %3513, i64 %3515
  %3517 = getelementptr inbounds %struct.complex, ptr %3516, i32 0, i32 0
  %3518 = load float, ptr %3517, align 4, !tbaa !16
  %3519 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %3518, ptr %3519, align 4, !tbaa !16
  %3520 = load ptr, ptr %31, align 8, !tbaa !5
  %3521 = load i32, ptr %40, align 4, !tbaa !9
  %3522 = sext i32 %3521 to i64
  %3523 = getelementptr inbounds %struct.complex, ptr %3520, i64 %3522
  %3524 = getelementptr inbounds %struct.complex, ptr %3523, i32 0, i32 1
  %3525 = load float, ptr %3524, align 4, !tbaa !18
  %3526 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %3525, ptr %3526, align 4, !tbaa !18
  %3527 = load ptr, ptr %21, align 8, !tbaa !5
  %3528 = getelementptr inbounds i32, ptr %3527, i64 1
  %3529 = call float @slarnd_(ptr noundef @c__1, ptr noundef %3528)
  %3530 = fmul float %3529, 0x401921FB60000000
  store float %3530, ptr %62, align 4, !tbaa !11
  %3531 = load float, ptr %62, align 4, !tbaa !11
  %3532 = fpext float %3531 to double
  %3533 = call double @cos(double noundef %3532) #8
  %3534 = fptrunc double %3533 to float
  store float %3534, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #8
  %3535 = load ptr, ptr %21, align 8, !tbaa !5
  %3536 = getelementptr inbounds i32, ptr %3535, i64 1
  %3537 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %3536)
  store <2 x float> %3537, ptr %136, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %136, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  %3538 = load float, ptr %43, align 4, !tbaa !11
  %3539 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %3540 = load float, ptr %3539, align 4, !tbaa !16
  %3541 = fmul float %3538, %3540
  %3542 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3541, ptr %3542, align 4, !tbaa !16
  %3543 = load float, ptr %43, align 4, !tbaa !11
  %3544 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %3545 = load float, ptr %3544, align 4, !tbaa !18
  %3546 = fmul float %3543, %3545
  %3547 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3546, ptr %3547, align 4, !tbaa !18
  %3548 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3549 = load float, ptr %3548, align 4, !tbaa !16
  %3550 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %3549, ptr %3550, align 4, !tbaa !16
  %3551 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3552 = load float, ptr %3551, align 4, !tbaa !18
  %3553 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %3552, ptr %3553, align 4, !tbaa !18
  %3554 = load float, ptr %62, align 4, !tbaa !11
  %3555 = fpext float %3554 to double
  %3556 = call double @sin(double noundef %3555) #8
  %3557 = fptrunc double %3556 to float
  store float %3557, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #8
  %3558 = load ptr, ptr %21, align 8, !tbaa !5
  %3559 = getelementptr inbounds i32, ptr %3558, i64 1
  %3560 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %3559)
  store <2 x float> %3560, ptr %137, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %137, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #8
  %3561 = load float, ptr %43, align 4, !tbaa !11
  %3562 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %3563 = load float, ptr %3562, align 4, !tbaa !16
  %3564 = fmul float %3561, %3563
  %3565 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3564, ptr %3565, align 4, !tbaa !16
  %3566 = load float, ptr %43, align 4, !tbaa !11
  %3567 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %3568 = load float, ptr %3567, align 4, !tbaa !18
  %3569 = fmul float %3566, %3568
  %3570 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3569, ptr %3570, align 4, !tbaa !18
  %3571 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3572 = load float, ptr %3571, align 4, !tbaa !16
  %3573 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %3572, ptr %3573, align 4, !tbaa !16
  %3574 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3575 = load float, ptr %3574, align 4, !tbaa !18
  %3576 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %3575, ptr %3576, align 4, !tbaa !18
  %3577 = load i32, ptr %53, align 4, !tbaa !9
  %3578 = icmp ne i32 %3577, 0
  br i1 %3578, label %3579, label %3592

3579:                                             ; preds = %3498
  %3580 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %3581 = load float, ptr %3580, align 4, !tbaa !16
  %3582 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  store float %3581, ptr %3582, align 4, !tbaa !16
  %3583 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %3584 = load float, ptr %3583, align 4, !tbaa !18
  %3585 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  store float %3584, ptr %3585, align 4, !tbaa !18
  %3586 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %3587 = load float, ptr %3586, align 4, !tbaa !16
  %3588 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %3587, ptr %3588, align 4, !tbaa !16
  %3589 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %3590 = load float, ptr %3589, align 4, !tbaa !18
  %3591 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %3590, ptr %3591, align 4, !tbaa !18
  br label %3638

3592:                                             ; preds = %3498
  %3593 = call <2 x float> @Cf(ptr noundef %67)
  store <2 x float> %3593, ptr %138, align 4
  %3594 = getelementptr inbounds { float, float }, ptr %138, i32 0, i32 0
  %3595 = load float, ptr %3594, align 4
  %3596 = getelementptr inbounds { float, float }, ptr %138, i32 0, i32 1
  %3597 = load float, ptr %3596, align 4
  %3598 = fneg float %3597
  %3599 = call ptr @_pCf(ptr noundef %46)
  %3600 = getelementptr inbounds { float, float }, ptr %3599, i32 0, i32 0
  %3601 = getelementptr inbounds { float, float }, ptr %3599, i32 0, i32 1
  store float %3595, ptr %3600, align 4
  store float %3598, ptr %3601, align 4
  %3602 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3603 = load float, ptr %3602, align 4, !tbaa !16
  %3604 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %3603, ptr %3604, align 4, !tbaa !16
  %3605 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3606 = load float, ptr %3605, align 4, !tbaa !18
  %3607 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %3606, ptr %3607, align 4, !tbaa !18
  %3608 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %3608, ptr %139, align 4
  %3609 = getelementptr inbounds { float, float }, ptr %139, i32 0, i32 0
  %3610 = load float, ptr %3609, align 4
  %3611 = getelementptr inbounds { float, float }, ptr %139, i32 0, i32 1
  %3612 = load float, ptr %3611, align 4
  %3613 = fneg float %3612
  %3614 = call ptr @_pCf(ptr noundef %46)
  %3615 = getelementptr inbounds { float, float }, ptr %3614, i32 0, i32 0
  %3616 = getelementptr inbounds { float, float }, ptr %3614, i32 0, i32 1
  store float %3610, ptr %3615, align 4
  store float %3613, ptr %3616, align 4
  %3617 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3618 = load float, ptr %3617, align 4, !tbaa !16
  %3619 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  store float %3618, ptr %3619, align 4, !tbaa !16
  %3620 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3621 = load float, ptr %3620, align 4, !tbaa !18
  %3622 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  store float %3621, ptr %3622, align 4, !tbaa !18
  %3623 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %3623, ptr %140, align 4
  %3624 = getelementptr inbounds { float, float }, ptr %140, i32 0, i32 0
  %3625 = load float, ptr %3624, align 4
  %3626 = getelementptr inbounds { float, float }, ptr %140, i32 0, i32 1
  %3627 = load float, ptr %3626, align 4
  %3628 = fneg float %3627
  %3629 = call ptr @_pCf(ptr noundef %46)
  %3630 = getelementptr inbounds { float, float }, ptr %3629, i32 0, i32 0
  %3631 = getelementptr inbounds { float, float }, ptr %3629, i32 0, i32 1
  store float %3625, ptr %3630, align 4
  store float %3628, ptr %3631, align 4
  %3632 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3633 = load float, ptr %3632, align 4, !tbaa !16
  %3634 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %3633, ptr %3634, align 4, !tbaa !16
  %3635 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3636 = load float, ptr %3635, align 4, !tbaa !18
  %3637 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %3636, ptr %3637, align 4, !tbaa !18
  br label %3638

3638:                                             ; preds = %3592, %3579
  %3639 = load ptr, ptr %19, align 8, !tbaa !5
  %3640 = load i32, ptr %3639, align 4, !tbaa !9
  %3641 = load i32, ptr %74, align 4, !tbaa !9
  %3642 = sub nsw i32 %3640, %3641
  %3643 = load i32, ptr %59, align 4, !tbaa !9
  %3644 = icmp sgt i32 %3642, %3643
  %3645 = zext i1 %3644 to i32
  store i32 %3645, ptr %49, align 4, !tbaa !9
  %3646 = load ptr, ptr %31, align 8, !tbaa !5
  %3647 = load i32, ptr %71, align 4, !tbaa !9
  %3648 = sub nsw i32 1, %3647
  %3649 = load i32, ptr %74, align 4, !tbaa !9
  %3650 = mul nsw i32 %3648, %3649
  %3651 = load i32, ptr %65, align 4, !tbaa !9
  %3652 = add nsw i32 %3650, %3651
  %3653 = load i32, ptr %74, align 4, !tbaa !9
  %3654 = load i32, ptr %35, align 4, !tbaa !9
  %3655 = mul nsw i32 %3653, %3654
  %3656 = add nsw i32 %3652, %3655
  %3657 = sext i32 %3656 to i64
  %3658 = getelementptr inbounds %struct.complex, ptr %3646, i64 %3657
  call void @clarot_(ptr noundef @c_false, ptr noundef @c_true, ptr noundef %49, ptr noundef %76, ptr noundef %56, ptr noundef %60, ptr noundef %3658, ptr noundef %50, ptr noundef %67, ptr noundef %70)
  store i32 1, ptr %40, align 4, !tbaa !9
  %3659 = load i32, ptr %74, align 4, !tbaa !9
  %3660 = load i32, ptr %59, align 4, !tbaa !9
  %3661 = sub nsw i32 %3659, %3660
  %3662 = add nsw i32 %3661, 1
  store i32 %3662, ptr %38, align 4, !tbaa !9
  %3663 = load i32, ptr %40, align 4, !tbaa !9
  %3664 = load i32, ptr %38, align 4, !tbaa !9
  %3665 = icmp sge i32 %3663, %3664
  br i1 %3665, label %3666, label %3668

3666:                                             ; preds = %3638
  %3667 = load i32, ptr %40, align 4, !tbaa !9
  br label %3670

3668:                                             ; preds = %3638
  %3669 = load i32, ptr %38, align 4, !tbaa !9
  br label %3670

3670:                                             ; preds = %3668, %3666
  %3671 = phi i32 [ %3667, %3666 ], [ %3669, %3668 ]
  store i32 %3671, ptr %51, align 4, !tbaa !9
  %3672 = load i32, ptr %74, align 4, !tbaa !9
  %3673 = add nsw i32 %3672, 2
  %3674 = load i32, ptr %51, align 4, !tbaa !9
  %3675 = sub nsw i32 %3673, %3674
  store i32 %3675, ptr %40, align 4, !tbaa !9
  %3676 = load ptr, ptr %31, align 8, !tbaa !5
  %3677 = load i32, ptr %74, align 4, !tbaa !9
  %3678 = load i32, ptr %71, align 4, !tbaa !9
  %3679 = load i32, ptr %51, align 4, !tbaa !9
  %3680 = mul nsw i32 %3678, %3679
  %3681 = sub nsw i32 %3677, %3680
  %3682 = load i32, ptr %65, align 4, !tbaa !9
  %3683 = add nsw i32 %3681, %3682
  %3684 = load i32, ptr %51, align 4, !tbaa !9
  %3685 = load i32, ptr %35, align 4, !tbaa !9
  %3686 = mul nsw i32 %3684, %3685
  %3687 = add nsw i32 %3683, %3686
  %3688 = sext i32 %3687 to i64
  %3689 = getelementptr inbounds %struct.complex, ptr %3676, i64 %3688
  call void @clarot_(ptr noundef @c_true, ptr noundef @c_false, ptr noundef @c_true, ptr noundef %40, ptr noundef %77, ptr noundef %84, ptr noundef %3689, ptr noundef %50, ptr noundef %72, ptr noundef %67)
  %3690 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %3690, ptr %51, align 4, !tbaa !9
  %3691 = load ptr, ptr %19, align 8, !tbaa !5
  %3692 = load i32, ptr %3691, align 4, !tbaa !9
  %3693 = sub nsw i32 %3692, 1
  store i32 %3693, ptr %40, align 4, !tbaa !9
  %3694 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %3694, ptr %38, align 4, !tbaa !9
  %3695 = load i32, ptr %74, align 4, !tbaa !9
  %3696 = load i32, ptr %59, align 4, !tbaa !9
  %3697 = add nsw i32 %3695, %3696
  store i32 %3697, ptr %94, align 4, !tbaa !9
  br label %3698

3698:                                             ; preds = %3925, %3670
  %3699 = load i32, ptr %38, align 4, !tbaa !9
  %3700 = icmp slt i32 %3699, 0
  br i1 %3700, label %3701, label %3706

3701:                                             ; preds = %3698
  %3702 = load i32, ptr %94, align 4, !tbaa !9
  %3703 = load i32, ptr %40, align 4, !tbaa !9
  %3704 = icmp sge i32 %3702, %3703
  %3705 = zext i1 %3704 to i32
  br label %3711

3706:                                             ; preds = %3698
  %3707 = load i32, ptr %94, align 4, !tbaa !9
  %3708 = load i32, ptr %40, align 4, !tbaa !9
  %3709 = icmp sle i32 %3707, %3708
  %3710 = zext i1 %3709 to i32
  br label %3711

3711:                                             ; preds = %3706, %3701
  %3712 = phi i32 [ %3705, %3701 ], [ %3710, %3706 ]
  %3713 = icmp ne i32 %3712, 0
  br i1 %3713, label %3714, label %3929

3714:                                             ; preds = %3711
  %3715 = load ptr, ptr %31, align 8, !tbaa !5
  %3716 = load i32, ptr %94, align 4, !tbaa !9
  %3717 = load i32, ptr %71, align 4, !tbaa !9
  %3718 = load i32, ptr %51, align 4, !tbaa !9
  %3719 = mul nsw i32 %3717, %3718
  %3720 = sub nsw i32 %3716, %3719
  %3721 = load i32, ptr %65, align 4, !tbaa !9
  %3722 = add nsw i32 %3720, %3721
  %3723 = load i32, ptr %51, align 4, !tbaa !9
  %3724 = load i32, ptr %35, align 4, !tbaa !9
  %3725 = mul nsw i32 %3723, %3724
  %3726 = add nsw i32 %3722, %3725
  %3727 = sext i32 %3726 to i64
  %3728 = getelementptr inbounds %struct.complex, ptr %3715, i64 %3727
  call void @clartg_(ptr noundef %3728, ptr noundef %70, ptr noundef %63, ptr noundef %60, ptr noundef %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #8
  %3729 = load ptr, ptr %21, align 8, !tbaa !5
  %3730 = getelementptr inbounds i32, ptr %3729, i64 1
  %3731 = call <2 x float> @clarnd_(ptr noundef @c__5, ptr noundef %3730)
  store <2 x float> %3731, ptr %141, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %141, i64 8, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #8
  %3732 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3733 = load float, ptr %3732, align 4, !tbaa !16
  %3734 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %3733, ptr %3734, align 4, !tbaa !16
  %3735 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3736 = load float, ptr %3735, align 4, !tbaa !18
  %3737 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %3736, ptr %3737, align 4, !tbaa !18
  %3738 = load float, ptr %63, align 4, !tbaa !11
  %3739 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %3740 = load float, ptr %3739, align 4, !tbaa !16
  %3741 = fmul float %3738, %3740
  %3742 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3741, ptr %3742, align 4, !tbaa !16
  %3743 = load float, ptr %63, align 4, !tbaa !11
  %3744 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %3745 = load float, ptr %3744, align 4, !tbaa !18
  %3746 = fmul float %3743, %3745
  %3747 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3746, ptr %3747, align 4, !tbaa !18
  %3748 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3749 = load float, ptr %3748, align 4, !tbaa !16
  %3750 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %3749, ptr %3750, align 4, !tbaa !16
  %3751 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3752 = load float, ptr %3751, align 4, !tbaa !18
  %3753 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %3752, ptr %3753, align 4, !tbaa !18
  %3754 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %3755 = load float, ptr %3754, align 4, !tbaa !16
  %3756 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %3757 = load float, ptr %3756, align 4, !tbaa !16
  %3758 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %3759 = load float, ptr %3758, align 4, !tbaa !18
  %3760 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %3761 = load float, ptr %3760, align 4, !tbaa !18
  %3762 = fmul float %3759, %3761
  %3763 = fneg float %3762
  %3764 = call float @llvm.fmuladd.f32(float %3755, float %3757, float %3763)
  %3765 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3764, ptr %3765, align 4, !tbaa !16
  %3766 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %3767 = load float, ptr %3766, align 4, !tbaa !16
  %3768 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %3769 = load float, ptr %3768, align 4, !tbaa !18
  %3770 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %3771 = load float, ptr %3770, align 4, !tbaa !18
  %3772 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %3773 = load float, ptr %3772, align 4, !tbaa !16
  %3774 = fmul float %3771, %3773
  %3775 = call float @llvm.fmuladd.f32(float %3767, float %3769, float %3774)
  %3776 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3775, ptr %3776, align 4, !tbaa !18
  %3777 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3778 = load float, ptr %3777, align 4, !tbaa !16
  %3779 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %3778, ptr %3779, align 4, !tbaa !16
  %3780 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3781 = load float, ptr %3780, align 4, !tbaa !18
  %3782 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %3781, ptr %3782, align 4, !tbaa !18
  %3783 = load i32, ptr %71, align 4, !tbaa !9
  %3784 = sub nsw i32 1, %3783
  %3785 = load i32, ptr %94, align 4, !tbaa !9
  %3786 = mul nsw i32 %3784, %3785
  %3787 = add nsw i32 %3786, 1
  %3788 = load i32, ptr %65, align 4, !tbaa !9
  %3789 = add nsw i32 %3787, %3788
  %3790 = load i32, ptr %94, align 4, !tbaa !9
  %3791 = load i32, ptr %35, align 4, !tbaa !9
  %3792 = mul nsw i32 %3790, %3791
  %3793 = add nsw i32 %3789, %3792
  store i32 %3793, ptr %39, align 4, !tbaa !9
  %3794 = load ptr, ptr %31, align 8, !tbaa !5
  %3795 = load i32, ptr %39, align 4, !tbaa !9
  %3796 = sext i32 %3795 to i64
  %3797 = getelementptr inbounds %struct.complex, ptr %3794, i64 %3796
  %3798 = getelementptr inbounds %struct.complex, ptr %3797, i32 0, i32 0
  %3799 = load float, ptr %3798, align 4, !tbaa !16
  %3800 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %3799, ptr %3800, align 4, !tbaa !16
  %3801 = load ptr, ptr %31, align 8, !tbaa !5
  %3802 = load i32, ptr %39, align 4, !tbaa !9
  %3803 = sext i32 %3802 to i64
  %3804 = getelementptr inbounds %struct.complex, ptr %3801, i64 %3803
  %3805 = getelementptr inbounds %struct.complex, ptr %3804, i32 0, i32 1
  %3806 = load float, ptr %3805, align 4, !tbaa !18
  %3807 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %3806, ptr %3807, align 4, !tbaa !18
  %3808 = load i32, ptr %53, align 4, !tbaa !9
  %3809 = icmp ne i32 %3808, 0
  br i1 %3809, label %3810, label %3823

3810:                                             ; preds = %3714
  %3811 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %3812 = load float, ptr %3811, align 4, !tbaa !16
  %3813 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  store float %3812, ptr %3813, align 4, !tbaa !16
  %3814 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %3815 = load float, ptr %3814, align 4, !tbaa !18
  %3816 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  store float %3815, ptr %3816, align 4, !tbaa !18
  %3817 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %3818 = load float, ptr %3817, align 4, !tbaa !16
  %3819 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %3818, ptr %3819, align 4, !tbaa !16
  %3820 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %3821 = load float, ptr %3820, align 4, !tbaa !18
  %3822 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %3821, ptr %3822, align 4, !tbaa !18
  br label %3869

3823:                                             ; preds = %3714
  %3824 = call <2 x float> @Cf(ptr noundef %67)
  store <2 x float> %3824, ptr %142, align 4
  %3825 = getelementptr inbounds { float, float }, ptr %142, i32 0, i32 0
  %3826 = load float, ptr %3825, align 4
  %3827 = getelementptr inbounds { float, float }, ptr %142, i32 0, i32 1
  %3828 = load float, ptr %3827, align 4
  %3829 = fneg float %3828
  %3830 = call ptr @_pCf(ptr noundef %46)
  %3831 = getelementptr inbounds { float, float }, ptr %3830, i32 0, i32 0
  %3832 = getelementptr inbounds { float, float }, ptr %3830, i32 0, i32 1
  store float %3826, ptr %3831, align 4
  store float %3829, ptr %3832, align 4
  %3833 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3834 = load float, ptr %3833, align 4, !tbaa !16
  %3835 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %3834, ptr %3835, align 4, !tbaa !16
  %3836 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3837 = load float, ptr %3836, align 4, !tbaa !18
  %3838 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %3837, ptr %3838, align 4, !tbaa !18
  %3839 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %3839, ptr %143, align 4
  %3840 = getelementptr inbounds { float, float }, ptr %143, i32 0, i32 0
  %3841 = load float, ptr %3840, align 4
  %3842 = getelementptr inbounds { float, float }, ptr %143, i32 0, i32 1
  %3843 = load float, ptr %3842, align 4
  %3844 = fneg float %3843
  %3845 = call ptr @_pCf(ptr noundef %46)
  %3846 = getelementptr inbounds { float, float }, ptr %3845, i32 0, i32 0
  %3847 = getelementptr inbounds { float, float }, ptr %3845, i32 0, i32 1
  store float %3841, ptr %3846, align 4
  store float %3844, ptr %3847, align 4
  %3848 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3849 = load float, ptr %3848, align 4, !tbaa !16
  %3850 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  store float %3849, ptr %3850, align 4, !tbaa !16
  %3851 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3852 = load float, ptr %3851, align 4, !tbaa !18
  %3853 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  store float %3852, ptr %3853, align 4, !tbaa !18
  %3854 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %3854, ptr %144, align 4
  %3855 = getelementptr inbounds { float, float }, ptr %144, i32 0, i32 0
  %3856 = load float, ptr %3855, align 4
  %3857 = getelementptr inbounds { float, float }, ptr %144, i32 0, i32 1
  %3858 = load float, ptr %3857, align 4
  %3859 = fneg float %3858
  %3860 = call ptr @_pCf(ptr noundef %46)
  %3861 = getelementptr inbounds { float, float }, ptr %3860, i32 0, i32 0
  %3862 = getelementptr inbounds { float, float }, ptr %3860, i32 0, i32 1
  store float %3856, ptr %3861, align 4
  store float %3859, ptr %3862, align 4
  %3863 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3864 = load float, ptr %3863, align 4, !tbaa !16
  %3865 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %3864, ptr %3865, align 4, !tbaa !16
  %3866 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3867 = load float, ptr %3866, align 4, !tbaa !18
  %3868 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %3867, ptr %3868, align 4, !tbaa !18
  br label %3869

3869:                                             ; preds = %3823, %3810
  %3870 = load i32, ptr %59, align 4, !tbaa !9
  %3871 = add nsw i32 %3870, 2
  store i32 %3871, ptr %39, align 4, !tbaa !9
  %3872 = load ptr, ptr %31, align 8, !tbaa !5
  %3873 = load i32, ptr %94, align 4, !tbaa !9
  %3874 = load i32, ptr %71, align 4, !tbaa !9
  %3875 = load i32, ptr %51, align 4, !tbaa !9
  %3876 = mul nsw i32 %3874, %3875
  %3877 = sub nsw i32 %3873, %3876
  %3878 = load i32, ptr %65, align 4, !tbaa !9
  %3879 = add nsw i32 %3877, %3878
  %3880 = load i32, ptr %51, align 4, !tbaa !9
  %3881 = load i32, ptr %35, align 4, !tbaa !9
  %3882 = mul nsw i32 %3880, %3881
  %3883 = add nsw i32 %3879, %3882
  %3884 = sext i32 %3883 to i64
  %3885 = getelementptr inbounds %struct.complex, ptr %3872, i64 %3884
  call void @clarot_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef @c_true, ptr noundef %39, ptr noundef %56, ptr noundef %60, ptr noundef %3885, ptr noundef %50, ptr noundef %70, ptr noundef %67)
  %3886 = load ptr, ptr %19, align 8, !tbaa !5
  %3887 = load i32, ptr %3886, align 4, !tbaa !9
  %3888 = add nsw i32 %3887, 1
  %3889 = load i32, ptr %94, align 4, !tbaa !9
  %3890 = sub nsw i32 %3888, %3889
  store i32 %3890, ptr %39, align 4, !tbaa !9
  %3891 = load i32, ptr %59, align 4, !tbaa !9
  %3892 = add nsw i32 %3891, 2
  store i32 %3892, ptr %41, align 4, !tbaa !9
  %3893 = load i32, ptr %39, align 4, !tbaa !9
  %3894 = load i32, ptr %41, align 4, !tbaa !9
  %3895 = icmp sle i32 %3893, %3894
  br i1 %3895, label %3896, label %3898

3896:                                             ; preds = %3869
  %3897 = load i32, ptr %39, align 4, !tbaa !9
  br label %3900

3898:                                             ; preds = %3869
  %3899 = load i32, ptr %41, align 4, !tbaa !9
  br label %3900

3900:                                             ; preds = %3898, %3896
  %3901 = phi i32 [ %3897, %3896 ], [ %3899, %3898 ]
  store i32 %3901, ptr %76, align 4, !tbaa !9
  %3902 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float 0.000000e+00, ptr %3902, align 4, !tbaa !16
  %3903 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float 0.000000e+00, ptr %3903, align 4, !tbaa !18
  %3904 = load ptr, ptr %19, align 8, !tbaa !5
  %3905 = load i32, ptr %3904, align 4, !tbaa !9
  %3906 = load i32, ptr %94, align 4, !tbaa !9
  %3907 = sub nsw i32 %3905, %3906
  %3908 = load i32, ptr %59, align 4, !tbaa !9
  %3909 = icmp sgt i32 %3907, %3908
  %3910 = zext i1 %3909 to i32
  store i32 %3910, ptr %49, align 4, !tbaa !9
  %3911 = load ptr, ptr %31, align 8, !tbaa !5
  %3912 = load i32, ptr %71, align 4, !tbaa !9
  %3913 = sub nsw i32 1, %3912
  %3914 = load i32, ptr %94, align 4, !tbaa !9
  %3915 = mul nsw i32 %3913, %3914
  %3916 = load i32, ptr %65, align 4, !tbaa !9
  %3917 = add nsw i32 %3915, %3916
  %3918 = load i32, ptr %94, align 4, !tbaa !9
  %3919 = load i32, ptr %35, align 4, !tbaa !9
  %3920 = mul nsw i32 %3918, %3919
  %3921 = add nsw i32 %3917, %3920
  %3922 = sext i32 %3921 to i64
  %3923 = getelementptr inbounds %struct.complex, ptr %3911, i64 %3922
  call void @clarot_(ptr noundef @c_false, ptr noundef @c_true, ptr noundef %49, ptr noundef %76, ptr noundef %77, ptr noundef %84, ptr noundef %3923, ptr noundef %50, ptr noundef %67, ptr noundef %70)
  %3924 = load i32, ptr %94, align 4, !tbaa !9
  store i32 %3924, ptr %51, align 4, !tbaa !9
  br label %3925

3925:                                             ; preds = %3900
  %3926 = load i32, ptr %38, align 4, !tbaa !9
  %3927 = load i32, ptr %94, align 4, !tbaa !9
  %3928 = add nsw i32 %3927, %3926
  store i32 %3928, ptr %94, align 4, !tbaa !9
  br label %3698, !llvm.loop !44

3929:                                             ; preds = %3711
  br label %3930

3930:                                             ; preds = %3929
  %3931 = load i32, ptr %74, align 4, !tbaa !9
  %3932 = add nsw i32 %3931, -1
  store i32 %3932, ptr %74, align 4, !tbaa !9
  br label %3480, !llvm.loop !45

3933:                                             ; preds = %3480
  br label %3934

3934:                                             ; preds = %3933
  %3935 = load i32, ptr %59, align 4, !tbaa !9
  %3936 = add nsw i32 %3935, 1
  store i32 %3936, ptr %59, align 4, !tbaa !9
  br label %3472, !llvm.loop !46

3937:                                             ; preds = %3472
  %3938 = load i32, ptr %64, align 4, !tbaa !9
  %3939 = load i32, ptr %81, align 4, !tbaa !9
  %3940 = icmp ne i32 %3938, %3939
  br i1 %3940, label %3941, label %4141

3941:                                             ; preds = %3937
  %3942 = load i32, ptr %64, align 4, !tbaa !9
  %3943 = icmp ne i32 %3942, 4
  br i1 %3943, label %3944, label %4141

3944:                                             ; preds = %3941
  %3945 = load ptr, ptr %19, align 8, !tbaa !5
  %3946 = load i32, ptr %3945, align 4, !tbaa !9
  store i32 %3946, ptr %74, align 4, !tbaa !9
  br label %3947

3947:                                             ; preds = %4089, %3944
  %3948 = load i32, ptr %74, align 4, !tbaa !9
  %3949 = icmp sge i32 %3948, 1
  br i1 %3949, label %3950, label %4092

3950:                                             ; preds = %3947
  %3951 = load i32, ptr %85, align 4, !tbaa !9
  %3952 = load i32, ptr %71, align 4, !tbaa !9
  %3953 = load i32, ptr %74, align 4, !tbaa !9
  %3954 = mul nsw i32 %3952, %3953
  %3955 = sub nsw i32 %3951, %3954
  store i32 %3955, ptr %54, align 4, !tbaa !9
  %3956 = load i32, ptr %53, align 4, !tbaa !9
  %3957 = icmp ne i32 %3956, 0
  br i1 %3957, label %3958, label %4021

3958:                                             ; preds = %3950
  store i32 1, ptr %38, align 4, !tbaa !9
  %3959 = load i32, ptr %74, align 4, !tbaa !9
  %3960 = load i32, ptr %98, align 4, !tbaa !9
  %3961 = sub nsw i32 %3959, %3960
  store i32 %3961, ptr %40, align 4, !tbaa !9
  %3962 = load i32, ptr %38, align 4, !tbaa !9
  %3963 = load i32, ptr %40, align 4, !tbaa !9
  %3964 = icmp sge i32 %3962, %3963
  br i1 %3964, label %3965, label %3967

3965:                                             ; preds = %3958
  %3966 = load i32, ptr %38, align 4, !tbaa !9
  br label %3969

3967:                                             ; preds = %3958
  %3968 = load i32, ptr %40, align 4, !tbaa !9
  br label %3969

3969:                                             ; preds = %3967, %3965
  %3970 = phi i32 [ %3966, %3965 ], [ %3968, %3967 ]
  store i32 %3970, ptr %37, align 4, !tbaa !9
  %3971 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %3971, ptr %80, align 4, !tbaa !9
  br label %3972

3972:                                             ; preds = %4017, %3969
  %3973 = load i32, ptr %80, align 4, !tbaa !9
  %3974 = load i32, ptr %37, align 4, !tbaa !9
  %3975 = icmp sge i32 %3973, %3974
  br i1 %3975, label %3976, label %4020

3976:                                             ; preds = %3972
  %3977 = load i32, ptr %80, align 4, !tbaa !9
  %3978 = load i32, ptr %54, align 4, !tbaa !9
  %3979 = add nsw i32 %3977, %3978
  %3980 = load i32, ptr %74, align 4, !tbaa !9
  %3981 = load i32, ptr %35, align 4, !tbaa !9
  %3982 = mul nsw i32 %3980, %3981
  %3983 = add nsw i32 %3979, %3982
  store i32 %3983, ptr %38, align 4, !tbaa !9
  %3984 = load i32, ptr %74, align 4, !tbaa !9
  %3985 = load i32, ptr %71, align 4, !tbaa !9
  %3986 = load i32, ptr %80, align 4, !tbaa !9
  %3987 = mul nsw i32 %3985, %3986
  %3988 = sub nsw i32 %3984, %3987
  %3989 = load i32, ptr %65, align 4, !tbaa !9
  %3990 = add nsw i32 %3988, %3989
  %3991 = load i32, ptr %80, align 4, !tbaa !9
  %3992 = load i32, ptr %35, align 4, !tbaa !9
  %3993 = mul nsw i32 %3991, %3992
  %3994 = add nsw i32 %3990, %3993
  store i32 %3994, ptr %40, align 4, !tbaa !9
  %3995 = load ptr, ptr %31, align 8, !tbaa !5
  %3996 = load i32, ptr %40, align 4, !tbaa !9
  %3997 = sext i32 %3996 to i64
  %3998 = getelementptr inbounds %struct.complex, ptr %3995, i64 %3997
  %3999 = getelementptr inbounds %struct.complex, ptr %3998, i32 0, i32 0
  %4000 = load float, ptr %3999, align 4, !tbaa !16
  %4001 = load ptr, ptr %31, align 8, !tbaa !5
  %4002 = load i32, ptr %38, align 4, !tbaa !9
  %4003 = sext i32 %4002 to i64
  %4004 = getelementptr inbounds %struct.complex, ptr %4001, i64 %4003
  %4005 = getelementptr inbounds %struct.complex, ptr %4004, i32 0, i32 0
  store float %4000, ptr %4005, align 4, !tbaa !16
  %4006 = load ptr, ptr %31, align 8, !tbaa !5
  %4007 = load i32, ptr %40, align 4, !tbaa !9
  %4008 = sext i32 %4007 to i64
  %4009 = getelementptr inbounds %struct.complex, ptr %4006, i64 %4008
  %4010 = getelementptr inbounds %struct.complex, ptr %4009, i32 0, i32 1
  %4011 = load float, ptr %4010, align 4, !tbaa !18
  %4012 = load ptr, ptr %31, align 8, !tbaa !5
  %4013 = load i32, ptr %38, align 4, !tbaa !9
  %4014 = sext i32 %4013 to i64
  %4015 = getelementptr inbounds %struct.complex, ptr %4012, i64 %4014
  %4016 = getelementptr inbounds %struct.complex, ptr %4015, i32 0, i32 1
  store float %4011, ptr %4016, align 4, !tbaa !18
  br label %4017

4017:                                             ; preds = %3976
  %4018 = load i32, ptr %80, align 4, !tbaa !9
  %4019 = add nsw i32 %4018, -1
  store i32 %4019, ptr %80, align 4, !tbaa !9
  br label %3972, !llvm.loop !47

4020:                                             ; preds = %3972
  br label %4088

4021:                                             ; preds = %3950
  store i32 1, ptr %38, align 4, !tbaa !9
  %4022 = load i32, ptr %74, align 4, !tbaa !9
  %4023 = load i32, ptr %98, align 4, !tbaa !9
  %4024 = sub nsw i32 %4022, %4023
  store i32 %4024, ptr %40, align 4, !tbaa !9
  %4025 = load i32, ptr %38, align 4, !tbaa !9
  %4026 = load i32, ptr %40, align 4, !tbaa !9
  %4027 = icmp sge i32 %4025, %4026
  br i1 %4027, label %4028, label %4030

4028:                                             ; preds = %4021
  %4029 = load i32, ptr %38, align 4, !tbaa !9
  br label %4032

4030:                                             ; preds = %4021
  %4031 = load i32, ptr %40, align 4, !tbaa !9
  br label %4032

4032:                                             ; preds = %4030, %4028
  %4033 = phi i32 [ %4029, %4028 ], [ %4031, %4030 ]
  store i32 %4033, ptr %37, align 4, !tbaa !9
  %4034 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %4034, ptr %80, align 4, !tbaa !9
  br label %4035

4035:                                             ; preds = %4084, %4032
  %4036 = load i32, ptr %80, align 4, !tbaa !9
  %4037 = load i32, ptr %37, align 4, !tbaa !9
  %4038 = icmp sge i32 %4036, %4037
  br i1 %4038, label %4039, label %4087

4039:                                             ; preds = %4035
  %4040 = load i32, ptr %80, align 4, !tbaa !9
  %4041 = load i32, ptr %54, align 4, !tbaa !9
  %4042 = add nsw i32 %4040, %4041
  %4043 = load i32, ptr %74, align 4, !tbaa !9
  %4044 = load i32, ptr %35, align 4, !tbaa !9
  %4045 = mul nsw i32 %4043, %4044
  %4046 = add nsw i32 %4042, %4045
  store i32 %4046, ptr %38, align 4, !tbaa !9
  %4047 = load ptr, ptr %31, align 8, !tbaa !5
  %4048 = load i32, ptr %74, align 4, !tbaa !9
  %4049 = load i32, ptr %71, align 4, !tbaa !9
  %4050 = load i32, ptr %80, align 4, !tbaa !9
  %4051 = mul nsw i32 %4049, %4050
  %4052 = sub nsw i32 %4048, %4051
  %4053 = load i32, ptr %65, align 4, !tbaa !9
  %4054 = add nsw i32 %4052, %4053
  %4055 = load i32, ptr %80, align 4, !tbaa !9
  %4056 = load i32, ptr %35, align 4, !tbaa !9
  %4057 = mul nsw i32 %4055, %4056
  %4058 = add nsw i32 %4054, %4057
  %4059 = sext i32 %4058 to i64
  %4060 = getelementptr inbounds %struct.complex, ptr %4047, i64 %4059
  %4061 = call <2 x float> @Cf(ptr noundef %4060)
  store <2 x float> %4061, ptr %145, align 4
  %4062 = getelementptr inbounds { float, float }, ptr %145, i32 0, i32 0
  %4063 = load float, ptr %4062, align 4
  %4064 = getelementptr inbounds { float, float }, ptr %145, i32 0, i32 1
  %4065 = load float, ptr %4064, align 4
  %4066 = fneg float %4065
  %4067 = call ptr @_pCf(ptr noundef %46)
  %4068 = getelementptr inbounds { float, float }, ptr %4067, i32 0, i32 0
  %4069 = getelementptr inbounds { float, float }, ptr %4067, i32 0, i32 1
  store float %4063, ptr %4068, align 4
  store float %4066, ptr %4069, align 4
  %4070 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %4071 = load float, ptr %4070, align 4, !tbaa !16
  %4072 = load ptr, ptr %31, align 8, !tbaa !5
  %4073 = load i32, ptr %38, align 4, !tbaa !9
  %4074 = sext i32 %4073 to i64
  %4075 = getelementptr inbounds %struct.complex, ptr %4072, i64 %4074
  %4076 = getelementptr inbounds %struct.complex, ptr %4075, i32 0, i32 0
  store float %4071, ptr %4076, align 4, !tbaa !16
  %4077 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %4078 = load float, ptr %4077, align 4, !tbaa !18
  %4079 = load ptr, ptr %31, align 8, !tbaa !5
  %4080 = load i32, ptr %38, align 4, !tbaa !9
  %4081 = sext i32 %4080 to i64
  %4082 = getelementptr inbounds %struct.complex, ptr %4079, i64 %4081
  %4083 = getelementptr inbounds %struct.complex, ptr %4082, i32 0, i32 1
  store float %4078, ptr %4083, align 4, !tbaa !18
  br label %4084

4084:                                             ; preds = %4039
  %4085 = load i32, ptr %80, align 4, !tbaa !9
  %4086 = add nsw i32 %4085, -1
  store i32 %4086, ptr %80, align 4, !tbaa !9
  br label %4035, !llvm.loop !48

4087:                                             ; preds = %4035
  br label %4088

4088:                                             ; preds = %4087, %4020
  br label %4089

4089:                                             ; preds = %4088
  %4090 = load i32, ptr %74, align 4, !tbaa !9
  %4091 = add nsw i32 %4090, -1
  store i32 %4091, ptr %74, align 4, !tbaa !9
  br label %3947, !llvm.loop !49

4092:                                             ; preds = %3947
  %4093 = load i32, ptr %64, align 4, !tbaa !9
  %4094 = icmp eq i32 %4093, 6
  br i1 %4094, label %4095, label %4134

4095:                                             ; preds = %4092
  %4096 = load i32, ptr %98, align 4, !tbaa !9
  store i32 %4096, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %4097

4097:                                             ; preds = %4130, %4095
  %4098 = load i32, ptr %74, align 4, !tbaa !9
  %4099 = load i32, ptr %37, align 4, !tbaa !9
  %4100 = icmp sle i32 %4098, %4099
  br i1 %4100, label %4101, label %4133

4101:                                             ; preds = %4097
  %4102 = load i32, ptr %98, align 4, !tbaa !9
  %4103 = add nsw i32 %4102, 1
  %4104 = load i32, ptr %74, align 4, !tbaa !9
  %4105 = sub nsw i32 %4103, %4104
  store i32 %4105, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %80, align 4, !tbaa !9
  br label %4106

4106:                                             ; preds = %4126, %4101
  %4107 = load i32, ptr %80, align 4, !tbaa !9
  %4108 = load i32, ptr %38, align 4, !tbaa !9
  %4109 = icmp sle i32 %4107, %4108
  br i1 %4109, label %4110, label %4129

4110:                                             ; preds = %4106
  %4111 = load i32, ptr %80, align 4, !tbaa !9
  %4112 = load i32, ptr %74, align 4, !tbaa !9
  %4113 = load i32, ptr %35, align 4, !tbaa !9
  %4114 = mul nsw i32 %4112, %4113
  %4115 = add nsw i32 %4111, %4114
  store i32 %4115, ptr %40, align 4, !tbaa !9
  %4116 = load ptr, ptr %31, align 8, !tbaa !5
  %4117 = load i32, ptr %40, align 4, !tbaa !9
  %4118 = sext i32 %4117 to i64
  %4119 = getelementptr inbounds %struct.complex, ptr %4116, i64 %4118
  %4120 = getelementptr inbounds %struct.complex, ptr %4119, i32 0, i32 0
  store float 0.000000e+00, ptr %4120, align 4, !tbaa !16
  %4121 = load ptr, ptr %31, align 8, !tbaa !5
  %4122 = load i32, ptr %40, align 4, !tbaa !9
  %4123 = sext i32 %4122 to i64
  %4124 = getelementptr inbounds %struct.complex, ptr %4121, i64 %4123
  %4125 = getelementptr inbounds %struct.complex, ptr %4124, i32 0, i32 1
  store float 0.000000e+00, ptr %4125, align 4, !tbaa !18
  br label %4126

4126:                                             ; preds = %4110
  %4127 = load i32, ptr %80, align 4, !tbaa !9
  %4128 = add nsw i32 %4127, 1
  store i32 %4128, ptr %80, align 4, !tbaa !9
  br label %4106, !llvm.loop !50

4129:                                             ; preds = %4106
  br label %4130

4130:                                             ; preds = %4129
  %4131 = load i32, ptr %74, align 4, !tbaa !9
  %4132 = add nsw i32 %4131, 1
  store i32 %4132, ptr %74, align 4, !tbaa !9
  br label %4097, !llvm.loop !51

4133:                                             ; preds = %4097
  br label %4134

4134:                                             ; preds = %4133, %4092
  %4135 = load i32, ptr %81, align 4, !tbaa !9
  %4136 = icmp eq i32 %4135, 5
  br i1 %4136, label %4137, label %4139

4137:                                             ; preds = %4134
  %4138 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %4138, ptr %81, align 4, !tbaa !9
  br label %4140

4139:                                             ; preds = %4134
  store i32 0, ptr %81, align 4, !tbaa !9
  br label %4140

4140:                                             ; preds = %4139, %4137
  br label %4141

4141:                                             ; preds = %4140, %3941, %3937
  br label %4142

4142:                                             ; preds = %4141, %3418
  %4143 = load i32, ptr %53, align 4, !tbaa !9
  %4144 = icmp ne i32 %4143, 0
  br i1 %4144, label %4196, label %4145

4145:                                             ; preds = %4142
  %4146 = load ptr, ptr %19, align 8, !tbaa !5
  %4147 = load i32, ptr %4146, align 4, !tbaa !9
  store i32 %4147, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %4148

4148:                                             ; preds = %4192, %4145
  %4149 = load i32, ptr %74, align 4, !tbaa !9
  %4150 = load i32, ptr %37, align 4, !tbaa !9
  %4151 = icmp sle i32 %4149, %4150
  br i1 %4151, label %4152, label %4195

4152:                                             ; preds = %4148
  %4153 = load i32, ptr %85, align 4, !tbaa !9
  %4154 = load i32, ptr %71, align 4, !tbaa !9
  %4155 = sub nsw i32 1, %4154
  %4156 = load i32, ptr %74, align 4, !tbaa !9
  %4157 = mul nsw i32 %4155, %4156
  %4158 = add nsw i32 %4153, %4157
  store i32 %4158, ptr %54, align 4, !tbaa !9
  %4159 = load i32, ptr %54, align 4, !tbaa !9
  %4160 = load i32, ptr %74, align 4, !tbaa !9
  %4161 = load i32, ptr %35, align 4, !tbaa !9
  %4162 = mul nsw i32 %4160, %4161
  %4163 = add nsw i32 %4159, %4162
  store i32 %4163, ptr %38, align 4, !tbaa !9
  %4164 = load i32, ptr %54, align 4, !tbaa !9
  %4165 = load i32, ptr %74, align 4, !tbaa !9
  %4166 = load i32, ptr %35, align 4, !tbaa !9
  %4167 = mul nsw i32 %4165, %4166
  %4168 = add nsw i32 %4164, %4167
  store i32 %4168, ptr %40, align 4, !tbaa !9
  %4169 = load ptr, ptr %31, align 8, !tbaa !5
  %4170 = load i32, ptr %40, align 4, !tbaa !9
  %4171 = sext i32 %4170 to i64
  %4172 = getelementptr inbounds %struct.complex, ptr %4169, i64 %4171
  %4173 = getelementptr inbounds %struct.complex, ptr %4172, i32 0, i32 0
  %4174 = load float, ptr %4173, align 4, !tbaa !16
  store float %4174, ptr %43, align 4, !tbaa !11
  %4175 = load float, ptr %43, align 4, !tbaa !11
  %4176 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %4175, ptr %4176, align 4, !tbaa !16
  %4177 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %4177, align 4, !tbaa !18
  %4178 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %4179 = load float, ptr %4178, align 4, !tbaa !16
  %4180 = load ptr, ptr %31, align 8, !tbaa !5
  %4181 = load i32, ptr %38, align 4, !tbaa !9
  %4182 = sext i32 %4181 to i64
  %4183 = getelementptr inbounds %struct.complex, ptr %4180, i64 %4182
  %4184 = getelementptr inbounds %struct.complex, ptr %4183, i32 0, i32 0
  store float %4179, ptr %4184, align 4, !tbaa !16
  %4185 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %4186 = load float, ptr %4185, align 4, !tbaa !18
  %4187 = load ptr, ptr %31, align 8, !tbaa !5
  %4188 = load i32, ptr %38, align 4, !tbaa !9
  %4189 = sext i32 %4188 to i64
  %4190 = getelementptr inbounds %struct.complex, ptr %4187, i64 %4189
  %4191 = getelementptr inbounds %struct.complex, ptr %4190, i32 0, i32 1
  store float %4186, ptr %4191, align 4, !tbaa !18
  br label %4192

4192:                                             ; preds = %4152
  %4193 = load i32, ptr %74, align 4, !tbaa !9
  %4194 = add nsw i32 %4193, 1
  store i32 %4194, ptr %74, align 4, !tbaa !9
  br label %4148, !llvm.loop !52

4195:                                             ; preds = %4148
  br label %4196

4196:                                             ; preds = %4195, %4142
  br label %4197

4197:                                             ; preds = %4196, %2638
  br label %4249

4198:                                             ; preds = %811
  %4199 = load i32, ptr %55, align 4, !tbaa !9
  %4200 = icmp eq i32 %4199, 1
  br i1 %4200, label %4201, label %4213

4201:                                             ; preds = %4198
  %4202 = load ptr, ptr %23, align 8, !tbaa !5
  %4203 = getelementptr inbounds float, ptr %4202, i64 1
  %4204 = load ptr, ptr %31, align 8, !tbaa !5
  %4205 = load i32, ptr %36, align 4, !tbaa !9
  %4206 = sext i32 %4205 to i64
  %4207 = getelementptr inbounds %struct.complex, ptr %4204, i64 %4206
  %4208 = load ptr, ptr %32, align 8, !tbaa !5
  %4209 = load ptr, ptr %21, align 8, !tbaa !5
  %4210 = getelementptr inbounds i32, ptr %4209, i64 1
  %4211 = load ptr, ptr %33, align 8, !tbaa !5
  %4212 = getelementptr inbounds %struct.complex, ptr %4211, i64 1
  call void @clagge_(ptr noundef %82, ptr noundef %75, ptr noundef %95, ptr noundef %98, ptr noundef %4203, ptr noundef %4207, ptr noundef %4208, ptr noundef %4210, ptr noundef %4212, ptr noundef %66)
  br label %4243

4213:                                             ; preds = %4198
  %4214 = load i32, ptr %53, align 4, !tbaa !9
  %4215 = icmp ne i32 %4214, 0
  br i1 %4215, label %4216, label %4229

4216:                                             ; preds = %4213
  %4217 = load ptr, ptr %18, align 8, !tbaa !5
  %4218 = load ptr, ptr %23, align 8, !tbaa !5
  %4219 = getelementptr inbounds float, ptr %4218, i64 1
  %4220 = load ptr, ptr %31, align 8, !tbaa !5
  %4221 = load i32, ptr %36, align 4, !tbaa !9
  %4222 = sext i32 %4221 to i64
  %4223 = getelementptr inbounds %struct.complex, ptr %4220, i64 %4222
  %4224 = load ptr, ptr %32, align 8, !tbaa !5
  %4225 = load ptr, ptr %21, align 8, !tbaa !5
  %4226 = getelementptr inbounds i32, ptr %4225, i64 1
  %4227 = load ptr, ptr %33, align 8, !tbaa !5
  %4228 = getelementptr inbounds %struct.complex, ptr %4227, i64 1
  call void @clagsy_(ptr noundef %4217, ptr noundef %95, ptr noundef %4219, ptr noundef %4223, ptr noundef %4224, ptr noundef %4226, ptr noundef %4228, ptr noundef %66)
  br label %4242

4229:                                             ; preds = %4213
  %4230 = load ptr, ptr %18, align 8, !tbaa !5
  %4231 = load ptr, ptr %23, align 8, !tbaa !5
  %4232 = getelementptr inbounds float, ptr %4231, i64 1
  %4233 = load ptr, ptr %31, align 8, !tbaa !5
  %4234 = load i32, ptr %36, align 4, !tbaa !9
  %4235 = sext i32 %4234 to i64
  %4236 = getelementptr inbounds %struct.complex, ptr %4233, i64 %4235
  %4237 = load ptr, ptr %32, align 8, !tbaa !5
  %4238 = load ptr, ptr %21, align 8, !tbaa !5
  %4239 = getelementptr inbounds i32, ptr %4238, i64 1
  %4240 = load ptr, ptr %33, align 8, !tbaa !5
  %4241 = getelementptr inbounds %struct.complex, ptr %4240, i64 1
  call void @claghe_(ptr noundef %4230, ptr noundef %95, ptr noundef %4232, ptr noundef %4236, ptr noundef %4237, ptr noundef %4239, ptr noundef %4241, ptr noundef %66)
  br label %4242

4242:                                             ; preds = %4229, %4216
  br label %4243

4243:                                             ; preds = %4242, %4201
  %4244 = load i32, ptr %66, align 4, !tbaa !9
  %4245 = icmp ne i32 %4244, 0
  br i1 %4245, label %4246, label %4248

4246:                                             ; preds = %4243
  %4247 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 3, ptr %4247, align 4, !tbaa !9
  store i32 1, ptr %99, align 4
  br label %4785

4248:                                             ; preds = %4243
  br label %4249

4249:                                             ; preds = %4248, %4197
  br label %4250

4250:                                             ; preds = %4249, %810
  %4251 = load i32, ptr %64, align 4, !tbaa !9
  %4252 = load i32, ptr %81, align 4, !tbaa !9
  %4253 = icmp ne i32 %4251, %4252
  br i1 %4253, label %4254, label %4784

4254:                                             ; preds = %4250
  %4255 = load i32, ptr %64, align 4, !tbaa !9
  %4256 = icmp eq i32 %4255, 1
  br i1 %4256, label %4257, label %4297

4257:                                             ; preds = %4254
  %4258 = load ptr, ptr %18, align 8, !tbaa !5
  %4259 = load i32, ptr %4258, align 4, !tbaa !9
  store i32 %4259, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %4260

4260:                                             ; preds = %4293, %4257
  %4261 = load i32, ptr %58, align 4, !tbaa !9
  %4262 = load i32, ptr %37, align 4, !tbaa !9
  %4263 = icmp sle i32 %4261, %4262
  br i1 %4263, label %4264, label %4296

4264:                                             ; preds = %4260
  %4265 = load ptr, ptr %18, align 8, !tbaa !5
  %4266 = load i32, ptr %4265, align 4, !tbaa !9
  store i32 %4266, ptr %38, align 4, !tbaa !9
  %4267 = load i32, ptr %58, align 4, !tbaa !9
  %4268 = add nsw i32 %4267, 1
  store i32 %4268, ptr %57, align 4, !tbaa !9
  br label %4269

4269:                                             ; preds = %4289, %4264
  %4270 = load i32, ptr %57, align 4, !tbaa !9
  %4271 = load i32, ptr %38, align 4, !tbaa !9
  %4272 = icmp sle i32 %4270, %4271
  br i1 %4272, label %4273, label %4292

4273:                                             ; preds = %4269
  %4274 = load i32, ptr %57, align 4, !tbaa !9
  %4275 = load i32, ptr %58, align 4, !tbaa !9
  %4276 = load i32, ptr %35, align 4, !tbaa !9
  %4277 = mul nsw i32 %4275, %4276
  %4278 = add nsw i32 %4274, %4277
  store i32 %4278, ptr %40, align 4, !tbaa !9
  %4279 = load ptr, ptr %31, align 8, !tbaa !5
  %4280 = load i32, ptr %40, align 4, !tbaa !9
  %4281 = sext i32 %4280 to i64
  %4282 = getelementptr inbounds %struct.complex, ptr %4279, i64 %4281
  %4283 = getelementptr inbounds %struct.complex, ptr %4282, i32 0, i32 0
  store float 0.000000e+00, ptr %4283, align 4, !tbaa !16
  %4284 = load ptr, ptr %31, align 8, !tbaa !5
  %4285 = load i32, ptr %40, align 4, !tbaa !9
  %4286 = sext i32 %4285 to i64
  %4287 = getelementptr inbounds %struct.complex, ptr %4284, i64 %4286
  %4288 = getelementptr inbounds %struct.complex, ptr %4287, i32 0, i32 1
  store float 0.000000e+00, ptr %4288, align 4, !tbaa !18
  br label %4289

4289:                                             ; preds = %4273
  %4290 = load i32, ptr %57, align 4, !tbaa !9
  %4291 = add nsw i32 %4290, 1
  store i32 %4291, ptr %57, align 4, !tbaa !9
  br label %4269, !llvm.loop !53

4292:                                             ; preds = %4269
  br label %4293

4293:                                             ; preds = %4292
  %4294 = load i32, ptr %58, align 4, !tbaa !9
  %4295 = add nsw i32 %4294, 1
  store i32 %4295, ptr %58, align 4, !tbaa !9
  br label %4260, !llvm.loop !54

4296:                                             ; preds = %4260
  br label %4635

4297:                                             ; preds = %4254
  %4298 = load i32, ptr %64, align 4, !tbaa !9
  %4299 = icmp eq i32 %4298, 2
  br i1 %4299, label %4300, label %4338

4300:                                             ; preds = %4297
  %4301 = load ptr, ptr %18, align 8, !tbaa !5
  %4302 = load i32, ptr %4301, align 4, !tbaa !9
  store i32 %4302, ptr %37, align 4, !tbaa !9
  store i32 2, ptr %58, align 4, !tbaa !9
  br label %4303

4303:                                             ; preds = %4334, %4300
  %4304 = load i32, ptr %58, align 4, !tbaa !9
  %4305 = load i32, ptr %37, align 4, !tbaa !9
  %4306 = icmp sle i32 %4304, %4305
  br i1 %4306, label %4307, label %4337

4307:                                             ; preds = %4303
  %4308 = load i32, ptr %58, align 4, !tbaa !9
  %4309 = sub nsw i32 %4308, 1
  store i32 %4309, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %4310

4310:                                             ; preds = %4330, %4307
  %4311 = load i32, ptr %57, align 4, !tbaa !9
  %4312 = load i32, ptr %38, align 4, !tbaa !9
  %4313 = icmp sle i32 %4311, %4312
  br i1 %4313, label %4314, label %4333

4314:                                             ; preds = %4310
  %4315 = load i32, ptr %57, align 4, !tbaa !9
  %4316 = load i32, ptr %58, align 4, !tbaa !9
  %4317 = load i32, ptr %35, align 4, !tbaa !9
  %4318 = mul nsw i32 %4316, %4317
  %4319 = add nsw i32 %4315, %4318
  store i32 %4319, ptr %40, align 4, !tbaa !9
  %4320 = load ptr, ptr %31, align 8, !tbaa !5
  %4321 = load i32, ptr %40, align 4, !tbaa !9
  %4322 = sext i32 %4321 to i64
  %4323 = getelementptr inbounds %struct.complex, ptr %4320, i64 %4322
  %4324 = getelementptr inbounds %struct.complex, ptr %4323, i32 0, i32 0
  store float 0.000000e+00, ptr %4324, align 4, !tbaa !16
  %4325 = load ptr, ptr %31, align 8, !tbaa !5
  %4326 = load i32, ptr %40, align 4, !tbaa !9
  %4327 = sext i32 %4326 to i64
  %4328 = getelementptr inbounds %struct.complex, ptr %4325, i64 %4327
  %4329 = getelementptr inbounds %struct.complex, ptr %4328, i32 0, i32 1
  store float 0.000000e+00, ptr %4329, align 4, !tbaa !18
  br label %4330

4330:                                             ; preds = %4314
  %4331 = load i32, ptr %57, align 4, !tbaa !9
  %4332 = add nsw i32 %4331, 1
  store i32 %4332, ptr %57, align 4, !tbaa !9
  br label %4310, !llvm.loop !55

4333:                                             ; preds = %4310
  br label %4334

4334:                                             ; preds = %4333
  %4335 = load i32, ptr %58, align 4, !tbaa !9
  %4336 = add nsw i32 %4335, 1
  store i32 %4336, ptr %58, align 4, !tbaa !9
  br label %4303, !llvm.loop !56

4337:                                             ; preds = %4303
  br label %4634

4338:                                             ; preds = %4297
  %4339 = load i32, ptr %64, align 4, !tbaa !9
  %4340 = icmp eq i32 %4339, 3
  br i1 %4340, label %4341, label %4405

4341:                                             ; preds = %4338
  store i32 1, ptr %51, align 4, !tbaa !9
  store i32 0, ptr %54, align 4, !tbaa !9
  %4342 = load ptr, ptr %18, align 8, !tbaa !5
  %4343 = load i32, ptr %4342, align 4, !tbaa !9
  store i32 %4343, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %4344

4344:                                             ; preds = %4401, %4341
  %4345 = load i32, ptr %58, align 4, !tbaa !9
  %4346 = load i32, ptr %37, align 4, !tbaa !9
  %4347 = icmp sle i32 %4345, %4346
  br i1 %4347, label %4348, label %4404

4348:                                             ; preds = %4344
  %4349 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %4349, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %4350

4350:                                             ; preds = %4397, %4348
  %4351 = load i32, ptr %57, align 4, !tbaa !9
  %4352 = load i32, ptr %38, align 4, !tbaa !9
  %4353 = icmp sle i32 %4351, %4352
  br i1 %4353, label %4354, label %4400

4354:                                             ; preds = %4350
  %4355 = load i32, ptr %54, align 4, !tbaa !9
  %4356 = add nsw i32 %4355, 1
  store i32 %4356, ptr %54, align 4, !tbaa !9
  %4357 = load i32, ptr %54, align 4, !tbaa !9
  %4358 = load ptr, ptr %32, align 8, !tbaa !5
  %4359 = load i32, ptr %4358, align 4, !tbaa !9
  %4360 = icmp sgt i32 %4357, %4359
  br i1 %4360, label %4361, label %4364

4361:                                             ; preds = %4354
  store i32 1, ptr %54, align 4, !tbaa !9
  %4362 = load i32, ptr %51, align 4, !tbaa !9
  %4363 = add nsw i32 %4362, 1
  store i32 %4363, ptr %51, align 4, !tbaa !9
  br label %4364

4364:                                             ; preds = %4361, %4354
  %4365 = load i32, ptr %54, align 4, !tbaa !9
  %4366 = load i32, ptr %51, align 4, !tbaa !9
  %4367 = load i32, ptr %35, align 4, !tbaa !9
  %4368 = mul nsw i32 %4366, %4367
  %4369 = add nsw i32 %4365, %4368
  store i32 %4369, ptr %40, align 4, !tbaa !9
  %4370 = load i32, ptr %57, align 4, !tbaa !9
  %4371 = load i32, ptr %58, align 4, !tbaa !9
  %4372 = load i32, ptr %35, align 4, !tbaa !9
  %4373 = mul nsw i32 %4371, %4372
  %4374 = add nsw i32 %4370, %4373
  store i32 %4374, ptr %39, align 4, !tbaa !9
  %4375 = load ptr, ptr %31, align 8, !tbaa !5
  %4376 = load i32, ptr %39, align 4, !tbaa !9
  %4377 = sext i32 %4376 to i64
  %4378 = getelementptr inbounds %struct.complex, ptr %4375, i64 %4377
  %4379 = getelementptr inbounds %struct.complex, ptr %4378, i32 0, i32 0
  %4380 = load float, ptr %4379, align 4, !tbaa !16
  %4381 = load ptr, ptr %31, align 8, !tbaa !5
  %4382 = load i32, ptr %40, align 4, !tbaa !9
  %4383 = sext i32 %4382 to i64
  %4384 = getelementptr inbounds %struct.complex, ptr %4381, i64 %4383
  %4385 = getelementptr inbounds %struct.complex, ptr %4384, i32 0, i32 0
  store float %4380, ptr %4385, align 4, !tbaa !16
  %4386 = load ptr, ptr %31, align 8, !tbaa !5
  %4387 = load i32, ptr %39, align 4, !tbaa !9
  %4388 = sext i32 %4387 to i64
  %4389 = getelementptr inbounds %struct.complex, ptr %4386, i64 %4388
  %4390 = getelementptr inbounds %struct.complex, ptr %4389, i32 0, i32 1
  %4391 = load float, ptr %4390, align 4, !tbaa !18
  %4392 = load ptr, ptr %31, align 8, !tbaa !5
  %4393 = load i32, ptr %40, align 4, !tbaa !9
  %4394 = sext i32 %4393 to i64
  %4395 = getelementptr inbounds %struct.complex, ptr %4392, i64 %4394
  %4396 = getelementptr inbounds %struct.complex, ptr %4395, i32 0, i32 1
  store float %4391, ptr %4396, align 4, !tbaa !18
  br label %4397

4397:                                             ; preds = %4364
  %4398 = load i32, ptr %57, align 4, !tbaa !9
  %4399 = add nsw i32 %4398, 1
  store i32 %4399, ptr %57, align 4, !tbaa !9
  br label %4350, !llvm.loop !57

4400:                                             ; preds = %4350
  br label %4401

4401:                                             ; preds = %4400
  %4402 = load i32, ptr %58, align 4, !tbaa !9
  %4403 = add nsw i32 %4402, 1
  store i32 %4403, ptr %58, align 4, !tbaa !9
  br label %4344, !llvm.loop !58

4404:                                             ; preds = %4344
  br label %4633

4405:                                             ; preds = %4338
  %4406 = load i32, ptr %64, align 4, !tbaa !9
  %4407 = icmp eq i32 %4406, 4
  br i1 %4407, label %4408, label %4474

4408:                                             ; preds = %4405
  store i32 1, ptr %51, align 4, !tbaa !9
  store i32 0, ptr %54, align 4, !tbaa !9
  %4409 = load ptr, ptr %18, align 8, !tbaa !5
  %4410 = load i32, ptr %4409, align 4, !tbaa !9
  store i32 %4410, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %4411

4411:                                             ; preds = %4470, %4408
  %4412 = load i32, ptr %58, align 4, !tbaa !9
  %4413 = load i32, ptr %37, align 4, !tbaa !9
  %4414 = icmp sle i32 %4412, %4413
  br i1 %4414, label %4415, label %4473

4415:                                             ; preds = %4411
  %4416 = load ptr, ptr %18, align 8, !tbaa !5
  %4417 = load i32, ptr %4416, align 4, !tbaa !9
  store i32 %4417, ptr %38, align 4, !tbaa !9
  %4418 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %4418, ptr %57, align 4, !tbaa !9
  br label %4419

4419:                                             ; preds = %4466, %4415
  %4420 = load i32, ptr %57, align 4, !tbaa !9
  %4421 = load i32, ptr %38, align 4, !tbaa !9
  %4422 = icmp sle i32 %4420, %4421
  br i1 %4422, label %4423, label %4469

4423:                                             ; preds = %4419
  %4424 = load i32, ptr %54, align 4, !tbaa !9
  %4425 = add nsw i32 %4424, 1
  store i32 %4425, ptr %54, align 4, !tbaa !9
  %4426 = load i32, ptr %54, align 4, !tbaa !9
  %4427 = load ptr, ptr %32, align 8, !tbaa !5
  %4428 = load i32, ptr %4427, align 4, !tbaa !9
  %4429 = icmp sgt i32 %4426, %4428
  br i1 %4429, label %4430, label %4433

4430:                                             ; preds = %4423
  store i32 1, ptr %54, align 4, !tbaa !9
  %4431 = load i32, ptr %51, align 4, !tbaa !9
  %4432 = add nsw i32 %4431, 1
  store i32 %4432, ptr %51, align 4, !tbaa !9
  br label %4433

4433:                                             ; preds = %4430, %4423
  %4434 = load i32, ptr %54, align 4, !tbaa !9
  %4435 = load i32, ptr %51, align 4, !tbaa !9
  %4436 = load i32, ptr %35, align 4, !tbaa !9
  %4437 = mul nsw i32 %4435, %4436
  %4438 = add nsw i32 %4434, %4437
  store i32 %4438, ptr %40, align 4, !tbaa !9
  %4439 = load i32, ptr %57, align 4, !tbaa !9
  %4440 = load i32, ptr %58, align 4, !tbaa !9
  %4441 = load i32, ptr %35, align 4, !tbaa !9
  %4442 = mul nsw i32 %4440, %4441
  %4443 = add nsw i32 %4439, %4442
  store i32 %4443, ptr %39, align 4, !tbaa !9
  %4444 = load ptr, ptr %31, align 8, !tbaa !5
  %4445 = load i32, ptr %39, align 4, !tbaa !9
  %4446 = sext i32 %4445 to i64
  %4447 = getelementptr inbounds %struct.complex, ptr %4444, i64 %4446
  %4448 = getelementptr inbounds %struct.complex, ptr %4447, i32 0, i32 0
  %4449 = load float, ptr %4448, align 4, !tbaa !16
  %4450 = load ptr, ptr %31, align 8, !tbaa !5
  %4451 = load i32, ptr %40, align 4, !tbaa !9
  %4452 = sext i32 %4451 to i64
  %4453 = getelementptr inbounds %struct.complex, ptr %4450, i64 %4452
  %4454 = getelementptr inbounds %struct.complex, ptr %4453, i32 0, i32 0
  store float %4449, ptr %4454, align 4, !tbaa !16
  %4455 = load ptr, ptr %31, align 8, !tbaa !5
  %4456 = load i32, ptr %39, align 4, !tbaa !9
  %4457 = sext i32 %4456 to i64
  %4458 = getelementptr inbounds %struct.complex, ptr %4455, i64 %4457
  %4459 = getelementptr inbounds %struct.complex, ptr %4458, i32 0, i32 1
  %4460 = load float, ptr %4459, align 4, !tbaa !18
  %4461 = load ptr, ptr %31, align 8, !tbaa !5
  %4462 = load i32, ptr %40, align 4, !tbaa !9
  %4463 = sext i32 %4462 to i64
  %4464 = getelementptr inbounds %struct.complex, ptr %4461, i64 %4463
  %4465 = getelementptr inbounds %struct.complex, ptr %4464, i32 0, i32 1
  store float %4460, ptr %4465, align 4, !tbaa !18
  br label %4466

4466:                                             ; preds = %4433
  %4467 = load i32, ptr %57, align 4, !tbaa !9
  %4468 = add nsw i32 %4467, 1
  store i32 %4468, ptr %57, align 4, !tbaa !9
  br label %4419, !llvm.loop !59

4469:                                             ; preds = %4419
  br label %4470

4470:                                             ; preds = %4469
  %4471 = load i32, ptr %58, align 4, !tbaa !9
  %4472 = add nsw i32 %4471, 1
  store i32 %4472, ptr %58, align 4, !tbaa !9
  br label %4411, !llvm.loop !60

4473:                                             ; preds = %4411
  br label %4632

4474:                                             ; preds = %4405
  %4475 = load i32, ptr %64, align 4, !tbaa !9
  %4476 = icmp sge i32 %4475, 5
  br i1 %4476, label %4477, label %4631

4477:                                             ; preds = %4474
  %4478 = load i32, ptr %64, align 4, !tbaa !9
  %4479 = icmp eq i32 %4478, 5
  br i1 %4479, label %4480, label %4481

4480:                                             ; preds = %4477
  store i32 0, ptr %98, align 4, !tbaa !9
  br label %4481

4481:                                             ; preds = %4480, %4477
  %4482 = load i32, ptr %64, align 4, !tbaa !9
  %4483 = icmp eq i32 %4482, 6
  br i1 %4483, label %4484, label %4485

4484:                                             ; preds = %4481
  store i32 0, ptr %95, align 4, !tbaa !9
  br label %4485

4485:                                             ; preds = %4484, %4481
  %4486 = load i32, ptr %98, align 4, !tbaa !9
  store i32 %4486, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %4487

4487:                                             ; preds = %4551, %4485
  %4488 = load i32, ptr %58, align 4, !tbaa !9
  %4489 = load i32, ptr %37, align 4, !tbaa !9
  %4490 = icmp sle i32 %4488, %4489
  br i1 %4490, label %4491, label %4554

4491:                                             ; preds = %4487
  %4492 = load i32, ptr %58, align 4, !tbaa !9
  %4493 = load i32, ptr %95, align 4, !tbaa !9
  %4494 = add nsw i32 %4492, %4493
  store i32 %4494, ptr %38, align 4, !tbaa !9
  %4495 = load i32, ptr %38, align 4, !tbaa !9
  %4496 = load ptr, ptr %18, align 8, !tbaa !5
  %4497 = load i32, ptr %4496, align 4, !tbaa !9
  %4498 = icmp sle i32 %4495, %4497
  br i1 %4498, label %4499, label %4501

4499:                                             ; preds = %4491
  %4500 = load i32, ptr %38, align 4, !tbaa !9
  br label %4504

4501:                                             ; preds = %4491
  %4502 = load ptr, ptr %18, align 8, !tbaa !5
  %4503 = load i32, ptr %4502, align 4, !tbaa !9
  br label %4504

4504:                                             ; preds = %4501, %4499
  %4505 = phi i32 [ %4500, %4499 ], [ %4503, %4501 ]
  store i32 %4505, ptr %57, align 4, !tbaa !9
  br label %4506

4506:                                             ; preds = %4547, %4504
  %4507 = load i32, ptr %57, align 4, !tbaa !9
  %4508 = icmp sge i32 %4507, 1
  br i1 %4508, label %4509, label %4550

4509:                                             ; preds = %4506
  %4510 = load i32, ptr %57, align 4, !tbaa !9
  %4511 = load i32, ptr %58, align 4, !tbaa !9
  %4512 = sub nsw i32 %4510, %4511
  %4513 = load i32, ptr %98, align 4, !tbaa !9
  %4514 = add nsw i32 %4512, %4513
  %4515 = add nsw i32 %4514, 1
  %4516 = load i32, ptr %58, align 4, !tbaa !9
  %4517 = load i32, ptr %35, align 4, !tbaa !9
  %4518 = mul nsw i32 %4516, %4517
  %4519 = add nsw i32 %4515, %4518
  store i32 %4519, ptr %38, align 4, !tbaa !9
  %4520 = load i32, ptr %57, align 4, !tbaa !9
  %4521 = load i32, ptr %58, align 4, !tbaa !9
  %4522 = load i32, ptr %35, align 4, !tbaa !9
  %4523 = mul nsw i32 %4521, %4522
  %4524 = add nsw i32 %4520, %4523
  store i32 %4524, ptr %40, align 4, !tbaa !9
  %4525 = load ptr, ptr %31, align 8, !tbaa !5
  %4526 = load i32, ptr %40, align 4, !tbaa !9
  %4527 = sext i32 %4526 to i64
  %4528 = getelementptr inbounds %struct.complex, ptr %4525, i64 %4527
  %4529 = getelementptr inbounds %struct.complex, ptr %4528, i32 0, i32 0
  %4530 = load float, ptr %4529, align 4, !tbaa !16
  %4531 = load ptr, ptr %31, align 8, !tbaa !5
  %4532 = load i32, ptr %38, align 4, !tbaa !9
  %4533 = sext i32 %4532 to i64
  %4534 = getelementptr inbounds %struct.complex, ptr %4531, i64 %4533
  %4535 = getelementptr inbounds %struct.complex, ptr %4534, i32 0, i32 0
  store float %4530, ptr %4535, align 4, !tbaa !16
  %4536 = load ptr, ptr %31, align 8, !tbaa !5
  %4537 = load i32, ptr %40, align 4, !tbaa !9
  %4538 = sext i32 %4537 to i64
  %4539 = getelementptr inbounds %struct.complex, ptr %4536, i64 %4538
  %4540 = getelementptr inbounds %struct.complex, ptr %4539, i32 0, i32 1
  %4541 = load float, ptr %4540, align 4, !tbaa !18
  %4542 = load ptr, ptr %31, align 8, !tbaa !5
  %4543 = load i32, ptr %38, align 4, !tbaa !9
  %4544 = sext i32 %4543 to i64
  %4545 = getelementptr inbounds %struct.complex, ptr %4542, i64 %4544
  %4546 = getelementptr inbounds %struct.complex, ptr %4545, i32 0, i32 1
  store float %4541, ptr %4546, align 4, !tbaa !18
  br label %4547

4547:                                             ; preds = %4509
  %4548 = load i32, ptr %57, align 4, !tbaa !9
  %4549 = add nsw i32 %4548, -1
  store i32 %4549, ptr %57, align 4, !tbaa !9
  br label %4506, !llvm.loop !61

4550:                                             ; preds = %4506
  br label %4551

4551:                                             ; preds = %4550
  %4552 = load i32, ptr %58, align 4, !tbaa !9
  %4553 = add nsw i32 %4552, 1
  store i32 %4553, ptr %58, align 4, !tbaa !9
  br label %4487, !llvm.loop !62

4554:                                             ; preds = %4487
  %4555 = load ptr, ptr %19, align 8, !tbaa !5
  %4556 = load i32, ptr %4555, align 4, !tbaa !9
  store i32 %4556, ptr %37, align 4, !tbaa !9
  %4557 = load i32, ptr %98, align 4, !tbaa !9
  %4558 = add nsw i32 %4557, 2
  store i32 %4558, ptr %58, align 4, !tbaa !9
  br label %4559

4559:                                             ; preds = %4627, %4554
  %4560 = load i32, ptr %58, align 4, !tbaa !9
  %4561 = load i32, ptr %37, align 4, !tbaa !9
  %4562 = icmp sle i32 %4560, %4561
  br i1 %4562, label %4563, label %4630

4563:                                             ; preds = %4559
  %4564 = load i32, ptr %58, align 4, !tbaa !9
  %4565 = load i32, ptr %95, align 4, !tbaa !9
  %4566 = add nsw i32 %4564, %4565
  store i32 %4566, ptr %40, align 4, !tbaa !9
  %4567 = load i32, ptr %40, align 4, !tbaa !9
  %4568 = load ptr, ptr %18, align 8, !tbaa !5
  %4569 = load i32, ptr %4568, align 4, !tbaa !9
  %4570 = icmp sle i32 %4567, %4569
  br i1 %4570, label %4571, label %4573

4571:                                             ; preds = %4563
  %4572 = load i32, ptr %40, align 4, !tbaa !9
  br label %4576

4573:                                             ; preds = %4563
  %4574 = load ptr, ptr %18, align 8, !tbaa !5
  %4575 = load i32, ptr %4574, align 4, !tbaa !9
  br label %4576

4576:                                             ; preds = %4573, %4571
  %4577 = phi i32 [ %4572, %4571 ], [ %4575, %4573 ]
  store i32 %4577, ptr %38, align 4, !tbaa !9
  %4578 = load i32, ptr %58, align 4, !tbaa !9
  %4579 = load i32, ptr %98, align 4, !tbaa !9
  %4580 = sub nsw i32 %4578, %4579
  store i32 %4580, ptr %57, align 4, !tbaa !9
  br label %4581

4581:                                             ; preds = %4623, %4576
  %4582 = load i32, ptr %57, align 4, !tbaa !9
  %4583 = load i32, ptr %38, align 4, !tbaa !9
  %4584 = icmp sle i32 %4582, %4583
  br i1 %4584, label %4585, label %4626

4585:                                             ; preds = %4581
  %4586 = load i32, ptr %57, align 4, !tbaa !9
  %4587 = load i32, ptr %58, align 4, !tbaa !9
  %4588 = sub nsw i32 %4586, %4587
  %4589 = load i32, ptr %98, align 4, !tbaa !9
  %4590 = add nsw i32 %4588, %4589
  %4591 = add nsw i32 %4590, 1
  %4592 = load i32, ptr %58, align 4, !tbaa !9
  %4593 = load i32, ptr %35, align 4, !tbaa !9
  %4594 = mul nsw i32 %4592, %4593
  %4595 = add nsw i32 %4591, %4594
  store i32 %4595, ptr %40, align 4, !tbaa !9
  %4596 = load i32, ptr %57, align 4, !tbaa !9
  %4597 = load i32, ptr %58, align 4, !tbaa !9
  %4598 = load i32, ptr %35, align 4, !tbaa !9
  %4599 = mul nsw i32 %4597, %4598
  %4600 = add nsw i32 %4596, %4599
  store i32 %4600, ptr %39, align 4, !tbaa !9
  %4601 = load ptr, ptr %31, align 8, !tbaa !5
  %4602 = load i32, ptr %39, align 4, !tbaa !9
  %4603 = sext i32 %4602 to i64
  %4604 = getelementptr inbounds %struct.complex, ptr %4601, i64 %4603
  %4605 = getelementptr inbounds %struct.complex, ptr %4604, i32 0, i32 0
  %4606 = load float, ptr %4605, align 4, !tbaa !16
  %4607 = load ptr, ptr %31, align 8, !tbaa !5
  %4608 = load i32, ptr %40, align 4, !tbaa !9
  %4609 = sext i32 %4608 to i64
  %4610 = getelementptr inbounds %struct.complex, ptr %4607, i64 %4609
  %4611 = getelementptr inbounds %struct.complex, ptr %4610, i32 0, i32 0
  store float %4606, ptr %4611, align 4, !tbaa !16
  %4612 = load ptr, ptr %31, align 8, !tbaa !5
  %4613 = load i32, ptr %39, align 4, !tbaa !9
  %4614 = sext i32 %4613 to i64
  %4615 = getelementptr inbounds %struct.complex, ptr %4612, i64 %4614
  %4616 = getelementptr inbounds %struct.complex, ptr %4615, i32 0, i32 1
  %4617 = load float, ptr %4616, align 4, !tbaa !18
  %4618 = load ptr, ptr %31, align 8, !tbaa !5
  %4619 = load i32, ptr %40, align 4, !tbaa !9
  %4620 = sext i32 %4619 to i64
  %4621 = getelementptr inbounds %struct.complex, ptr %4618, i64 %4620
  %4622 = getelementptr inbounds %struct.complex, ptr %4621, i32 0, i32 1
  store float %4617, ptr %4622, align 4, !tbaa !18
  br label %4623

4623:                                             ; preds = %4585
  %4624 = load i32, ptr %57, align 4, !tbaa !9
  %4625 = add nsw i32 %4624, 1
  store i32 %4625, ptr %57, align 4, !tbaa !9
  br label %4581, !llvm.loop !63

4626:                                             ; preds = %4581
  br label %4627

4627:                                             ; preds = %4626
  %4628 = load i32, ptr %58, align 4, !tbaa !9
  %4629 = add nsw i32 %4628, 1
  store i32 %4629, ptr %58, align 4, !tbaa !9
  br label %4559, !llvm.loop !64

4630:                                             ; preds = %4559
  br label %4631

4631:                                             ; preds = %4630, %4474
  br label %4632

4632:                                             ; preds = %4631, %4473
  br label %4633

4633:                                             ; preds = %4632, %4404
  br label %4634

4634:                                             ; preds = %4633, %4337
  br label %4635

4635:                                             ; preds = %4634, %4296
  %4636 = load i32, ptr %64, align 4, !tbaa !9
  %4637 = icmp eq i32 %4636, 3
  br i1 %4637, label %4641, label %4638

4638:                                             ; preds = %4635
  %4639 = load i32, ptr %64, align 4, !tbaa !9
  %4640 = icmp eq i32 %4639, 4
  br i1 %4640, label %4641, label %4682

4641:                                             ; preds = %4638, %4635
  %4642 = load ptr, ptr %18, align 8, !tbaa !5
  %4643 = load i32, ptr %4642, align 4, !tbaa !9
  store i32 %4643, ptr %37, align 4, !tbaa !9
  %4644 = load i32, ptr %51, align 4, !tbaa !9
  store i32 %4644, ptr %74, align 4, !tbaa !9
  br label %4645

4645:                                             ; preds = %4678, %4641
  %4646 = load i32, ptr %74, align 4, !tbaa !9
  %4647 = load i32, ptr %37, align 4, !tbaa !9
  %4648 = icmp sle i32 %4646, %4647
  br i1 %4648, label %4649, label %4681

4649:                                             ; preds = %4645
  %4650 = load ptr, ptr %32, align 8, !tbaa !5
  %4651 = load i32, ptr %4650, align 4, !tbaa !9
  store i32 %4651, ptr %38, align 4, !tbaa !9
  %4652 = load i32, ptr %54, align 4, !tbaa !9
  %4653 = add nsw i32 %4652, 1
  store i32 %4653, ptr %80, align 4, !tbaa !9
  br label %4654

4654:                                             ; preds = %4674, %4649
  %4655 = load i32, ptr %80, align 4, !tbaa !9
  %4656 = load i32, ptr %38, align 4, !tbaa !9
  %4657 = icmp sle i32 %4655, %4656
  br i1 %4657, label %4658, label %4677

4658:                                             ; preds = %4654
  %4659 = load i32, ptr %80, align 4, !tbaa !9
  %4660 = load i32, ptr %74, align 4, !tbaa !9
  %4661 = load i32, ptr %35, align 4, !tbaa !9
  %4662 = mul nsw i32 %4660, %4661
  %4663 = add nsw i32 %4659, %4662
  store i32 %4663, ptr %40, align 4, !tbaa !9
  %4664 = load ptr, ptr %31, align 8, !tbaa !5
  %4665 = load i32, ptr %40, align 4, !tbaa !9
  %4666 = sext i32 %4665 to i64
  %4667 = getelementptr inbounds %struct.complex, ptr %4664, i64 %4666
  %4668 = getelementptr inbounds %struct.complex, ptr %4667, i32 0, i32 0
  store float 0.000000e+00, ptr %4668, align 4, !tbaa !16
  %4669 = load ptr, ptr %31, align 8, !tbaa !5
  %4670 = load i32, ptr %40, align 4, !tbaa !9
  %4671 = sext i32 %4670 to i64
  %4672 = getelementptr inbounds %struct.complex, ptr %4669, i64 %4671
  %4673 = getelementptr inbounds %struct.complex, ptr %4672, i32 0, i32 1
  store float 0.000000e+00, ptr %4673, align 4, !tbaa !18
  br label %4674

4674:                                             ; preds = %4658
  %4675 = load i32, ptr %80, align 4, !tbaa !9
  %4676 = add nsw i32 %4675, 1
  store i32 %4676, ptr %80, align 4, !tbaa !9
  br label %4654, !llvm.loop !65

4677:                                             ; preds = %4654
  store i32 0, ptr %54, align 4, !tbaa !9
  br label %4678

4678:                                             ; preds = %4677
  %4679 = load i32, ptr %74, align 4, !tbaa !9
  %4680 = add nsw i32 %4679, 1
  store i32 %4680, ptr %74, align 4, !tbaa !9
  br label %4645, !llvm.loop !66

4681:                                             ; preds = %4645
  br label %4783

4682:                                             ; preds = %4638
  %4683 = load i32, ptr %64, align 4, !tbaa !9
  %4684 = icmp sge i32 %4683, 5
  br i1 %4684, label %4685, label %4782

4685:                                             ; preds = %4682
  %4686 = load i32, ptr %98, align 4, !tbaa !9
  %4687 = load i32, ptr %95, align 4, !tbaa !9
  %4688 = add nsw i32 %4686, %4687
  %4689 = add nsw i32 %4688, 2
  store i32 %4689, ptr %91, align 4, !tbaa !9
  %4690 = load i32, ptr %98, align 4, !tbaa !9
  %4691 = load ptr, ptr %18, align 8, !tbaa !5
  %4692 = load i32, ptr %4691, align 4, !tbaa !9
  %4693 = add nsw i32 %4690, %4692
  %4694 = add nsw i32 %4693, 2
  store i32 %4694, ptr %92, align 4, !tbaa !9
  %4695 = load ptr, ptr %19, align 8, !tbaa !5
  %4696 = load i32, ptr %4695, align 4, !tbaa !9
  store i32 %4696, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %4697

4697:                                             ; preds = %4778, %4685
  %4698 = load i32, ptr %74, align 4, !tbaa !9
  %4699 = load i32, ptr %37, align 4, !tbaa !9
  %4700 = icmp sle i32 %4698, %4699
  br i1 %4700, label %4701, label %4781

4701:                                             ; preds = %4697
  %4702 = load i32, ptr %98, align 4, !tbaa !9
  %4703 = add nsw i32 %4702, 1
  %4704 = load i32, ptr %74, align 4, !tbaa !9
  %4705 = sub nsw i32 %4703, %4704
  store i32 %4705, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %80, align 4, !tbaa !9
  br label %4706

4706:                                             ; preds = %4726, %4701
  %4707 = load i32, ptr %80, align 4, !tbaa !9
  %4708 = load i32, ptr %38, align 4, !tbaa !9
  %4709 = icmp sle i32 %4707, %4708
  br i1 %4709, label %4710, label %4729

4710:                                             ; preds = %4706
  %4711 = load i32, ptr %80, align 4, !tbaa !9
  %4712 = load i32, ptr %74, align 4, !tbaa !9
  %4713 = load i32, ptr %35, align 4, !tbaa !9
  %4714 = mul nsw i32 %4712, %4713
  %4715 = add nsw i32 %4711, %4714
  store i32 %4715, ptr %40, align 4, !tbaa !9
  %4716 = load ptr, ptr %31, align 8, !tbaa !5
  %4717 = load i32, ptr %40, align 4, !tbaa !9
  %4718 = sext i32 %4717 to i64
  %4719 = getelementptr inbounds %struct.complex, ptr %4716, i64 %4718
  %4720 = getelementptr inbounds %struct.complex, ptr %4719, i32 0, i32 0
  store float 0.000000e+00, ptr %4720, align 4, !tbaa !16
  %4721 = load ptr, ptr %31, align 8, !tbaa !5
  %4722 = load i32, ptr %40, align 4, !tbaa !9
  %4723 = sext i32 %4722 to i64
  %4724 = getelementptr inbounds %struct.complex, ptr %4721, i64 %4723
  %4725 = getelementptr inbounds %struct.complex, ptr %4724, i32 0, i32 1
  store float 0.000000e+00, ptr %4725, align 4, !tbaa !18
  br label %4726

4726:                                             ; preds = %4710
  %4727 = load i32, ptr %80, align 4, !tbaa !9
  %4728 = add nsw i32 %4727, 1
  store i32 %4728, ptr %80, align 4, !tbaa !9
  br label %4706, !llvm.loop !67

4729:                                             ; preds = %4706
  %4730 = load i32, ptr %91, align 4, !tbaa !9
  store i32 %4730, ptr %39, align 4, !tbaa !9
  %4731 = load i32, ptr %92, align 4, !tbaa !9
  %4732 = load i32, ptr %74, align 4, !tbaa !9
  %4733 = sub nsw i32 %4731, %4732
  store i32 %4733, ptr %41, align 4, !tbaa !9
  store i32 1, ptr %38, align 4, !tbaa !9
  %4734 = load i32, ptr %39, align 4, !tbaa !9
  %4735 = load i32, ptr %41, align 4, !tbaa !9
  %4736 = icmp sle i32 %4734, %4735
  br i1 %4736, label %4737, label %4739

4737:                                             ; preds = %4729
  %4738 = load i32, ptr %39, align 4, !tbaa !9
  br label %4741

4739:                                             ; preds = %4729
  %4740 = load i32, ptr %41, align 4, !tbaa !9
  br label %4741

4741:                                             ; preds = %4739, %4737
  %4742 = phi i32 [ %4738, %4737 ], [ %4740, %4739 ]
  store i32 %4742, ptr %40, align 4, !tbaa !9
  %4743 = load ptr, ptr %32, align 8, !tbaa !5
  %4744 = load i32, ptr %4743, align 4, !tbaa !9
  store i32 %4744, ptr %42, align 4, !tbaa !9
  %4745 = load i32, ptr %38, align 4, !tbaa !9
  %4746 = load i32, ptr %40, align 4, !tbaa !9
  %4747 = icmp sge i32 %4745, %4746
  br i1 %4747, label %4748, label %4750

4748:                                             ; preds = %4741
  %4749 = load i32, ptr %38, align 4, !tbaa !9
  br label %4752

4750:                                             ; preds = %4741
  %4751 = load i32, ptr %40, align 4, !tbaa !9
  br label %4752

4752:                                             ; preds = %4750, %4748
  %4753 = phi i32 [ %4749, %4748 ], [ %4751, %4750 ]
  store i32 %4753, ptr %80, align 4, !tbaa !9
  br label %4754

4754:                                             ; preds = %4774, %4752
  %4755 = load i32, ptr %80, align 4, !tbaa !9
  %4756 = load i32, ptr %42, align 4, !tbaa !9
  %4757 = icmp sle i32 %4755, %4756
  br i1 %4757, label %4758, label %4777

4758:                                             ; preds = %4754
  %4759 = load i32, ptr %80, align 4, !tbaa !9
  %4760 = load i32, ptr %74, align 4, !tbaa !9
  %4761 = load i32, ptr %35, align 4, !tbaa !9
  %4762 = mul nsw i32 %4760, %4761
  %4763 = add nsw i32 %4759, %4762
  store i32 %4763, ptr %38, align 4, !tbaa !9
  %4764 = load ptr, ptr %31, align 8, !tbaa !5
  %4765 = load i32, ptr %38, align 4, !tbaa !9
  %4766 = sext i32 %4765 to i64
  %4767 = getelementptr inbounds %struct.complex, ptr %4764, i64 %4766
  %4768 = getelementptr inbounds %struct.complex, ptr %4767, i32 0, i32 0
  store float 0.000000e+00, ptr %4768, align 4, !tbaa !16
  %4769 = load ptr, ptr %31, align 8, !tbaa !5
  %4770 = load i32, ptr %38, align 4, !tbaa !9
  %4771 = sext i32 %4770 to i64
  %4772 = getelementptr inbounds %struct.complex, ptr %4769, i64 %4771
  %4773 = getelementptr inbounds %struct.complex, ptr %4772, i32 0, i32 1
  store float 0.000000e+00, ptr %4773, align 4, !tbaa !18
  br label %4774

4774:                                             ; preds = %4758
  %4775 = load i32, ptr %80, align 4, !tbaa !9
  %4776 = add nsw i32 %4775, 1
  store i32 %4776, ptr %80, align 4, !tbaa !9
  br label %4754, !llvm.loop !68

4777:                                             ; preds = %4754
  br label %4778

4778:                                             ; preds = %4777
  %4779 = load i32, ptr %74, align 4, !tbaa !9
  %4780 = add nsw i32 %4779, 1
  store i32 %4780, ptr %74, align 4, !tbaa !9
  br label %4697, !llvm.loop !69

4781:                                             ; preds = %4697
  br label %4782

4782:                                             ; preds = %4781, %4682
  br label %4783

4783:                                             ; preds = %4782, %4681
  br label %4784

4784:                                             ; preds = %4783, %4250
  store i32 1, ptr %99, align 4
  br label %4785

4785:                                             ; preds = %4784, %4246, %724, %612, %559, %170
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  ret void
}

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

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

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

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

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

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

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

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

declare <2 x float> @clarnd_(ptr noundef, ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #4

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

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCf(ptr noundef) #6

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

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

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

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

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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { 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 #6 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = !{!17, !12, i64 0}
!17 = !{!"", !12, i64 0, !12, i64 4}
!18 = !{!17, !12, i64 4}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = !{i64 0, i64 4, !11, i64 4, i64 4, !11}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = distinct !{!56, !14}
!57 = distinct !{!57, !14}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = distinct !{!61, !14}
!62 = distinct !{!62, !14}
!63 = distinct !{!63, !14}
!64 = distinct !{!64, !14}
!65 = distinct !{!65, !14}
!66 = distinct !{!66, !14}
!67 = distinct !{!67, !14}
!68 = distinct !{!68, !14}
!69 = distinct !{!69, !14}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.12 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c__5 = external hidden global i32, align 4
@c_true = external hidden global i32, align 4
@c_false = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @clatmt_(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 nocapture noundef readonly %8, ptr noundef %9, ptr nocapture noundef readonly %10, ptr nocapture noundef readonly %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr nocapture noundef %16) local_unnamed_addr #0 {
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %struct.complex, align 8
  %24 = alloca %struct.complex, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca %struct.complex, align 8
  %28 = alloca %struct.complex, align 8
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca i32, align 4
  %32 = alloca %struct.complex, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca %struct.complex, align 8
  %36 = alloca %struct.complex, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %struct.complex, align 8
  %40 = alloca i32, align 4
  %41 = alloca %struct.complex, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #9
  %47 = getelementptr inbounds i8, ptr %5, i64 -4
  %48 = load i32, ptr %14, align 4, !tbaa !5
  %narrow = xor i32 %48, -1
  %49 = sext i32 %narrow to i64
  %50 = getelementptr inbounds %struct.complex, ptr %13, i64 %49
  store i32 0, ptr %16, align 4, !tbaa !5
  %51 = load i32, ptr %0, align 4, !tbaa !5
  %52 = icmp eq i32 %51, 0
  br i1 %52, label %.thread1457, label %53

53:                                               ; preds = %17
  %54 = load i32, ptr %1, align 4, !tbaa !5
  %55 = icmp eq i32 %54, 0
  br i1 %55, label %.thread1457, label %56

56:                                               ; preds = %53
  %57 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #9
  %.not = icmp eq i32 %57, 0
  br i1 %.not, label %59, label %58

58:                                               ; preds = %56
  store i32 1, ptr %33, align 4, !tbaa !5
  br label %66

59:                                               ; preds = %56
  %60 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #9
  %.not1309 = icmp eq i32 %60, 0
  br i1 %.not1309, label %62, label %61

61:                                               ; preds = %59
  store i32 2, ptr %33, align 4, !tbaa !5
  br label %66

62:                                               ; preds = %59
  %63 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #9
  %.not1310 = icmp eq i32 %63, 0
  br i1 %.not1310, label %65, label %64

64:                                               ; preds = %62
  store i32 3, ptr %33, align 4, !tbaa !5
  br label %66

65:                                               ; preds = %62
  store i32 -1, ptr %33, align 4, !tbaa !5
  br label %66

66:                                               ; preds = %61, %65, %64, %58
  %67 = phi i1 [ false, %61 ], [ true, %65 ], [ false, %64 ], [ false, %58 ]
  %68 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.2) #9
  %.not1311 = icmp ne i32 %68, 0
  br i1 %.not1311, label %69, label %70

69:                                               ; preds = %66
  store i32 0, ptr %42, align 4, !tbaa !5
  br label %79

70:                                               ; preds = %66
  %71 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.3) #9
  %.not1312 = icmp eq i32 %71, 0
  br i1 %.not1312, label %73, label %72

72:                                               ; preds = %70
  store i32 0, ptr %42, align 4, !tbaa !5
  br label %79

73:                                               ; preds = %70
  %74 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.1) #9
  %.not1313 = icmp eq i32 %74, 0
  br i1 %.not1313, label %76, label %75

75:                                               ; preds = %73
  store i32 0, ptr %42, align 4, !tbaa !5
  br label %79

76:                                               ; preds = %73
  %77 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.4) #9
  %.not1314 = icmp eq i32 %77, 0
  br i1 %.not1314, label %79, label %78

78:                                               ; preds = %76
  store i32 1, ptr %42, align 4, !tbaa !5
  br label %79

79:                                               ; preds = %76, %72, %78, %75, %69
  %80 = phi i1 [ false, %69 ], [ false, %72 ], [ false, %75 ], [ false, %78 ], [ true, %76 ]
  %.not1343 = phi i1 [ true, %69 ], [ true, %72 ], [ false, %75 ], [ true, %78 ], [ undef, %76 ]
  %81 = tail call i32 @lsame_(ptr noundef %12, ptr noundef nonnull @.str.2) #9
  %.not1315 = icmp eq i32 %81, 0
  br i1 %.not1315, label %82, label %96

82:                                               ; preds = %79
  %83 = tail call i32 @lsame_(ptr noundef %12, ptr noundef nonnull @.str) #9
  %.not1316 = icmp eq i32 %83, 0
  br i1 %.not1316, label %84, label %96

84:                                               ; preds = %82
  %85 = tail call i32 @lsame_(ptr noundef %12, ptr noundef nonnull @.str.5) #9
  %.not1317 = icmp eq i32 %85, 0
  br i1 %.not1317, label %86, label %96

86:                                               ; preds = %84
  %87 = tail call i32 @lsame_(ptr noundef %12, ptr noundef nonnull @.str.6) #9
  %.not1318 = icmp eq i32 %87, 0
  br i1 %.not1318, label %88, label %96

88:                                               ; preds = %86
  %89 = tail call i32 @lsame_(ptr noundef %12, ptr noundef nonnull @.str.7) #9
  %.not1319 = icmp eq i32 %89, 0
  br i1 %.not1319, label %90, label %96

90:                                               ; preds = %88
  %91 = tail call i32 @lsame_(ptr noundef %12, ptr noundef nonnull @.str.8) #9
  %.not1320 = icmp eq i32 %91, 0
  br i1 %.not1320, label %92, label %96

92:                                               ; preds = %90
  %93 = tail call i32 @lsame_(ptr noundef %12, ptr noundef nonnull @.str.9) #9
  %.not1321 = icmp eq i32 %93, 0
  br i1 %.not1321, label %94, label %96

94:                                               ; preds = %92
  %95 = tail call i32 @lsame_(ptr noundef %12, ptr noundef nonnull @.str.10) #9
  %.not1322 = icmp eq i32 %95, 0
  %not..not1322 = xor i1 %.not1322, true
  %.1430 = select i1 %.not1322, i32 -1, i32 7
  br label %96

96:                                               ; preds = %94, %92, %90, %88, %86, %84, %82, %79
  %97 = phi i1 [ false, %79 ], [ true, %82 ], [ true, %84 ], [ false, %86 ], [ false, %88 ], [ false, %90 ], [ false, %92 ], [ false, %94 ]
  %98 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ true, %86 ], [ false, %88 ], [ false, %90 ], [ true, %92 ], [ false, %94 ]
  %99 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ false, %86 ], [ true, %88 ], [ true, %90 ], [ false, %92 ], [ false, %94 ]
  %.not1334 = phi i1 [ true, %79 ], [ false, %82 ], [ false, %84 ], [ false, %86 ], [ false, %88 ], [ false, %90 ], [ false, %92 ], [ true, %94 ]
  %100 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ false, %86 ], [ false, %88 ], [ true, %90 ], [ false, %92 ], [ false, %94 ]
  %101 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ false, %86 ], [ false, %88 ], [ false, %90 ], [ true, %92 ], [ false, %94 ]
  %102 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ false, %86 ], [ false, %88 ], [ false, %90 ], [ false, %92 ], [ %not..not1322, %94 ]
  %103 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ false, %86 ], [ false, %88 ], [ false, %90 ], [ false, %92 ], [ %.not1322, %94 ]
  %104 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ false, %86 ], [ false, %88 ], [ true, %90 ], [ true, %92 ], [ %not..not1322, %94 ]
  %105 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ false, %86 ], [ false, %88 ], [ false, %90 ], [ true, %92 ], [ %not..not1322, %94 ]
  %106 = phi i1 [ true, %79 ], [ true, %82 ], [ true, %84 ], [ true, %86 ], [ false, %88 ], [ true, %90 ], [ true, %92 ], [ true, %94 ]
  %107 = phi i1 [ true, %79 ], [ true, %82 ], [ true, %84 ], [ false, %86 ], [ true, %88 ], [ true, %90 ], [ true, %92 ], [ true, %94 ]
  %108 = phi i1 [ true, %79 ], [ true, %82 ], [ true, %84 ], [ false, %86 ], [ false, %88 ], [ false, %90 ], [ false, %92 ], [ %.not1322, %94 ]
  %109 = phi i1 [ false, %79 ], [ true, %82 ], [ false, %84 ], [ false, %86 ], [ false, %88 ], [ false, %90 ], [ false, %92 ], [ false, %94 ]
  %110 = phi i1 [ false, %79 ], [ false, %82 ], [ true, %84 ], [ false, %86 ], [ false, %88 ], [ false, %90 ], [ false, %92 ], [ false, %94 ]
  %111 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ true, %86 ], [ false, %88 ], [ false, %90 ], [ false, %92 ], [ false, %94 ]
  %112 = phi i1 [ false, %79 ], [ false, %82 ], [ false, %84 ], [ false, %86 ], [ true, %88 ], [ false, %90 ], [ false, %92 ], [ false, %94 ]
  %.01221 = phi i32 [ 0, %79 ], [ 1, %82 ], [ 2, %84 ], [ 3, %86 ], [ 4, %88 ], [ 5, %90 ], [ 6, %92 ], [ %.1430, %94 ]
  %113 = load i32, ptr %0, align 4, !tbaa !5
  %114 = load i32, ptr %1, align 4, !tbaa !5
  %.1431 = tail call i32 @llvm.smin.i32(i32 %113, i32 %114)
  store i32 %.1431, ptr %34, align 4, !tbaa !5
  %115 = load i32, ptr %10, align 4, !tbaa !5
  %116 = add nsw i32 %113, -1
  %117 = tail call i32 @llvm.smin.i32(i32 %115, i32 %116)
  store i32 %117, ptr %45, align 4, !tbaa !5
  %118 = load i32, ptr %11, align 4, !tbaa !5
  %119 = add nsw i32 %114, -1
  %120 = tail call i32 @llvm.smin.i32(i32 %118, i32 %119)
  store i32 %120, ptr %46, align 4, !tbaa !5
  %121 = add nsw i32 %117, %114
  %122 = tail call i32 @llvm.smin.i32(i32 %113, i32 %121)
  store i32 %122, ptr %40, align 4, !tbaa !5
  store i32 %114, ptr %18, align 4, !tbaa !5
  %123 = add nsw i32 %120, %113
  store i32 %123, ptr %19, align 4, !tbaa !5
  %124 = tail call i32 @llvm.smin.i32(i32 %114, i32 %123)
  store i32 %124, ptr %37, align 4, !tbaa !5
  %or.cond = or i1 %100, %101
  br i1 %or.cond, label %125, label %127

125:                                              ; preds = %96
  %126 = add nsw i32 %120, 1
  br label %131

127:                                              ; preds = %96
  br i1 %102, label %128, label %131

128:                                              ; preds = %127
  %129 = add nsw i32 %120, 1
  %130 = add i32 %129, %117
  br label %131

131:                                              ; preds = %127, %128, %125
  %.01264 = phi i32 [ %126, %125 ], [ %130, %128 ], [ %113, %127 ]
  br i1 %.not1311, label %132, label %141

132:                                              ; preds = %131
  store i32 1, ptr %18, align 4, !tbaa !5
  %133 = add nsw i32 %124, %122
  store i32 %133, ptr %19, align 4, !tbaa !5
  %134 = add nsw i32 %120, %117
  %135 = sitofp i32 %134 to float
  %136 = tail call i32 @llvm.smax.i32(i32 %133, i32 1)
  %137 = uitofp nneg i32 %136 to float
  %138 = fmul float %137, 0x3FD3333340000000
  %139 = fcmp ogt float %138, %135
  br i1 %139, label %140, label %144

140:                                              ; preds = %132
  br label %144

141:                                              ; preds = %131
  %142 = shl i32 %117, 1
  %143 = icmp slt i32 %142, %113
  %spec.select = zext i1 %143 to i32
  br label %144

144:                                              ; preds = %141, %132, %140
  %.01266 = phi i32 [ 1, %140 ], [ 0, %132 ], [ %spec.select, %141 ]
  %145 = load i32, ptr %14, align 4, !tbaa !5
  %146 = icmp sge i32 %145, %113
  %.not1329 = icmp slt i32 %145, %.01264
  %or.cond1432 = select i1 %146, i1 true, i1 %.not1329
  %147 = icmp slt i32 %113, 0
  br i1 %147, label %.thread.sink.split, label %148

148:                                              ; preds = %144
  %149 = icmp eq i32 %113, %114
  %or.cond3.not = or i1 %.not1311, %149
  br i1 %or.cond3.not, label %150, label %.thread.sink.split

150:                                              ; preds = %148
  %151 = icmp slt i32 %114, 0
  %152 = or i1 %67, %80
  %brmerge2294 = or i1 %152, %151
  %.mux = select i1 %67, i32 -3, i32 -5
  %.mux.mux = select i1 %151, i32 -2, i32 %.mux
  br i1 %brmerge2294, label %.thread.sink.split, label %153

153:                                              ; preds = %150
  %154 = load i32, ptr %6, align 4, !tbaa !5
  %155 = tail call i32 @llvm.abs.i32(i32 %154, i1 true)
  %156 = icmp ugt i32 %155, 6
  br i1 %156, label %.thread.sink.split, label %157

157:                                              ; preds = %153
  %.not1331 = icmp eq i32 %154, 0
  %.not1332 = icmp eq i32 %155, 6
  %or.cond1458 = or i1 %.not1331, %.not1332
  br i1 %or.cond1458, label %161, label %158

158:                                              ; preds = %157
  %159 = load float, ptr %7, align 4, !tbaa !9
  %160 = fcmp olt float %159, 1.000000e+00
  br i1 %160, label %.thread.sink.split, label %161

161:                                              ; preds = %158, %157
  %162 = icmp slt i32 %115, 0
  br i1 %162, label %.thread.sink.split, label %163

163:                                              ; preds = %161
  %164 = icmp sgt i32 %118, -1
  %.not1333 = icmp eq i32 %115, %118
  %or.cond1433 = or i1 %.not1311, %.not1333
  %or.cond1449 = and i1 %164, %or.cond1433
  br i1 %or.cond1449, label %165, label %.thread.sink.split

165:                                              ; preds = %163
  %or.cond5 = and i1 %.not1311, %97
  %or.cond1434 = or i1 %or.cond5, %103
  br i1 %or.cond1434, label %.thread.sink.split, label %166

166:                                              ; preds = %165
  %or.cond7 = and i1 %.not1311, %98
  %167 = icmp ne i32 %115, 0
  %or.cond1459 = select i1 %or.cond7, i1 %167, i1 false
  br i1 %or.cond1459, label %.thread.sink.split, label %168

168:                                              ; preds = %166
  %or.cond9 = and i1 %.not1311, %99
  %169 = icmp eq i32 %118, 0
  %not.or.cond9 = xor i1 %or.cond9, true
  %or.cond1460 = select i1 %not.or.cond9, i1 true, i1 %169
  %brmerge = or i1 %.not1334, %149
  %or.cond1461 = and i1 %brmerge, %or.cond1460
  br i1 %or.cond1461, label %170, label %.thread.sink.split

170:                                              ; preds = %168
  %171 = tail call i32 @llvm.smax.i32(i32 %.01264, i32 1)
  %172 = icmp slt i32 %145, %171
  br i1 %172, label %.thread.sink.split, label %173

173:                                              ; preds = %170
  %.pr = load i32, ptr %16, align 4, !tbaa !5
  %.not1336 = icmp eq i32 %.pr, 0
  br i1 %.not1336, label %.preheader.preheader, label %.thread

.preheader.preheader:                             ; preds = %173
  %174 = load <4 x i32>, ptr %3, align 4, !tbaa !5
  %175 = tail call <4 x i32> @llvm.abs.v4i32(<4 x i32> %174, i1 true)
  %176 = and <4 x i32> %175, <i32 4095, i32 4095, i32 4095, i32 4095>
  store <4 x i32> %176, ptr %3, align 4, !tbaa !5
  %177 = extractelement <4 x i32> %175, i64 3
  %178 = and i32 %177, 1
  %.not1337.not = icmp eq i32 %178, 0
  br i1 %.not1337.not, label %182, label %186

.thread.sink.split:                               ; preds = %150, %170, %165, %166, %168, %163, %161, %158, %153, %148, %144
  %.sink = phi i32 [ -1, %144 ], [ -1, %148 ], [ %.mux.mux, %150 ], [ -7, %153 ], [ -8, %158 ], [ -10, %161 ], [ -11, %163 ], [ -12, %168 ], [ -12, %166 ], [ -12, %165 ], [ -14, %170 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %173
  %179 = phi i32 [ %.pr, %173 ], [ %.sink, %.thread.sink.split ]
  %180 = sub nsw i32 0, %179
  store i32 %180, ptr %18, align 4, !tbaa !5
  %181 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %18, i32 noundef 6) #9
  br label %.thread1457

182:                                              ; preds = %.preheader.preheader
  %183 = getelementptr inbounds i8, ptr %3, i64 12
  %184 = extractelement <4 x i32> %176, i64 3
  %185 = or disjoint i32 %184, 1
  store i32 %185, ptr %183, align 4, !tbaa !5
  br label %186

186:                                              ; preds = %182, %.preheader.preheader
  call void @slatm7_(ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %42, ptr noundef nonnull %33, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %34, ptr noundef %9, ptr noundef nonnull %31) #9
  %187 = load i32, ptr %31, align 4, !tbaa !5
  %.not1338 = icmp eq i32 %187, 0
  br i1 %.not1338, label %189, label %188

188:                                              ; preds = %186
  store i32 1, ptr %16, align 4, !tbaa !5
  br label %.thread1457

189:                                              ; preds = %186
  %190 = load float, ptr %5, align 4, !tbaa !9
  %191 = fcmp ult float %190, 0.000000e+00
  %192 = fneg float %190
  %193 = select i1 %191, float %192, float %190
  %194 = load i32, ptr %9, align 4, !tbaa !5
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds float, ptr %47, i64 %195
  %197 = load float, ptr %196, align 4, !tbaa !9
  %198 = fcmp oge float %197, 0.000000e+00
  %199 = fneg float %197
  %200 = select i1 %198, float %197, float %199
  %201 = fcmp ugt float %193, %200
  %202 = load i32, ptr %6, align 4, !tbaa !5
  %.not1339 = icmp eq i32 %202, 0
  %203 = call i32 @llvm.abs.i32(i32 %202, i1 true)
  %.not1340 = icmp eq i32 %203, 6
  %or.cond1463 = select i1 %.not1339, i1 true, i1 %.not1340
  br i1 %or.cond1463, label %235, label %204

204:                                              ; preds = %189
  %.not13411570 = icmp slt i32 %194, 2
  br i1 %.not13411570, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %204
  %205 = add nuw i32 %194, 1
  %wide.trip.count = zext i32 %205 to i64
  %xtraiter = and i64 %wide.trip.count, 1
  %206 = icmp eq i32 %205, 3
  br i1 %206, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %207 = and i64 %wide.trip.count, 4294967294
  %208 = add nsw i64 %207, -4
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ 2, %.lr.ph.preheader.new ], [ %indvars.iv.next.1, %.lr.ph ]
  %.011711572 = phi float [ %193, %.lr.ph.preheader.new ], [ %222, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %209 = getelementptr inbounds float, ptr %47, i64 %indvars.iv
  %210 = load float, ptr %209, align 4, !tbaa !9
  %211 = fcmp oge float %210, 0.000000e+00
  %212 = fneg float %210
  %213 = select i1 %211, float %210, float %212
  %214 = fcmp oge float %.011711572, %213
  %215 = select i1 %214, float %.011711572, float %213
  %216 = getelementptr float, ptr %5, i64 %indvars.iv
  %217 = load float, ptr %216, align 4, !tbaa !9
  %218 = fcmp oge float %217, 0.000000e+00
  %219 = fneg float %217
  %220 = select i1 %218, float %217, float %219
  %221 = fcmp oge float %215, %220
  %222 = select i1 %221, float %215, float %220
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter, %208
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !11

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph, %.lr.ph.preheader
  %.lcssa2473.ph = phi float [ poison, %.lr.ph.preheader ], [ %222, %.lr.ph ]
  %indvars.iv.unr = phi i64 [ 2, %.lr.ph.preheader ], [ %indvars.iv.next.1, %.lr.ph ]
  %.011711572.unr = phi float [ %193, %.lr.ph.preheader ], [ %222, %.lr.ph ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.loopexit.unr-lcssa
  %223 = getelementptr inbounds float, ptr %47, i64 %indvars.iv.unr
  %224 = load float, ptr %223, align 4, !tbaa !9
  %225 = fcmp oge float %224, 0.000000e+00
  %226 = fneg float %224
  %227 = select i1 %225, float %224, float %226
  %228 = fcmp oge float %.011711572.unr, %227
  %229 = select i1 %228, float %.011711572.unr, float %227
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %204
  %.01171.lcssa = phi float [ %193, %204 ], [ %.lcssa2473.ph, %._crit_edge.loopexit.unr-lcssa ], [ %229, %.lr.ph.epil ]
  %230 = fcmp ogt float %.01171.lcssa, 0.000000e+00
  br i1 %230, label %231, label %234

231:                                              ; preds = %._crit_edge
  %232 = load float, ptr %8, align 4, !tbaa !9
  %233 = fdiv float %232, %.01171.lcssa
  store float %233, ptr %29, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %9, ptr noundef nonnull %29, ptr noundef nonnull %5, ptr noundef nonnull @c__1) #9
  br label %235

234:                                              ; preds = %._crit_edge
  store i32 2, ptr %16, align 4, !tbaa !5
  br label %.thread1457

235:                                              ; preds = %231, %189
  call void @claset_(ptr noundef nonnull @.str.12, ptr noundef nonnull %14, ptr noundef nonnull %1, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %13, ptr noundef nonnull %14) #9
  %236 = load i32, ptr %14, align 4, !tbaa !5
  br i1 %104, label %237, label %240

237:                                              ; preds = %235
  %238 = add nsw i32 %236, -1
  store i32 %238, ptr %26, align 4, !tbaa !5
  %.pre2199 = load i32, ptr %46, align 4
  %239 = add nsw i32 %.pre2199, 1
  %spec.select2292 = select i1 %105, i32 %239, i32 1
  br label %241

240:                                              ; preds = %235
  store i32 %236, ptr %26, align 4, !tbaa !5
  %.pre = load i32, ptr %46, align 4
  br label %241

241:                                              ; preds = %237, %240
  %242 = phi i32 [ %.pre, %240 ], [ %.pre2199, %237 ]
  %.01265 = phi i32 [ 0, %240 ], [ %spec.select2292, %237 ]
  %.01224 = phi i32 [ 0, %240 ], [ 1, %237 ]
  %243 = load i32, ptr %45, align 4, !tbaa !5
  %244 = icmp eq i32 %243, 0
  %245 = icmp eq i32 %242, 0
  %or.cond11 = select i1 %244, i1 %245, i1 false
  br i1 %or.cond11, label %246, label %274

246:                                              ; preds = %241
  %247 = load i32, ptr %34, align 4, !tbaa !5
  %.not14061803 = icmp slt i32 %247, 1
  br i1 %.not14061803, label %._crit_edge1807, label %.lr.ph1806

.lr.ph1806:                                       ; preds = %246
  %248 = xor i32 %.01224, 1
  %reass.add1547 = add i32 %248, %48
  %249 = zext nneg i32 %247 to i64
  %xtraiter2509 = and i64 %249, 1
  %250 = icmp eq i32 %247, 1
  br i1 %250, label %._crit_edge1807.loopexit.unr-lcssa, label %.lr.ph1806.new

.lr.ph1806.new:                                   ; preds = %.lr.ph1806
  %unroll_iter2511 = and i64 %249, 2147483646
  br label %251

251:                                              ; preds = %251, %.lr.ph1806.new
  %indvars.iv2061 = phi i64 [ 1, %.lr.ph1806.new ], [ %indvars.iv.next2062.1, %251 ]
  %niter2512 = phi i64 [ 0, %.lr.ph1806.new ], [ %niter2512.next.1, %251 ]
  %252 = trunc nuw nsw i64 %indvars.iv2061 to i32
  %reass.mul1548 = mul i32 %reass.add1547, %252
  %253 = add i32 %reass.mul1548, %.01265
  %254 = getelementptr inbounds float, ptr %47, i64 %indvars.iv2061
  %255 = load float, ptr %254, align 4, !tbaa !9
  %256 = sext i32 %253 to i64
  %257 = getelementptr inbounds %struct.complex, ptr %50, i64 %256
  store float %255, ptr %257, align 4, !tbaa !13
  %258 = getelementptr inbounds %struct.complex, ptr %50, i64 %256, i32 1
  store float 0.000000e+00, ptr %258, align 4, !tbaa !15
  %259 = trunc i64 %indvars.iv2061 to i32
  %260 = add i32 %259, 1
  %reass.mul1548.1 = mul i32 %reass.add1547, %260
  %261 = add i32 %reass.mul1548.1, %.01265
  %262 = getelementptr float, ptr %5, i64 %indvars.iv2061
  %263 = load float, ptr %262, align 4, !tbaa !9
  %264 = sext i32 %261 to i64
  %265 = getelementptr inbounds %struct.complex, ptr %50, i64 %264
  store float %263, ptr %265, align 4, !tbaa !13
  %266 = getelementptr inbounds %struct.complex, ptr %50, i64 %264, i32 1
  store float 0.000000e+00, ptr %266, align 4, !tbaa !15
  %indvars.iv.next2062.1 = add nuw nsw i64 %indvars.iv2061, 2
  %niter2512.next.1 = add i64 %niter2512, 2
  %niter2512.ncmp.1 = icmp eq i64 %niter2512.next.1, %unroll_iter2511
  br i1 %niter2512.ncmp.1, label %._crit_edge1807.loopexit.unr-lcssa, label %251, !llvm.loop !16

._crit_edge1807.loopexit.unr-lcssa:               ; preds = %251, %.lr.ph1806
  %indvars.iv2061.unr = phi i64 [ 1, %.lr.ph1806 ], [ %indvars.iv.next2062.1, %251 ]
  %lcmp.mod2510.not = icmp eq i64 %xtraiter2509, 0
  br i1 %lcmp.mod2510.not, label %._crit_edge1807, label %._crit_edge1807.loopexit.epilog-lcssa

._crit_edge1807.loopexit.epilog-lcssa:            ; preds = %._crit_edge1807.loopexit.unr-lcssa
  %267 = trunc nuw nsw i64 %indvars.iv2061.unr to i32
  %reass.mul1548.epil = mul i32 %reass.add1547, %267
  %268 = add i32 %reass.mul1548.epil, %.01265
  %269 = getelementptr inbounds float, ptr %47, i64 %indvars.iv2061.unr
  %270 = load float, ptr %269, align 4, !tbaa !9
  %271 = sext i32 %268 to i64
  %272 = getelementptr inbounds %struct.complex, ptr %50, i64 %271
  store float %270, ptr %272, align 4, !tbaa !13
  %273 = getelementptr inbounds %struct.complex, ptr %50, i64 %271, i32 1
  store float 0.000000e+00, ptr %273, align 4, !tbaa !15
  br label %._crit_edge1807

._crit_edge1807:                                  ; preds = %._crit_edge1807.loopexit.epilog-lcssa, %._crit_edge1807.loopexit.unr-lcssa, %246
  %or.cond13 = or i1 %104, %108
  %spec.select1435 = select i1 %or.cond13, i32 %.01221, i32 0
  br label %.loopexit1556

274:                                              ; preds = %241
  %.not13421462 = icmp eq i32 %.01266, 0
  %.not1342 = select i1 %or.cond1432, i1 %.not13421462, i1 false
  br i1 %.not1342, label %1410, label %275

275:                                              ; preds = %274
  br i1 %.not1311, label %276, label %833

276:                                              ; preds = %275
  %.01221. = select i1 %104, i32 %.01221, i32 0
  %277 = load i32, ptr %34, align 4, !tbaa !5
  store i32 %277, ptr %18, align 4, !tbaa !5
  %.not13741694 = icmp slt i32 %277, 1
  br i1 %.not13741694, label %305, label %.lr.ph1697

.lr.ph1697:                                       ; preds = %276
  %278 = xor i32 %.01224, 1
  %reass.add1495 = add i32 %278, %48
  %279 = zext nneg i32 %277 to i64
  %xtraiter2502 = and i64 %279, 1
  %280 = icmp eq i32 %277, 1
  br i1 %280, label %._crit_edge1698.unr-lcssa, label %.lr.ph1697.new

.lr.ph1697.new:                                   ; preds = %.lr.ph1697
  %unroll_iter2506 = and i64 %279, 2147483646
  br label %281

281:                                              ; preds = %281, %.lr.ph1697.new
  %indvars.iv2047 = phi i64 [ 1, %.lr.ph1697.new ], [ %indvars.iv.next2048.1, %281 ]
  %niter2507 = phi i64 [ 0, %.lr.ph1697.new ], [ %niter2507.next.1, %281 ]
  %282 = trunc nuw nsw i64 %indvars.iv2047 to i32
  %reass.mul1496 = mul i32 %reass.add1495, %282
  %283 = add i32 %reass.mul1496, %.01265
  %284 = getelementptr inbounds float, ptr %47, i64 %indvars.iv2047
  %285 = load float, ptr %284, align 4, !tbaa !9
  %286 = sext i32 %283 to i64
  %287 = getelementptr inbounds %struct.complex, ptr %50, i64 %286
  store float %285, ptr %287, align 4, !tbaa !13
  %288 = getelementptr inbounds %struct.complex, ptr %50, i64 %286, i32 1
  store float 0.000000e+00, ptr %288, align 4, !tbaa !15
  %289 = trunc i64 %indvars.iv2047 to i32
  %290 = add i32 %289, 1
  %reass.mul1496.1 = mul i32 %reass.add1495, %290
  %291 = add i32 %reass.mul1496.1, %.01265
  %292 = getelementptr float, ptr %5, i64 %indvars.iv2047
  %293 = load float, ptr %292, align 4, !tbaa !9
  %294 = sext i32 %291 to i64
  %295 = getelementptr inbounds %struct.complex, ptr %50, i64 %294
  store float %293, ptr %295, align 4, !tbaa !13
  %296 = getelementptr inbounds %struct.complex, ptr %50, i64 %294, i32 1
  store float 0.000000e+00, ptr %296, align 4, !tbaa !15
  %indvars.iv.next2048.1 = add nuw nsw i64 %indvars.iv2047, 2
  %niter2507.next.1 = add i64 %niter2507, 2
  %niter2507.ncmp.1 = icmp eq i64 %niter2507.next.1, %unroll_iter2506
  br i1 %niter2507.ncmp.1, label %._crit_edge1698.unr-lcssa, label %281, !llvm.loop !17

._crit_edge1698.unr-lcssa:                        ; preds = %281, %.lr.ph1697
  %.lcssa2462.ph = phi i32 [ poison, %.lr.ph1697 ], [ %291, %281 ]
  %.lcssa2461.ph = phi float [ poison, %.lr.ph1697 ], [ %293, %281 ]
  %indvars.iv2047.unr = phi i64 [ 1, %.lr.ph1697 ], [ %indvars.iv.next2048.1, %281 ]
  %lcmp.mod2503.not = icmp eq i64 %xtraiter2502, 0
  br i1 %lcmp.mod2503.not, label %._crit_edge1698, label %._crit_edge1698.epilog-lcssa

._crit_edge1698.epilog-lcssa:                     ; preds = %._crit_edge1698.unr-lcssa
  %297 = trunc nuw nsw i64 %indvars.iv2047.unr to i32
  %reass.mul1496.epil = mul i32 %reass.add1495, %297
  %298 = add i32 %reass.mul1496.epil, %.01265
  %299 = getelementptr inbounds float, ptr %47, i64 %indvars.iv2047.unr
  %300 = load float, ptr %299, align 4, !tbaa !9
  %301 = sext i32 %298 to i64
  %302 = getelementptr inbounds %struct.complex, ptr %50, i64 %301
  store float %300, ptr %302, align 4, !tbaa !13
  %303 = getelementptr inbounds %struct.complex, ptr %50, i64 %301, i32 1
  store float 0.000000e+00, ptr %303, align 4, !tbaa !15
  br label %._crit_edge1698

._crit_edge1698:                                  ; preds = %._crit_edge1698.unr-lcssa, %._crit_edge1698.epilog-lcssa
  %.lcssa2462 = phi i32 [ %.lcssa2462.ph, %._crit_edge1698.unr-lcssa ], [ %298, %._crit_edge1698.epilog-lcssa ]
  %.lcssa2461 = phi float [ %.lcssa2461.ph, %._crit_edge1698.unr-lcssa ], [ %300, %._crit_edge1698.epilog-lcssa ]
  %304 = getelementptr inbounds i8, ptr %23, i64 4
  store i32 %.lcssa2462, ptr %19, align 4, !tbaa !5
  store float %.lcssa2461, ptr %23, align 8, !tbaa !13
  store float 0.000000e+00, ptr %304, align 4, !tbaa !15
  br label %305

305:                                              ; preds = %._crit_edge1698, %276
  %.not13761770 = icmp slt i32 %242, 1
  br i1 %201, label %604, label %306

306:                                              ; preds = %305
  br i1 %.not13761770, label %._crit_edge1725, label %.lr.ph1724

.lr.ph1724:                                       ; preds = %306
  %307 = getelementptr inbounds i8, ptr %24, i64 4
  %308 = getelementptr inbounds i8, ptr %28, i64 4
  %309 = xor i32 %.01224, 1
  %reass.add1497 = add i32 %309, %48
  %reass.add1500 = sub i32 %48, %.01224
  %310 = add i32 %.01265, 1
  %311 = getelementptr inbounds i8, ptr %36, i64 4
  %312 = zext nneg i32 %242 to i64
  br label %313

313:                                              ; preds = %.lr.ph1724, %._crit_edge1716
  %indvars.iv2057 = phi i64 [ 1, %.lr.ph1724 ], [ %indvars.iv.next2058, %._crit_edge1716 ]
  %.01722 = phi i32 [ undef, %.lr.ph1724 ], [ %.1.lcssa, %._crit_edge1716 ]
  %.011731721 = phi i32 [ undef, %.lr.ph1724 ], [ %.11174.lcssa, %._crit_edge1716 ]
  %314 = load i32, ptr %0, align 4, !tbaa !5
  %315 = trunc nuw nsw i64 %indvars.iv2057 to i32
  %316 = add nsw i32 %314, %315
  store i32 %316, ptr %20, align 4, !tbaa !5
  %317 = load i32, ptr %1, align 4, !tbaa !5
  %.1436 = call i32 @llvm.smin.i32(i32 %316, i32 %317)
  %318 = add nsw i32 %.1436, -1
  store i32 %318, ptr %19, align 4, !tbaa !5
  %.not14021711 = icmp slt i32 %.1436, 2
  br i1 %.not14021711, label %._crit_edge1716, label %.lr.ph1715

.lr.ph1715:                                       ; preds = %313
  %319 = trunc i64 %indvars.iv2057 to i32
  %320 = sub i32 0, %319
  br label %321

321:                                              ; preds = %.lr.ph1715, %._crit_edge1708
  %indvars.iv2053 = phi i64 [ 1, %.lr.ph1715 ], [ %indvars.iv.next2054, %._crit_edge1708 ]
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %322 = call float @slarnd_(ptr noundef nonnull @c__1, ptr noundef nonnull %3) #9
  %323 = fmul float %322, 0x401921FB60000000
  %324 = fpext float %323 to double
  %325 = call double @cos(double noundef %324) #9
  %326 = fptrunc double %325 to float
  %327 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %327, ptr %24, align 8
  %328 = insertelement <2 x float> poison, float %326, i64 0
  %329 = shufflevector <2 x float> %328, <2 x float> poison, <2 x i32> zeroinitializer
  %330 = fmul <2 x float> %327, %329
  store <2 x float> %330, ptr %23, align 8, !tbaa !9
  store <2 x float> %330, ptr %27, align 8, !tbaa !9
  %331 = call double @sin(double noundef %324) #9
  %332 = fptrunc double %331 to float
  %333 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %333, ptr %24, align 8
  %334 = insertelement <2 x float> poison, float %332, i64 0
  %335 = shufflevector <2 x float> %334, <2 x float> poison, <2 x i32> zeroinitializer
  %336 = fmul <2 x float> %333, %335
  store <2 x float> %336, ptr %23, align 8, !tbaa !9
  store <2 x float> %336, ptr %28, align 8, !tbaa !9
  %337 = trunc nuw nsw i64 %indvars.iv2053 to i32
  store i32 %337, ptr %21, align 4, !tbaa !5
  %338 = load i32, ptr %0, align 4, !tbaa !5
  %339 = sext i32 %338 to i64
  %340 = icmp slt i64 %indvars.iv2053, %339
  br i1 %340, label %341, label %.lr.ph1707.preheader

341:                                              ; preds = %321
  %342 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %342, ptr %20, align 4, !tbaa !5
  %343 = add nuw nsw i64 %indvars.iv2053, %indvars.iv2057
  %344 = trunc nsw i64 %343 to i32
  store i32 %344, ptr %21, align 4, !tbaa !5
  %345 = call i32 @llvm.smin.i32(i32 %342, i32 %344)
  %reass.sub1908 = sub i32 %345, %337
  %346 = add i32 %reass.sub1908, 1
  store i32 %346, ptr %38, align 4, !tbaa !5
  store i32 1, ptr %25, align 4, !tbaa !5
  %reass.mul1498 = mul i32 %reass.add1497, %337
  %347 = add i32 %reass.mul1498, %.01265
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds %struct.complex, ptr %50, i64 %348
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull %25, ptr noundef nonnull @c_false, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %349, ptr noundef nonnull %26, ptr noundef nonnull %35, ptr noundef nonnull %36) #9
  br label %.lr.ph1707.preheader

.lr.ph1707.preheader:                             ; preds = %321, %341
  store i32 %320, ptr %20, align 4, !tbaa !5
  br label %.lr.ph1707

.lr.ph1707:                                       ; preds = %.lr.ph1707.preheader, %440
  %.21705 = phi i32 [ %.3, %440 ], [ %337, %.lr.ph1707.preheader ]
  %.012251704 = phi i32 [ %.11226, %440 ], [ %337, %.lr.ph1707.preheader ]
  %.012421703 = phi i32 [ %.11243, %440 ], [ %337, %.lr.ph1707.preheader ]
  %.012701702 = phi i32 [ %442, %440 ], [ %337, %.lr.ph1707.preheader ]
  %350 = load i32, ptr %0, align 4, !tbaa !5
  %351 = icmp slt i32 %.012421703, %350
  br i1 %351, label %352, label %387

352:                                              ; preds = %.lr.ph1707
  %353 = add nsw i32 %.012251704, 1
  %reass.mul1501 = mul i32 %reass.add1500, %353
  %354 = add i32 %310, %.012421703
  %355 = add i32 %354, %reass.mul1501
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds %struct.complex, ptr %50, i64 %356
  call void @clartg_(ptr noundef %357, ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %358 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %358, ptr %23, align 8
  %bc2234 = bitcast <2 x float> %358 to <2 x i32>
  %359 = extractelement <2 x i32> %bc2234, i64 0
  %360 = bitcast i32 %359 to float
  store i32 %359, ptr %36, align 8, !tbaa !13
  %361 = extractelement <2 x float> %358, i64 1
  store float %361, ptr %311, align 4, !tbaa !15
  %362 = load float, ptr %30, align 4, !tbaa !9
  %363 = fmul float %362, %360
  store float %363, ptr %24, align 8, !tbaa !13
  %364 = fmul float %361, %362
  store float %364, ptr %307, align 4, !tbaa !15
  %365 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.061.0.vec.extract = extractelement <2 x float> %365, i64 0
  %.sroa.061.4.vec.extract = extractelement <2 x float> %365, i64 1
  %366 = fneg float %.sroa.061.4.vec.extract
  %367 = call ptr @_pCf(ptr noundef nonnull %23)
  %368 = getelementptr inbounds i8, ptr %367, i64 4
  store float %.sroa.061.0.vec.extract, ptr %367, align 4
  store float %366, ptr %368, align 4
  %369 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %369, ptr %27, align 8, !tbaa !9
  %370 = load float, ptr %28, align 8, !tbaa !13
  %371 = fneg float %370
  %372 = load float, ptr %308, align 4, !tbaa !15
  %373 = fneg float %372
  %374 = load <2 x float>, ptr %36, align 8, !tbaa !9
  %375 = insertelement <2 x float> poison, float %373, i64 0
  %376 = insertelement <2 x float> %375, float %372, i64 1
  %377 = fmul <2 x float> %374, %376
  %378 = shufflevector <2 x float> %377, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %379 = insertelement <2 x float> poison, float %371, i64 0
  %380 = shufflevector <2 x float> %379, <2 x float> poison, <2 x i32> zeroinitializer
  %381 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %380, <2 x float> %374, <2 x float> %378)
  store <2 x float> %381, ptr %24, align 8, !tbaa !9
  %382 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.060.0.vec.extract = extractelement <2 x float> %382, i64 0
  %.sroa.060.4.vec.extract = extractelement <2 x float> %382, i64 1
  %383 = fneg float %.sroa.060.4.vec.extract
  %384 = call ptr @_pCf(ptr noundef nonnull %23)
  %385 = getelementptr inbounds i8, ptr %384, i64 4
  store float %.sroa.060.0.vec.extract, ptr %384, align 4
  store float %383, ptr %385, align 4
  %386 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %386, ptr %28, align 8, !tbaa !9
  br label %387

387:                                              ; preds = %352, %.lr.ph1707
  store i32 1, ptr %21, align 4, !tbaa !5
  %388 = sub nsw i32 %.012701702, %315
  store i32 %388, ptr %22, align 4, !tbaa !5
  %389 = call i32 @llvm.smax.i32(i32 %388, i32 1)
  %390 = add nsw i32 %.012421703, 2
  %391 = sub i32 %390, %389
  store i32 %391, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %32, align 8, !tbaa !9
  %392 = sext i32 %.012701702 to i64
  %393 = icmp slt i64 %indvars.iv2057, %392
  %394 = zext i1 %393 to i32
  store i32 %394, ptr %43, align 4, !tbaa !5
  %reass.mul1505 = mul i32 %reass.add1500, %.012251704
  %395 = add i32 %389, %.01265
  %396 = add i32 %395, %reass.mul1505
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds %struct.complex, ptr %50, i64 %397
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull %43, ptr noundef nonnull @c_true, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %398, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull %35) #9
  %399 = load i32, ptr %43, align 4, !tbaa !5
  %.not1405 = icmp eq i32 %399, 0
  br i1 %.not1405, label %440, label %400

400:                                              ; preds = %387
  %401 = add nsw i32 %.012251704, 1
  %reass.mul1510 = mul i32 %reass.add1500, %401
  %402 = add i32 %310, %389
  %403 = add i32 %402, %reass.mul1510
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds %struct.complex, ptr %50, i64 %404
  call void @clartg_(ptr noundef %405, ptr noundef nonnull %32, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %406 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %406, ptr %23, align 8
  %bc2236 = bitcast <2 x float> %406 to <2 x i32>
  %407 = extractelement <2 x i32> %bc2236, i64 0
  %408 = bitcast i32 %407 to float
  store i32 %407, ptr %36, align 8, !tbaa !13
  %409 = extractelement <2 x float> %406, i64 1
  store float %409, ptr %311, align 4, !tbaa !15
  %410 = load float, ptr %30, align 4, !tbaa !9
  %411 = fmul float %410, %408
  store float %411, ptr %24, align 8, !tbaa !13
  %412 = fmul float %409, %410
  store float %412, ptr %307, align 4, !tbaa !15
  %413 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.058.0.vec.extract = extractelement <2 x float> %413, i64 0
  %.sroa.058.4.vec.extract = extractelement <2 x float> %413, i64 1
  %414 = fneg float %.sroa.058.4.vec.extract
  %415 = call ptr @_pCf(ptr noundef nonnull %23)
  %416 = getelementptr inbounds i8, ptr %415, i64 4
  store float %.sroa.058.0.vec.extract, ptr %415, align 4
  store float %414, ptr %416, align 4
  %417 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %417, ptr %27, align 8, !tbaa !9
  %418 = load float, ptr %28, align 8, !tbaa !13
  %419 = fneg float %418
  %420 = load float, ptr %308, align 4, !tbaa !15
  %421 = fneg float %420
  %422 = load <2 x float>, ptr %36, align 8, !tbaa !9
  %423 = insertelement <2 x float> poison, float %421, i64 0
  %424 = insertelement <2 x float> %423, float %420, i64 1
  %425 = fmul <2 x float> %422, %424
  %426 = shufflevector <2 x float> %425, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %427 = insertelement <2 x float> poison, float %419, i64 0
  %428 = shufflevector <2 x float> %427, <2 x float> poison, <2 x i32> zeroinitializer
  %429 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %428, <2 x float> %422, <2 x float> %426)
  store <2 x float> %429, ptr %24, align 8, !tbaa !9
  %430 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.057.0.vec.extract = extractelement <2 x float> %430, i64 0
  %.sroa.057.4.vec.extract = extractelement <2 x float> %430, i64 1
  %431 = fneg float %.sroa.057.4.vec.extract
  %432 = call ptr @_pCf(ptr noundef nonnull %23)
  %433 = getelementptr inbounds i8, ptr %432, i64 4
  store float %.sroa.057.0.vec.extract, ptr %432, align 4
  store float %431, ptr %433, align 4
  %434 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %434, ptr %28, align 8, !tbaa !9
  store i32 1, ptr %21, align 4, !tbaa !5
  store i32 %388, ptr %22, align 4, !tbaa !5
  %435 = add nsw i32 %.012251704, 2
  %436 = sub i32 %435, %389
  store i32 %436, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  store i32 %394, ptr %25, align 4, !tbaa !5
  %reass.mul1508 = mul i32 %389, %reass.add1497
  %437 = add i32 %reass.mul1508, %.01265
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds %struct.complex, ptr %50, i64 %438
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull %25, ptr noundef nonnull @c_true, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %439, ptr noundef nonnull %26, ptr noundef nonnull %35, ptr noundef nonnull %32) #9
  br label %440

440:                                              ; preds = %387, %400
  %.11243 = phi i32 [ %389, %400 ], [ %.012421703, %387 ]
  %.11226 = phi i32 [ %389, %400 ], [ %.012251704, %387 ]
  %.3 = phi i32 [ %389, %400 ], [ %.21705, %387 ]
  %441 = load i32, ptr %20, align 4, !tbaa !5
  %442 = add nsw i32 %441, %.012701702
  %443 = icmp slt i32 %441, 0
  %444 = icmp sgt i32 %442, 0
  %445 = icmp slt i32 %442, 2
  %.in1404 = select i1 %443, i1 %444, i1 %445
  br i1 %.in1404, label %.lr.ph1707, label %._crit_edge1708, !llvm.loop !18

._crit_edge1708:                                  ; preds = %440
  %indvars.iv.next2054 = add nuw nsw i64 %indvars.iv2053, 1
  %446 = load i32, ptr %19, align 4, !tbaa !5
  %447 = sext i32 %446 to i64
  %.not1402.not = icmp slt i64 %indvars.iv2053, %447
  br i1 %.not1402.not, label %321, label %._crit_edge1716, !llvm.loop !19

._crit_edge1716:                                  ; preds = %._crit_edge1708, %313
  %.11174.lcssa = phi i32 [ %.011731721, %313 ], [ %389, %._crit_edge1708 ]
  %.1.lcssa = phi i32 [ %.01722, %313 ], [ %.3, %._crit_edge1708 ]
  %indvars.iv.next2058 = add nuw nsw i64 %indvars.iv2057, 1
  %.not1394.not = icmp ult i64 %indvars.iv2057, %312
  br i1 %.not1394.not, label %313, label %._crit_edge1725.loopexit, !llvm.loop !20

._crit_edge1725.loopexit:                         ; preds = %._crit_edge1716
  %.pre2200 = load i32, ptr %46, align 4, !tbaa !5
  %.pre2201 = load i32, ptr %45, align 4, !tbaa !5
  br label %._crit_edge1725

._crit_edge1725:                                  ; preds = %._crit_edge1725.loopexit, %306
  %448 = phi i32 [ %243, %306 ], [ %.pre2201, %._crit_edge1725.loopexit ]
  %449 = phi i32 [ %242, %306 ], [ %.pre2200, %._crit_edge1725.loopexit ]
  %.01173.lcssa = phi i32 [ undef, %306 ], [ %.11174.lcssa, %._crit_edge1725.loopexit ]
  %.0.lcssa = phi i32 [ undef, %306 ], [ %.1.lcssa, %._crit_edge1725.loopexit ]
  store i32 %448, ptr %18, align 4, !tbaa !5
  %.not13951746 = icmp slt i32 %448, 1
  br i1 %.not13951746, label %.loopexit1556, label %.lr.ph1751

.lr.ph1751:                                       ; preds = %._crit_edge1725
  %450 = add i32 %449, -1
  %451 = getelementptr inbounds i8, ptr %24, i64 4
  %452 = getelementptr inbounds i8, ptr %28, i64 4
  %reass.add1513 = sub i32 %48, %.01224
  %453 = add i32 %.01265, 1
  %454 = getelementptr inbounds i8, ptr %36, i64 4
  br label %455

455:                                              ; preds = %.lr.ph1751, %._crit_edge1743
  %.41749 = phi i32 [ %.0.lcssa, %.lr.ph1751 ], [ %.5.lcssa, %._crit_edge1743 ]
  %.311761748 = phi i32 [ %.01173.lcssa, %.lr.ph1751 ], [ %.41177.lcssa, %._crit_edge1743 ]
  %.012761747 = phi i32 [ 1, %.lr.ph1751 ], [ %603, %._crit_edge1743 ]
  %456 = load i32, ptr %1, align 4, !tbaa !5
  %457 = add nsw i32 %456, %.012761747
  store i32 %457, ptr %20, align 4, !tbaa !5
  %458 = load i32, ptr %0, align 4, !tbaa !5
  %.1437 = call i32 @llvm.smin.i32(i32 %457, i32 %458)
  %459 = add i32 %450, %.1437
  store i32 %459, ptr %19, align 4, !tbaa !5
  %.not13971738 = icmp slt i32 %459, 1
  br i1 %.not13971738, label %._crit_edge1743, label %.lr.ph1742

.lr.ph1742:                                       ; preds = %455
  %460 = add i32 %.012761747, %449
  %461 = sub i32 0, %460
  %462 = icmp slt i32 %461, 0
  br label %463

463:                                              ; preds = %.lr.ph1742, %._crit_edge1735
  %.51740 = phi i32 [ %.41749, %.lr.ph1742 ], [ %.6.lcssa, %._crit_edge1735 ]
  %.012311739 = phi i32 [ 1, %.lr.ph1742 ], [ %601, %._crit_edge1735 ]
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %464 = call float @slarnd_(ptr noundef nonnull @c__1, ptr noundef nonnull %3) #9
  %465 = fmul float %464, 0x401921FB60000000
  %466 = fpext float %465 to double
  %467 = call double @cos(double noundef %466) #9
  %468 = fptrunc double %467 to float
  %469 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %469, ptr %24, align 8
  %470 = insertelement <2 x float> poison, float %468, i64 0
  %471 = shufflevector <2 x float> %470, <2 x float> poison, <2 x i32> zeroinitializer
  %472 = fmul <2 x float> %469, %471
  store <2 x float> %472, ptr %23, align 8, !tbaa !9
  store <2 x float> %472, ptr %27, align 8, !tbaa !9
  %473 = call double @sin(double noundef %466) #9
  %474 = fptrunc double %473 to float
  %475 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %475, ptr %24, align 8
  %476 = insertelement <2 x float> poison, float %474, i64 0
  %477 = shufflevector <2 x float> %476, <2 x float> poison, <2 x i32> zeroinitializer
  %478 = fmul <2 x float> %475, %477
  store <2 x float> %478, ptr %23, align 8, !tbaa !9
  store <2 x float> %478, ptr %28, align 8, !tbaa !9
  %479 = sub nsw i32 %.012311739, %449
  store i32 %479, ptr %21, align 4, !tbaa !5
  %480 = call i32 @llvm.smax.i32(i32 %479, i32 1)
  %481 = load i32, ptr %1, align 4, !tbaa !5
  %482 = icmp slt i32 %.012311739, %481
  br i1 %482, label %483, label %494

483:                                              ; preds = %463
  %484 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %484, ptr %20, align 4, !tbaa !5
  %485 = add nuw nsw i32 %.012311739, %.012761747
  store i32 %485, ptr %21, align 4, !tbaa !5
  %486 = call i32 @llvm.smin.i32(i32 %484, i32 %485)
  %reass.sub1909 = sub i32 %486, %480
  %487 = add i32 %reass.sub1909, 1
  store i32 %487, ptr %38, align 4, !tbaa !5
  %488 = icmp sgt i32 %.012311739, %449
  %489 = zext i1 %488 to i32
  store i32 %489, ptr %25, align 4, !tbaa !5
  %reass.mul1514 = mul i32 %reass.add1513, %.012311739
  %490 = add i32 %480, %.01265
  %491 = add i32 %490, %reass.mul1514
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds %struct.complex, ptr %50, i64 %492
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull %25, ptr noundef nonnull @c_false, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %493, ptr noundef nonnull %26, ptr noundef nonnull %35, ptr noundef nonnull %36) #9
  br label %494

494:                                              ; preds = %483, %463
  store i32 %461, ptr %20, align 4, !tbaa !5
  %495 = icmp sgt i32 %479, 0
  %496 = icmp slt i32 %479, 2
  %.in13991728 = select i1 %462, i1 %495, i1 %496
  br i1 %.in13991728, label %.lr.ph1734, label %._crit_edge1735

.lr.ph1734:                                       ; preds = %494, %595
  %.511781732 = phi i32 [ %.61179, %595 ], [ %480, %494 ]
  %.212271731 = phi i32 [ %.31228, %595 ], [ %.012311739, %494 ]
  %.212441730 = phi i32 [ %.31245, %595 ], [ %480, %494 ]
  %.112711729 = phi i32 [ %597, %595 ], [ %479, %494 ]
  %497 = load i32, ptr %1, align 4, !tbaa !5
  %498 = icmp slt i32 %.212271731, %497
  br i1 %498, label %499, label %534

499:                                              ; preds = %.lr.ph1734
  %500 = add nsw i32 %.212271731, 1
  %reass.mul1517 = mul i32 %reass.add1513, %500
  %501 = add i32 %453, %.212441730
  %502 = add i32 %501, %reass.mul1517
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds %struct.complex, ptr %50, i64 %503
  call void @clartg_(ptr noundef %504, ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %505 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %505, ptr %23, align 8
  %bc2244 = bitcast <2 x float> %505 to <2 x i32>
  %506 = extractelement <2 x i32> %bc2244, i64 0
  %507 = bitcast i32 %506 to float
  store i32 %506, ptr %36, align 8, !tbaa !13
  %508 = extractelement <2 x float> %505, i64 1
  store float %508, ptr %454, align 4, !tbaa !15
  %509 = load float, ptr %30, align 4, !tbaa !9
  %510 = fmul float %509, %507
  store float %510, ptr %24, align 8, !tbaa !13
  %511 = fmul float %508, %509
  store float %511, ptr %451, align 4, !tbaa !15
  %512 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.053.0.vec.extract = extractelement <2 x float> %512, i64 0
  %.sroa.053.4.vec.extract = extractelement <2 x float> %512, i64 1
  %513 = fneg float %.sroa.053.4.vec.extract
  %514 = call ptr @_pCf(ptr noundef nonnull %23)
  %515 = getelementptr inbounds i8, ptr %514, i64 4
  store float %.sroa.053.0.vec.extract, ptr %514, align 4
  store float %513, ptr %515, align 4
  %516 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %516, ptr %27, align 8, !tbaa !9
  %517 = load float, ptr %28, align 8, !tbaa !13
  %518 = fneg float %517
  %519 = load float, ptr %452, align 4, !tbaa !15
  %520 = fneg float %519
  %521 = load <2 x float>, ptr %36, align 8, !tbaa !9
  %522 = insertelement <2 x float> poison, float %520, i64 0
  %523 = insertelement <2 x float> %522, float %519, i64 1
  %524 = fmul <2 x float> %521, %523
  %525 = shufflevector <2 x float> %524, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %526 = insertelement <2 x float> poison, float %518, i64 0
  %527 = shufflevector <2 x float> %526, <2 x float> poison, <2 x i32> zeroinitializer
  %528 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %527, <2 x float> %521, <2 x float> %525)
  store <2 x float> %528, ptr %24, align 8, !tbaa !9
  %529 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.052.0.vec.extract = extractelement <2 x float> %529, i64 0
  %.sroa.052.4.vec.extract = extractelement <2 x float> %529, i64 1
  %530 = fneg float %.sroa.052.4.vec.extract
  %531 = call ptr @_pCf(ptr noundef nonnull %23)
  %532 = getelementptr inbounds i8, ptr %531, i64 4
  store float %.sroa.052.0.vec.extract, ptr %531, align 4
  store float %530, ptr %532, align 4
  %533 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %533, ptr %28, align 8, !tbaa !9
  br label %534

534:                                              ; preds = %499, %.lr.ph1734
  store i32 1, ptr %21, align 4, !tbaa !5
  %535 = sub nsw i32 %.112711729, %.012761747
  store i32 %535, ptr %22, align 4, !tbaa !5
  %536 = call i32 @llvm.smax.i32(i32 %535, i32 1)
  %537 = add nsw i32 %.212271731, 2
  %538 = sub i32 %537, %536
  store i32 %538, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %32, align 8, !tbaa !9
  %539 = icmp sgt i32 %.112711729, %.012761747
  %540 = zext i1 %539 to i32
  store i32 %540, ptr %43, align 4, !tbaa !5
  %541 = mul nuw nsw i32 %.01224, %536
  %542 = mul nsw i32 %536, %48
  %543 = add i32 %.212441730, %.01265
  %544 = add i32 %543, %542
  %545 = sub i32 %544, %541
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds %struct.complex, ptr %50, i64 %546
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull %43, ptr noundef nonnull @c_true, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %547, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull %35) #9
  %548 = load i32, ptr %43, align 4, !tbaa !5
  %.not1400 = icmp eq i32 %548, 0
  br i1 %.not1400, label %595, label %549

549:                                              ; preds = %534
  %550 = add nuw nsw i32 %536, 1
  %reass.mul1523 = mul i32 %reass.add1513, %550
  %551 = add i32 %453, %.212441730
  %552 = add i32 %551, %reass.mul1523
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds %struct.complex, ptr %50, i64 %553
  call void @clartg_(ptr noundef %554, ptr noundef nonnull %32, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %555 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %555, ptr %23, align 8
  %bc2246 = bitcast <2 x float> %555 to <2 x i32>
  %556 = extractelement <2 x i32> %bc2246, i64 0
  %557 = bitcast i32 %556 to float
  store i32 %556, ptr %36, align 8, !tbaa !13
  %558 = extractelement <2 x float> %555, i64 1
  store float %558, ptr %454, align 4, !tbaa !15
  %559 = load float, ptr %30, align 4, !tbaa !9
  %560 = fmul float %559, %557
  store float %560, ptr %24, align 8, !tbaa !13
  %561 = fmul float %558, %559
  store float %561, ptr %451, align 4, !tbaa !15
  %562 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.050.0.vec.extract = extractelement <2 x float> %562, i64 0
  %.sroa.050.4.vec.extract = extractelement <2 x float> %562, i64 1
  %563 = fneg float %.sroa.050.4.vec.extract
  %564 = call ptr @_pCf(ptr noundef nonnull %23)
  %565 = getelementptr inbounds i8, ptr %564, i64 4
  store float %.sroa.050.0.vec.extract, ptr %564, align 4
  store float %563, ptr %565, align 4
  %566 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %566, ptr %27, align 8, !tbaa !9
  %567 = load float, ptr %28, align 8, !tbaa !13
  %568 = fneg float %567
  %569 = load float, ptr %452, align 4, !tbaa !15
  %570 = fneg float %569
  %571 = load <2 x float>, ptr %36, align 8, !tbaa !9
  %572 = insertelement <2 x float> poison, float %570, i64 0
  %573 = insertelement <2 x float> %572, float %569, i64 1
  %574 = fmul <2 x float> %571, %573
  %575 = shufflevector <2 x float> %574, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %576 = insertelement <2 x float> poison, float %568, i64 0
  %577 = shufflevector <2 x float> %576, <2 x float> poison, <2 x i32> zeroinitializer
  %578 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %577, <2 x float> %571, <2 x float> %575)
  store <2 x float> %578, ptr %24, align 8, !tbaa !9
  %579 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.049.0.vec.extract = extractelement <2 x float> %579, i64 0
  %.sroa.049.4.vec.extract = extractelement <2 x float> %579, i64 1
  %580 = fneg float %.sroa.049.4.vec.extract
  %581 = call ptr @_pCf(ptr noundef nonnull %23)
  %582 = getelementptr inbounds i8, ptr %581, i64 4
  store float %.sroa.049.0.vec.extract, ptr %581, align 4
  store float %580, ptr %582, align 4
  %583 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %583, ptr %28, align 8, !tbaa !9
  store i32 1, ptr %21, align 4, !tbaa !5
  %584 = sub nsw i32 %535, %449
  store i32 %584, ptr %22, align 4, !tbaa !5
  %585 = call i32 @llvm.smax.i32(i32 %584, i32 1)
  %586 = add nuw nsw i32 %.212441730, 2
  %587 = sub nsw i32 %586, %585
  store i32 %587, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %588 = icmp sgt i32 %.112711729, %460
  %589 = zext i1 %588 to i32
  store i32 %589, ptr %25, align 4, !tbaa !5
  %590 = add i32 %585, %.01265
  %591 = add i32 %590, %542
  %592 = sub i32 %591, %541
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds %struct.complex, ptr %50, i64 %593
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull %25, ptr noundef nonnull @c_true, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %594, ptr noundef nonnull %26, ptr noundef nonnull %35, ptr noundef nonnull %32) #9
  br label %595

595:                                              ; preds = %534, %549
  %.31245 = phi i32 [ %585, %549 ], [ %.212441730, %534 ]
  %.31228 = phi i32 [ %536, %549 ], [ %.212271731, %534 ]
  %.61179 = phi i32 [ %585, %549 ], [ %.511781732, %534 ]
  %596 = load i32, ptr %20, align 4, !tbaa !5
  %597 = add nsw i32 %596, %.112711729
  %598 = icmp slt i32 %596, 0
  %599 = icmp sgt i32 %597, 0
  %600 = icmp slt i32 %597, 2
  %.in1399 = select i1 %598, i1 %599, i1 %600
  br i1 %.in1399, label %.lr.ph1734, label %._crit_edge1735, !llvm.loop !21

._crit_edge1735:                                  ; preds = %595, %494
  %.51178.lcssa = phi i32 [ %480, %494 ], [ %.61179, %595 ]
  %.6.lcssa = phi i32 [ %.51740, %494 ], [ %536, %595 ]
  %601 = add nuw nsw i32 %.012311739, 1
  %602 = load i32, ptr %19, align 4, !tbaa !5
  %.not1397.not = icmp slt i32 %.012311739, %602
  br i1 %.not1397.not, label %463, label %._crit_edge1743, !llvm.loop !22

._crit_edge1743:                                  ; preds = %._crit_edge1735, %455
  %.41177.lcssa = phi i32 [ %.311761748, %455 ], [ %.51178.lcssa, %._crit_edge1735 ]
  %.5.lcssa = phi i32 [ %.41749, %455 ], [ %.6.lcssa, %._crit_edge1735 ]
  %603 = add nuw nsw i32 %.012761747, 1
  %.not1395.not = icmp slt i32 %.012761747, %448
  br i1 %.not1395.not, label %455, label %.loopexit1556, !llvm.loop !23

604:                                              ; preds = %305
  br i1 %.not13761770, label %._crit_edge1776, label %.lr.ph1775

.lr.ph1775:                                       ; preds = %604
  %605 = getelementptr inbounds i8, ptr %23, i64 4
  %606 = getelementptr inbounds i8, ptr %27, i64 4
  %607 = getelementptr inbounds i8, ptr %28, i64 4
  %reass.add1526 = sub i32 %48, %.01224
  %608 = getelementptr inbounds i8, ptr %36, i64 4
  br label %609

609:                                              ; preds = %.lr.ph1775, %._crit_edge1767
  %.71773 = phi i32 [ undef, %.lr.ph1775 ], [ %.8.lcssa, %._crit_edge1767 ]
  %.711801772 = phi i32 [ undef, %.lr.ph1775 ], [ %.81181.lcssa, %._crit_edge1767 ]
  %.112791771 = phi i32 [ 1, %.lr.ph1775 ], [ %710, %._crit_edge1767 ]
  %610 = load i32, ptr %0, align 4, !tbaa !5
  %611 = load i32, ptr %1, align 4, !tbaa !5
  %612 = call i32 @llvm.smin.i32(i32 %610, i32 %611)
  %613 = add nsw i32 %612, -1
  %614 = add nsw i32 %610, %.112791771
  store i32 %614, ptr %19, align 4, !tbaa !5
  store i32 1, ptr %20, align 4, !tbaa !5
  %.1438 = call i32 @llvm.smin.i32(i32 %614, i32 %611)
  %.not1388.not1761 = icmp sgt i32 %.1438, 1
  br i1 %.not1388.not1761, label %.lr.ph1766, label %._crit_edge1767

.loopexit1557:                                    ; preds = %703, %646
  %.9.lcssa = phi i32 [ %.81763, %646 ], [ %673, %703 ]
  %615 = load i32, ptr %20, align 4, !tbaa !5
  %.not1388.not = icmp sgt i32 %.112321764, %615
  br i1 %.not1388.not, label %.lr.ph1766, label %._crit_edge1767, !llvm.loop !24

.lr.ph1766:                                       ; preds = %609, %.loopexit1557
  %.81763 = phi i32 [ %.9.lcssa, %.loopexit1557 ], [ %.71773, %609 ]
  %.11232.in1762 = phi i32 [ %.112321764, %.loopexit1557 ], [ %.1438, %609 ]
  %.112321764 = add nsw i32 %.11232.in1762, -1
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %616 = call float @slarnd_(ptr noundef nonnull @c__1, ptr noundef nonnull %3) #9
  %617 = fmul float %616, 0x401921FB60000000
  %618 = fpext float %617 to double
  %619 = call double @cos(double noundef %618) #9
  %620 = fptrunc double %619 to float
  %621 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %621, ptr %24, align 8
  %622 = insertelement <2 x float> poison, float %620, i64 0
  %623 = shufflevector <2 x float> %622, <2 x float> poison, <2 x i32> zeroinitializer
  %624 = fmul <2 x float> %621, %623
  store <2 x float> %624, ptr %23, align 8, !tbaa !9
  store <2 x float> %624, ptr %27, align 8, !tbaa !9
  %625 = call double @sin(double noundef %618) #9
  %626 = fptrunc double %625 to float
  %627 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %627, ptr %24, align 8
  %628 = insertelement <2 x float> poison, float %626, i64 0
  %629 = shufflevector <2 x float> %628, <2 x float> poison, <2 x i32> zeroinitializer
  %630 = fmul <2 x float> %627, %629
  store <2 x float> %630, ptr %23, align 8, !tbaa !9
  store <2 x float> %630, ptr %28, align 8, !tbaa !9
  %631 = sub nsw i32 %.112321764, %.112791771
  %632 = add nsw i32 %631, 1
  %633 = icmp slt i32 %631, 1
  %634 = select i1 %633, i32 1, i32 %632
  %635 = icmp sgt i32 %.11232.in1762, 1
  br i1 %635, label %636, label %646

636:                                              ; preds = %.lr.ph1766
  %637 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %637, ptr %19, align 4, !tbaa !5
  store i32 %.11232.in1762, ptr %21, align 4, !tbaa !5
  %638 = call i32 @llvm.smin.i32(i32 %637, i32 %.11232.in1762)
  %reass.sub1910 = sub i32 %638, %634
  %639 = add i32 %reass.sub1910, 1
  store i32 %639, ptr %38, align 4, !tbaa !5
  %640 = icmp sle i32 %.11232.in1762, %637
  %641 = zext i1 %640 to i32
  store i32 %641, ptr %25, align 4, !tbaa !5
  %reass.mul1527 = mul i32 %reass.add1526, %.112321764
  %642 = add i32 %634, %.01265
  %643 = add i32 %642, %reass.mul1527
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds %struct.complex, ptr %50, i64 %644
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull %25, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %645, ptr noundef nonnull %26, ptr noundef nonnull %36, ptr noundef nonnull %35) #9
  br label %646

646:                                              ; preds = %636, %.lr.ph1766
  store i32 %613, ptr %19, align 4, !tbaa !5
  store i32 %.112791771, ptr %21, align 4, !tbaa !5
  %.not1911 = icmp sgt i32 %.11232.in1762, %612
  br i1 %.not1911, label %.loopexit1557, label %.lr.ph1758

.lr.ph1758:                                       ; preds = %646, %703
  %.412291756 = phi i32 [ %.51230, %703 ], [ %.112321764, %646 ]
  %.212721755 = phi i32 [ %705, %703 ], [ %.112321764, %646 ]
  %647 = icmp sgt i32 %.412291756, 0
  %648 = zext i1 %647 to i32
  store i32 %648, ptr %44, align 4, !tbaa !5
  br i1 %647, label %649, label %.lr.ph1758._crit_edge

.lr.ph1758._crit_edge:                            ; preds = %.lr.ph1758
  %.pre2207 = add i32 %.212721755, %.01265
  br label %668

649:                                              ; preds = %.lr.ph1758
  %reass.mul1530 = mul i32 %reass.add1526, %.412291756
  %650 = add i32 %.212721755, %.01265
  %651 = add i32 %650, %reass.mul1530
  %652 = sext i32 %651 to i64
  %653 = getelementptr inbounds %struct.complex, ptr %50, i64 %652
  call void @clartg_(ptr noundef %653, ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %654 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  %bc2254 = bitcast <2 x float> %654 to <2 x i32>
  %655 = extractelement <2 x i32> %bc2254, i64 0
  %656 = bitcast i32 %655 to float
  store i32 %655, ptr %36, align 8, !tbaa !13
  %657 = extractelement <2 x float> %654, i64 1
  store float %657, ptr %608, align 4, !tbaa !15
  %658 = load float, ptr %30, align 4, !tbaa !9
  %659 = fmul float %658, %656
  %660 = fmul float %657, %658
  store float %659, ptr %27, align 8, !tbaa !13
  store float %660, ptr %606, align 4, !tbaa !15
  %661 = load float, ptr %28, align 8, !tbaa !13
  %662 = load float, ptr %607, align 4, !tbaa !15
  %663 = fneg float %662
  %664 = fmul float %657, %663
  %665 = call float @llvm.fmuladd.f32(float %661, float %656, float %664)
  store float %665, ptr %23, align 8, !tbaa !13
  %666 = fmul float %662, %656
  %667 = call float @llvm.fmuladd.f32(float %661, float %657, float %666)
  store float %667, ptr %605, align 4, !tbaa !15
  store float %665, ptr %28, align 8, !tbaa !13
  store float %667, ptr %607, align 4, !tbaa !15
  br label %668

668:                                              ; preds = %.lr.ph1758._crit_edge, %649
  %.pre-phi2208 = phi i32 [ %.pre2207, %.lr.ph1758._crit_edge ], [ %650, %649 ]
  %669 = call i32 @llvm.smax.i32(i32 %.412291756, i32 1)
  %670 = load i32, ptr %1, align 4, !tbaa !5
  %671 = add nsw i32 %670, -1
  %672 = add nsw i32 %.212721755, %.112791771
  %673 = call i32 @llvm.smin.i32(i32 %671, i32 %672)
  %674 = icmp slt i32 %672, %670
  %675 = zext i1 %674 to i32
  store i32 %675, ptr %43, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %32, align 8, !tbaa !9
  %reass.sub1912 = sub i32 %673, %669
  %676 = add i32 %reass.sub1912, 2
  store i32 %676, ptr %22, align 4, !tbaa !5
  %reass.mul1534 = mul i32 %reass.add1526, %669
  %677 = add i32 %.pre-phi2208, %reass.mul1534
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds %struct.complex, ptr %50, i64 %678
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull %44, ptr noundef nonnull %43, ptr noundef nonnull %22, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %679, ptr noundef nonnull %26, ptr noundef nonnull %35, ptr noundef nonnull %32) #9
  %680 = load i32, ptr %43, align 4, !tbaa !5
  %.not1392 = icmp eq i32 %680, 0
  br i1 %.not1392, label %703, label %681

681:                                              ; preds = %668
  %reass.mul1537 = mul i32 %reass.add1526, %673
  %682 = add i32 %.pre-phi2208, %reass.mul1537
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds %struct.complex, ptr %50, i64 %683
  call void @clartg_(ptr noundef %684, ptr noundef nonnull %32, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %685 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  %bc2256 = bitcast <2 x float> %685 to <2 x i32>
  %686 = extractelement <2 x i32> %bc2256, i64 0
  %687 = bitcast i32 %686 to float
  store i32 %686, ptr %36, align 8, !tbaa !13
  %688 = extractelement <2 x float> %685, i64 1
  store float %688, ptr %608, align 4, !tbaa !15
  %689 = load float, ptr %30, align 4, !tbaa !9
  %690 = fmul float %689, %687
  %691 = fmul float %688, %689
  store float %690, ptr %27, align 8, !tbaa !13
  store float %691, ptr %606, align 4, !tbaa !15
  %692 = load float, ptr %28, align 8, !tbaa !13
  %693 = load float, ptr %607, align 4, !tbaa !15
  %694 = fneg float %693
  %695 = fmul float %688, %694
  %696 = call float @llvm.fmuladd.f32(float %692, float %687, float %695)
  store float %696, ptr %23, align 8, !tbaa !13
  %697 = fmul float %693, %687
  %698 = call float @llvm.fmuladd.f32(float %692, float %688, float %697)
  store float %698, ptr %605, align 4, !tbaa !15
  store float %696, ptr %28, align 8, !tbaa !13
  store float %698, ptr %607, align 4, !tbaa !15
  store i32 %613, ptr %22, align 4, !tbaa !5
  %699 = call i32 @llvm.smin.i32(i32 %613, i32 %672)
  %reass.sub1913 = sub i32 %699, %.212721755
  %700 = add i32 %reass.sub1913, 2
  store i32 %700, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %701 = icmp slt i32 %672, %612
  %702 = zext i1 %701 to i32
  store i32 %702, ptr %25, align 4, !tbaa !5
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_true, ptr noundef nonnull %25, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %684, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull %35) #9
  br label %703

703:                                              ; preds = %668, %681
  %.51230 = phi i32 [ %673, %681 ], [ %669, %668 ]
  %704 = load i32, ptr %21, align 4, !tbaa !5
  %705 = add nsw i32 %704, %.212721755
  %706 = icmp slt i32 %704, 0
  %707 = load i32, ptr %19, align 4
  %708 = icmp sge i32 %705, %707
  %709 = icmp sle i32 %705, %707
  %.in1390 = select i1 %706, i1 %708, i1 %709
  br i1 %.in1390, label %.lr.ph1758, label %.loopexit1557, !llvm.loop !25

._crit_edge1767:                                  ; preds = %.loopexit1557, %609
  %.81181.lcssa = phi i32 [ %.711801772, %609 ], [ %634, %.loopexit1557 ]
  %.8.lcssa = phi i32 [ %.71773, %609 ], [ %.9.lcssa, %.loopexit1557 ]
  %710 = add nuw nsw i32 %.112791771, 1
  %.not1376.not = icmp slt i32 %.112791771, %242
  br i1 %.not1376.not, label %609, label %._crit_edge1776.loopexit, !llvm.loop !26

._crit_edge1776.loopexit:                         ; preds = %._crit_edge1767
  %.pre2202 = load i32, ptr %46, align 4, !tbaa !5
  %.pre2203 = load i32, ptr %45, align 4, !tbaa !5
  br label %._crit_edge1776

._crit_edge1776:                                  ; preds = %._crit_edge1776.loopexit, %604
  %711 = phi i32 [ %243, %604 ], [ %.pre2203, %._crit_edge1776.loopexit ]
  %712 = phi i32 [ %242, %604 ], [ %.pre2202, %._crit_edge1776.loopexit ]
  %.71180.lcssa = phi i32 [ undef, %604 ], [ %.81181.lcssa, %._crit_edge1776.loopexit ]
  %.7.lcssa = phi i32 [ undef, %604 ], [ %.8.lcssa, %._crit_edge1776.loopexit ]
  store i32 %711, ptr %18, align 4, !tbaa !5
  %.not13771795 = icmp slt i32 %711, 1
  br i1 %.not13771795, label %.loopexit1556, label %.lr.ph1800

.lr.ph1800:                                       ; preds = %._crit_edge1776
  %713 = sub nsw i32 1, %712
  %714 = getelementptr inbounds i8, ptr %23, i64 4
  %715 = getelementptr inbounds i8, ptr %27, i64 4
  %716 = getelementptr inbounds i8, ptr %28, i64 4
  %reass.add1540 = sub i32 %48, %.01224
  %717 = getelementptr inbounds i8, ptr %36, i64 4
  br label %718

718:                                              ; preds = %.lr.ph1800, %._crit_edge1792
  %.101798 = phi i32 [ %.7.lcssa, %.lr.ph1800 ], [ %.11.lcssa, %._crit_edge1792 ]
  %.911821797 = phi i32 [ %.71180.lcssa, %.lr.ph1800 ], [ %.101183.lcssa, %._crit_edge1792 ]
  %.112771796 = phi i32 [ 1, %.lr.ph1800 ], [ %832, %._crit_edge1792 ]
  %719 = load i32, ptr %1, align 4, !tbaa !5
  %720 = load i32, ptr %0, align 4, !tbaa !5
  %721 = add nsw i32 %720, %712
  %722 = call i32 @llvm.smin.i32(i32 %719, i32 %721)
  %723 = add nsw i32 %722, -1
  %724 = add nsw i32 %719, %.112771796
  store i32 %724, ptr %20, align 4, !tbaa !5
  store i32 %713, ptr %21, align 4, !tbaa !5
  %.1439 = call i32 @llvm.smin.i32(i32 %724, i32 %720)
  %.not1380.not1786 = icmp sgt i32 %.1439, %713
  br i1 %.not1380.not1786, label %.lr.ph1791, label %._crit_edge1792

.lr.ph1791:                                       ; preds = %718
  %725 = add nsw i32 %.112771796, %712
  %726 = icmp slt i32 %725, 0
  br label %728

.loopexit1555:                                    ; preds = %825, %761
  %.111184.lcssa = phi i32 [ %.1011831788, %761 ], [ %790, %825 ]
  %727 = load i32, ptr %21, align 4, !tbaa !5
  %.not1380.not = icmp sgt i32 %.112491789, %727
  br i1 %.not1380.not, label %728, label %._crit_edge1792, !llvm.loop !27

728:                                              ; preds = %.lr.ph1791, %.loopexit1555
  %.1011831788 = phi i32 [ %.911821797, %.lr.ph1791 ], [ %.111184.lcssa, %.loopexit1555 ]
  %.11249.in1787 = phi i32 [ %.1439, %.lr.ph1791 ], [ %.112491789, %.loopexit1555 ]
  %.112491789 = add nsw i32 %.11249.in1787, -1
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %729 = call float @slarnd_(ptr noundef nonnull @c__1, ptr noundef nonnull %3) #9
  %730 = fmul float %729, 0x401921FB60000000
  %731 = fpext float %730 to double
  %732 = call double @cos(double noundef %731) #9
  %733 = fptrunc double %732 to float
  %734 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %734, ptr %24, align 8
  %735 = insertelement <2 x float> poison, float %733, i64 0
  %736 = shufflevector <2 x float> %735, <2 x float> poison, <2 x i32> zeroinitializer
  %737 = fmul <2 x float> %734, %736
  store <2 x float> %737, ptr %23, align 8, !tbaa !9
  store <2 x float> %737, ptr %27, align 8, !tbaa !9
  %738 = call double @sin(double noundef %731) #9
  %739 = fptrunc double %738 to float
  %740 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %740, ptr %24, align 8
  %741 = insertelement <2 x float> poison, float %739, i64 0
  %742 = shufflevector <2 x float> %741, <2 x float> poison, <2 x i32> zeroinitializer
  %743 = fmul <2 x float> %740, %742
  store <2 x float> %743, ptr %23, align 8, !tbaa !9
  store <2 x float> %743, ptr %28, align 8, !tbaa !9
  %744 = sub nsw i32 %.112491789, %.112771796
  %745 = add nsw i32 %744, 1
  %746 = icmp slt i32 %744, 1
  %747 = select i1 %746, i32 1, i32 %745
  %748 = icmp sgt i32 %.11249.in1787, 1
  br i1 %748, label %749, label %._crit_edge2205

._crit_edge2205:                                  ; preds = %728
  %.pre2206 = add nsw i32 %.112491789, %712
  br label %761

749:                                              ; preds = %728
  %750 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %750, ptr %20, align 4, !tbaa !5
  %751 = add nsw i32 %.112491789, %712
  %752 = add i32 %.11249.in1787, %712
  store i32 %752, ptr %19, align 4, !tbaa !5
  %753 = call i32 @llvm.smin.i32(i32 %750, i32 %752)
  %reass.sub1914 = sub i32 %753, %747
  %754 = add i32 %reass.sub1914, 1
  store i32 %754, ptr %38, align 4, !tbaa !5
  %755 = icmp slt i32 %751, %750
  %756 = zext i1 %755 to i32
  store i32 %756, ptr %25, align 4, !tbaa !5
  %reass.mul1541 = mul i32 %reass.add1540, %747
  %757 = add i32 %.112491789, %.01265
  %758 = add i32 %757, %reass.mul1541
  %759 = sext i32 %758 to i64
  %760 = getelementptr inbounds %struct.complex, ptr %50, i64 %759
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_false, ptr noundef nonnull %25, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %760, ptr noundef nonnull %26, ptr noundef nonnull %36, ptr noundef nonnull %35) #9
  br label %761

761:                                              ; preds = %._crit_edge2205, %749
  %.pre-phi = phi i32 [ %.pre2206, %._crit_edge2205 ], [ %751, %749 ]
  store i32 %723, ptr %20, align 4, !tbaa !5
  store i32 %725, ptr %19, align 4, !tbaa !5
  %762 = icmp sge i32 %.pre-phi, %723
  %763 = icmp slt i32 %.pre-phi, %722
  %.in13821779 = select i1 %726, i1 %762, i1 %763
  br i1 %.in13821779, label %.lr.ph1783, label %.loopexit1555

.lr.ph1783:                                       ; preds = %761, %825
  %.412461781 = phi i32 [ %.51247, %825 ], [ %.112491789, %761 ]
  %.312731780 = phi i32 [ %827, %825 ], [ %.pre-phi, %761 ]
  %764 = icmp sgt i32 %.412461781, 0
  %765 = zext i1 %764 to i32
  store i32 %765, ptr %44, align 4, !tbaa !5
  br i1 %764, label %766, label %785

766:                                              ; preds = %.lr.ph1783
  %reass.mul1544 = mul i32 %reass.add1540, %.312731780
  %767 = add i32 %.412461781, %.01265
  %768 = add i32 %767, %reass.mul1544
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds %struct.complex, ptr %50, i64 %769
  call void @clartg_(ptr noundef %770, ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %771 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  %bc2264 = bitcast <2 x float> %771 to <2 x i32>
  %772 = extractelement <2 x i32> %bc2264, i64 0
  %773 = bitcast i32 %772 to float
  store i32 %772, ptr %36, align 8, !tbaa !13
  %774 = extractelement <2 x float> %771, i64 1
  store float %774, ptr %717, align 4, !tbaa !15
  %775 = load float, ptr %30, align 4, !tbaa !9
  %776 = fmul float %775, %773
  %777 = fmul float %774, %775
  store float %776, ptr %27, align 8, !tbaa !13
  store float %777, ptr %715, align 4, !tbaa !15
  %778 = load float, ptr %28, align 8, !tbaa !13
  %779 = load float, ptr %716, align 4, !tbaa !15
  %780 = fneg float %779
  %781 = fmul float %774, %780
  %782 = call float @llvm.fmuladd.f32(float %778, float %773, float %781)
  store float %782, ptr %23, align 8, !tbaa !13
  %783 = fmul float %779, %773
  %784 = call float @llvm.fmuladd.f32(float %778, float %774, float %783)
  store float %784, ptr %714, align 4, !tbaa !15
  store float %782, ptr %28, align 8, !tbaa !13
  store float %784, ptr %716, align 4, !tbaa !15
  br label %785

785:                                              ; preds = %766, %.lr.ph1783
  %786 = call i32 @llvm.smax.i32(i32 %.412461781, i32 1)
  %787 = load i32, ptr %0, align 4, !tbaa !5
  %788 = add nsw i32 %787, -1
  %789 = add nsw i32 %.312731780, %.112771796
  %790 = call i32 @llvm.smin.i32(i32 %788, i32 %789)
  %791 = icmp slt i32 %789, %787
  %792 = zext i1 %791 to i32
  store i32 %792, ptr %43, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %32, align 8, !tbaa !9
  %reass.sub1915 = sub i32 %790, %786
  %793 = add i32 %reass.sub1915, 2
  store i32 %793, ptr %22, align 4, !tbaa !5
  %794 = mul nuw nsw i32 %.01224, %.312731780
  %795 = mul nsw i32 %.312731780, %48
  %796 = add i32 %795, %.01265
  %797 = sub i32 %796, %794
  %798 = add i32 %797, %786
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds %struct.complex, ptr %50, i64 %799
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull %44, ptr noundef nonnull %43, ptr noundef nonnull %22, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %800, ptr noundef nonnull %26, ptr noundef nonnull %35, ptr noundef nonnull %32) #9
  %801 = load i32, ptr %43, align 4, !tbaa !5
  %.not1384 = icmp eq i32 %801, 0
  br i1 %.not1384, label %825, label %802

802:                                              ; preds = %785
  %803 = add i32 %797, %790
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds %struct.complex, ptr %50, i64 %804
  call void @clartg_(ptr noundef %805, ptr noundef nonnull %32, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %806 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  %bc2266 = bitcast <2 x float> %806 to <2 x i32>
  %807 = extractelement <2 x i32> %bc2266, i64 0
  %808 = bitcast i32 %807 to float
  store i32 %807, ptr %36, align 8, !tbaa !13
  %809 = extractelement <2 x float> %806, i64 1
  store float %809, ptr %717, align 4, !tbaa !15
  %810 = load float, ptr %30, align 4, !tbaa !9
  %811 = fmul float %810, %808
  %812 = fmul float %809, %810
  store float %811, ptr %27, align 8, !tbaa !13
  store float %812, ptr %715, align 4, !tbaa !15
  %813 = load float, ptr %28, align 8, !tbaa !13
  %814 = load float, ptr %716, align 4, !tbaa !15
  %815 = fneg float %814
  %816 = fmul float %809, %815
  %817 = call float @llvm.fmuladd.f32(float %813, float %808, float %816)
  store float %817, ptr %23, align 8, !tbaa !13
  %818 = fmul float %814, %808
  %819 = call float @llvm.fmuladd.f32(float %813, float %809, float %818)
  store float %819, ptr %714, align 4, !tbaa !15
  store float %817, ptr %28, align 8, !tbaa !13
  store float %819, ptr %716, align 4, !tbaa !15
  store i32 %723, ptr %22, align 4, !tbaa !5
  %820 = add nsw i32 %789, %712
  %821 = call i32 @llvm.smin.i32(i32 %723, i32 %820)
  %reass.sub1916 = sub i32 %821, %.312731780
  %822 = add i32 %reass.sub1916, 2
  store i32 %822, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %823 = icmp slt i32 %820, %722
  %824 = zext i1 %823 to i32
  store i32 %824, ptr %25, align 4, !tbaa !5
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %25, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %805, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull %35) #9
  br label %825

825:                                              ; preds = %785, %802
  %.51247 = phi i32 [ %790, %802 ], [ %786, %785 ]
  %826 = load i32, ptr %19, align 4, !tbaa !5
  %827 = add nsw i32 %826, %.312731780
  %828 = icmp slt i32 %826, 0
  %829 = load i32, ptr %20, align 4
  %830 = icmp sge i32 %827, %829
  %831 = icmp sle i32 %827, %829
  %.in1382 = select i1 %828, i1 %830, i1 %831
  br i1 %.in1382, label %.lr.ph1783, label %.loopexit1555, !llvm.loop !28

._crit_edge1792:                                  ; preds = %.loopexit1555, %718
  %.101183.lcssa = phi i32 [ %.911821797, %718 ], [ %.111184.lcssa, %.loopexit1555 ]
  %.11.lcssa = phi i32 [ %.101798, %718 ], [ %747, %.loopexit1555 ]
  %832 = add nuw nsw i32 %.112771796, 1
  %.not1377.not = icmp slt i32 %.112771796, %711
  br i1 %.not1377.not, label %718, label %.loopexit1556, !llvm.loop !29

833:                                              ; preds = %275
  %834 = load i32, ptr %34, align 4, !tbaa !5
  %.not13461632 = icmp slt i32 %834, 1
  br i1 %201, label %1124, label %835

835:                                              ; preds = %833
  %836 = add nsw i32 %242, 1
  %.11260 = select i1 %104, i32 6, i32 1
  %.01222 = select i1 %104, i32 %836, i32 %.01265
  br i1 %.not13461632, label %864, label %.lr.ph1576

.lr.ph1576:                                       ; preds = %835
  %837 = xor i32 %.01224, 1
  %reass.add = add i32 %837, %48
  %838 = zext nneg i32 %834 to i64
  %xtraiter2475 = and i64 %838, 1
  %839 = icmp eq i32 %834, 1
  br i1 %839, label %._crit_edge1577.unr-lcssa, label %.lr.ph1576.new

.lr.ph1576.new:                                   ; preds = %.lr.ph1576
  %unroll_iter2478 = and i64 %838, 2147483646
  br label %840

840:                                              ; preds = %840, %.lr.ph1576.new
  %indvars.iv1963 = phi i64 [ 1, %.lr.ph1576.new ], [ %indvars.iv.next1964.1, %840 ]
  %niter2479 = phi i64 [ 0, %.lr.ph1576.new ], [ %niter2479.next.1, %840 ]
  %841 = trunc nuw nsw i64 %indvars.iv1963 to i32
  %reass.mul = mul i32 %reass.add, %841
  %842 = add i32 %reass.mul, %.01222
  %843 = getelementptr inbounds float, ptr %47, i64 %indvars.iv1963
  %844 = load float, ptr %843, align 4, !tbaa !9
  %845 = sext i32 %842 to i64
  %846 = getelementptr inbounds %struct.complex, ptr %50, i64 %845
  store float %844, ptr %846, align 4, !tbaa !13
  %847 = getelementptr inbounds %struct.complex, ptr %50, i64 %845, i32 1
  store float 0.000000e+00, ptr %847, align 4, !tbaa !15
  %848 = trunc i64 %indvars.iv1963 to i32
  %849 = add i32 %848, 1
  %reass.mul.1 = mul i32 %reass.add, %849
  %850 = add i32 %reass.mul.1, %.01222
  %851 = getelementptr float, ptr %5, i64 %indvars.iv1963
  %852 = load float, ptr %851, align 4, !tbaa !9
  %853 = sext i32 %850 to i64
  %854 = getelementptr inbounds %struct.complex, ptr %50, i64 %853
  store float %852, ptr %854, align 4, !tbaa !13
  %855 = getelementptr inbounds %struct.complex, ptr %50, i64 %853, i32 1
  store float 0.000000e+00, ptr %855, align 4, !tbaa !15
  %indvars.iv.next1964.1 = add nuw nsw i64 %indvars.iv1963, 2
  %niter2479.next.1 = add i64 %niter2479, 2
  %niter2479.ncmp.1 = icmp eq i64 %niter2479.next.1, %unroll_iter2478
  br i1 %niter2479.ncmp.1, label %._crit_edge1577.unr-lcssa, label %840, !llvm.loop !30

._crit_edge1577.unr-lcssa:                        ; preds = %840, %.lr.ph1576
  %.lcssa2472.ph = phi float [ poison, %.lr.ph1576 ], [ %852, %840 ]
  %indvars.iv1963.unr = phi i64 [ 1, %.lr.ph1576 ], [ %indvars.iv.next1964.1, %840 ]
  %lcmp.mod2476.not = icmp eq i64 %xtraiter2475, 0
  br i1 %lcmp.mod2476.not, label %._crit_edge1577, label %._crit_edge1577.epilog-lcssa

._crit_edge1577.epilog-lcssa:                     ; preds = %._crit_edge1577.unr-lcssa
  %856 = trunc nuw nsw i64 %indvars.iv1963.unr to i32
  %reass.mul.epil = mul i32 %reass.add, %856
  %857 = add i32 %reass.mul.epil, %.01222
  %858 = getelementptr inbounds float, ptr %47, i64 %indvars.iv1963.unr
  %859 = load float, ptr %858, align 4, !tbaa !9
  %860 = sext i32 %857 to i64
  %861 = getelementptr inbounds %struct.complex, ptr %50, i64 %860
  store float %859, ptr %861, align 4, !tbaa !13
  %862 = getelementptr inbounds %struct.complex, ptr %50, i64 %860, i32 1
  store float 0.000000e+00, ptr %862, align 4, !tbaa !15
  br label %._crit_edge1577

._crit_edge1577:                                  ; preds = %._crit_edge1577.unr-lcssa, %._crit_edge1577.epilog-lcssa
  %.lcssa2472 = phi float [ %.lcssa2472.ph, %._crit_edge1577.unr-lcssa ], [ %859, %._crit_edge1577.epilog-lcssa ]
  %863 = getelementptr inbounds i8, ptr %23, i64 4
  store float %.lcssa2472, ptr %23, align 8, !tbaa !13
  store float 0.000000e+00, ptr %863, align 4, !tbaa !15
  br label %864

864:                                              ; preds = %._crit_edge1577, %835
  store i32 %242, ptr %18, align 4, !tbaa !5
  %.not13571596 = icmp slt i32 %242, 1
  br i1 %.not13571596, label %._crit_edge1602, label %.lr.ph1601

.lr.ph1601:                                       ; preds = %864
  %reass.add1464 = sub i32 %48, %.01224
  %865 = getelementptr inbounds i8, ptr %24, i64 4
  %866 = getelementptr inbounds i8, ptr %23, i64 4
  %867 = getelementptr inbounds i8, ptr %28, i64 4
  %868 = getelementptr inbounds i8, ptr %41, i64 4
  %869 = xor i32 %.01224, 1
  %870 = getelementptr inbounds i8, ptr %36, i64 4
  %871 = zext nneg i32 %242 to i64
  br label %872

872:                                              ; preds = %.lr.ph1601, %._crit_edge1593
  %indvars.iv1971 = phi i64 [ 1, %.lr.ph1601 ], [ %indvars.iv.next1972, %._crit_edge1593 ]
  %.121599 = phi i32 [ undef, %.lr.ph1601 ], [ %.13.lcssa, %._crit_edge1593 ]
  %.1211851598 = phi i32 [ undef, %.lr.ph1601 ], [ %.131186.lcssa, %._crit_edge1593 ]
  %873 = load i32, ptr %1, align 4, !tbaa !5
  %874 = add nsw i32 %873, -1
  store i32 %874, ptr %21, align 4, !tbaa !5
  %.not13681589 = icmp slt i32 %873, 2
  br i1 %.not13681589, label %._crit_edge1593, label %.lr.ph1592

.lr.ph1592:                                       ; preds = %872
  %875 = trunc i64 %indvars.iv1971 to i32
  %876 = add i32 %875, 2
  %877 = trunc nuw nsw i64 %indvars.iv1971 to i32
  %878 = trunc i64 %indvars.iv1971 to i32
  %879 = sub i32 0, %878
  br label %882

.loopexit1568:                                    ; preds = %1013, %930
  %.141187.lcssa = phi i32 [ %885, %930 ], [ %1021, %1013 ]
  %.14.lcssa = phi i32 [ %888, %930 ], [ %.412741581, %1013 ]
  %880 = load i32, ptr %21, align 4, !tbaa !5
  %881 = sext i32 %880 to i64
  %.not1368.not = icmp slt i64 %indvars.iv1968, %881
  br i1 %.not1368.not, label %882, label %._crit_edge1593, !llvm.loop !31

882:                                              ; preds = %.lr.ph1592, %.loopexit1568
  %indvars.iv1968 = phi i64 [ 1, %.lr.ph1592 ], [ %indvars.iv.next1969, %.loopexit1568 ]
  %883 = sub nsw i64 %indvars.iv1968, %indvars.iv1971
  %884 = trunc nsw i64 %883 to i32
  %885 = call i32 @llvm.smax.i32(i32 %884, i32 1)
  %indvars.iv.next1969 = add nuw nsw i64 %indvars.iv1968, 1
  %886 = trunc nuw nsw i64 %indvars.iv.next1969 to i32
  store i32 %876, ptr %20, align 4, !tbaa !5
  %887 = call i32 @llvm.umin.i32(i32 %886, i32 %876)
  store i32 %887, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %reass.mul1465 = mul i32 %reass.add1464, %886
  %888 = trunc nuw nsw i64 %indvars.iv1968 to i32
  %889 = add i32 %.01222, %888
  %890 = add i32 %889, %reass.mul1465
  store i32 %890, ptr %19, align 4, !tbaa !5
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds %struct.complex, ptr %50, i64 %891
  %893 = load <2 x float>, ptr %892, align 4, !tbaa !9
  store <2 x float> %893, ptr %32, align 8, !tbaa !9
  %894 = call float @slarnd_(ptr noundef nonnull @c__1, ptr noundef nonnull %3) #9
  %895 = fmul float %894, 0x401921FB60000000
  %896 = fpext float %895 to double
  %897 = call double @cos(double noundef %896) #9
  %898 = fptrunc double %897 to float
  %899 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %899, ptr %24, align 8
  %900 = insertelement <2 x float> poison, float %898, i64 0
  %901 = shufflevector <2 x float> %900, <2 x float> poison, <2 x i32> zeroinitializer
  %902 = fmul <2 x float> %899, %901
  store <2 x float> %902, ptr %23, align 8, !tbaa !9
  store <2 x float> %902, ptr %27, align 8, !tbaa !9
  %903 = call double @sin(double noundef %896) #9
  %904 = fptrunc double %903 to float
  %905 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %905, ptr %24, align 8
  %906 = insertelement <2 x float> poison, float %904, i64 0
  %907 = shufflevector <2 x float> %906, <2 x float> poison, <2 x i32> zeroinitializer
  %908 = fmul <2 x float> %905, %907
  store <2 x float> %908, ptr %23, align 8, !tbaa !9
  store <2 x float> %908, ptr %28, align 8, !tbaa !9
  br i1 %.not1343, label %913, label %909

909:                                              ; preds = %882
  %910 = load <2 x float>, ptr %27, align 8, !tbaa !9
  store <2 x float> %910, ptr %39, align 8, !tbaa !9
  %911 = extractelement <2 x float> %908, i64 0
  store float %911, ptr %41, align 4, !tbaa !13
  %912 = extractelement <2 x float> %908, i64 1
  br label %930

913:                                              ; preds = %882
  %914 = call <2 x float> @Cf(ptr noundef nonnull %32)
  %.sroa.038.0.vec.extract = extractelement <2 x float> %914, i64 0
  %.sroa.038.4.vec.extract = extractelement <2 x float> %914, i64 1
  %915 = fneg float %.sroa.038.4.vec.extract
  %916 = call ptr @_pCf(ptr noundef nonnull %23)
  %917 = getelementptr inbounds i8, ptr %916, i64 4
  store float %.sroa.038.0.vec.extract, ptr %916, align 4
  store float %915, ptr %917, align 4
  %918 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %918, ptr %32, align 8, !tbaa !9
  %919 = call <2 x float> @Cf(ptr noundef nonnull %27)
  %.sroa.037.0.vec.extract = extractelement <2 x float> %919, i64 0
  %.sroa.037.4.vec.extract = extractelement <2 x float> %919, i64 1
  %920 = fneg float %.sroa.037.4.vec.extract
  %921 = call ptr @_pCf(ptr noundef nonnull %23)
  %922 = getelementptr inbounds i8, ptr %921, i64 4
  store float %.sroa.037.0.vec.extract, ptr %921, align 4
  store float %920, ptr %922, align 4
  %923 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %923, ptr %39, align 8, !tbaa !9
  %924 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.036.0.vec.extract = extractelement <2 x float> %924, i64 0
  %.sroa.036.4.vec.extract = extractelement <2 x float> %924, i64 1
  %925 = fneg float %.sroa.036.4.vec.extract
  %926 = call ptr @_pCf(ptr noundef nonnull %23)
  %927 = getelementptr inbounds i8, ptr %926, i64 4
  store float %.sroa.036.0.vec.extract, ptr %926, align 4
  store float %925, ptr %927, align 4
  %928 = load float, ptr %23, align 8, !tbaa !13
  store float %928, ptr %41, align 4, !tbaa !13
  %929 = load float, ptr %866, align 4, !tbaa !15
  br label %930

930:                                              ; preds = %913, %909
  %storemerge = phi float [ %912, %909 ], [ %929, %913 ]
  store float %storemerge, ptr %868, align 4, !tbaa !15
  %931 = icmp ugt i64 %indvars.iv1968, %indvars.iv1971
  %932 = zext i1 %931 to i32
  store i32 %932, ptr %25, align 4, !tbaa !5
  %933 = trunc i64 %indvars.iv1968 to i32
  %934 = mul i32 %48, %933
  %935 = add i32 %934, %.01222
  %936 = trunc i64 %indvars.iv1968 to i32
  %937 = mul nuw i32 %.01224, %936
  %938 = sub i32 %935, %937
  %939 = add i32 %938, %885
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds %struct.complex, ptr %50, i64 %940
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull %25, ptr noundef nonnull @c_true, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %941, ptr noundef nonnull %26, ptr noundef nonnull %35, ptr noundef nonnull %32) #9
  store i32 %877, ptr %20, align 4, !tbaa !5
  %942 = load i32, ptr %1, align 4, !tbaa !5
  %943 = sub nsw i32 %942, %888
  store i32 %943, ptr %22, align 4, !tbaa !5
  %944 = call i32 @llvm.smin.i32(i32 %877, i32 %943)
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr %19, align 4, !tbaa !5
  %946 = trunc i64 %indvars.iv1968 to i32
  %947 = mul nuw i32 %869, %946
  %948 = add i32 %935, %947
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds %struct.complex, ptr %50, i64 %949
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull @c_false, ptr noundef nonnull %19, ptr noundef nonnull %39, ptr noundef nonnull %41, ptr noundef %950, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull %36) #9
  store i32 %879, ptr %19, align 4, !tbaa !5
  %951 = icmp sgt i64 %883, 0
  br i1 %951, label %.lr.ph1584, label %.loopexit1568

.lr.ph1584:                                       ; preds = %930, %1013
  %.141582 = phi i32 [ %.412741581, %1013 ], [ %888, %930 ]
  %.412741581 = phi i32 [ %1032, %1013 ], [ %884, %930 ]
  %952 = add nsw i32 %.412741581, 1
  %953 = add nsw i32 %.141582, 1
  %reass.mul1470 = mul i32 %reass.add1464, %953
  %954 = add i32 %952, %.01222
  %955 = add i32 %954, %reass.mul1470
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds %struct.complex, ptr %50, i64 %956
  call void @clartg_(ptr noundef %957, ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %958 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %958, ptr %23, align 8
  %bc2215 = bitcast <2 x float> %958 to <2 x i32>
  %959 = extractelement <2 x i32> %bc2215, i64 0
  %960 = bitcast i32 %959 to float
  store i32 %959, ptr %36, align 8, !tbaa !13
  %961 = extractelement <2 x float> %958, i64 1
  store float %961, ptr %870, align 4, !tbaa !15
  %962 = load float, ptr %30, align 4, !tbaa !9
  %963 = fmul float %962, %960
  store float %963, ptr %24, align 8, !tbaa !13
  %964 = fmul float %961, %962
  store float %964, ptr %865, align 4, !tbaa !15
  %965 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.034.0.vec.extract = extractelement <2 x float> %965, i64 0
  %.sroa.034.4.vec.extract = extractelement <2 x float> %965, i64 1
  %966 = fneg float %.sroa.034.4.vec.extract
  %967 = call ptr @_pCf(ptr noundef nonnull %23)
  %968 = getelementptr inbounds i8, ptr %967, i64 4
  store float %.sroa.034.0.vec.extract, ptr %967, align 4
  store float %966, ptr %968, align 4
  %969 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %969, ptr %27, align 8, !tbaa !9
  %970 = load float, ptr %28, align 8, !tbaa !13
  %971 = fneg float %970
  %972 = load float, ptr %867, align 4, !tbaa !15
  %973 = fneg float %972
  %974 = load <2 x float>, ptr %36, align 8, !tbaa !9
  %975 = insertelement <2 x float> poison, float %973, i64 0
  %976 = insertelement <2 x float> %975, float %972, i64 1
  %977 = fmul <2 x float> %974, %976
  %978 = shufflevector <2 x float> %977, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %979 = insertelement <2 x float> poison, float %971, i64 0
  %980 = shufflevector <2 x float> %979, <2 x float> poison, <2 x i32> zeroinitializer
  %981 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %980, <2 x float> %974, <2 x float> %978)
  store <2 x float> %981, ptr %24, align 8, !tbaa !9
  %982 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %.sroa.033.0.vec.extract = extractelement <2 x float> %982, i64 0
  %.sroa.033.4.vec.extract = extractelement <2 x float> %982, i64 1
  %983 = fneg float %.sroa.033.4.vec.extract
  %984 = call ptr @_pCf(ptr noundef nonnull %23)
  %985 = getelementptr inbounds i8, ptr %984, i64 4
  store float %.sroa.033.0.vec.extract, ptr %984, align 4
  store float %983, ptr %985, align 4
  %986 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %986, ptr %28, align 8, !tbaa !9
  %reass.mul1472 = mul i32 %reass.add1464, %952
  %987 = add i32 %.412741581, %.01222
  %988 = add i32 %987, %reass.mul1472
  store i32 %988, ptr %20, align 4, !tbaa !5
  %989 = sext i32 %988 to i64
  %990 = getelementptr inbounds %struct.complex, ptr %50, i64 %989
  %991 = load <2 x float>, ptr %990, align 4, !tbaa !9
  store <2 x float> %991, ptr %32, align 8, !tbaa !9
  br i1 %.not1343, label %996, label %992

992:                                              ; preds = %.lr.ph1584
  %993 = load <2 x float>, ptr %27, align 8, !tbaa !9
  store <2 x float> %993, ptr %39, align 8, !tbaa !9
  %994 = extractelement <2 x float> %986, i64 0
  store float %994, ptr %41, align 4, !tbaa !13
  %995 = extractelement <2 x float> %986, i64 1
  br label %1013

996:                                              ; preds = %.lr.ph1584
  %997 = call <2 x float> @Cf(ptr noundef nonnull %32)
  %.sroa.032.0.vec.extract = extractelement <2 x float> %997, i64 0
  %.sroa.032.4.vec.extract = extractelement <2 x float> %997, i64 1
  %998 = fneg float %.sroa.032.4.vec.extract
  %999 = call ptr @_pCf(ptr noundef nonnull %23)
  %1000 = getelementptr inbounds i8, ptr %999, i64 4
  store float %.sroa.032.0.vec.extract, ptr %999, align 4
  store float %998, ptr %1000, align 4
  %1001 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %1001, ptr %32, align 8, !tbaa !9
  %1002 = call <2 x float> @Cf(ptr noundef nonnull %27)
  %.sroa.031.0.vec.extract = extractelement <2 x float> %1002, i64 0
  %.sroa.031.4.vec.extract = extractelement <2 x float> %1002, i64 1
  %1003 = fneg float %.sroa.031.4.vec.extract
  %1004 = call ptr @_pCf(ptr noundef nonnull %23)
  %1005 = getelementptr inbounds i8, ptr %1004, i64 4
  store float %.sroa.031.0.vec.extract, ptr %1004, align 4
  store float %1003, ptr %1005, align 4
  %1006 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %1006, ptr %39, align 8, !tbaa !9
  %1007 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.030.0.vec.extract = extractelement <2 x float> %1007, i64 0
  %.sroa.030.4.vec.extract = extractelement <2 x float> %1007, i64 1
  %1008 = fneg float %.sroa.030.4.vec.extract
  %1009 = call ptr @_pCf(ptr noundef nonnull %23)
  %1010 = getelementptr inbounds i8, ptr %1009, i64 4
  store float %.sroa.030.0.vec.extract, ptr %1009, align 4
  store float %1008, ptr %1010, align 4
  %1011 = load float, ptr %23, align 8, !tbaa !13
  store float %1011, ptr %41, align 4, !tbaa !13
  %1012 = load float, ptr %866, align 4, !tbaa !15
  br label %1013

1013:                                             ; preds = %996, %992
  %storemerge2217 = phi float [ %995, %992 ], [ %1012, %996 ]
  store float %storemerge2217, ptr %868, align 4, !tbaa !15
  store i32 %876, ptr %20, align 4, !tbaa !5
  %1014 = mul nuw nsw i32 %.412741581, %869
  %1015 = mul nsw i32 %.412741581, %48
  %1016 = add i32 %1015, %.01222
  %1017 = add i32 %1016, %1014
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds %struct.complex, ptr %50, i64 %1018
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %20, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %1019, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull %35) #9
  %1020 = sub nsw i32 %.412741581, %877
  %1021 = call i32 @llvm.smax.i32(i32 %1020, i32 1)
  store i32 %952, ptr %20, align 4, !tbaa !5
  store i32 %876, ptr %22, align 4, !tbaa !5
  %1022 = call i32 @llvm.smin.i32(i32 %952, i32 %876)
  store i32 %1022, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %1023 = sext i32 %.412741581 to i64
  %1024 = icmp slt i64 %indvars.iv1971, %1023
  %1025 = zext i1 %1024 to i32
  store i32 %1025, ptr %25, align 4, !tbaa !5
  %1026 = mul nuw nsw i32 %.01224, %.412741581
  %1027 = sub i32 %1016, %1026
  %1028 = add i32 %1027, %1021
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds %struct.complex, ptr %50, i64 %1029
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull %25, ptr noundef nonnull @c_true, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %41, ptr noundef %1030, ptr noundef nonnull %26, ptr noundef nonnull %35, ptr noundef nonnull %32) #9
  %1031 = load i32, ptr %19, align 4, !tbaa !5
  %1032 = add nsw i32 %1031, %.412741581
  %1033 = icmp slt i32 %1031, 0
  %1034 = icmp sgt i32 %1032, 0
  %1035 = icmp slt i32 %1032, 2
  %.in1372 = select i1 %1033, i1 %1034, i1 %1035
  br i1 %.in1372, label %.lr.ph1584, label %.loopexit1568, !llvm.loop !32

._crit_edge1593:                                  ; preds = %.loopexit1568, %872
  %.131186.lcssa = phi i32 [ %.1211851598, %872 ], [ %.141187.lcssa, %.loopexit1568 ]
  %.13.lcssa = phi i32 [ %.121599, %872 ], [ %.14.lcssa, %.loopexit1568 ]
  %indvars.iv.next1972 = add nuw nsw i64 %indvars.iv1971, 1
  %.not1357.not = icmp ult i64 %indvars.iv1971, %871
  br i1 %.not1357.not, label %872, label %._crit_edge1602, !llvm.loop !33

._crit_edge1602:                                  ; preds = %._crit_edge1593, %864
  %.121185.lcssa = phi i32 [ undef, %864 ], [ %.131186.lcssa, %._crit_edge1593 ]
  %.12.lcssa = phi i32 [ undef, %864 ], [ %.13.lcssa, %._crit_edge1593 ]
  %1036 = icmp ne i32 %.01221, %.11260
  %or.cond15 = and i1 %107, %1036
  br i1 %or.cond15, label %1037, label %1390

1037:                                             ; preds = %._crit_edge1602
  %1038 = load i32, ptr %1, align 4, !tbaa !5
  %.not13581615 = icmp slt i32 %1038, 1
  br i1 %.not13581615, label %._crit_edge1620, label %.lr.ph1619

.lr.ph1619:                                       ; preds = %1037
  %reass.add1475 = sub i32 %48, %.01224
  br label %1039

1039:                                             ; preds = %.lr.ph1619, %.loopexit1566
  %indvar2480 = phi i64 [ 0, %.lr.ph1619 ], [ %indvar.next2481, %.loopexit1566 ]
  %indvars.iv1974 = phi i64 [ 1, %.lr.ph1619 ], [ %indvars.iv.next1975, %.loopexit1566 ]
  %.neg = add i64 %indvar2480, 1
  %indvars1982 = trunc i64 %indvars.iv1974 to i32
  %1040 = mul nuw nsw i32 %.01224, %indvars1982
  %1041 = sub nsw i32 %.01265, %1040
  %1042 = load i32, ptr %1, align 4, !tbaa !5
  br i1 %.not1343, label %1077, label %1043

1043:                                             ; preds = %1039
  %1044 = load i32, ptr %46, align 4, !tbaa !5
  %1045 = add nsw i32 %1044, %indvars1982
  %1046 = call i32 @llvm.smin.i32(i32 %1042, i32 %1045)
  store i32 %1046, ptr %21, align 4, !tbaa !5
  %.not13671605 = icmp slt i32 %1046, %indvars1982
  br i1 %.not13671605, label %.loopexit1566, label %.lr.ph1608

.lr.ph1608:                                       ; preds = %1043
  %1047 = mul nsw i32 %48, %indvars1982
  %1048 = add i32 %1041, %1047
  %1049 = add i32 %.01222, %indvars1982
  %1050 = sext i32 %1046 to i64
  %1051 = sub i64 %1050, %indvar2480
  %xtraiter2482 = and i64 %1051, 1
  %lcmp.mod2483.not = icmp eq i64 %xtraiter2482, 0
  br i1 %lcmp.mod2483.not, label %.prol.loopexit, label %.prol.loopexit.unr-lcssa

.prol.loopexit.unr-lcssa:                         ; preds = %.lr.ph1608
  %1052 = trunc nuw nsw i64 %indvars.iv1974 to i32
  %1053 = add i32 %1048, %1052
  %reass.mul1476.prol = mul i32 %reass.add1475, %1052
  %1054 = add i32 %1049, %reass.mul1476.prol
  %1055 = sext i32 %1054 to i64
  %1056 = getelementptr inbounds %struct.complex, ptr %50, i64 %1055
  %1057 = sext i32 %1053 to i64
  %1058 = getelementptr inbounds %struct.complex, ptr %50, i64 %1057
  %1059 = load <2 x float>, ptr %1056, align 4, !tbaa !9
  store <2 x float> %1059, ptr %1058, align 4, !tbaa !9
  %indvars.iv.next1977.prol = add nuw nsw i64 %indvars.iv1974, 1
  br label %.prol.loopexit

.prol.loopexit:                                   ; preds = %.prol.loopexit.unr-lcssa, %.lr.ph1608
  %indvars.iv1976.unr = phi i64 [ %indvars.iv1974, %.lr.ph1608 ], [ %indvars.iv.next1977.prol, %.prol.loopexit.unr-lcssa ]
  %.lcssa2469.unr = phi i32 [ poison, %.lr.ph1608 ], [ %1053, %.prol.loopexit.unr-lcssa ]
  %.lcssa2468.unr = phi i32 [ poison, %.lr.ph1608 ], [ %1054, %.prol.loopexit.unr-lcssa ]
  %1060 = icmp eq i64 %.neg, %1050
  br i1 %1060, label %..loopexit1567_crit_edge, label %.lr.ph1608.new

.lr.ph1608.new:                                   ; preds = %.prol.loopexit, %.lr.ph1608.new
  %indvars.iv1976 = phi i64 [ %indvars.iv.next1977.1, %.lr.ph1608.new ], [ %indvars.iv1976.unr, %.prol.loopexit ]
  %1061 = trunc nuw nsw i64 %indvars.iv1976 to i32
  %1062 = add i32 %1048, %1061
  %reass.mul1476 = mul i32 %reass.add1475, %1061
  %1063 = add i32 %1049, %reass.mul1476
  %1064 = sext i32 %1063 to i64
  %1065 = getelementptr inbounds %struct.complex, ptr %50, i64 %1064
  %1066 = sext i32 %1062 to i64
  %1067 = getelementptr inbounds %struct.complex, ptr %50, i64 %1066
  %1068 = load <2 x float>, ptr %1065, align 4, !tbaa !9
  store <2 x float> %1068, ptr %1067, align 4, !tbaa !9
  %indvars.iv.next1977 = add nuw nsw i64 %indvars.iv1976, 1
  %1069 = trunc nuw nsw i64 %indvars.iv.next1977 to i32
  %1070 = add i32 %1048, %1069
  %reass.mul1476.1 = mul i32 %reass.add1475, %1069
  %1071 = add i32 %1049, %reass.mul1476.1
  %1072 = sext i32 %1071 to i64
  %1073 = getelementptr inbounds %struct.complex, ptr %50, i64 %1072
  %1074 = sext i32 %1070 to i64
  %1075 = getelementptr inbounds %struct.complex, ptr %50, i64 %1074
  %1076 = load <2 x float>, ptr %1073, align 4, !tbaa !9
  store <2 x float> %1076, ptr %1075, align 4, !tbaa !9
  %indvars.iv.next1977.1 = add nuw nsw i64 %indvars.iv1976, 2
  %.not1367.not.1 = icmp slt i64 %indvars.iv.next1977, %1050
  br i1 %.not1367.not.1, label %.lr.ph1608.new, label %..loopexit1567_crit_edge, !llvm.loop !34

1077:                                             ; preds = %1039
  store i32 %1042, ptr %19, align 4, !tbaa !5
  %1078 = load i32, ptr %46, align 4, !tbaa !5
  %1079 = add nsw i32 %1078, %indvars1982
  store i32 %1079, ptr %20, align 4, !tbaa !5
  %1080 = call i32 @llvm.smin.i32(i32 %1042, i32 %1079)
  store i32 %1080, ptr %21, align 4, !tbaa !5
  %.not13651611 = icmp slt i32 %1080, %indvars1982
  br i1 %.not13651611, label %.loopexit1566, label %.lr.ph1614

.lr.ph1614:                                       ; preds = %1077
  %1081 = mul nsw i32 %48, %indvars1982
  %1082 = add i32 %1041, %1081
  %1083 = add i32 %.01222, %indvars1982
  br label %1084

1084:                                             ; preds = %.lr.ph1614, %1084
  %indvars.iv1979 = phi i64 [ %indvars.iv1974, %.lr.ph1614 ], [ %indvars.iv.next1980, %1084 ]
  %1085 = trunc nuw nsw i64 %indvars.iv1979 to i32
  %1086 = add i32 %1082, %1085
  store i32 %1086, ptr %19, align 4, !tbaa !5
  %reass.mul1479 = mul i32 %reass.add1475, %1085
  %1087 = add i32 %1083, %reass.mul1479
  %1088 = sext i32 %1087 to i64
  %1089 = getelementptr inbounds %struct.complex, ptr %50, i64 %1088
  %1090 = call <2 x float> @Cf(ptr noundef %1089)
  %.sroa.029.0.vec.extract = extractelement <2 x float> %1090, i64 0
  %.sroa.029.4.vec.extract = extractelement <2 x float> %1090, i64 1
  %1091 = fneg float %.sroa.029.4.vec.extract
  %1092 = call ptr @_pCf(ptr noundef nonnull %23)
  %1093 = getelementptr inbounds i8, ptr %1092, i64 4
  store float %.sroa.029.0.vec.extract, ptr %1092, align 4
  store float %1091, ptr %1093, align 4
  %1094 = load i32, ptr %19, align 4, !tbaa !5
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds %struct.complex, ptr %50, i64 %1095
  %1097 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %1097, ptr %1096, align 4, !tbaa !9
  %indvars.iv.next1980 = add nuw nsw i64 %indvars.iv1979, 1
  %1098 = load i32, ptr %21, align 4, !tbaa !5
  %1099 = sext i32 %1098 to i64
  %.not1365.not = icmp slt i64 %indvars.iv1979, %1099
  br i1 %.not1365.not, label %1084, label %.loopexit1566, !llvm.loop !35

..loopexit1567_crit_edge:                         ; preds = %.lr.ph1608.new, %.prol.loopexit
  %.lcssa2469 = phi i32 [ %.lcssa2469.unr, %.prol.loopexit ], [ %1070, %.lr.ph1608.new ]
  %.lcssa2468 = phi i32 [ %.lcssa2468.unr, %.prol.loopexit ], [ %1071, %.lr.ph1608.new ]
  store i32 %.lcssa2469, ptr %19, align 4, !tbaa !5
  store i32 %.lcssa2468, ptr %20, align 4, !tbaa !5
  br label %.loopexit1566

.loopexit1566:                                    ; preds = %1084, %1043, %..loopexit1567_crit_edge, %1077
  %indvars.iv.next1975 = add nuw nsw i64 %indvars.iv1974, 1
  %.not1358.not = icmp sgt i32 %1038, %indvars1982
  %indvar.next2481 = add i64 %indvar2480, 1
  br i1 %.not1358.not, label %1039, label %._crit_edge1620, !llvm.loop !36

._crit_edge1620:                                  ; preds = %.loopexit1566, %1037
  %.151188.lcssa = phi i32 [ %.121185.lcssa, %1037 ], [ %1041, %.loopexit1566 ]
  br i1 %100, label %1100, label %.loopexit1565

1100:                                             ; preds = %._crit_edge1620
  %1101 = load i32, ptr %46, align 4, !tbaa !5
  %.not1359.not1628 = icmp sgt i32 %1101, 0
  br i1 %.not1359.not1628, label %.lr.ph1631, label %.loopexit1565

.lr.ph1631:                                       ; preds = %1100
  %1102 = load i32, ptr %1, align 4, !tbaa !5
  %1103 = sub i32 %1102, %1101
  %1104 = add nsw i32 %1102, 2
  %1105 = shl nsw i64 %49, 3
  %scevgep = getelementptr i8, ptr %13, i64 %1105
  %1106 = add i32 %1102, 1
  %1107 = sub i32 %1106, %1101
  %1108 = mul i32 %48, %1107
  %1109 = add i32 %1101, %1108
  %1110 = add i32 %1109, 1
  %1111 = add i32 %48, -1
  %1112 = sext i32 %1103 to i64
  %1113 = sext i32 %1102 to i64
  %1114 = sub nuw i32 -2, %1101
  br label %1115

.loopexit1564:                                    ; preds = %.lr.ph1625, %1115
  %.not1359.not = icmp slt i64 %indvars.iv.next1993, %1113
  %indvar.next1985 = add nuw nsw i64 %indvar1984, 1
  br i1 %.not1359.not, label %1115, label %.loopexit1565, !llvm.loop !37

1115:                                             ; preds = %.lr.ph1631, %.loopexit1564
  %indvars.iv1992 = phi i64 [ %1112, %.lr.ph1631 ], [ %indvars.iv.next1993, %.loopexit1564 ]
  %indvar1984 = phi i64 [ 0, %.lr.ph1631 ], [ %indvar.next1985, %.loopexit1564 ]
  %indvars.iv.next1993 = add nsw i64 %indvars.iv1992, 1
  %1116 = trunc nsw i64 %indvars.iv1992 to i32
  %1117 = sub i32 %1116, %1104
  %.not13621622 = icmp slt i32 %1117, %1114
  br i1 %.not13621622, label %.loopexit1564, label %.lr.ph1625

.lr.ph1625:                                       ; preds = %1115
  %1118 = shl nuw nsw i64 %indvar1984, 3
  %1119 = add nuw nsw i64 %1118, 8
  %indvars1994 = trunc i64 %indvar1984 to i32
  %1120 = mul i32 %1111, %indvars1994
  %1121 = add i32 %1110, %1120
  %1122 = sext i32 %1121 to i64
  %1123 = shl nsw i64 %1122, 3
  %scevgep1983 = getelementptr i8, ptr %scevgep, i64 %1123
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep1983, i8 0, i64 %1119, i1 false), !tbaa !9
  br label %.loopexit1564

.loopexit1565:                                    ; preds = %.loopexit1564, %1100, %._crit_edge1620
  %.01221.1440 = select i1 %104, i32 %.01221, i32 0
  br label %1390

1124:                                             ; preds = %833
  %.21261 = select i1 %104, i32 5, i32 2
  %1125 = and i1 %101, %104
  %.11223 = select i1 %1125, i32 1, i32 %.01265
  br i1 %.not13461632, label %1153, label %.lr.ph1635

.lr.ph1635:                                       ; preds = %1124
  %1126 = xor i32 %.01224, 1
  %reass.add1480 = add i32 %1126, %48
  %1127 = zext nneg i32 %834 to i64
  %xtraiter2485 = and i64 %1127, 1
  %1128 = icmp eq i32 %834, 1
  br i1 %1128, label %._crit_edge1636.unr-lcssa, label %.lr.ph1635.new

.lr.ph1635.new:                                   ; preds = %.lr.ph1635
  %unroll_iter2488 = and i64 %1127, 2147483646
  br label %1129

1129:                                             ; preds = %1129, %.lr.ph1635.new
  %indvars.iv1997 = phi i64 [ 1, %.lr.ph1635.new ], [ %indvars.iv.next1998.1, %1129 ]
  %niter2489 = phi i64 [ 0, %.lr.ph1635.new ], [ %niter2489.next.1, %1129 ]
  %1130 = trunc nuw nsw i64 %indvars.iv1997 to i32
  %reass.mul1481 = mul i32 %reass.add1480, %1130
  %1131 = add i32 %reass.mul1481, %.11223
  %1132 = getelementptr inbounds float, ptr %47, i64 %indvars.iv1997
  %1133 = load float, ptr %1132, align 4, !tbaa !9
  %1134 = sext i32 %1131 to i64
  %1135 = getelementptr inbounds %struct.complex, ptr %50, i64 %1134
  store float %1133, ptr %1135, align 4, !tbaa !13
  %1136 = getelementptr inbounds %struct.complex, ptr %50, i64 %1134, i32 1
  store float 0.000000e+00, ptr %1136, align 4, !tbaa !15
  %1137 = trunc i64 %indvars.iv1997 to i32
  %1138 = add i32 %1137, 1
  %reass.mul1481.1 = mul i32 %reass.add1480, %1138
  %1139 = add i32 %reass.mul1481.1, %.11223
  %1140 = getelementptr float, ptr %5, i64 %indvars.iv1997
  %1141 = load float, ptr %1140, align 4, !tbaa !9
  %1142 = sext i32 %1139 to i64
  %1143 = getelementptr inbounds %struct.complex, ptr %50, i64 %1142
  store float %1141, ptr %1143, align 4, !tbaa !13
  %1144 = getelementptr inbounds %struct.complex, ptr %50, i64 %1142, i32 1
  store float 0.000000e+00, ptr %1144, align 4, !tbaa !15
  %indvars.iv.next1998.1 = add nuw nsw i64 %indvars.iv1997, 2
  %niter2489.next.1 = add i64 %niter2489, 2
  %niter2489.ncmp.1 = icmp eq i64 %niter2489.next.1, %unroll_iter2488
  br i1 %niter2489.ncmp.1, label %._crit_edge1636.unr-lcssa, label %1129, !llvm.loop !38

._crit_edge1636.unr-lcssa:                        ; preds = %1129, %.lr.ph1635
  %.lcssa2467.ph = phi float [ poison, %.lr.ph1635 ], [ %1141, %1129 ]
  %indvars.iv1997.unr = phi i64 [ 1, %.lr.ph1635 ], [ %indvars.iv.next1998.1, %1129 ]
  %lcmp.mod2486.not = icmp eq i64 %xtraiter2485, 0
  br i1 %lcmp.mod2486.not, label %._crit_edge1636, label %._crit_edge1636.epilog-lcssa

._crit_edge1636.epilog-lcssa:                     ; preds = %._crit_edge1636.unr-lcssa
  %1145 = trunc nuw nsw i64 %indvars.iv1997.unr to i32
  %reass.mul1481.epil = mul i32 %reass.add1480, %1145
  %1146 = add i32 %reass.mul1481.epil, %.11223
  %1147 = getelementptr inbounds float, ptr %47, i64 %indvars.iv1997.unr
  %1148 = load float, ptr %1147, align 4, !tbaa !9
  %1149 = sext i32 %1146 to i64
  %1150 = getelementptr inbounds %struct.complex, ptr %50, i64 %1149
  store float %1148, ptr %1150, align 4, !tbaa !13
  %1151 = getelementptr inbounds %struct.complex, ptr %50, i64 %1149, i32 1
  store float 0.000000e+00, ptr %1151, align 4, !tbaa !15
  br label %._crit_edge1636

._crit_edge1636:                                  ; preds = %._crit_edge1636.unr-lcssa, %._crit_edge1636.epilog-lcssa
  %.lcssa2467 = phi float [ %.lcssa2467.ph, %._crit_edge1636.unr-lcssa ], [ %1148, %._crit_edge1636.epilog-lcssa ]
  %1152 = getelementptr inbounds i8, ptr %23, i64 4
  store float %.lcssa2467, ptr %23, align 8, !tbaa !13
  store float 0.000000e+00, ptr %1152, align 4, !tbaa !15
  br label %1153

1153:                                             ; preds = %._crit_edge1636, %1124
  store i32 %242, ptr %18, align 4, !tbaa !5
  %.not13471652 = icmp slt i32 %242, 1
  br i1 %.not13471652, label %._crit_edge1657, label %.lr.ph1656

.lr.ph1656:                                       ; preds = %1153
  %1154 = xor i32 %.01224, 1
  %1155 = add i32 %.11223, 1
  %1156 = getelementptr inbounds i8, ptr %23, i64 4
  %1157 = getelementptr inbounds i8, ptr %27, i64 4
  %1158 = getelementptr inbounds i8, ptr %28, i64 4
  %1159 = getelementptr inbounds i8, ptr %39, i64 4
  %1160 = getelementptr inbounds i8, ptr %41, i64 4
  %reass.add1484 = sub i32 %48, %.01224
  %1161 = getelementptr inbounds i8, ptr %36, i64 4
  %1162 = zext nneg i32 %1154 to i64
  %1163 = sext i32 %.11223 to i64
  %1164 = sext i32 %48 to i64
  %invariant.gep = getelementptr %struct.complex, ptr %50, i64 %1163
  %1165 = zext nneg i32 %242 to i64
  br label %1166

1166:                                             ; preds = %.lr.ph1656, %._crit_edge1650
  %indvars.iv2005 = phi i64 [ 1, %.lr.ph1656 ], [ %indvars.iv.next2006, %._crit_edge1650 ]
  %.151654 = phi i32 [ undef, %.lr.ph1656 ], [ %.16.lcssa, %._crit_edge1650 ]
  %1167 = load i32, ptr %1, align 4, !tbaa !5
  %1168 = icmp sgt i32 %1167, 1
  br i1 %1168, label %.lr.ph1649, label %._crit_edge1650

.lr.ph1649:                                       ; preds = %1166
  %1169 = zext nneg i32 %1167 to i64
  %1170 = trunc i64 %indvars.iv2005 to i32
  %1171 = add i32 %1170, 2
  %1172 = trunc nuw nsw i64 %indvars.iv2005 to i32
  br label %1174

.loopexit1563:                                    ; preds = %1292, %1224
  %.17.lcssa = phi i32 [ %indvars, %1224 ], [ %.512751640, %1292 ]
  %1173 = icmp sgt i64 %indvars.iv2002, 2
  br i1 %1173, label %1174, label %._crit_edge1650, !llvm.loop !39

1174:                                             ; preds = %.lr.ph1649, %.loopexit1563
  %indvars.iv2002 = phi i64 [ %1169, %.lr.ph1649 ], [ %indvars.iv.next2003, %.loopexit1563 ]
  %indvars.iv.next2003 = add nsw i64 %indvars.iv2002, -1
  %indvars = trunc i64 %indvars.iv.next2003 to i32
  %1175 = load i32, ptr %1, align 4, !tbaa !5
  %1176 = trunc nuw nsw i64 %indvars.iv2002 to i32
  %reass.sub = sub i32 %1175, %1176
  %1177 = add i32 %reass.sub, 2
  store i32 %1171, ptr %19, align 4, !tbaa !5
  %1178 = call i32 @llvm.smin.i32(i32 %1177, i32 %1171)
  store i32 %1178, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %1179 = mul nuw nsw i64 %indvars.iv.next2003, %1162
  %1180 = mul nsw i64 %indvars.iv.next2003, %1164
  %1181 = trunc nsw i64 %1179 to i32
  %1182 = add i32 %1155, %1181
  %1183 = trunc nsw i64 %1180 to i32
  %1184 = add nsw i32 %1182, %1183
  store i32 %1184, ptr %21, align 4, !tbaa !5
  %1185 = sext i32 %1184 to i64
  %1186 = getelementptr inbounds %struct.complex, ptr %50, i64 %1185
  %1187 = load <2 x float>, ptr %1186, align 4, !tbaa !9
  store <2 x float> %1187, ptr %32, align 8, !tbaa !9
  %1188 = call float @slarnd_(ptr noundef nonnull @c__1, ptr noundef nonnull %3) #9
  %1189 = fmul float %1188, 0x401921FB60000000
  %1190 = fpext float %1189 to double
  %1191 = call double @cos(double noundef %1190) #9
  %1192 = fptrunc double %1191 to float
  %1193 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %1193, ptr %24, align 8
  %1194 = insertelement <2 x float> poison, float %1192, i64 0
  %1195 = shufflevector <2 x float> %1194, <2 x float> poison, <2 x i32> zeroinitializer
  %1196 = fmul <2 x float> %1193, %1195
  store <2 x float> %1196, ptr %23, align 8, !tbaa !9
  store <2 x float> %1196, ptr %27, align 8, !tbaa !9
  %1197 = call double @sin(double noundef %1190) #9
  %1198 = fptrunc double %1197 to float
  %1199 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  store <2 x float> %1199, ptr %24, align 8
  %1200 = insertelement <2 x float> poison, float %1198, i64 0
  %1201 = shufflevector <2 x float> %1200, <2 x float> poison, <2 x i32> zeroinitializer
  %1202 = fmul <2 x float> %1199, %1201
  store <2 x float> %1202, ptr %23, align 8, !tbaa !9
  store <2 x float> %1202, ptr %28, align 8, !tbaa !9
  br i1 %.not1343, label %1207, label %1203

1203:                                             ; preds = %1174
  %1204 = load <2 x float>, ptr %27, align 8, !tbaa !9
  store <2 x float> %1204, ptr %39, align 8, !tbaa !9
  %1205 = extractelement <2 x float> %1202, i64 0
  store float %1205, ptr %41, align 4, !tbaa !13
  %1206 = extractelement <2 x float> %1202, i64 1
  br label %1224

1207:                                             ; preds = %1174
  %1208 = call <2 x float> @Cf(ptr noundef nonnull %32)
  %.sroa.026.0.vec.extract = extractelement <2 x float> %1208, i64 0
  %.sroa.026.4.vec.extract = extractelement <2 x float> %1208, i64 1
  %1209 = fneg float %.sroa.026.4.vec.extract
  %1210 = call ptr @_pCf(ptr noundef nonnull %23)
  %1211 = getelementptr inbounds i8, ptr %1210, i64 4
  store float %.sroa.026.0.vec.extract, ptr %1210, align 4
  store float %1209, ptr %1211, align 4
  %1212 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %1212, ptr %32, align 8, !tbaa !9
  %1213 = call <2 x float> @Cf(ptr noundef nonnull %27)
  %.sroa.025.0.vec.extract = extractelement <2 x float> %1213, i64 0
  %.sroa.025.4.vec.extract = extractelement <2 x float> %1213, i64 1
  %1214 = fneg float %.sroa.025.4.vec.extract
  %1215 = call ptr @_pCf(ptr noundef nonnull %23)
  %1216 = getelementptr inbounds i8, ptr %1215, i64 4
  store float %.sroa.025.0.vec.extract, ptr %1215, align 4
  store float %1214, ptr %1216, align 4
  %1217 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %1217, ptr %39, align 8, !tbaa !9
  %1218 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.024.0.vec.extract = extractelement <2 x float> %1218, i64 0
  %.sroa.024.4.vec.extract = extractelement <2 x float> %1218, i64 1
  %1219 = fneg float %.sroa.024.4.vec.extract
  %1220 = call ptr @_pCf(ptr noundef nonnull %23)
  %1221 = getelementptr inbounds i8, ptr %1220, i64 4
  store float %.sroa.024.0.vec.extract, ptr %1220, align 4
  store float %1219, ptr %1221, align 4
  %1222 = load float, ptr %23, align 8, !tbaa !13
  store float %1222, ptr %41, align 4, !tbaa !13
  %1223 = load float, ptr %1156, align 4, !tbaa !15
  br label %1224

1224:                                             ; preds = %1207, %1203
  %storemerge2224 = phi float [ %1206, %1203 ], [ %1223, %1207 ]
  store float %storemerge2224, ptr %1160, align 4, !tbaa !15
  %1225 = load i32, ptr %1, align 4, !tbaa !5
  %1226 = sub nsw i32 %1225, %indvars
  %1227 = sext i32 %1226 to i64
  %1228 = icmp slt i64 %indvars.iv2005, %1227
  %1229 = zext i1 %1228 to i32
  store i32 %1229, ptr %25, align 4, !tbaa !5
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %1179
  %1230 = getelementptr %struct.complex, ptr %gep, i64 %1180
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_true, ptr noundef nonnull %25, ptr noundef nonnull %38, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %1230, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull %35) #9
  %1231 = sub nsw i64 %indvars.iv.next2003, %indvars.iv2005
  %1232 = trunc i64 %1231 to i32
  %1233 = add i32 %1232, 1
  store i32 %1233, ptr %19, align 4, !tbaa !5
  %1234 = icmp slt i64 %1231, 1
  %1235 = select i1 %1234, i32 1, i32 %1233
  %1236 = trunc i64 %indvars.iv2002 to i32
  %1237 = add i32 %1236, 1
  %1238 = sub i32 %1237, %1235
  store i32 %1238, ptr %21, align 4, !tbaa !5
  %reass.mul1485 = mul i32 %reass.add1484, %1235
  %1239 = add i32 %.11223, %indvars
  %1240 = add i32 %1239, %reass.mul1485
  %1241 = sext i32 %1240 to i64
  %1242 = getelementptr inbounds %struct.complex, ptr %50, i64 %1241
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_false, ptr noundef nonnull @c_true, ptr noundef nonnull %21, ptr noundef nonnull %39, ptr noundef nonnull %41, ptr noundef %1242, ptr noundef nonnull %26, ptr noundef nonnull %36, ptr noundef nonnull %32) #9
  %1243 = load i32, ptr %1, align 4, !tbaa !5
  %1244 = add nsw i32 %1243, -1
  store i32 %1244, ptr %21, align 4, !tbaa !5
  store i32 %1172, ptr %19, align 4, !tbaa !5
  %1245 = add nsw i64 %indvars.iv.next2003, %indvars.iv2005
  %1246 = sext i32 %1243 to i64
  %1247 = icmp slt i64 %1245, %1246
  br i1 %1247, label %.lr.ph1643.preheader, label %.loopexit1563

.lr.ph1643.preheader:                             ; preds = %1224
  %1248 = trunc nsw i64 %1245 to i32
  br label %.lr.ph1643

.lr.ph1643:                                       ; preds = %.lr.ph1643.preheader, %1292
  %.171641 = phi i32 [ %.512751640, %1292 ], [ %indvars, %.lr.ph1643.preheader ]
  %.512751640 = phi i32 [ %1304, %1292 ], [ %1248, %.lr.ph1643.preheader ]
  %reass.mul1488 = mul i32 %reass.add1484, %.171641
  %1249 = add i32 %.512751640, %.11223
  %1250 = add i32 %1249, %reass.mul1488
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds %struct.complex, ptr %50, i64 %1251
  call void @clartg_(ptr noundef %1252, ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull %36) #9
  %1253 = call <2 x float> @clarnd_(ptr noundef nonnull @c__5, ptr noundef nonnull %3) #9
  %bc2225 = bitcast <2 x float> %1253 to <2 x i32>
  %1254 = extractelement <2 x i32> %bc2225, i64 0
  %1255 = bitcast i32 %1254 to float
  store i32 %1254, ptr %36, align 8, !tbaa !13
  %1256 = extractelement <2 x float> %1253, i64 1
  store float %1256, ptr %1161, align 4, !tbaa !15
  %1257 = load float, ptr %30, align 4, !tbaa !9
  %1258 = fmul float %1257, %1255
  %1259 = fmul float %1256, %1257
  store float %1258, ptr %27, align 8, !tbaa !13
  store float %1259, ptr %1157, align 4, !tbaa !15
  %1260 = load float, ptr %28, align 8, !tbaa !13
  %1261 = load float, ptr %1158, align 4, !tbaa !15
  %1262 = fneg float %1261
  %1263 = fmul float %1256, %1262
  %1264 = call float @llvm.fmuladd.f32(float %1260, float %1255, float %1263)
  store float %1264, ptr %23, align 8, !tbaa !13
  %1265 = fmul float %1261, %1255
  %1266 = call float @llvm.fmuladd.f32(float %1260, float %1256, float %1265)
  store float %1266, ptr %1156, align 4, !tbaa !15
  store float %1264, ptr %28, align 8, !tbaa !13
  store float %1266, ptr %1158, align 4, !tbaa !15
  %1267 = mul nuw nsw i32 %.512751640, %1154
  %1268 = mul nsw i32 %.512751640, %48
  %1269 = add i32 %1155, %1267
  %1270 = add nsw i32 %1269, %1268
  store i32 %1270, ptr %20, align 4, !tbaa !5
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds %struct.complex, ptr %50, i64 %1271
  %1273 = load <2 x float>, ptr %1272, align 4, !tbaa !9
  store <2 x float> %1273, ptr %32, align 8, !tbaa !9
  br i1 %.not1343, label %1275, label %1274

1274:                                             ; preds = %.lr.ph1643
  store float %1258, ptr %39, align 8, !tbaa !13
  store float %1259, ptr %1159, align 4, !tbaa !15
  store float %1264, ptr %41, align 4, !tbaa !13
  br label %1292

1275:                                             ; preds = %.lr.ph1643
  %1276 = call <2 x float> @Cf(ptr noundef nonnull %32)
  %.sroa.022.0.vec.extract = extractelement <2 x float> %1276, i64 0
  %.sroa.022.4.vec.extract = extractelement <2 x float> %1276, i64 1
  %1277 = fneg float %.sroa.022.4.vec.extract
  %1278 = call ptr @_pCf(ptr noundef nonnull %23)
  %1279 = getelementptr inbounds i8, ptr %1278, i64 4
  store float %.sroa.022.0.vec.extract, ptr %1278, align 4
  store float %1277, ptr %1279, align 4
  %1280 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %1280, ptr %32, align 8, !tbaa !9
  %1281 = call <2 x float> @Cf(ptr noundef nonnull %27)
  %.sroa.021.0.vec.extract = extractelement <2 x float> %1281, i64 0
  %.sroa.021.4.vec.extract = extractelement <2 x float> %1281, i64 1
  %1282 = fneg float %.sroa.021.4.vec.extract
  %1283 = call ptr @_pCf(ptr noundef nonnull %23)
  %1284 = getelementptr inbounds i8, ptr %1283, i64 4
  store float %.sroa.021.0.vec.extract, ptr %1283, align 4
  store float %1282, ptr %1284, align 4
  %1285 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %1285, ptr %39, align 8, !tbaa !9
  %1286 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.020.0.vec.extract = extractelement <2 x float> %1286, i64 0
  %.sroa.020.4.vec.extract = extractelement <2 x float> %1286, i64 1
  %1287 = fneg float %.sroa.020.4.vec.extract
  %1288 = call ptr @_pCf(ptr noundef nonnull %23)
  %1289 = getelementptr inbounds i8, ptr %1288, i64 4
  store float %.sroa.020.0.vec.extract, ptr %1288, align 4
  store float %1287, ptr %1289, align 4
  %1290 = load float, ptr %23, align 8, !tbaa !13
  store float %1290, ptr %41, align 4, !tbaa !13
  %1291 = load float, ptr %1156, align 4, !tbaa !15
  br label %1292

1292:                                             ; preds = %1275, %1274
  %storemerge2227 = phi float [ %1266, %1274 ], [ %1291, %1275 ]
  store float %storemerge2227, ptr %1160, align 4, !tbaa !15
  store i32 %1171, ptr %20, align 4, !tbaa !5
  call void @clarot_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %20, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef nonnull %1252, ptr noundef nonnull %26, ptr noundef nonnull %35, ptr noundef nonnull %32) #9
  %1293 = load i32, ptr %1, align 4, !tbaa !5
  %reass.sub1907 = sub i32 %1293, %.512751640
  %1294 = add i32 %reass.sub1907, 1
  store i32 %1294, ptr %20, align 4, !tbaa !5
  store i32 %1171, ptr %22, align 4, !tbaa !5
  %1295 = call i32 @llvm.smin.i32(i32 %1294, i32 %1171)
  store i32 %1295, ptr %38, align 4, !tbaa !5
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !9
  %1296 = sext i32 %reass.sub1907 to i64
  %1297 = icmp slt i64 %indvars.iv2005, %1296
  %1298 = zext i1 %1297 to i32
  store i32 %1298, ptr %25, align 4, !tbaa !5
  %1299 = add nsw i32 %1267, %.11223
  %1300 = add nsw i32 %1299, %1268
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds %struct.complex, ptr %50, i64 %1301
  call void @clarot_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_true, ptr noundef nonnull %25, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %41, ptr noundef %1302, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef nonnull %35) #9
  %1303 = load i32, ptr %19, align 4, !tbaa !5
  %1304 = add nsw i32 %1303, %.512751640
  %1305 = icmp slt i32 %1303, 0
  %1306 = load i32, ptr %21, align 4
  %1307 = icmp sge i32 %1304, %1306
  %1308 = icmp sle i32 %1304, %1306
  %.in = select i1 %1305, i1 %1307, i1 %1308
  br i1 %.in, label %.lr.ph1643, label %.loopexit1563, !llvm.loop !40

._crit_edge1650:                                  ; preds = %.loopexit1563, %1166
  %.16.lcssa = phi i32 [ %.151654, %1166 ], [ %.17.lcssa, %.loopexit1563 ]
  %indvars.iv.next2006 = add nuw nsw i64 %indvars.iv2005, 1
  %.not1347.not = icmp ult i64 %indvars.iv2005, %1165
  br i1 %.not1347.not, label %1166, label %._crit_edge1657, !llvm.loop !41

._crit_edge1657:                                  ; preds = %._crit_edge1650, %1153
  %.15.lcssa = phi i32 [ undef, %1153 ], [ %.16.lcssa, %._crit_edge1650 ]
  %1309 = icmp ne i32 %.01221, %.21261
  %or.cond17 = and i1 %106, %1309
  br i1 %or.cond17, label %1310, label %1390

1310:                                             ; preds = %._crit_edge1657
  %1311 = load i32, ptr %1, align 4, !tbaa !5
  %1312 = icmp sgt i32 %1311, 0
  br i1 %1312, label %.lr.ph1672, label %._crit_edge1673

.lr.ph1672:                                       ; preds = %1310
  %reass.add1490 = sub i32 %48, %.01224
  %1313 = zext nneg i32 %1311 to i64
  br label %1314

1314:                                             ; preds = %.lr.ph1672, %.loopexit1561
  %indvars.iv2009 = phi i64 [ %1313, %.lr.ph1672 ], [ %indvars.iv.next2010, %.loopexit1561 ]
  %indvars2020 = trunc i64 %indvars.iv2009 to i32
  %1315 = mul nuw nsw i32 %.01224, %indvars2020
  %1316 = sub nsw i32 %.01265, %1315
  br i1 %.not1343, label %1334, label %1317

1317:                                             ; preds = %1314
  %1318 = load i32, ptr %46, align 4, !tbaa !5
  %1319 = sub nsw i32 %indvars2020, %1318
  %1320 = call i32 @llvm.smax.i32(i32 %1319, i32 1)
  store i32 %1320, ptr %18, align 4, !tbaa !5
  %.not13521659 = icmp sgt i32 %1320, %indvars2020
  br i1 %.not13521659, label %.loopexit1561, label %.lr.ph1662

.lr.ph1662:                                       ; preds = %1317
  %1321 = mul nsw i32 %48, %indvars2020
  %1322 = add i32 %1316, %1321
  %1323 = add i32 %.11223, %indvars2020
  %1324 = zext nneg i32 %1320 to i64
  br label %1325

1325:                                             ; preds = %.lr.ph1662, %1325
  %indvars.iv2011 = phi i64 [ %indvars.iv2009, %.lr.ph1662 ], [ %indvars.iv.next2012, %1325 ]
  %1326 = trunc nsw i64 %indvars.iv2011 to i32
  %1327 = add i32 %1322, %1326
  %reass.mul1491 = mul i32 %reass.add1490, %1326
  %1328 = add i32 %1323, %reass.mul1491
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds %struct.complex, ptr %50, i64 %1329
  %1331 = sext i32 %1327 to i64
  %1332 = getelementptr inbounds %struct.complex, ptr %50, i64 %1331
  %1333 = load <2 x float>, ptr %1330, align 4, !tbaa !9
  store <2 x float> %1333, ptr %1332, align 4, !tbaa !9
  %indvars.iv.next2012 = add nsw i64 %indvars.iv2011, -1
  %.not1352.not = icmp sgt i64 %indvars.iv2011, %1324
  br i1 %.not1352.not, label %1325, label %..loopexit1562_crit_edge, !llvm.loop !42

1334:                                             ; preds = %1314
  store i32 1, ptr %19, align 4, !tbaa !5
  %1335 = load i32, ptr %46, align 4, !tbaa !5
  %1336 = sub nsw i32 %indvars2020, %1335
  store i32 %1336, ptr %21, align 4, !tbaa !5
  %1337 = call i32 @llvm.smax.i32(i32 %1336, i32 1)
  store i32 %1337, ptr %18, align 4, !tbaa !5
  %.not13511665 = icmp sgt i32 %1337, %indvars2020
  br i1 %.not13511665, label %.loopexit1561, label %.lr.ph1668

.lr.ph1668:                                       ; preds = %1334
  %1338 = mul nsw i32 %48, %indvars2020
  %1339 = add i32 %1316, %1338
  %1340 = add i32 %.11223, %indvars2020
  %1341 = zext nneg i32 %1337 to i64
  br label %1342

1342:                                             ; preds = %.lr.ph1668, %1342
  %indvars.iv2015 = phi i64 [ %indvars.iv2009, %.lr.ph1668 ], [ %indvars.iv.next2016, %1342 ]
  %1343 = trunc nsw i64 %indvars.iv2015 to i32
  %1344 = add i32 %1339, %1343
  store i32 %1344, ptr %19, align 4, !tbaa !5
  %reass.mul1494 = mul i32 %reass.add1490, %1343
  %1345 = add i32 %1340, %reass.mul1494
  %1346 = sext i32 %1345 to i64
  %1347 = getelementptr inbounds %struct.complex, ptr %50, i64 %1346
  %1348 = call <2 x float> @Cf(ptr noundef %1347)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %1348, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1348, i64 1
  %1349 = fneg float %.sroa.0.4.vec.extract
  %1350 = call ptr @_pCf(ptr noundef nonnull %23)
  %1351 = getelementptr inbounds i8, ptr %1350, i64 4
  store float %.sroa.0.0.vec.extract, ptr %1350, align 4
  store float %1349, ptr %1351, align 4
  %1352 = load i32, ptr %19, align 4, !tbaa !5
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds %struct.complex, ptr %50, i64 %1353
  %1355 = load <2 x float>, ptr %23, align 8, !tbaa !9
  store <2 x float> %1355, ptr %1354, align 4, !tbaa !9
  %indvars.iv.next2016 = add nsw i64 %indvars.iv2015, -1
  %.not1351.not = icmp sgt i64 %indvars.iv2015, %1341
  br i1 %.not1351.not, label %1342, label %.loopexit1561, !llvm.loop !43

..loopexit1562_crit_edge:                         ; preds = %1325
  store i32 %1327, ptr %19, align 4, !tbaa !5
  store i32 %1328, ptr %21, align 4, !tbaa !5
  br label %.loopexit1561

.loopexit1561:                                    ; preds = %1342, %1317, %..loopexit1562_crit_edge, %1334
  %indvars.iv.next2010 = add nsw i64 %indvars.iv2009, -1
  %1356 = icmp sgt i32 %indvars2020, 1
  br i1 %1356, label %1314, label %._crit_edge1673, !llvm.loop !44

._crit_edge1673:                                  ; preds = %.loopexit1561, %1310
  %.161189.lcssa = phi i32 [ undef, %1310 ], [ %1316, %.loopexit1561 ]
  br i1 %101, label %1357, label %.loopexit1560

1357:                                             ; preds = %._crit_edge1673
  %1358 = load i32, ptr %46, align 4, !tbaa !5
  %.not13481681 = icmp slt i32 %1358, 1
  br i1 %.not13481681, label %.loopexit1560, label %.lr.ph1684

.lr.ph1684:                                       ; preds = %1357
  %1359 = shl nsw i64 %49, 3
  %scevgep2021 = getelementptr i8, ptr %13, i64 %1359
  %1360 = add i32 %48, 1
  %wide.trip.count2039 = zext nneg i32 %1358 to i64
  %invariant.op = zext nneg i32 %1358 to i64
  %xtraiter2491 = and i64 %wide.trip.count2039, 1
  %1361 = icmp eq i32 %1358, 1
  br i1 %1361, label %.loopexit1560.loopexit.unr-lcssa, label %.lr.ph1684.new

.lr.ph1684.new:                                   ; preds = %.lr.ph1684
  %unroll_iter2493 = and i64 %wide.trip.count2039, 2147483646
  br label %1362

1362:                                             ; preds = %._crit_edge1679.1, %.lr.ph1684.new
  %indvars.iv2033 = phi i64 [ 1, %.lr.ph1684.new ], [ %indvars.iv.next2034.1, %._crit_edge1679.1 ]
  %indvars.iv2031 = phi i64 [ 0, %.lr.ph1684.new ], [ %indvars.iv.next2032.1, %._crit_edge1679.1 ]
  %niter2494 = phi i64 [ 0, %.lr.ph1684.new ], [ %niter2494.next.1, %._crit_edge1679.1 ]
  %.not13491675 = icmp ugt i64 %indvars.iv2033, %invariant.op
  br i1 %.not13491675, label %._crit_edge1679, label %.lr.ph1678

.lr.ph1678:                                       ; preds = %1362
  %1363 = trunc i64 %indvars.iv2031 to i32
  %1364 = sub i32 %1358, %1363
  %1365 = zext i32 %1364 to i64
  %1366 = shl nuw nsw i64 %1365, 3
  %1367 = trunc nuw nsw i64 %indvars.iv2031 to i32
  %1368 = mul i32 %48, %1367
  %1369 = add i32 %1360, %1368
  %1370 = sext i32 %1369 to i64
  %1371 = shl nsw i64 %1370, 3
  %scevgep2022 = getelementptr i8, ptr %scevgep2021, i64 %1371
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep2022, i8 0, i64 %1366, i1 false), !tbaa !9
  br label %._crit_edge1679

._crit_edge1679:                                  ; preds = %.lr.ph1678, %1362
  %.not13491675.1.not = icmp ult i64 %indvars.iv2033, %invariant.op
  br i1 %.not13491675.1.not, label %.lr.ph1678.1, label %._crit_edge1679.1

.lr.ph1678.1:                                     ; preds = %._crit_edge1679
  %indvars.iv.next2032 = or disjoint i64 %indvars.iv2031, 1
  %1372 = trunc i64 %indvars.iv.next2032 to i32
  %1373 = sub i32 %1358, %1372
  %1374 = zext i32 %1373 to i64
  %1375 = shl nuw nsw i64 %1374, 3
  %1376 = trunc nuw nsw i64 %indvars.iv.next2032 to i32
  %1377 = mul i32 %48, %1376
  %1378 = add i32 %1360, %1377
  %1379 = sext i32 %1378 to i64
  %1380 = shl nsw i64 %1379, 3
  %scevgep2022.1 = getelementptr i8, ptr %scevgep2021, i64 %1380
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep2022.1, i8 0, i64 %1375, i1 false), !tbaa !9
  br label %._crit_edge1679.1

._crit_edge1679.1:                                ; preds = %.lr.ph1678.1, %._crit_edge1679
  %indvars.iv.next2034.1 = add nuw nsw i64 %indvars.iv2033, 2
  %indvars.iv.next2032.1 = add nuw nsw i64 %indvars.iv2031, 2
  %niter2494.next.1 = add i64 %niter2494, 2
  %niter2494.ncmp.1 = icmp eq i64 %niter2494.next.1, %unroll_iter2493
  br i1 %niter2494.ncmp.1, label %.loopexit1560.loopexit.unr-lcssa, label %1362, !llvm.loop !45

.loopexit1560.loopexit.unr-lcssa:                 ; preds = %._crit_edge1679.1, %.lr.ph1684
  %indvars.iv2033.unr = phi i64 [ 1, %.lr.ph1684 ], [ %indvars.iv.next2034.1, %._crit_edge1679.1 ]
  %indvars.iv2031.unr = phi i64 [ 0, %.lr.ph1684 ], [ %indvars.iv.next2032.1, %._crit_edge1679.1 ]
  %lcmp.mod2492.not = icmp eq i64 %xtraiter2491, 0
  %.not13491675.epil = icmp ugt i64 %indvars.iv2033.unr, %invariant.op
  %or.cond2576 = select i1 %lcmp.mod2492.not, i1 true, i1 %.not13491675.epil
  br i1 %or.cond2576, label %.loopexit1560, label %.lr.ph1678.epil

.lr.ph1678.epil:                                  ; preds = %.loopexit1560.loopexit.unr-lcssa
  %1381 = trunc i64 %indvars.iv2031.unr to i32
  %1382 = sub i32 %1358, %1381
  %1383 = zext i32 %1382 to i64
  %1384 = shl nuw nsw i64 %1383, 3
  %1385 = trunc nuw nsw i64 %indvars.iv2031.unr to i32
  %1386 = mul i32 %48, %1385
  %1387 = add i32 %1360, %1386
  %1388 = sext i32 %1387 to i64
  %1389 = shl nsw i64 %1388, 3
  %scevgep2022.epil = getelementptr i8, ptr %scevgep2021, i64 %1389
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep2022.epil, i8 0, i64 %1384, i1 false), !tbaa !9
  br label %.loopexit1560

.loopexit1560:                                    ; preds = %.loopexit1560.loopexit.unr-lcssa, %.lr.ph1678.epil, %1357, %._crit_edge1673
  %.01221.1442 = select i1 %104, i32 %.01221, i32 0
  br label %1390

1390:                                             ; preds = %.loopexit1560, %.loopexit1565, %._crit_edge1657, %._crit_edge1602
  %.31262 = phi i32 [ %.11260, %._crit_edge1602 ], [ %.21261, %._crit_edge1657 ], [ %.01221.1440, %.loopexit1565 ], [ %.01221.1442, %.loopexit1560 ]
  %.171190 = phi i32 [ %.121185.lcssa, %._crit_edge1602 ], [ undef, %._crit_edge1657 ], [ %.151188.lcssa, %.loopexit1565 ], [ %.161189.lcssa, %.loopexit1560 ]
  %.18 = phi i32 [ %.12.lcssa, %._crit_edge1602 ], [ %.15.lcssa, %._crit_edge1657 ], [ %.12.lcssa, %.loopexit1565 ], [ %.15.lcssa, %.loopexit1560 ]
  br i1 %.not1343, label %1391, label %.loopexit1556

1391:                                             ; preds = %1390
  %1392 = load i32, ptr %1, align 4, !tbaa !5
  %.not13611686 = icmp slt i32 %1392, 1
  br i1 %.not13611686, label %.loopexit1556, label %.lr.ph1689

.lr.ph1689:                                       ; preds = %1391
  %1393 = xor i32 %.01224, 1
  %1394 = zext nneg i32 %1393 to i64
  %1395 = sext i32 %.01265 to i64
  %1396 = sext i32 %48 to i64
  %1397 = zext nneg i32 %1392 to i64
  %xtraiter2496 = and i64 %1397, 1
  %1398 = icmp eq i32 %1392, 1
  br i1 %1398, label %..loopexit1559_crit_edge.unr-lcssa, label %.lr.ph1689.new

.lr.ph1689.new:                                   ; preds = %.lr.ph1689
  %unroll_iter2499 = and i64 %1397, 2147483646
  br label %1399

1399:                                             ; preds = %1399, %.lr.ph1689.new
  %indvars.iv2041 = phi i64 [ 1, %.lr.ph1689.new ], [ %indvars.iv.next2042.1, %1399 ]
  %niter2500 = phi i64 [ 0, %.lr.ph1689.new ], [ %niter2500.next.1, %1399 ]
  %1400 = mul nuw nsw i64 %indvars.iv2041, %1394
  %1401 = add nsw i64 %1400, %1395
  %1402 = mul nsw i64 %indvars.iv2041, %1396
  %1403 = add nsw i64 %1401, %1402
  %1404 = getelementptr inbounds %struct.complex, ptr %50, i64 %1403, i32 1
  store float 0.000000e+00, ptr %1404, align 4, !tbaa !15
  %indvars.iv.next2042 = add nuw nsw i64 %indvars.iv2041, 1
  %1405 = mul nuw nsw i64 %indvars.iv.next2042, %1394
  %1406 = add nsw i64 %1405, %1395
  %1407 = mul nsw i64 %indvars.iv.next2042, %1396
  %1408 = add nsw i64 %1406, %1407
  %1409 = getelementptr inbounds %struct.complex, ptr %50, i64 %1408, i32 1
  store float 0.000000e+00, ptr %1409, align 4, !tbaa !15
  %indvars.iv.next2042.1 = add nuw nsw i64 %indvars.iv2041, 2
  %niter2500.next.1 = add i64 %niter2500, 2
  %niter2500.ncmp.1 = icmp eq i64 %niter2500.next.1, %unroll_iter2499
  br i1 %niter2500.ncmp.1, label %..loopexit1559_crit_edge.unr-lcssa, label %1399, !llvm.loop !46

1410:                                             ; preds = %274
  br i1 %.not1311, label %1411, label %1412

1411:                                             ; preds = %1410
  call void @clagge_(ptr noundef nonnull %40, ptr noundef nonnull %37, ptr noundef nonnull %45, ptr noundef nonnull %46, ptr noundef nonnull %5, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %31) #9
  br label %1415

1412:                                             ; preds = %1410
  br i1 %.not1343, label %1414, label %1413

1413:                                             ; preds = %1412
  call void @clagsy_(ptr noundef nonnull %0, ptr noundef nonnull %45, ptr noundef nonnull %5, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %31) #9
  br label %1415

1414:                                             ; preds = %1412
  call void @claghe_(ptr noundef nonnull %0, ptr noundef nonnull %45, ptr noundef nonnull %5, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %31) #9
  br label %1415

1415:                                             ; preds = %1413, %1414, %1411
  %1416 = load i32, ptr %31, align 4, !tbaa !5
  %.not1344 = icmp eq i32 %1416, 0
  br i1 %.not1344, label %.loopexit1556, label %1417

1417:                                             ; preds = %1415
  store i32 3, ptr %16, align 4, !tbaa !5
  br label %.thread1457

..loopexit1559_crit_edge.unr-lcssa:               ; preds = %1399, %.lr.ph1689
  %.lcssa2463.ph = phi i64 [ poison, %.lr.ph1689 ], [ %1406, %1399 ]
  %indvars.iv2041.unr = phi i64 [ 1, %.lr.ph1689 ], [ %indvars.iv.next2042.1, %1399 ]
  %lcmp.mod2497.not = icmp eq i64 %xtraiter2496, 0
  br i1 %lcmp.mod2497.not, label %..loopexit1559_crit_edge, label %..loopexit1559_crit_edge.epilog-lcssa

..loopexit1559_crit_edge.epilog-lcssa:            ; preds = %..loopexit1559_crit_edge.unr-lcssa
  %1418 = mul nuw nsw i64 %indvars.iv2041.unr, %1394
  %1419 = add nsw i64 %1418, %1395
  %1420 = mul nsw i64 %indvars.iv2041.unr, %1396
  %1421 = add nsw i64 %1419, %1420
  %1422 = getelementptr inbounds %struct.complex, ptr %50, i64 %1421, i32 1
  store float 0.000000e+00, ptr %1422, align 4, !tbaa !15
  br label %..loopexit1559_crit_edge

..loopexit1559_crit_edge:                         ; preds = %..loopexit1559_crit_edge.unr-lcssa, %..loopexit1559_crit_edge.epilog-lcssa
  %.lcssa2463 = phi i64 [ %.lcssa2463.ph, %..loopexit1559_crit_edge.unr-lcssa ], [ %1419, %..loopexit1559_crit_edge.epilog-lcssa ]
  %1423 = trunc nsw i64 %.lcssa2463 to i32
  br label %.loopexit1556

.loopexit1556:                                    ; preds = %._crit_edge1743, %._crit_edge1792, %1391, %..loopexit1559_crit_edge, %._crit_edge1725, %._crit_edge1776, %._crit_edge1807, %1390, %1415
  %.41263 = phi i32 [ %.31262, %1390 ], [ 0, %1415 ], [ %spec.select1435, %._crit_edge1807 ], [ %.01221., %._crit_edge1776 ], [ %.01221., %._crit_edge1725 ], [ %.31262, %..loopexit1559_crit_edge ], [ %.31262, %1391 ], [ %.01221., %._crit_edge1792 ], [ %.01221., %._crit_edge1743 ]
  %.191192 = phi i32 [ %.171190, %1390 ], [ undef, %1415 ], [ undef, %._crit_edge1807 ], [ %.71180.lcssa, %._crit_edge1776 ], [ %.01173.lcssa, %._crit_edge1725 ], [ %1423, %..loopexit1559_crit_edge ], [ %.171190, %1391 ], [ %.101183.lcssa, %._crit_edge1792 ], [ %.41177.lcssa, %._crit_edge1743 ]
  %.19 = phi i32 [ %.18, %1390 ], [ undef, %1415 ], [ undef, %._crit_edge1807 ], [ %.7.lcssa, %._crit_edge1776 ], [ %.0.lcssa, %._crit_edge1725 ], [ %.18, %..loopexit1559_crit_edge ], [ %.18, %1391 ], [ %.11.lcssa, %._crit_edge1792 ], [ %.5.lcssa, %._crit_edge1743 ]
  %.not1407 = icmp eq i32 %.01221, %.41263
  br i1 %.not1407, label %.thread1457, label %1424

1424:                                             ; preds = %.loopexit1556
  br i1 %109, label %1425, label %1454

1425:                                             ; preds = %1424
  %1426 = load i32, ptr %0, align 4, !tbaa !5
  %.not14211872 = icmp slt i32 %1426, 1
  br i1 %.not14211872, label %.loopexit1550, label %.lr.ph1875

.lr.ph1875:                                       ; preds = %1425
  %1427 = shl nsw i64 %49, 3
  %scevgep2138 = getelementptr i8, ptr %13, i64 %1427
  %1428 = add i32 %48, 2
  %1429 = add i32 %48, 1
  %1430 = add nsw i32 %1426, -2
  %1431 = zext nneg i32 %1426 to i64
  %wide.trip.count2156 = zext nneg i32 %1426 to i64
  %xtraiter2527 = and i64 %wide.trip.count2156, 1
  %1432 = icmp eq i32 %1426, 1
  br i1 %1432, label %.loopexit1550.loopexit.unr-lcssa, label %.lr.ph1875.new

.lr.ph1875.new:                                   ; preds = %.lr.ph1875
  %unroll_iter2529 = and i64 %wide.trip.count2156, 2147483646
  br label %1443

.loopexit:                                        ; preds = %.lr.ph1870, %1443
  %indvars.iv.next2151.1 = add nuw nsw i64 %indvars.iv2150, 2
  %.not14281867.not.1 = icmp ult i64 %indvars.iv.next2151, %1431
  br i1 %.not14281867.not.1, label %.lr.ph1870.1, label %.loopexit.1

.lr.ph1870.1:                                     ; preds = %.loopexit
  %indvars.iv.next2149 = or disjoint i64 %indvars.iv2148, 1
  %1433 = trunc i64 %indvars.iv.next2149 to i32
  %1434 = sub i32 %1430, %1433
  %1435 = zext i32 %1434 to i64
  %1436 = shl nuw nsw i64 %1435, 3
  %1437 = add nuw nsw i64 %1436, 8
  %1438 = trunc nuw nsw i64 %indvars.iv.next2149 to i32
  %1439 = mul i32 %1429, %1438
  %1440 = add i32 %1428, %1439
  %1441 = sext i32 %1440 to i64
  %1442 = shl nsw i64 %1441, 3
  %scevgep2139.1 = getelementptr i8, ptr %scevgep2138, i64 %1442
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep2139.1, i8 0, i64 %1437, i1 false), !tbaa !9
  br label %.loopexit.1

.loopexit.1:                                      ; preds = %.lr.ph1870.1, %.loopexit
  %indvars.iv.next2149.1 = add nuw nsw i64 %indvars.iv2148, 2
  %niter2530.next.1 = add i64 %niter2530, 2
  %niter2530.ncmp.1 = icmp eq i64 %niter2530.next.1, %unroll_iter2529
  br i1 %niter2530.ncmp.1, label %.loopexit1550.loopexit.unr-lcssa, label %1443, !llvm.loop !47

1443:                                             ; preds = %.loopexit.1, %.lr.ph1875.new
  %indvars.iv2150 = phi i64 [ 1, %.lr.ph1875.new ], [ %indvars.iv.next2151.1, %.loopexit.1 ]
  %indvars.iv2148 = phi i64 [ 0, %.lr.ph1875.new ], [ %indvars.iv.next2149.1, %.loopexit.1 ]
  %niter2530 = phi i64 [ 0, %.lr.ph1875.new ], [ %niter2530.next.1, %.loopexit.1 ]
  %indvars.iv.next2151 = add nuw nsw i64 %indvars.iv2150, 1
  %.not14281867.not = icmp ult i64 %indvars.iv2150, %1431
  br i1 %.not14281867.not, label %.lr.ph1870, label %.loopexit

.lr.ph1870:                                       ; preds = %1443
  %1444 = trunc i64 %indvars.iv2148 to i32
  %1445 = sub i32 %1430, %1444
  %1446 = zext i32 %1445 to i64
  %1447 = shl nuw nsw i64 %1446, 3
  %1448 = add nuw nsw i64 %1447, 8
  %1449 = trunc nuw nsw i64 %indvars.iv2148 to i32
  %1450 = mul i32 %1429, %1449
  %1451 = add i32 %1428, %1450
  %1452 = sext i32 %1451 to i64
  %1453 = shl nsw i64 %1452, 3
  %scevgep2139 = getelementptr i8, ptr %scevgep2138, i64 %1453
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep2139, i8 0, i64 %1448, i1 false), !tbaa !9
  br label %.loopexit

1454:                                             ; preds = %1424
  br i1 %110, label %1455, label %1476

1455:                                             ; preds = %1454
  %1456 = load i32, ptr %0, align 4, !tbaa !5
  %.not14191862 = icmp slt i32 %1456, 2
  br i1 %.not14191862, label %.loopexit1550, label %.lr.ph1865.preheader

.lr.ph1865.preheader:                             ; preds = %1455
  %1457 = shl nsw i64 %49, 3
  %scevgep2120 = getelementptr i8, ptr %13, i64 %1457
  %1458 = shl i32 %48, 1
  %1459 = or disjoint i32 %1458, 1
  %1460 = add nsw i32 %1456, -1
  %wide.trip.count2136 = zext nneg i32 %1460 to i64
  %xtraiter2522 = and i64 %wide.trip.count2136, 1
  %1461 = icmp eq i32 %1460, 1
  br i1 %1461, label %.loopexit1550.loopexit2451.unr-lcssa, label %.lr.ph1865.preheader.new

.lr.ph1865.preheader.new:                         ; preds = %.lr.ph1865.preheader
  %unroll_iter2524 = and i64 %wide.trip.count2136, 2147483646
  br label %.lr.ph1865

.lr.ph1865:                                       ; preds = %.lr.ph1865, %.lr.ph1865.preheader.new
  %indvar2122 = phi i64 [ 0, %.lr.ph1865.preheader.new ], [ %indvar.next2123.1, %.lr.ph1865 ]
  %niter2525 = phi i64 [ 0, %.lr.ph1865.preheader.new ], [ %niter2525.next.1, %.lr.ph1865 ]
  %1462 = trunc nuw nsw i64 %indvar2122 to i32
  %1463 = mul i32 %48, %1462
  %1464 = add i32 %1459, %1463
  %1465 = sext i32 %1464 to i64
  %1466 = shl nsw i64 %1465, 3
  %scevgep2121 = getelementptr i8, ptr %scevgep2120, i64 %1466
  %1467 = shl nuw nsw i64 %indvar2122, 3
  %1468 = or disjoint i64 %1467, 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep2121, i8 0, i64 %1468, i1 false), !tbaa !9
  %indvar.next2123 = or disjoint i64 %indvar2122, 1
  %1469 = trunc nuw nsw i64 %indvar.next2123 to i32
  %1470 = mul i32 %48, %1469
  %1471 = add i32 %1459, %1470
  %1472 = sext i32 %1471 to i64
  %1473 = shl nsw i64 %1472, 3
  %scevgep2121.1 = getelementptr i8, ptr %scevgep2120, i64 %1473
  %1474 = shl nuw nsw i64 %indvar.next2123, 3
  %1475 = add nuw nsw i64 %1474, 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep2121.1, i8 0, i64 %1475, i1 false), !tbaa !9
  %indvar.next2123.1 = add nuw nsw i64 %indvar2122, 2
  %niter2525.next.1 = add i64 %niter2525, 2
  %niter2525.ncmp.1 = icmp eq i64 %niter2525.next.1, %unroll_iter2524
  br i1 %niter2525.ncmp.1, label %.loopexit1550.loopexit2451.unr-lcssa, label %.lr.ph1865, !llvm.loop !48

1476:                                             ; preds = %1454
  br i1 %111, label %1477, label %1512

1477:                                             ; preds = %1476
  %1478 = load i32, ptr %0, align 4, !tbaa !5
  %.not14161852 = icmp slt i32 %1478, 1
  br i1 %.not14161852, label %.loopexit1550.thread, label %.lr.ph1857

.lr.ph1857:                                       ; preds = %1477
  %1479 = load i32, ptr %14, align 4, !tbaa !5
  %1480 = sext i32 %48 to i64
  %1481 = add nuw i32 %1478, 1
  %wide.trip.count2118 = zext i32 %1481 to i64
  %invariant.gep2572 = getelementptr i8, ptr %50, i64 8
  br label %1482

1482:                                             ; preds = %.lr.ph1857, %1511
  %indvar2514 = phi i64 [ 0, %.lr.ph1857 ], [ %indvar.next2515, %1511 ]
  %indvars.iv2112 = phi i64 [ 1, %.lr.ph1857 ], [ %indvars.iv.next2113, %1511 ]
  %.201855 = phi i32 [ 1, %.lr.ph1857 ], [ %spec.select1444.lcssa, %1511 ]
  %.2011931854 = phi i32 [ 0, %.lr.ph1857 ], [ %spec.select1443.lcssa, %1511 ]
  %1483 = mul nsw i64 %indvars.iv2112, %1480
  %1484 = icmp eq i64 %indvar2514, 0
  br i1 %1484, label %.unr-lcssa, label %.new

.new:                                             ; preds = %1482
  %1485 = add i64 %indvar2514, 1
  %unroll_iter2520 = and i64 %1485, -2
  %invariant.gep2570 = getelementptr %struct.complex, ptr %50, i64 %1483
  %invariant.gep2574 = getelementptr %struct.complex, ptr %invariant.gep2572, i64 %1483
  br label %1486

1486:                                             ; preds = %1486, %.new
  %indvars.iv2102 = phi i64 [ 1, %.new ], [ %indvars.iv.next2103.1, %1486 ]
  %.211851 = phi i32 [ %.201855, %.new ], [ %spec.select1444.1, %1486 ]
  %.2111941850 = phi i32 [ %.2011931854, %.new ], [ %spec.select1443.1, %1486 ]
  %niter2521 = phi i64 [ 0, %.new ], [ %niter2521.next.1, %1486 ]
  %1487 = add nsw i32 %.2111941850, 1
  %.not1418 = icmp sge i32 %.2111941850, %1479
  %spec.select1443 = select i1 %.not1418, i32 1, i32 %1487
  %1488 = zext i1 %.not1418 to i32
  %spec.select1444 = add nsw i32 %.211851, %1488
  %1489 = mul nsw i32 %spec.select1444, %48
  %1490 = add nsw i32 %1489, %spec.select1443
  %gep2571 = getelementptr %struct.complex, ptr %invariant.gep2570, i64 %indvars.iv2102
  %1491 = sext i32 %1490 to i64
  %1492 = getelementptr inbounds %struct.complex, ptr %50, i64 %1491
  %1493 = load <2 x float>, ptr %gep2571, align 4, !tbaa !9
  store <2 x float> %1493, ptr %1492, align 4, !tbaa !9
  %1494 = add nsw i32 %spec.select1443, 1
  %.not1418.1 = icmp sge i32 %spec.select1443, %1479
  %spec.select1443.1 = select i1 %.not1418.1, i32 1, i32 %1494
  %1495 = zext i1 %.not1418.1 to i32
  %spec.select1444.1 = add nsw i32 %spec.select1444, %1495
  %1496 = mul nsw i32 %spec.select1444.1, %48
  %1497 = add nsw i32 %1496, %spec.select1443.1
  %gep2575 = getelementptr %struct.complex, ptr %invariant.gep2574, i64 %indvars.iv2102
  %1498 = sext i32 %1497 to i64
  %1499 = getelementptr inbounds %struct.complex, ptr %50, i64 %1498
  %1500 = load <2 x float>, ptr %gep2575, align 4, !tbaa !9
  store <2 x float> %1500, ptr %1499, align 4, !tbaa !9
  %indvars.iv.next2103.1 = add nuw nsw i64 %indvars.iv2102, 2
  %niter2521.next.1 = add i64 %niter2521, 2
  %niter2521.ncmp.1 = icmp eq i64 %niter2521.next.1, %unroll_iter2520
  br i1 %niter2521.ncmp.1, label %.unr-lcssa, label %1486, !llvm.loop !49

.unr-lcssa:                                       ; preds = %1486, %1482
  %spec.select1443.lcssa.ph = phi i32 [ poison, %1482 ], [ %spec.select1443.1, %1486 ]
  %spec.select1444.lcssa.ph = phi i32 [ poison, %1482 ], [ %spec.select1444.1, %1486 ]
  %indvars.iv2102.unr = phi i64 [ 1, %1482 ], [ %indvars.iv.next2103.1, %1486 ]
  %.211851.unr = phi i32 [ %.201855, %1482 ], [ %spec.select1444.1, %1486 ]
  %.2111941850.unr = phi i32 [ %.2011931854, %1482 ], [ %spec.select1443.1, %1486 ]
  %1501 = and i64 %indvar2514, 1
  %lcmp.mod2517.not.not = icmp eq i64 %1501, 0
  br i1 %lcmp.mod2517.not.not, label %.epilog-lcssa, label %1511

.epilog-lcssa:                                    ; preds = %.unr-lcssa
  %1502 = add nsw i32 %.2111941850.unr, 1
  %.not1418.epil = icmp sge i32 %.2111941850.unr, %1479
  %spec.select1443.epil = select i1 %.not1418.epil, i32 1, i32 %1502
  %1503 = zext i1 %.not1418.epil to i32
  %spec.select1444.epil = add nsw i32 %.211851.unr, %1503
  %1504 = mul nsw i32 %spec.select1444.epil, %48
  %1505 = add nsw i32 %1504, %spec.select1443.epil
  %1506 = getelementptr %struct.complex, ptr %50, i64 %indvars.iv2102.unr
  %1507 = getelementptr %struct.complex, ptr %1506, i64 %1483
  %1508 = sext i32 %1505 to i64
  %1509 = getelementptr inbounds %struct.complex, ptr %50, i64 %1508
  %1510 = load <2 x float>, ptr %1507, align 4, !tbaa !9
  store <2 x float> %1510, ptr %1509, align 4, !tbaa !9
  br label %1511

1511:                                             ; preds = %.unr-lcssa, %.epilog-lcssa
  %spec.select1443.lcssa = phi i32 [ %spec.select1443.lcssa.ph, %.unr-lcssa ], [ %spec.select1443.epil, %.epilog-lcssa ]
  %spec.select1444.lcssa = phi i32 [ %spec.select1444.lcssa.ph, %.unr-lcssa ], [ %spec.select1444.epil, %.epilog-lcssa ]
  %indvars.iv.next2113 = add nuw nsw i64 %indvars.iv2112, 1
  %exitcond2119.not = icmp eq i64 %indvars.iv.next2113, %wide.trip.count2118
  %indvar.next2515 = add i64 %indvar2514, 1
  br i1 %exitcond2119.not, label %.loopexit1550, label %1482, !llvm.loop !50

1512:                                             ; preds = %1476
  br i1 %112, label %1513, label %1529

1513:                                             ; preds = %1512
  %1514 = load i32, ptr %0, align 4, !tbaa !5
  %.not14131839 = icmp slt i32 %1514, 1
  br i1 %.not14131839, label %.loopexit1550.thread, label %.lr.ph1844

.lr.ph1844:                                       ; preds = %1513
  %1515 = load i32, ptr %14, align 4, !tbaa !5
  %1516 = add nuw i32 %1514, 1
  %1517 = sext i32 %48 to i64
  %wide.trip.count2100 = zext i32 %1516 to i64
  br label %1518

1518:                                             ; preds = %.lr.ph1844, %1528
  %indvars.iv2090 = phi i64 [ 1, %.lr.ph1844 ], [ %indvars.iv.next2091, %1528 ]
  %.231842 = phi i32 [ 1, %.lr.ph1844 ], [ %spec.select1446, %1528 ]
  %.2311961841 = phi i32 [ 0, %.lr.ph1844 ], [ %spec.select1445, %1528 ]
  %1519 = mul nsw i64 %indvars.iv2090, %1517
  %invariant.gep2568 = getelementptr %struct.complex, ptr %50, i64 %1519
  br label %1520

1520:                                             ; preds = %1518, %1520
  %indvars.iv2092 = phi i64 [ %indvars.iv2090, %1518 ], [ %indvars.iv.next2093, %1520 ]
  %.241836 = phi i32 [ %.231842, %1518 ], [ %spec.select1446, %1520 ]
  %.2411971835 = phi i32 [ %.2311961841, %1518 ], [ %spec.select1445, %1520 ]
  %1521 = add nsw i32 %.2411971835, 1
  %.not1415 = icmp sge i32 %.2411971835, %1515
  %spec.select1445 = select i1 %.not1415, i32 1, i32 %1521
  %1522 = zext i1 %.not1415 to i32
  %spec.select1446 = add nsw i32 %.241836, %1522
  %1523 = mul nsw i32 %spec.select1446, %48
  %1524 = add nsw i32 %1523, %spec.select1445
  %gep2569 = getelementptr %struct.complex, ptr %invariant.gep2568, i64 %indvars.iv2092
  %1525 = sext i32 %1524 to i64
  %1526 = getelementptr inbounds %struct.complex, ptr %50, i64 %1525
  %1527 = load <2 x float>, ptr %gep2569, align 4, !tbaa !9
  store <2 x float> %1527, ptr %1526, align 4, !tbaa !9
  %indvars.iv.next2093 = add nuw nsw i64 %indvars.iv2092, 1
  %exitcond2097.not = icmp eq i64 %indvars.iv.next2093, %wide.trip.count2100
  br i1 %exitcond2097.not, label %1528, label %1520, !llvm.loop !51

1528:                                             ; preds = %1520
  %indvars.iv.next2091 = add nuw nsw i64 %indvars.iv2090, 1
  %exitcond2101.not = icmp eq i64 %indvars.iv.next2091, %wide.trip.count2100
  br i1 %exitcond2101.not, label %.loopexit1550, label %1518, !llvm.loop !52

1529:                                             ; preds = %1512
  br i1 %104, label %1530, label %.thread1457

1530:                                             ; preds = %1529
  br i1 %100, label %1531, label %1532

1531:                                             ; preds = %1530
  store i32 0, ptr %46, align 4, !tbaa !5
  br label %1532

1532:                                             ; preds = %1531, %1530
  br i1 %101, label %1533, label %1534

1533:                                             ; preds = %1532
  store i32 0, ptr %45, align 4, !tbaa !5
  br label %1534

1534:                                             ; preds = %1533, %1532
  %1535 = load i32, ptr %46, align 4, !tbaa !5
  %.not14081816 = icmp slt i32 %1535, 1
  br i1 %.not14081816, label %._crit_edge1820, label %.lr.ph1819

.lr.ph1819:                                       ; preds = %1534
  %1536 = load i32, ptr %45, align 4, !tbaa !5
  %1537 = load i32, ptr %0, align 4, !tbaa !5
  %1538 = add nuw i32 %1535, 1
  %1539 = sext i32 %1536 to i64
  %1540 = sext i32 %1537 to i64
  %1541 = sext i32 %48 to i64
  %wide.trip.count2075 = zext i32 %1538 to i64
  %1542 = add nsw i64 %1539, 1
  %1543 = add i32 %1535, %48
  %1544 = add i32 %48, -1
  %1545 = shl nsw i64 %49, 3
  %scevgep2324 = getelementptr i8, ptr %13, i64 %1545
  %scevgep2329 = getelementptr i8, ptr %13, i64 %1545
  %1546 = or disjoint i64 %1545, 4
  %scevgep2334 = getelementptr i8, ptr %13, i64 %1546
  %scevgep2339 = getelementptr i8, ptr %13, i64 %1546
  %1547 = shl nsw i64 %49, 3
  %scevgep2344 = getelementptr i8, ptr %13, i64 %1547
  %1548 = add nsw i64 %1539, 1
  %1549 = add i32 %1535, %48
  %1550 = add i32 %48, -1
  %1551 = or disjoint i64 %1547, 4
  %scevgep2349 = getelementptr i8, ptr %13, i64 %1551
  %1552 = add nsw i64 %1541, %49
  %scevgep2352 = getelementptr i8, ptr %13, i64 %1551
  %scevgep2354 = getelementptr i8, ptr %13, i64 %1551
  %1553 = add nsw i64 %1547, 8
  %scevgep2356 = getelementptr i8, ptr %13, i64 %1553
  %scevgep2358 = getelementptr i8, ptr %13, i64 4
  %scevgep2360 = getelementptr i8, ptr %13, i64 %1553
  %1554 = add nsw i64 %1539, 1
  %invariant.gep2558 = getelementptr i8, ptr %50, i64 -24
  %invariant.gep2554 = getelementptr i8, ptr %50, i64 -28
  br label %1555

1555:                                             ; preds = %.lr.ph1819, %._crit_edge1813
  %indvar2319 = phi i64 [ 0, %.lr.ph1819 ], [ %indvar.next2320, %._crit_edge1813 ]
  %indvars.iv2071 = phi i64 [ 1, %.lr.ph1819 ], [ %indvars.iv.next2072, %._crit_edge1813 ]
  %indvars.iv2067.in = phi i64 [ %1539, %.lr.ph1819 ], [ %indvars.iv2067, %._crit_edge1813 ]
  %1556 = add i64 %1554, %indvar2319
  %smin2365 = call i64 @llvm.smin.i64(i64 %1556, i64 %1540)
  %1557 = add i64 %smin2365, 1
  %smin2366 = call i64 @llvm.smin.i64(i64 %1556, i64 %1540)
  %smin2367 = call i64 @llvm.smin.i64(i64 %smin2366, i64 1)
  %1558 = sub i64 %1557, %smin2367
  %1559 = add i64 %1548, %indvar2319
  %smin2345 = call i64 @llvm.smin.i64(i64 %1559, i64 %1540)
  %smin2346 = call i64 @llvm.smin.i64(i64 %smin2345, i64 1)
  %1560 = trunc i64 %indvar2319 to i32
  %1561 = mul i32 %1550, %1560
  %1562 = add i32 %1561, %1549
  %smin2347 = call i64 @llvm.smin.i64(i64 %1559, i64 %1540)
  %1563 = trunc i64 %smin2347 to i32
  %1564 = add i32 %1562, %1563
  %1565 = sext i32 %1564 to i64
  %1566 = shl nsw i64 %1565, 3
  %1567 = add i64 %smin2346, %1565
  %1568 = sub i64 %1567, %smin2347
  %1569 = shl i64 %1568, 3
  %scevgep2348 = getelementptr i8, ptr %scevgep2344, i64 %1569
  %scevgep2350 = getelementptr i8, ptr %scevgep2349, i64 %1566
  %1570 = mul i64 %indvar2319, %1541
  %1571 = add i64 %1552, %1570
  %1572 = add i64 %smin2346, %1571
  %1573 = shl i64 %1572, 3
  %scevgep2351 = getelementptr i8, ptr %13, i64 %1573
  %1574 = add i64 %1570, %1541
  %1575 = add i64 %smin2347, %1574
  %1576 = shl i64 %1575, 3
  %scevgep2353 = getelementptr i8, ptr %scevgep2352, i64 %1576
  %scevgep2355 = getelementptr i8, ptr %scevgep2354, i64 %1569
  %scevgep2357 = getelementptr i8, ptr %scevgep2356, i64 %1566
  %scevgep2359 = getelementptr i8, ptr %scevgep2358, i64 %1573
  %scevgep2361 = getelementptr i8, ptr %scevgep2360, i64 %1576
  %1577 = add i64 %1542, %indvar2319
  %smin2321 = call i64 @llvm.smin.i64(i64 %1577, i64 %1540)
  %smin2322 = call i64 @llvm.smin.i64(i64 %1577, i64 %1540)
  %smin2323 = call i64 @llvm.smin.i64(i64 %smin2322, i64 1)
  %1578 = sub i64 %smin2321, %smin2323
  %1579 = trunc i64 %indvar2319 to i32
  %1580 = mul i32 %1544, %1579
  %1581 = add i32 %1580, %1543
  %1582 = trunc i64 %smin2321 to i32
  %1583 = add i32 %1581, %1582
  %1584 = add i64 %indvar2319, 1
  %1585 = mul i64 %1584, %1541
  %1586 = add i64 %smin2321, %1585
  %1587 = shl i64 %1586, 3
  %scevgep2325 = getelementptr i8, ptr %scevgep2324, i64 %1587
  %1588 = sext i32 %1583 to i64
  %1589 = shl nsw i64 %1588, 3
  %scevgep2330 = getelementptr i8, ptr %scevgep2329, i64 %1589
  %scevgep2335 = getelementptr i8, ptr %scevgep2334, i64 %1587
  %scevgep2340 = getelementptr i8, ptr %scevgep2339, i64 %1589
  %indvars.iv2067 = add nsw i64 %indvars.iv2067.in, 1
  %1590 = trunc i64 %indvars.iv2071 to i32
  %1591 = add i32 %1536, %1590
  %.1447 = call i32 @llvm.smin.i32(i32 %1591, i32 %1537)
  %1592 = icmp sgt i32 %.1447, 0
  br i1 %1592, label %.lr.ph1812, label %._crit_edge1813

.lr.ph1812:                                       ; preds = %1555
  %smin = call i64 @llvm.smin.i64(i64 %indvars.iv2067, i64 %1540)
  %1593 = mul nsw i64 %indvars.iv2071, %1541
  %1594 = trunc nuw nsw i64 %indvars.iv2071 to i32
  %1595 = sub i32 %1538, %1594
  %1596 = trunc nsw i64 %1593 to i32
  %1597 = add i32 %1595, %1596
  %min.iters.check = icmp ult i64 %1558, 40
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph1812
  %1598 = trunc i64 %1578 to i32
  %1599 = sub i32 %1583, %1598
  %1600 = icmp sgt i32 %1599, %1583
  %1601 = icmp ugt i64 %1578, 4294967295
  %1602 = or i1 %1600, %1601
  %mul.result2327.neg = mul i64 %1578, -8
  %1603 = getelementptr i8, ptr %scevgep2325, i64 %mul.result2327.neg
  %1604 = icmp ugt ptr %1603, %scevgep2325
  %mul.result2332.neg = mul i64 %1578, -8
  %1605 = getelementptr i8, ptr %scevgep2330, i64 %mul.result2332.neg
  %1606 = icmp ugt ptr %1605, %scevgep2330
  %mul.result2337.neg = mul i64 %1578, -8
  %1607 = getelementptr i8, ptr %scevgep2335, i64 %mul.result2337.neg
  %1608 = icmp ugt ptr %1607, %scevgep2335
  %mul.result2342.neg = mul i64 %1578, -8
  %1609 = getelementptr i8, ptr %scevgep2340, i64 %mul.result2342.neg
  %1610 = icmp ugt ptr %1609, %scevgep2340
  %1611 = or i1 %1604, %1602
  %1612 = or i1 %1606, %1611
  %1613 = or i1 %1608, %1612
  %1614 = or i1 %1610, %1613
  br i1 %1614, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %bound0 = icmp ult ptr %scevgep2348, %scevgep2353
  %bound1 = icmp ult ptr %scevgep2351, %scevgep2350
  %found.conflict = and i1 %bound0, %bound1
  %bound02362 = icmp ult ptr %scevgep2355, %scevgep2361
  %bound12363 = icmp ult ptr %scevgep2359, %scevgep2357
  %found.conflict2364 = and i1 %bound02362, %bound12363
  %conflict.rdx = or i1 %found.conflict, %found.conflict2364
  br i1 %conflict.rdx, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %1558, -4
  %ind.end = sub i64 %smin, %n.vec
  %gep2559 = getelementptr %struct.complex, ptr %invariant.gep2558, i64 %1593
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = sub i64 %smin, %index
  %offset.idx2368 = sub i64 %smin, %index
  %1615 = trunc i64 %offset.idx2368 to i32
  %1616 = add i32 %1597, %1615
  %gep2553 = getelementptr %struct.complex, ptr %gep2559, i64 %offset.idx
  %interleaved.vec = load <8 x float>, ptr %gep2553, align 4, !tbaa !9
  %1617 = sext i32 %1616 to i64
  %gep2555 = getelementptr %struct.complex, ptr %invariant.gep2554, i64 %1617, i32 1
  store <8 x float> %interleaved.vec, ptr %gep2555, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %1618 = icmp eq i64 %index.next, %n.vec
  br i1 %1618, label %middle.block, label %vector.body, !llvm.loop !53

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %1558, %n.vec
  br i1 %cmp.n, label %._crit_edge1813, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %vector.scevcheck, %.lr.ph1812
  %indvars.iv2069.ph = phi i64 [ %smin, %vector.memcheck ], [ %smin, %vector.scevcheck ], [ %smin, %.lr.ph1812 ], [ %ind.end, %middle.block ]
  %invariant.gep2556 = getelementptr %struct.complex, ptr %50, i64 %1593
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv2069 = phi i64 [ %indvars.iv.next2070, %scalar.ph ], [ %indvars.iv2069.ph, %scalar.ph.preheader ]
  %1619 = trunc nuw nsw i64 %indvars.iv2069 to i32
  %1620 = add i32 %1597, %1619
  %gep2557 = getelementptr %struct.complex, ptr %invariant.gep2556, i64 %indvars.iv2069
  %1621 = sext i32 %1620 to i64
  %1622 = getelementptr inbounds %struct.complex, ptr %50, i64 %1621
  %1623 = load <2 x float>, ptr %gep2557, align 4, !tbaa !9
  store <2 x float> %1623, ptr %1622, align 4, !tbaa !9
  %indvars.iv.next2070 = add nsw i64 %indvars.iv2069, -1
  %1624 = icmp sgt i64 %indvars.iv2069, 1
  br i1 %1624, label %scalar.ph, label %._crit_edge1813, !llvm.loop !56

._crit_edge1813:                                  ; preds = %scalar.ph, %middle.block, %1555
  %indvars.iv.next2072 = add nuw nsw i64 %indvars.iv2071, 1
  %exitcond2076.not = icmp eq i64 %indvars.iv.next2072, %wide.trip.count2075
  %indvar.next2320 = add i64 %indvar2319, 1
  br i1 %exitcond2076.not, label %._crit_edge1820, label %1555, !llvm.loop !57

._crit_edge1820:                                  ; preds = %._crit_edge1813, %1534
  %1625 = load i32, ptr %1, align 4, !tbaa !5
  %1626 = add nsw i32 %1535, 2
  %.not14091829 = icmp sgt i32 %1626, %1625
  br i1 %.not14091829, label %.loopexit1550, label %.lr.ph1832

.lr.ph1832:                                       ; preds = %._crit_edge1820
  %1627 = load i32, ptr %45, align 4, !tbaa !5
  %1628 = load i32, ptr %0, align 4, !tbaa !5
  %1629 = add i32 %1535, 1
  %1630 = sext i32 %1626 to i64
  %1631 = sext i32 %1535 to i64
  %1632 = sext i32 %48 to i64
  %1633 = add i32 %1625, 1
  %1634 = add i32 %1535, %1627
  %1635 = add i32 %1634, 2
  %1636 = mul i32 %48, %1626
  %1637 = add i32 %1636, 1
  %1638 = shl nsw i64 %49, 3
  %scevgep2378 = getelementptr i8, ptr %13, i64 %1638
  %scevgep2385 = getelementptr i8, ptr %13, i64 %1638
  %1639 = or disjoint i64 %1638, 4
  %scevgep2390 = getelementptr i8, ptr %13, i64 %1639
  %scevgep2395 = getelementptr i8, ptr %13, i64 %1639
  %1640 = shl nsw i64 %49, 3
  %scevgep2401 = getelementptr i8, ptr %13, i64 %1640
  %1641 = mul i32 %48, %1626
  %1642 = add i32 %1641, 1
  %1643 = or disjoint i64 %1640, 4
  %scevgep2403 = getelementptr i8, ptr %13, i64 %1643
  %1644 = add i32 %1535, %1627
  %1645 = add i32 %1644, 2
  %scevgep2407 = getelementptr i8, ptr %13, i64 %1640
  %1646 = mul nsw i64 %1632, %1630
  %scevgep2409 = getelementptr i8, ptr %13, i64 4
  %1647 = add i64 %1646, %49
  %scevgep2411 = getelementptr i8, ptr %13, i64 %1643
  %1648 = getelementptr i8, ptr %13, i64 %1640
  %scevgep2413 = getelementptr i8, ptr %1648, i64 8
  %scevgep2415 = getelementptr i8, ptr %13, i64 %1643
  %scevgep2417 = getelementptr i8, ptr %13, i64 8
  %1649 = add i32 %1535, %1627
  %1650 = add i32 %1649, 2
  %invariant.gep2562 = getelementptr i8, ptr %50, i64 16
  br label %1651

1651:                                             ; preds = %.lr.ph1832, %._crit_edge1826
  %indvar2379 = phi i64 [ 0, %.lr.ph1832 ], [ %indvar.next2380, %._crit_edge1826 ]
  %indvar2374 = phi i32 [ 0, %.lr.ph1832 ], [ %indvar.next2375, %._crit_edge1826 ]
  %indvars.iv2083 = phi i64 [ %1630, %.lr.ph1832 ], [ %indvars.iv.next2084, %._crit_edge1826 ]
  %indvars.iv2077 = phi i32 [ 2, %.lr.ph1832 ], [ %indvars.iv.next2078, %._crit_edge1826 ]
  %1652 = trunc i64 %indvar2379 to i32
  %1653 = add i32 %1650, %1652
  %1654 = call i32 @llvm.smin.i32(i32 %1628, i32 %1653)
  %1655 = sext i32 %indvars.iv2077 to i64
  %1656 = call i32 @llvm.smax.i32(i32 %1654, i32 %indvars.iv2077)
  %smax2427 = sext i32 %1656 to i64
  %1657 = add nsw i64 %smax2427, 1
  %1658 = sub nsw i64 %1657, %1655
  %1659 = trunc i64 %indvar2379 to i32
  %1660 = mul i32 %48, %1659
  %1661 = add i32 %1660, %1642
  %1662 = sext i32 %1661 to i64
  %1663 = shl nsw i64 %1662, 3
  %scevgep2402 = getelementptr i8, ptr %scevgep2401, i64 %1663
  %1664 = trunc i64 %indvar2379 to i32
  %1665 = add i32 %1645, %1664
  %1666 = call i32 @llvm.smin.i32(i32 %1628, i32 %1665)
  %1667 = sext i32 %indvars.iv2077 to i64
  %1668 = call i32 @llvm.smax.i32(i32 %1666, i32 %indvars.iv2077)
  %smax2405 = sext i32 %1668 to i64
  %1669 = add nsw i64 %smax2405, %1662
  %1670 = sub nsw i64 %1669, %1667
  %1671 = shl nsw i64 %1670, 3
  %scevgep2406 = getelementptr i8, ptr %scevgep2403, i64 %1671
  %1672 = mul i64 %indvar2379, %1632
  %1673 = add i64 %1646, %1672
  %1674 = add i64 %1673, %1667
  %1675 = shl i64 %1674, 3
  %scevgep2408 = getelementptr i8, ptr %scevgep2407, i64 %1675
  %1676 = add i64 %1647, %1672
  %1677 = add i64 %1676, %smax2405
  %1678 = shl i64 %1677, 3
  %scevgep2410 = getelementptr i8, ptr %scevgep2409, i64 %1678
  %scevgep2412 = getelementptr i8, ptr %scevgep2411, i64 %1663
  %scevgep2414 = getelementptr i8, ptr %scevgep2413, i64 %1671
  %scevgep2416 = getelementptr i8, ptr %scevgep2415, i64 %1675
  %scevgep2418 = getelementptr i8, ptr %scevgep2417, i64 %1678
  %1679 = add i32 %1635, %indvar2374
  %1680 = call i32 @llvm.smin.i32(i32 %1628, i32 %1679)
  %1681 = sext i32 %indvars.iv2077 to i64
  %1682 = call i32 @llvm.smax.i32(i32 %1680, i32 %indvars.iv2077)
  %smax2377 = sext i32 %1682 to i64
  %1683 = sub nsw i64 %smax2377, %1681
  %1684 = mul i32 %48, %indvar2374
  %1685 = add i32 %1637, %1684
  %1686 = add i64 %indvar2379, %1630
  %1687 = mul i64 %1686, %1632
  %1688 = add i64 %1687, %1681
  %1689 = shl i64 %1688, 3
  %scevgep2381 = getelementptr i8, ptr %scevgep2378, i64 %1689
  %1690 = sext i32 %1685 to i64
  %1691 = shl nsw i64 %1690, 3
  %scevgep2386 = getelementptr i8, ptr %scevgep2385, i64 %1691
  %scevgep2391 = getelementptr i8, ptr %scevgep2390, i64 %1689
  %scevgep2396 = getelementptr i8, ptr %scevgep2395, i64 %1691
  %1692 = trunc i64 %indvars.iv2083 to i32
  %1693 = add i32 %1627, %1692
  %.1448 = call i32 @llvm.smin.i32(i32 %1693, i32 %1628)
  %1694 = sub nsw i64 %indvars.iv2083, %1631
  %1695 = sext i32 %.1448 to i64
  %.not14111822 = icmp sgt i64 %1694, %1695
  br i1 %.not14111822, label %._crit_edge1826, label %.lr.ph1825

.lr.ph1825:                                       ; preds = %1651
  %1696 = sext i32 %indvars.iv2077 to i64
  %1697 = mul nsw i64 %indvars.iv2083, %1632
  %1698 = trunc nsw i64 %indvars.iv2083 to i32
  %1699 = sub i32 %1629, %1698
  %1700 = trunc nsw i64 %1697 to i32
  %1701 = add i32 %1699, %1700
  %min.iters.check2430 = icmp ult i64 %1658, 36
  br i1 %min.iters.check2430, label %scalar.ph2429.preheader, label %vector.scevcheck2373

vector.scevcheck2373:                             ; preds = %.lr.ph1825
  %1702 = trunc i64 %1683 to i32
  %1703 = add i32 %1685, %1702
  %1704 = icmp slt i32 %1703, %1685
  %1705 = icmp ugt i64 %1683, 4294967295
  %1706 = or i1 %1704, %1705
  %mul.result2383 = shl nsw i64 %1683, 3
  %1707 = getelementptr i8, ptr %scevgep2381, i64 %mul.result2383
  %1708 = icmp ult ptr %1707, %scevgep2381
  %mul.result2388 = shl nsw i64 %1683, 3
  %1709 = getelementptr i8, ptr %scevgep2386, i64 %mul.result2388
  %1710 = icmp ult ptr %1709, %scevgep2386
  %mul.result2393 = shl nsw i64 %1683, 3
  %1711 = getelementptr i8, ptr %scevgep2391, i64 %mul.result2393
  %1712 = icmp ult ptr %1711, %scevgep2391
  %mul.result2398 = shl nsw i64 %1683, 3
  %1713 = getelementptr i8, ptr %scevgep2396, i64 %mul.result2398
  %1714 = icmp ult ptr %1713, %scevgep2396
  %1715 = or i1 %1708, %1706
  %1716 = or i1 %1710, %1715
  %1717 = or i1 %1712, %1716
  %1718 = or i1 %1714, %1717
  br i1 %1718, label %scalar.ph2429.preheader, label %vector.memcheck2400

vector.memcheck2400:                              ; preds = %vector.scevcheck2373
  %bound02419 = icmp ult ptr %scevgep2402, %scevgep2410
  %bound12420 = icmp ult ptr %scevgep2408, %scevgep2406
  %found.conflict2421 = and i1 %bound02419, %bound12420
  %bound02422 = icmp ult ptr %scevgep2412, %scevgep2418
  %bound12423 = icmp ult ptr %scevgep2416, %scevgep2414
  %found.conflict2424 = and i1 %bound02422, %bound12423
  %conflict.rdx2425 = or i1 %found.conflict2421, %found.conflict2424
  br i1 %conflict.rdx2425, label %scalar.ph2429.preheader, label %vector.ph2431

vector.ph2431:                                    ; preds = %vector.memcheck2400
  %n.vec2433 = and i64 %1658, -4
  %ind.end2434 = add nsw i64 %n.vec2433, %1696
  %invariant.gep2560 = getelementptr %struct.complex, ptr %50, i64 %1697
  %invariant.gep2564 = getelementptr %struct.complex, ptr %invariant.gep2562, i64 %1697
  br label %vector.body2436

vector.body2436:                                  ; preds = %vector.body2436, %vector.ph2431
  %index2437 = phi i64 [ 0, %vector.ph2431 ], [ %index.next2448, %vector.body2436 ]
  %offset.idx2438 = add i64 %index2437, %1696
  %1719 = trunc i64 %index2437 to i32
  %1720 = add i32 %indvars.iv2077, %1719
  %1721 = add i32 %1720, 2
  %1722 = add i32 %1701, %1720
  %1723 = add i32 %1701, %1721
  %gep2561 = getelementptr %struct.complex, ptr %invariant.gep2560, i64 %offset.idx2438
  %gep2565 = getelementptr %struct.complex, ptr %invariant.gep2564, i64 %offset.idx2438
  %wide.vec2440 = load <4 x float>, ptr %gep2561, align 4, !tbaa !9
  %wide.vec2441 = load <4 x float>, ptr %gep2565, align 4, !tbaa !9
  %1724 = sext i32 %1722 to i64
  %1725 = sext i32 %1723 to i64
  %1726 = getelementptr inbounds %struct.complex, ptr %50, i64 %1724
  %1727 = getelementptr inbounds %struct.complex, ptr %50, i64 %1725
  store <4 x float> %wide.vec2440, ptr %1726, align 4, !tbaa !9
  store <4 x float> %wide.vec2441, ptr %1727, align 4, !tbaa !9
  %index.next2448 = add nuw i64 %index2437, 4
  %1728 = icmp eq i64 %index.next2448, %n.vec2433
  br i1 %1728, label %middle.block2428, label %vector.body2436, !llvm.loop !58

middle.block2428:                                 ; preds = %vector.body2436
  %cmp.n2449 = icmp eq i64 %1658, %n.vec2433
  br i1 %cmp.n2449, label %._crit_edge1826, label %scalar.ph2429.preheader

scalar.ph2429.preheader:                          ; preds = %middle.block2428, %vector.memcheck2400, %vector.scevcheck2373, %.lr.ph1825
  %indvars.iv2079.ph = phi i64 [ %1696, %vector.memcheck2400 ], [ %1696, %vector.scevcheck2373 ], [ %1696, %.lr.ph1825 ], [ %ind.end2434, %middle.block2428 ]
  %invariant.gep2566 = getelementptr %struct.complex, ptr %50, i64 %1697
  br label %scalar.ph2429

scalar.ph2429:                                    ; preds = %scalar.ph2429.preheader, %scalar.ph2429
  %indvars.iv2079 = phi i64 [ %indvars.iv.next2080, %scalar.ph2429 ], [ %indvars.iv2079.ph, %scalar.ph2429.preheader ]
  %1729 = trunc nsw i64 %indvars.iv2079 to i32
  %1730 = add i32 %1701, %1729
  %gep2567 = getelementptr %struct.complex, ptr %invariant.gep2566, i64 %indvars.iv2079
  %1731 = sext i32 %1730 to i64
  %1732 = getelementptr inbounds %struct.complex, ptr %50, i64 %1731
  %1733 = load <2 x float>, ptr %gep2567, align 4, !tbaa !9
  store <2 x float> %1733, ptr %1732, align 4, !tbaa !9
  %indvars.iv.next2080 = add nsw i64 %indvars.iv2079, 1
  %.not1411.not = icmp slt i64 %indvars.iv2079, %1695
  br i1 %.not1411.not, label %scalar.ph2429, label %._crit_edge1826, !llvm.loop !59

._crit_edge1826:                                  ; preds = %scalar.ph2429, %middle.block2428, %1651
  %indvars.iv.next2084 = add nsw i64 %indvars.iv2083, 1
  %indvars.iv.next2078 = add i32 %indvars.iv2077, 1
  %lftr.wideiv2088 = trunc i64 %indvars.iv.next2084 to i32
  %exitcond2089.not = icmp eq i32 %1633, %lftr.wideiv2088
  %indvar.next2375 = add i32 %indvar2374, 1
  %indvar.next2380 = add i64 %indvar2379, 1
  br i1 %exitcond2089.not, label %.loopexit1550, label %1651, !llvm.loop !60

.loopexit1550.loopexit.unr-lcssa:                 ; preds = %.loopexit.1, %.lr.ph1875
  %indvars.iv2150.unr = phi i64 [ 1, %.lr.ph1875 ], [ %indvars.iv.next2151.1, %.loopexit.1 ]
  %indvars.iv2148.unr = phi i64 [ 0, %.lr.ph1875 ], [ %indvars.iv.next2149.1, %.loopexit.1 ]
  %lcmp.mod2528.not = icmp ne i64 %xtraiter2527, 0
  %.not14281867.not.epil = icmp ult i64 %indvars.iv2150.unr, %1431
  %or.cond2577 = select i1 %lcmp.mod2528.not, i1 %.not14281867.not.epil, i1 false
  br i1 %or.cond2577, label %.lr.ph1870.epil, label %.loopexit1550

.lr.ph1870.epil:                                  ; preds = %.loopexit1550.loopexit.unr-lcssa
  %1734 = trunc i64 %indvars.iv2148.unr to i32
  %1735 = sub i32 %1430, %1734
  %1736 = zext i32 %1735 to i64
  %1737 = shl nuw nsw i64 %1736, 3
  %1738 = add nuw nsw i64 %1737, 8
  %1739 = trunc nuw nsw i64 %indvars.iv2148.unr to i32
  %1740 = mul i32 %1429, %1739
  %1741 = add i32 %1428, %1740
  %1742 = sext i32 %1741 to i64
  %1743 = shl nsw i64 %1742, 3
  %scevgep2139.epil = getelementptr i8, ptr %scevgep2138, i64 %1743
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep2139.epil, i8 0, i64 %1738, i1 false), !tbaa !9
  br label %.loopexit1550

.loopexit1550.loopexit2451.unr-lcssa:             ; preds = %.lr.ph1865, %.lr.ph1865.preheader
  %indvar2122.unr = phi i64 [ 0, %.lr.ph1865.preheader ], [ %indvar.next2123.1, %.lr.ph1865 ]
  %lcmp.mod2523.not = icmp eq i64 %xtraiter2522, 0
  br i1 %lcmp.mod2523.not, label %.loopexit1550, label %.lr.ph1865.epil

.lr.ph1865.epil:                                  ; preds = %.loopexit1550.loopexit2451.unr-lcssa
  %1744 = trunc nuw nsw i64 %indvar2122.unr to i32
  %1745 = mul i32 %48, %1744
  %1746 = add i32 %1459, %1745
  %1747 = sext i32 %1746 to i64
  %1748 = shl nsw i64 %1747, 3
  %scevgep2121.epil = getelementptr i8, ptr %scevgep2120, i64 %1748
  %1749 = shl nuw nsw i64 %indvar2122.unr, 3
  %1750 = add nuw nsw i64 %1749, 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep2121.epil, i8 0, i64 %1750, i1 false), !tbaa !9
  br label %.loopexit1550

.loopexit1550:                                    ; preds = %._crit_edge1826, %1528, %1511, %.lr.ph1865.epil, %.loopexit1550.loopexit2451.unr-lcssa, %.loopexit1550.loopexit.unr-lcssa, %.lr.ph1870.epil, %._crit_edge1820, %1455, %1425
  %.261199 = phi i32 [ %.191192, %1425 ], [ %.191192, %1455 ], [ %.191192, %._crit_edge1820 ], [ %.191192, %.lr.ph1870.epil ], [ %.191192, %.loopexit1550.loopexit.unr-lcssa ], [ %.191192, %.loopexit1550.loopexit2451.unr-lcssa ], [ %.191192, %.lr.ph1865.epil ], [ %spec.select1443.lcssa, %1511 ], [ %spec.select1445, %1528 ], [ %.191192, %._crit_edge1826 ]
  %.26 = phi i32 [ %.19, %1425 ], [ %.19, %1455 ], [ %.19, %._crit_edge1820 ], [ %.19, %.lr.ph1870.epil ], [ %.19, %.loopexit1550.loopexit.unr-lcssa ], [ %.19, %.loopexit1550.loopexit2451.unr-lcssa ], [ %.19, %.lr.ph1865.epil ], [ %spec.select1444.lcssa, %1511 ], [ %spec.select1446, %1528 ], [ %.19, %._crit_edge1826 ]
  %or.cond19 = or i1 %111, %112
  br i1 %or.cond19, label %.loopexit1550.thread, label %1774

.loopexit1550.thread:                             ; preds = %1513, %1477, %.loopexit1550
  %.262272 = phi i32 [ %.26, %.loopexit1550 ], [ 1, %1477 ], [ 1, %1513 ]
  %.2611992271 = phi i32 [ %.261199, %.loopexit1550 ], [ 0, %1477 ], [ 0, %1513 ]
  %.pre2204 = load i32, ptr %0, align 4, !tbaa !5
  %.not14261902 = icmp sgt i32 %.262272, %.pre2204
  br i1 %.not14261902, label %.thread1457, label %.lr.ph1906

.lr.ph1906:                                       ; preds = %.loopexit1550.thread
  %1751 = add nsw i32 %.2611992271, 1
  %1752 = load i32, ptr %14, align 4, !tbaa !5
  %1753 = shl nsw i64 %49, 3
  %scevgep2186 = getelementptr i8, ptr %13, i64 %1753
  %1754 = add i32 %.pre2204, 1
  %1755 = sub i32 %1754, %.262272
  %.not14271896.peel.not = icmp slt i32 %.2611992271, %1752
  br i1 %.not14271896.peel.not, label %.lr.ph1899.peel, label %._crit_edge1900.peel

.lr.ph1899.peel:                                  ; preds = %.lr.ph1906
  %1756 = mul i32 %.262272, %48
  %1757 = add i32 %1751, %1756
  %1758 = sext i32 %1757 to i64
  %1759 = shl nsw i64 %1758, 3
  %scevgep2187.peel = getelementptr i8, ptr %scevgep2186, i64 %1759
  %1760 = sub i32 %1752, %1751
  %1761 = zext i32 %1760 to i64
  %1762 = shl nuw nsw i64 %1761, 3
  %1763 = add nuw nsw i64 %1762, 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep2187.peel, i8 0, i64 %1763, i1 false), !tbaa !9
  br label %._crit_edge1900.peel

._crit_edge1900.peel:                             ; preds = %.lr.ph1899.peel, %.lr.ph1906
  %exitcond2198.not.peel = icmp eq i32 %1755, 1
  br i1 %exitcond2198.not.peel, label %.thread1457, label %.lr.ph1906.peel.newph

.lr.ph1906.peel.newph:                            ; preds = %._crit_edge1900.peel
  %.not14271896 = icmp slt i32 %1752, 1
  %1764 = add nsw i32 %1752, -1
  %1765 = zext i32 %1764 to i64
  %1766 = shl nuw nsw i64 %1765, 3
  %1767 = add nuw nsw i64 %1766, 8
  br label %1768

1768:                                             ; preds = %.lr.ph1906.peel.newph, %._crit_edge1900
  %indvar = phi i32 [ 1, %.lr.ph1906.peel.newph ], [ %indvar.next, %._crit_edge1900 ]
  br i1 %.not14271896, label %._crit_edge1900, label %.lr.ph1899

.lr.ph1899:                                       ; preds = %1768
  %1769 = add i32 %.262272, %indvar
  %1770 = mul i32 %1769, %48
  %1771 = add i32 %1770, 1
  %1772 = sext i32 %1771 to i64
  %1773 = shl nsw i64 %1772, 3
  %scevgep2187 = getelementptr i8, ptr %scevgep2186, i64 %1773
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep2187, i8 0, i64 %1767, i1 false), !tbaa !9
  br label %._crit_edge1900

._crit_edge1900:                                  ; preds = %.lr.ph1899, %1768
  %indvar.next = add i32 %indvar, 1
  %exitcond2198.not = icmp eq i32 %indvar.next, %1755
  br i1 %exitcond2198.not, label %.thread1457, label %1768, !llvm.loop !61

1774:                                             ; preds = %.loopexit1550
  br i1 %104, label %1775, label %.thread1457

1775:                                             ; preds = %1774
  %1776 = load i32, ptr %46, align 4, !tbaa !5
  %1777 = load i32, ptr %45, align 4, !tbaa !5
  %1778 = add i32 %1776, 2
  %1779 = add i32 %1778, %1777
  %1780 = load i32, ptr %1, align 4, !tbaa !5
  %.not14221888 = icmp slt i32 %1780, 1
  br i1 %.not14221888, label %.thread1457, label %.lr.ph1892

.lr.ph1892:                                       ; preds = %1775
  %1781 = load i32, ptr %0, align 4, !tbaa !5
  %1782 = add nsw i32 %1776, 1
  %1783 = add i32 %1778, %1781
  %1784 = load i32, ptr %14, align 4, !tbaa !5
  %1785 = shl nsw i64 %49, 3
  %scevgep2158 = getelementptr i8, ptr %13, i64 %1785
  %1786 = add i32 %48, 1
  %1787 = add i32 %1776, %1781
  %1788 = add i32 %1787, 1
  %wide.trip.count2184 = zext nneg i32 %1780 to i64
  br label %1789

1789:                                             ; preds = %.lr.ph1892, %._crit_edge1886
  %indvars.iv2177 = phi i64 [ 1, %.lr.ph1892 ], [ %indvars.iv.next2178, %._crit_edge1886 ]
  %indvars.iv2175 = phi i64 [ 0, %.lr.ph1892 ], [ %indvars.iv.next2176, %._crit_edge1886 ]
  %.101241.neg1890 = phi i32 [ -1, %.lr.ph1892 ], [ %1813, %._crit_edge1886 ]
  %1790 = trunc i64 %indvars.iv2175 to i32
  %1791 = sub i32 %1788, %1790
  %smin2165 = call i32 @llvm.smin.i32(i32 %1791, i32 %1779)
  %smax = call i32 @llvm.smax.i32(i32 %smin2165, i32 1)
  %1792 = trunc nuw nsw i64 %indvars.iv2175 to i32
  %1793 = mul i32 %48, %1792
  %1794 = add i32 %48, %1793
  %1795 = add i32 %smax, %1794
  %1796 = sext i32 %1795 to i64
  %1797 = shl nsw i64 %1796, 3
  %scevgep2166 = getelementptr i8, ptr %scevgep2158, i64 %1797
  %1798 = sub i32 %1784, %smax
  %1799 = zext i32 %1798 to i64
  %1800 = shl nuw nsw i64 %1799, 3
  %1801 = add nuw nsw i64 %1800, 8
  %1802 = add i32 %1782, %.101241.neg1890
  %.not14231876 = icmp slt i32 %1802, 1
  br i1 %.not14231876, label %._crit_edge1880, label %.lr.ph1879

.lr.ph1879:                                       ; preds = %1789
  %1803 = sub i32 %1776, %1790
  %1804 = zext i32 %1803 to i64
  %1805 = shl nuw nsw i64 %1804, 3
  %1806 = add i32 %1786, %1793
  %1807 = sext i32 %1806 to i64
  %1808 = shl nsw i64 %1807, 3
  %scevgep2159 = getelementptr i8, ptr %scevgep2158, i64 %1808
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep2159, i8 0, i64 %1805, i1 false), !tbaa !9
  br label %._crit_edge1880

._crit_edge1880:                                  ; preds = %.lr.ph1879, %1789
  %1809 = add i32 %1783, %.101241.neg1890
  %1810 = call i32 @llvm.smin.i32(i32 %1779, i32 %1809)
  %1811 = call i32 @llvm.smax.i32(i32 %1810, i32 1)
  %.not14251882 = icmp sgt i32 %1811, %1784
  br i1 %.not14251882, label %._crit_edge1886, label %.lr.ph1885

.lr.ph1885:                                       ; preds = %._crit_edge1880
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep2166, i8 0, i64 %1801, i1 false), !tbaa !9
  br label %._crit_edge1886

._crit_edge1886:                                  ; preds = %.lr.ph1885, %._crit_edge1880
  %indvars.iv.next2178 = add nuw nsw i64 %indvars.iv2177, 1
  %indvars.iv.next2176 = add nuw nsw i64 %indvars.iv2175, 1
  %1812 = trunc i64 %indvars.iv2177 to i32
  %1813 = xor i32 %1812, -1
  %exitcond2185.not = icmp eq i64 %indvars.iv.next2176, %wide.trip.count2184
  br i1 %exitcond2185.not, label %.thread1457, label %1789, !llvm.loop !63

.thread1457:                                      ; preds = %._crit_edge1886, %._crit_edge1900.peel, %._crit_edge1900, %1529, %1775, %.loopexit1550.thread, %.loopexit1556, %1774, %17, %53, %1417, %234, %188, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  ret void
}

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

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

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

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

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

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

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

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

declare <2 x float> @clarnd_(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCf(ptr noundef) local_unnamed_addr #5

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #7

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x i32> @llvm.abs.v4i32(<4 x i32>, i1 immarg) #7

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 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { 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 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !10, i64 0}
!14 = !{!"", !10, i64 0, !10, i64 4}
!15 = !{!14, !10, i64 4}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12}
!38 = distinct !{!38, !12}
!39 = distinct !{!39, !12}
!40 = distinct !{!40, !12}
!41 = distinct !{!41, !12}
!42 = distinct !{!42, !12}
!43 = distinct !{!43, !12}
!44 = distinct !{!44, !12}
!45 = distinct !{!45, !12}
!46 = distinct !{!46, !12}
!47 = distinct !{!47, !12}
!48 = distinct !{!48, !12}
!49 = distinct !{!49, !12}
!50 = distinct !{!50, !12}
!51 = distinct !{!51, !12}
!52 = distinct !{!52, !12}
!53 = distinct !{!53, !12, !54, !55}
!54 = !{!"llvm.loop.isvectorized", i32 1}
!55 = !{!"llvm.loop.unroll.runtime.disable"}
!56 = distinct !{!56, !12, !54}
!57 = distinct !{!57, !12}
!58 = distinct !{!58, !12, !54, !55}
!59 = distinct !{!59, !12, !54}
!60 = distinct !{!60, !12}
!61 = distinct !{!61, !12, !62}
!62 = !{!"llvm.loop.peeled.count", i32 1}
!63 = distinct !{!63, !12}


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