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

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

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

75:                                               ; preds = %10
  %76 = load ptr, ptr %12, align 8, !tbaa !5
  %77 = call i64 @lsame_(ptr noundef %76, ptr noundef @.str.2)
  %78 = icmp ne i64 %77, 0
  br i1 %78, label %81, label %79

79:                                               ; preds = %75
  %80 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -1, ptr %80, align 8, !tbaa !9
  br label %123

81:                                               ; preds = %75, %10
  %82 = load i64, ptr %55, align 8, !tbaa !9
  %83 = icmp ne i64 %82, 0
  br i1 %83, label %94, label %84

84:                                               ; preds = %81
  %85 = load ptr, ptr %13, align 8, !tbaa !5
  %86 = call i64 @lsame_(ptr noundef %85, ptr noundef @.str.3)
  %87 = icmp ne i64 %86, 0
  br i1 %87, label %94, label %88

88:                                               ; preds = %84
  %89 = load ptr, ptr %13, align 8, !tbaa !5
  %90 = call i64 @lsame_(ptr noundef %89, ptr noundef @.str.4)
  %91 = icmp ne i64 %90, 0
  br i1 %91, label %94, label %92

92:                                               ; preds = %88
  %93 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -2, ptr %93, align 8, !tbaa !9
  br label %122

94:                                               ; preds = %88, %84, %81
  %95 = load i64, ptr %58, align 8, !tbaa !9
  %96 = icmp ne i64 %95, 0
  br i1 %96, label %103, label %97

97:                                               ; preds = %94
  %98 = load ptr, ptr %14, align 8, !tbaa !5
  %99 = call i64 @lsame_(ptr noundef %98, ptr noundef @.str)
  %100 = icmp ne i64 %99, 0
  br i1 %100, label %103, label %101

101:                                              ; preds = %97
  %102 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -3, ptr %102, align 8, !tbaa !9
  br label %121

103:                                              ; preds = %97, %94
  %104 = load ptr, ptr %15, align 8, !tbaa !5
  %105 = call i64 @lsame_(ptr noundef %104, ptr noundef @.str.5)
  %106 = icmp ne i64 %105, 0
  br i1 %106, label %113, label %107

107:                                              ; preds = %103
  %108 = load ptr, ptr %15, align 8, !tbaa !5
  %109 = call i64 @lsame_(ptr noundef %108, ptr noundef @.str.1)
  %110 = icmp ne i64 %109, 0
  br i1 %110, label %113, label %111

111:                                              ; preds = %107
  %112 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -4, ptr %112, align 8, !tbaa !9
  br label %120

113:                                              ; preds = %107, %103
  %114 = load ptr, ptr %16, align 8, !tbaa !5
  %115 = load i64, ptr %114, align 8, !tbaa !9
  %116 = icmp slt i64 %115, 0
  br i1 %116, label %117, label %119

117:                                              ; preds = %113
  %118 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -5, ptr %118, align 8, !tbaa !9
  br label %119

119:                                              ; preds = %117, %113
  br label %120

120:                                              ; preds = %119, %111
  br label %121

121:                                              ; preds = %120, %101
  br label %122

122:                                              ; preds = %121, %92
  br label %123

123:                                              ; preds = %122, %79
  %124 = load ptr, ptr %21, align 8, !tbaa !5
  %125 = load i64, ptr %124, align 8, !tbaa !9
  %126 = icmp ne i64 %125, 0
  br i1 %126, label %127, label %132

127:                                              ; preds = %123
  %128 = load ptr, ptr %21, align 8, !tbaa !5
  %129 = load i64, ptr %128, align 8, !tbaa !9
  %130 = sub nsw i64 0, %129
  store i64 %130, ptr %22, align 8, !tbaa !9
  %131 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %22)
  store i32 0, ptr %11, align 4
  store i32 1, ptr %59, align 4
  br label %2964

132:                                              ; preds = %123
  %133 = load ptr, ptr %16, align 8, !tbaa !5
  %134 = load i64, ptr %133, align 8, !tbaa !9
  %135 = icmp eq i64 %134, 0
  br i1 %135, label %136, label %137

136:                                              ; preds = %132
  store i32 0, ptr %11, align 4
  store i32 1, ptr %59, align 4
  br label %2964

137:                                              ; preds = %132
  %138 = call double @slamch_(ptr noundef @.str.7)
  %139 = fptrunc double %138 to float
  store float %139, ptr %57, align 4, !tbaa !11
  %140 = load float, ptr %57, align 4, !tbaa !11
  %141 = fdiv float 1.000000e+00, %140
  store float %141, ptr %54, align 4, !tbaa !11
  %142 = call i32 @slabad_(ptr noundef %57, ptr noundef %54)
  %143 = call double @slamch_(ptr noundef @.str.8)
  %144 = load float, ptr %57, align 4, !tbaa !11
  %145 = fpext float %144 to double
  %146 = fdiv double %145, %143
  %147 = fptrunc double %146 to float
  store float %147, ptr %57, align 4, !tbaa !11
  %148 = load float, ptr %57, align 4, !tbaa !11
  %149 = fdiv float 1.000000e+00, %148
  store float %149, ptr %54, align 4, !tbaa !11
  %150 = load ptr, ptr %19, align 8, !tbaa !5
  store float 1.000000e+00, ptr %150, align 4, !tbaa !11
  %151 = load ptr, ptr %15, align 8, !tbaa !5
  %152 = call i64 @lsame_(ptr noundef %151, ptr noundef @.str.1)
  %153 = icmp ne i64 %152, 0
  br i1 %153, label %154, label %220

154:                                              ; preds = %137
  %155 = load i64, ptr %53, align 8, !tbaa !9
  %156 = icmp ne i64 %155, 0
  br i1 %156, label %157, label %182

157:                                              ; preds = %154
  store i64 1, ptr %37, align 8, !tbaa !9
  %158 = load ptr, ptr %16, align 8, !tbaa !5
  %159 = load i64, ptr %158, align 8, !tbaa !9
  store i64 %159, ptr %22, align 8, !tbaa !9
  store i64 1, ptr %36, align 8, !tbaa !9
  br label %160

160:                                              ; preds = %178, %157
  %161 = load i64, ptr %36, align 8, !tbaa !9
  %162 = load i64, ptr %22, align 8, !tbaa !9
  %163 = icmp sle i64 %161, %162
  br i1 %163, label %164, label %181

164:                                              ; preds = %160
  %165 = load i64, ptr %36, align 8, !tbaa !9
  %166 = sub nsw i64 %165, 1
  store i64 %166, ptr %23, align 8, !tbaa !9
  %167 = load ptr, ptr %17, align 8, !tbaa !5
  %168 = load i64, ptr %37, align 8, !tbaa !9
  %169 = getelementptr inbounds %struct.complex, ptr %167, i64 %168
  %170 = call double @f2c_scasum(ptr noundef %23, ptr noundef %169, ptr noundef @c__1)
  %171 = fptrunc double %170 to float
  %172 = load ptr, ptr %20, align 8, !tbaa !5
  %173 = load i64, ptr %36, align 8, !tbaa !9
  %174 = getelementptr inbounds float, ptr %172, i64 %173
  store float %171, ptr %174, align 4, !tbaa !11
  %175 = load i64, ptr %36, align 8, !tbaa !9
  %176 = load i64, ptr %37, align 8, !tbaa !9
  %177 = add nsw i64 %176, %175
  store i64 %177, ptr %37, align 8, !tbaa !9
  br label %178

178:                                              ; preds = %164
  %179 = load i64, ptr %36, align 8, !tbaa !9
  %180 = add nsw i64 %179, 1
  store i64 %180, ptr %36, align 8, !tbaa !9
  br label %160, !llvm.loop !13

181:                                              ; preds = %160
  br label %219

182:                                              ; preds = %154
  store i64 1, ptr %37, align 8, !tbaa !9
  %183 = load ptr, ptr %16, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = sub nsw i64 %184, 1
  store i64 %185, ptr %22, align 8, !tbaa !9
  store i64 1, ptr %36, align 8, !tbaa !9
  br label %186

186:                                              ; preds = %211, %182
  %187 = load i64, ptr %36, align 8, !tbaa !9
  %188 = load i64, ptr %22, align 8, !tbaa !9
  %189 = icmp sle i64 %187, %188
  br i1 %189, label %190, label %214

190:                                              ; preds = %186
  %191 = load ptr, ptr %16, align 8, !tbaa !5
  %192 = load i64, ptr %191, align 8, !tbaa !9
  %193 = load i64, ptr %36, align 8, !tbaa !9
  %194 = sub nsw i64 %192, %193
  store i64 %194, ptr %23, align 8, !tbaa !9
  %195 = load ptr, ptr %17, align 8, !tbaa !5
  %196 = load i64, ptr %37, align 8, !tbaa !9
  %197 = add nsw i64 %196, 1
  %198 = getelementptr inbounds %struct.complex, ptr %195, i64 %197
  %199 = call double @f2c_scasum(ptr noundef %23, ptr noundef %198, ptr noundef @c__1)
  %200 = fptrunc double %199 to float
  %201 = load ptr, ptr %20, align 8, !tbaa !5
  %202 = load i64, ptr %36, align 8, !tbaa !9
  %203 = getelementptr inbounds float, ptr %201, i64 %202
  store float %200, ptr %203, align 4, !tbaa !11
  %204 = load i64, ptr %37, align 8, !tbaa !9
  %205 = load ptr, ptr %16, align 8, !tbaa !5
  %206 = load i64, ptr %205, align 8, !tbaa !9
  %207 = add nsw i64 %204, %206
  %208 = load i64, ptr %36, align 8, !tbaa !9
  %209 = sub nsw i64 %207, %208
  %210 = add nsw i64 %209, 1
  store i64 %210, ptr %37, align 8, !tbaa !9
  br label %211

211:                                              ; preds = %190
  %212 = load i64, ptr %36, align 8, !tbaa !9
  %213 = add nsw i64 %212, 1
  store i64 %213, ptr %36, align 8, !tbaa !9
  br label %186, !llvm.loop !15

214:                                              ; preds = %186
  %215 = load ptr, ptr %20, align 8, !tbaa !5
  %216 = load ptr, ptr %16, align 8, !tbaa !5
  %217 = load i64, ptr %216, align 8, !tbaa !9
  %218 = getelementptr inbounds float, ptr %215, i64 %217
  store float 0.000000e+00, ptr %218, align 4, !tbaa !11
  br label %219

219:                                              ; preds = %214, %181
  br label %220

220:                                              ; preds = %219, %137
  %221 = load ptr, ptr %16, align 8, !tbaa !5
  %222 = load ptr, ptr %20, align 8, !tbaa !5
  %223 = getelementptr inbounds float, ptr %222, i64 1
  %224 = call i64 @f2c_isamax(ptr noundef %221, ptr noundef %223, ptr noundef @c__1)
  store i64 %224, ptr %44, align 8, !tbaa !9
  %225 = load ptr, ptr %20, align 8, !tbaa !5
  %226 = load i64, ptr %44, align 8, !tbaa !9
  %227 = getelementptr inbounds float, ptr %225, i64 %226
  %228 = load float, ptr %227, align 4, !tbaa !11
  store float %228, ptr %45, align 4, !tbaa !11
  %229 = load float, ptr %45, align 4, !tbaa !11
  %230 = load float, ptr %54, align 4, !tbaa !11
  %231 = fmul float %230, 5.000000e-01
  %232 = fcmp ole float %229, %231
  br i1 %232, label %233, label %234

233:                                              ; preds = %220
  store float 1.000000e+00, ptr %49, align 4, !tbaa !11
  br label %243

234:                                              ; preds = %220
  %235 = load float, ptr %57, align 4, !tbaa !11
  %236 = load float, ptr %45, align 4, !tbaa !11
  %237 = fmul float %235, %236
  %238 = fdiv float 5.000000e-01, %237
  store float %238, ptr %49, align 4, !tbaa !11
  %239 = load ptr, ptr %16, align 8, !tbaa !5
  %240 = load ptr, ptr %20, align 8, !tbaa !5
  %241 = getelementptr inbounds float, ptr %240, i64 1
  %242 = call i32 @f2c_sscal(ptr noundef %239, ptr noundef %49, ptr noundef %241, ptr noundef @c__1)
  br label %243

243:                                              ; preds = %234, %233
  store float 0.000000e+00, ptr %47, align 4, !tbaa !11
  %244 = load ptr, ptr %16, align 8, !tbaa !5
  %245 = load i64, ptr %244, align 8, !tbaa !9
  store i64 %245, ptr %22, align 8, !tbaa !9
  store i64 1, ptr %36, align 8, !tbaa !9
  br label %246

246:                                              ; preds = %298, %243
  %247 = load i64, ptr %36, align 8, !tbaa !9
  %248 = load i64, ptr %22, align 8, !tbaa !9
  %249 = icmp sle i64 %247, %248
  br i1 %249, label %250, label %301

250:                                              ; preds = %246
  %251 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %251, ptr %23, align 8, !tbaa !9
  %252 = load float, ptr %47, align 4, !tbaa !11
  store float %252, ptr %29, align 4, !tbaa !11
  %253 = load ptr, ptr %18, align 8, !tbaa !5
  %254 = load i64, ptr %23, align 8, !tbaa !9
  %255 = getelementptr inbounds %struct.complex, ptr %253, i64 %254
  %256 = getelementptr inbounds %struct.complex, ptr %255, i32 0, i32 0
  %257 = load float, ptr %256, align 4, !tbaa !16
  %258 = fdiv float %257, 2.000000e+00
  store float %258, ptr %27, align 4, !tbaa !11
  %259 = load float, ptr %27, align 4, !tbaa !11
  %260 = fcmp oge float %259, 0.000000e+00
  br i1 %260, label %261, label %263

261:                                              ; preds = %250
  %262 = load float, ptr %27, align 4, !tbaa !11
  br label %266

263:                                              ; preds = %250
  %264 = load float, ptr %27, align 4, !tbaa !11
  %265 = fneg float %264
  br label %266

266:                                              ; preds = %263, %261
  %267 = phi float [ %262, %261 ], [ %265, %263 ]
  %268 = fpext float %267 to double
  %269 = load ptr, ptr %18, align 8, !tbaa !5
  %270 = load i64, ptr %36, align 8, !tbaa !9
  %271 = getelementptr inbounds %struct.complex, ptr %269, i64 %270
  %272 = call double @r_imag(ptr noundef %271)
  %273 = fdiv double %272, 2.000000e+00
  %274 = fptrunc double %273 to float
  store float %274, ptr %28, align 4, !tbaa !11
  %275 = load float, ptr %28, align 4, !tbaa !11
  %276 = fcmp oge float %275, 0.000000e+00
  br i1 %276, label %277, label %279

277:                                              ; preds = %266
  %278 = load float, ptr %28, align 4, !tbaa !11
  br label %282

279:                                              ; preds = %266
  %280 = load float, ptr %28, align 4, !tbaa !11
  %281 = fneg float %280
  br label %282

282:                                              ; preds = %279, %277
  %283 = phi float [ %278, %277 ], [ %281, %279 ]
  %284 = fpext float %283 to double
  %285 = fadd double %268, %284
  %286 = fptrunc double %285 to float
  store float %286, ptr %30, align 4, !tbaa !11
  %287 = load float, ptr %29, align 4, !tbaa !11
  %288 = load float, ptr %30, align 4, !tbaa !11
  %289 = fcmp oge float %287, %288
  br i1 %289, label %290, label %292

290:                                              ; preds = %282
  %291 = load float, ptr %29, align 4, !tbaa !11
  br label %294

292:                                              ; preds = %282
  %293 = load float, ptr %30, align 4, !tbaa !11
  br label %294

294:                                              ; preds = %292, %290
  %295 = phi float [ %291, %290 ], [ %293, %292 ]
  %296 = fpext float %295 to double
  %297 = fptrunc double %296 to float
  store float %297, ptr %47, align 4, !tbaa !11
  br label %298

298:                                              ; preds = %294
  %299 = load i64, ptr %36, align 8, !tbaa !9
  %300 = add nsw i64 %299, 1
  store i64 %300, ptr %36, align 8, !tbaa !9
  br label %246, !llvm.loop !18

301:                                              ; preds = %246
  %302 = load float, ptr %47, align 4, !tbaa !11
  store float %302, ptr %43, align 4, !tbaa !11
  %303 = load i64, ptr %55, align 8, !tbaa !9
  %304 = icmp ne i64 %303, 0
  br i1 %304, label %305, label %534

305:                                              ; preds = %301
  %306 = load i64, ptr %53, align 8, !tbaa !9
  %307 = icmp ne i64 %306, 0
  br i1 %307, label %308, label %311

308:                                              ; preds = %305
  %309 = load ptr, ptr %16, align 8, !tbaa !5
  %310 = load i64, ptr %309, align 8, !tbaa !9
  store i64 %310, ptr %56, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  store i64 -1, ptr %41, align 8, !tbaa !9
  br label %314

311:                                              ; preds = %305
  store i64 1, ptr %56, align 8, !tbaa !9
  %312 = load ptr, ptr %16, align 8, !tbaa !5
  %313 = load i64, ptr %312, align 8, !tbaa !9
  store i64 %313, ptr %51, align 8, !tbaa !9
  store i64 1, ptr %41, align 8, !tbaa !9
  br label %314

314:                                              ; preds = %311, %308
  %315 = load float, ptr %49, align 4, !tbaa !11
  %316 = fcmp une float %315, 1.000000e+00
  br i1 %316, label %317, label %318

317:                                              ; preds = %314
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  br label %533

318:                                              ; preds = %314
  %319 = load i64, ptr %58, align 8, !tbaa !9
  %320 = icmp ne i64 %319, 0
  br i1 %320, label %321, label %470

321:                                              ; preds = %318
  %322 = load float, ptr %43, align 4, !tbaa !11
  %323 = load float, ptr %57, align 4, !tbaa !11
  %324 = fcmp oge float %322, %323
  br i1 %324, label %325, label %327

325:                                              ; preds = %321
  %326 = load float, ptr %43, align 4, !tbaa !11
  br label %329

327:                                              ; preds = %321
  %328 = load float, ptr %57, align 4, !tbaa !11
  br label %329

329:                                              ; preds = %327, %325
  %330 = phi float [ %326, %325 ], [ %328, %327 ]
  %331 = fpext float %330 to double
  %332 = fdiv double 5.000000e-01, %331
  %333 = fptrunc double %332 to float
  store float %333, ptr %48, align 4, !tbaa !11
  %334 = load float, ptr %48, align 4, !tbaa !11
  store float %334, ptr %43, align 4, !tbaa !11
  %335 = load i64, ptr %56, align 8, !tbaa !9
  %336 = load i64, ptr %56, align 8, !tbaa !9
  %337 = add nsw i64 %336, 1
  %338 = mul nsw i64 %335, %337
  %339 = sdiv i64 %338, 2
  store i64 %339, ptr %37, align 8, !tbaa !9
  %340 = load ptr, ptr %16, align 8, !tbaa !5
  %341 = load i64, ptr %340, align 8, !tbaa !9
  store i64 %341, ptr %42, align 8, !tbaa !9
  %342 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %342, ptr %22, align 8, !tbaa !9
  %343 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %343, ptr %23, align 8, !tbaa !9
  %344 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %344, ptr %36, align 8, !tbaa !9
  br label %345

345:                                              ; preds = %464, %329
  %346 = load i64, ptr %23, align 8, !tbaa !9
  %347 = icmp slt i64 %346, 0
  br i1 %347, label %348, label %353

348:                                              ; preds = %345
  %349 = load i64, ptr %36, align 8, !tbaa !9
  %350 = load i64, ptr %22, align 8, !tbaa !9
  %351 = icmp sge i64 %349, %350
  %352 = zext i1 %351 to i32
  br label %358

353:                                              ; preds = %345
  %354 = load i64, ptr %36, align 8, !tbaa !9
  %355 = load i64, ptr %22, align 8, !tbaa !9
  %356 = icmp sle i64 %354, %355
  %357 = zext i1 %356 to i32
  br label %358

358:                                              ; preds = %353, %348
  %359 = phi i32 [ %352, %348 ], [ %357, %353 ]
  %360 = icmp ne i32 %359, 0
  br i1 %360, label %361, label %468

361:                                              ; preds = %358
  %362 = load float, ptr %48, align 4, !tbaa !11
  %363 = load float, ptr %57, align 4, !tbaa !11
  %364 = fcmp ole float %362, %363
  br i1 %364, label %365, label %366

365:                                              ; preds = %361
  br label %533

366:                                              ; preds = %361
  %367 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %367, ptr %24, align 8, !tbaa !9
  %368 = load ptr, ptr %17, align 8, !tbaa !5
  %369 = load i64, ptr %24, align 8, !tbaa !9
  %370 = getelementptr inbounds %struct.complex, ptr %368, i64 %369
  %371 = getelementptr inbounds %struct.complex, ptr %370, i32 0, i32 0
  %372 = load float, ptr %371, align 4, !tbaa !16
  %373 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %372, ptr %373, align 4, !tbaa !16
  %374 = load ptr, ptr %17, align 8, !tbaa !5
  %375 = load i64, ptr %24, align 8, !tbaa !9
  %376 = getelementptr inbounds %struct.complex, ptr %374, i64 %375
  %377 = getelementptr inbounds %struct.complex, ptr %376, i32 0, i32 1
  %378 = load float, ptr %377, align 4, !tbaa !19
  %379 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %378, ptr %379, align 4, !tbaa !19
  %380 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %381 = load float, ptr %380, align 4, !tbaa !16
  store float %381, ptr %27, align 4, !tbaa !11
  %382 = load float, ptr %27, align 4, !tbaa !11
  %383 = fcmp oge float %382, 0.000000e+00
  br i1 %383, label %384, label %386

384:                                              ; preds = %366
  %385 = load float, ptr %27, align 4, !tbaa !11
  br label %389

386:                                              ; preds = %366
  %387 = load float, ptr %27, align 4, !tbaa !11
  %388 = fneg float %387
  br label %389

389:                                              ; preds = %386, %384
  %390 = phi float [ %385, %384 ], [ %388, %386 ]
  %391 = fpext float %390 to double
  %392 = call double @r_imag(ptr noundef %46)
  %393 = fptrunc double %392 to float
  store float %393, ptr %28, align 4, !tbaa !11
  %394 = load float, ptr %28, align 4, !tbaa !11
  %395 = fcmp oge float %394, 0.000000e+00
  br i1 %395, label %396, label %398

396:                                              ; preds = %389
  %397 = load float, ptr %28, align 4, !tbaa !11
  br label %401

398:                                              ; preds = %389
  %399 = load float, ptr %28, align 4, !tbaa !11
  %400 = fneg float %399
  br label %401

401:                                              ; preds = %398, %396
  %402 = phi float [ %397, %396 ], [ %400, %398 ]
  %403 = fpext float %402 to double
  %404 = fadd double %391, %403
  %405 = fptrunc double %404 to float
  store float %405, ptr %40, align 4, !tbaa !11
  %406 = load float, ptr %40, align 4, !tbaa !11
  %407 = load float, ptr %57, align 4, !tbaa !11
  %408 = fcmp oge float %406, %407
  br i1 %408, label %409, label %434

409:                                              ; preds = %401
  %410 = load float, ptr %43, align 4, !tbaa !11
  store float %410, ptr %27, align 4, !tbaa !11
  %411 = load float, ptr %40, align 4, !tbaa !11
  %412 = fcmp ole float 1.000000e+00, %411
  br i1 %412, label %413, label %414

413:                                              ; preds = %409
  br label %416

414:                                              ; preds = %409
  %415 = load float, ptr %40, align 4, !tbaa !11
  br label %416

416:                                              ; preds = %414, %413
  %417 = phi float [ 1.000000e+00, %413 ], [ %415, %414 ]
  %418 = fpext float %417 to double
  %419 = load float, ptr %48, align 4, !tbaa !11
  %420 = fpext float %419 to double
  %421 = fmul double %418, %420
  %422 = fptrunc double %421 to float
  store float %422, ptr %28, align 4, !tbaa !11
  %423 = load float, ptr %27, align 4, !tbaa !11
  %424 = load float, ptr %28, align 4, !tbaa !11
  %425 = fcmp ole float %423, %424
  br i1 %425, label %426, label %428

426:                                              ; preds = %416
  %427 = load float, ptr %27, align 4, !tbaa !11
  br label %430

428:                                              ; preds = %416
  %429 = load float, ptr %28, align 4, !tbaa !11
  br label %430

430:                                              ; preds = %428, %426
  %431 = phi float [ %427, %426 ], [ %429, %428 ]
  %432 = fpext float %431 to double
  %433 = fptrunc double %432 to float
  store float %433, ptr %43, align 4, !tbaa !11
  br label %435

434:                                              ; preds = %401
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  br label %435

435:                                              ; preds = %434, %430
  %436 = load float, ptr %40, align 4, !tbaa !11
  %437 = load ptr, ptr %20, align 8, !tbaa !5
  %438 = load i64, ptr %36, align 8, !tbaa !9
  %439 = getelementptr inbounds float, ptr %437, i64 %438
  %440 = load float, ptr %439, align 4, !tbaa !11
  %441 = fadd float %436, %440
  %442 = load float, ptr %57, align 4, !tbaa !11
  %443 = fcmp oge float %441, %442
  br i1 %443, label %444, label %455

444:                                              ; preds = %435
  %445 = load float, ptr %40, align 4, !tbaa !11
  %446 = load float, ptr %40, align 4, !tbaa !11
  %447 = load ptr, ptr %20, align 8, !tbaa !5
  %448 = load i64, ptr %36, align 8, !tbaa !9
  %449 = getelementptr inbounds float, ptr %447, i64 %448
  %450 = load float, ptr %449, align 4, !tbaa !11
  %451 = fadd float %446, %450
  %452 = fdiv float %445, %451
  %453 = load float, ptr %48, align 4, !tbaa !11
  %454 = fmul float %453, %452
  store float %454, ptr %48, align 4, !tbaa !11
  br label %456

455:                                              ; preds = %435
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  br label %456

456:                                              ; preds = %455, %444
  %457 = load i64, ptr %41, align 8, !tbaa !9
  %458 = load i64, ptr %42, align 8, !tbaa !9
  %459 = mul nsw i64 %457, %458
  %460 = load i64, ptr %37, align 8, !tbaa !9
  %461 = add nsw i64 %460, %459
  store i64 %461, ptr %37, align 8, !tbaa !9
  %462 = load i64, ptr %42, align 8, !tbaa !9
  %463 = add nsw i64 %462, -1
  store i64 %463, ptr %42, align 8, !tbaa !9
  br label %464

464:                                              ; preds = %456
  %465 = load i64, ptr %23, align 8, !tbaa !9
  %466 = load i64, ptr %36, align 8, !tbaa !9
  %467 = add nsw i64 %466, %465
  store i64 %467, ptr %36, align 8, !tbaa !9
  br label %345, !llvm.loop !20

468:                                              ; preds = %358
  %469 = load float, ptr %43, align 4, !tbaa !11
  store float %469, ptr %48, align 4, !tbaa !11
  br label %532

470:                                              ; preds = %318
  store float 1.000000e+00, ptr %27, align 4, !tbaa !11
  %471 = load float, ptr %43, align 4, !tbaa !11
  %472 = load float, ptr %57, align 4, !tbaa !11
  %473 = fcmp oge float %471, %472
  br i1 %473, label %474, label %476

474:                                              ; preds = %470
  %475 = load float, ptr %43, align 4, !tbaa !11
  br label %478

476:                                              ; preds = %470
  %477 = load float, ptr %57, align 4, !tbaa !11
  br label %478

478:                                              ; preds = %476, %474
  %479 = phi float [ %475, %474 ], [ %477, %476 ]
  %480 = fpext float %479 to double
  %481 = fdiv double 5.000000e-01, %480
  %482 = fptrunc double %481 to float
  store float %482, ptr %28, align 4, !tbaa !11
  %483 = load float, ptr %27, align 4, !tbaa !11
  %484 = load float, ptr %28, align 4, !tbaa !11
  %485 = fcmp ole float %483, %484
  br i1 %485, label %486, label %488

486:                                              ; preds = %478
  %487 = load float, ptr %27, align 4, !tbaa !11
  br label %490

488:                                              ; preds = %478
  %489 = load float, ptr %28, align 4, !tbaa !11
  br label %490

490:                                              ; preds = %488, %486
  %491 = phi float [ %487, %486 ], [ %489, %488 ]
  %492 = fpext float %491 to double
  %493 = fptrunc double %492 to float
  store float %493, ptr %48, align 4, !tbaa !11
  %494 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %494, ptr %23, align 8, !tbaa !9
  %495 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %495, ptr %22, align 8, !tbaa !9
  %496 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %496, ptr %36, align 8, !tbaa !9
  br label %497

497:                                              ; preds = %527, %490
  %498 = load i64, ptr %22, align 8, !tbaa !9
  %499 = icmp slt i64 %498, 0
  br i1 %499, label %500, label %505

500:                                              ; preds = %497
  %501 = load i64, ptr %36, align 8, !tbaa !9
  %502 = load i64, ptr %23, align 8, !tbaa !9
  %503 = icmp sge i64 %501, %502
  %504 = zext i1 %503 to i32
  br label %510

505:                                              ; preds = %497
  %506 = load i64, ptr %36, align 8, !tbaa !9
  %507 = load i64, ptr %23, align 8, !tbaa !9
  %508 = icmp sle i64 %506, %507
  %509 = zext i1 %508 to i32
  br label %510

510:                                              ; preds = %505, %500
  %511 = phi i32 [ %504, %500 ], [ %509, %505 ]
  %512 = icmp ne i32 %511, 0
  br i1 %512, label %513, label %531

513:                                              ; preds = %510
  %514 = load float, ptr %48, align 4, !tbaa !11
  %515 = load float, ptr %57, align 4, !tbaa !11
  %516 = fcmp ole float %514, %515
  br i1 %516, label %517, label %518

517:                                              ; preds = %513
  br label %533

518:                                              ; preds = %513
  %519 = load ptr, ptr %20, align 8, !tbaa !5
  %520 = load i64, ptr %36, align 8, !tbaa !9
  %521 = getelementptr inbounds float, ptr %519, i64 %520
  %522 = load float, ptr %521, align 4, !tbaa !11
  %523 = fadd float %522, 1.000000e+00
  %524 = fdiv float 1.000000e+00, %523
  %525 = load float, ptr %48, align 4, !tbaa !11
  %526 = fmul float %525, %524
  store float %526, ptr %48, align 4, !tbaa !11
  br label %527

527:                                              ; preds = %518
  %528 = load i64, ptr %22, align 8, !tbaa !9
  %529 = load i64, ptr %36, align 8, !tbaa !9
  %530 = add nsw i64 %529, %528
  store i64 %530, ptr %36, align 8, !tbaa !9
  br label %497, !llvm.loop !21

531:                                              ; preds = %510
  br label %532

532:                                              ; preds = %531, %468
  br label %533

533:                                              ; preds = %532, %517, %365, %317
  br label %756

534:                                              ; preds = %301
  %535 = load i64, ptr %53, align 8, !tbaa !9
  %536 = icmp ne i64 %535, 0
  br i1 %536, label %537, label %540

537:                                              ; preds = %534
  store i64 1, ptr %56, align 8, !tbaa !9
  %538 = load ptr, ptr %16, align 8, !tbaa !5
  %539 = load i64, ptr %538, align 8, !tbaa !9
  store i64 %539, ptr %51, align 8, !tbaa !9
  store i64 1, ptr %41, align 8, !tbaa !9
  br label %543

540:                                              ; preds = %534
  %541 = load ptr, ptr %16, align 8, !tbaa !5
  %542 = load i64, ptr %541, align 8, !tbaa !9
  store i64 %542, ptr %56, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  store i64 -1, ptr %41, align 8, !tbaa !9
  br label %543

543:                                              ; preds = %540, %537
  %544 = load float, ptr %49, align 4, !tbaa !11
  %545 = fcmp une float %544, 1.000000e+00
  br i1 %545, label %546, label %547

546:                                              ; preds = %543
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  br label %755

547:                                              ; preds = %543
  %548 = load i64, ptr %58, align 8, !tbaa !9
  %549 = icmp ne i64 %548, 0
  br i1 %549, label %550, label %692

550:                                              ; preds = %547
  %551 = load float, ptr %43, align 4, !tbaa !11
  %552 = load float, ptr %57, align 4, !tbaa !11
  %553 = fcmp oge float %551, %552
  br i1 %553, label %554, label %556

554:                                              ; preds = %550
  %555 = load float, ptr %43, align 4, !tbaa !11
  br label %558

556:                                              ; preds = %550
  %557 = load float, ptr %57, align 4, !tbaa !11
  br label %558

558:                                              ; preds = %556, %554
  %559 = phi float [ %555, %554 ], [ %557, %556 ]
  %560 = fpext float %559 to double
  %561 = fdiv double 5.000000e-01, %560
  %562 = fptrunc double %561 to float
  store float %562, ptr %48, align 4, !tbaa !11
  %563 = load float, ptr %48, align 4, !tbaa !11
  store float %563, ptr %43, align 4, !tbaa !11
  %564 = load i64, ptr %56, align 8, !tbaa !9
  %565 = load i64, ptr %56, align 8, !tbaa !9
  %566 = add nsw i64 %565, 1
  %567 = mul nsw i64 %564, %566
  %568 = sdiv i64 %567, 2
  store i64 %568, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %42, align 8, !tbaa !9
  %569 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %569, ptr %22, align 8, !tbaa !9
  %570 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %570, ptr %23, align 8, !tbaa !9
  %571 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %571, ptr %36, align 8, !tbaa !9
  br label %572

572:                                              ; preds = %676, %558
  %573 = load i64, ptr %23, align 8, !tbaa !9
  %574 = icmp slt i64 %573, 0
  br i1 %574, label %575, label %580

575:                                              ; preds = %572
  %576 = load i64, ptr %36, align 8, !tbaa !9
  %577 = load i64, ptr %22, align 8, !tbaa !9
  %578 = icmp sge i64 %576, %577
  %579 = zext i1 %578 to i32
  br label %585

580:                                              ; preds = %572
  %581 = load i64, ptr %36, align 8, !tbaa !9
  %582 = load i64, ptr %22, align 8, !tbaa !9
  %583 = icmp sle i64 %581, %582
  %584 = zext i1 %583 to i32
  br label %585

585:                                              ; preds = %580, %575
  %586 = phi i32 [ %579, %575 ], [ %584, %580 ]
  %587 = icmp ne i32 %586, 0
  br i1 %587, label %588, label %680

588:                                              ; preds = %585
  %589 = load float, ptr %48, align 4, !tbaa !11
  %590 = load float, ptr %57, align 4, !tbaa !11
  %591 = fcmp ole float %589, %590
  br i1 %591, label %592, label %593

592:                                              ; preds = %588
  br label %755

593:                                              ; preds = %588
  %594 = load ptr, ptr %20, align 8, !tbaa !5
  %595 = load i64, ptr %36, align 8, !tbaa !9
  %596 = getelementptr inbounds float, ptr %594, i64 %595
  %597 = load float, ptr %596, align 4, !tbaa !11
  %598 = fadd float %597, 1.000000e+00
  store float %598, ptr %38, align 4, !tbaa !11
  %599 = load float, ptr %48, align 4, !tbaa !11
  store float %599, ptr %27, align 4, !tbaa !11
  %600 = load float, ptr %43, align 4, !tbaa !11
  %601 = load float, ptr %38, align 4, !tbaa !11
  %602 = fdiv float %600, %601
  store float %602, ptr %28, align 4, !tbaa !11
  %603 = load float, ptr %27, align 4, !tbaa !11
  %604 = load float, ptr %28, align 4, !tbaa !11
  %605 = fcmp ole float %603, %604
  br i1 %605, label %606, label %608

606:                                              ; preds = %593
  %607 = load float, ptr %27, align 4, !tbaa !11
  br label %610

608:                                              ; preds = %593
  %609 = load float, ptr %28, align 4, !tbaa !11
  br label %610

610:                                              ; preds = %608, %606
  %611 = phi float [ %607, %606 ], [ %609, %608 ]
  %612 = fpext float %611 to double
  %613 = fptrunc double %612 to float
  store float %613, ptr %48, align 4, !tbaa !11
  %614 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %614, ptr %24, align 8, !tbaa !9
  %615 = load ptr, ptr %17, align 8, !tbaa !5
  %616 = load i64, ptr %24, align 8, !tbaa !9
  %617 = getelementptr inbounds %struct.complex, ptr %615, i64 %616
  %618 = getelementptr inbounds %struct.complex, ptr %617, i32 0, i32 0
  %619 = load float, ptr %618, align 4, !tbaa !16
  %620 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %619, ptr %620, align 4, !tbaa !16
  %621 = load ptr, ptr %17, align 8, !tbaa !5
  %622 = load i64, ptr %24, align 8, !tbaa !9
  %623 = getelementptr inbounds %struct.complex, ptr %621, i64 %622
  %624 = getelementptr inbounds %struct.complex, ptr %623, i32 0, i32 1
  %625 = load float, ptr %624, align 4, !tbaa !19
  %626 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %625, ptr %626, align 4, !tbaa !19
  %627 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %628 = load float, ptr %627, align 4, !tbaa !16
  store float %628, ptr %27, align 4, !tbaa !11
  %629 = load float, ptr %27, align 4, !tbaa !11
  %630 = fcmp oge float %629, 0.000000e+00
  br i1 %630, label %631, label %633

631:                                              ; preds = %610
  %632 = load float, ptr %27, align 4, !tbaa !11
  br label %636

633:                                              ; preds = %610
  %634 = load float, ptr %27, align 4, !tbaa !11
  %635 = fneg float %634
  br label %636

636:                                              ; preds = %633, %631
  %637 = phi float [ %632, %631 ], [ %635, %633 ]
  %638 = fpext float %637 to double
  %639 = call double @r_imag(ptr noundef %46)
  %640 = fptrunc double %639 to float
  store float %640, ptr %28, align 4, !tbaa !11
  %641 = load float, ptr %28, align 4, !tbaa !11
  %642 = fcmp oge float %641, 0.000000e+00
  br i1 %642, label %643, label %645

643:                                              ; preds = %636
  %644 = load float, ptr %28, align 4, !tbaa !11
  br label %648

645:                                              ; preds = %636
  %646 = load float, ptr %28, align 4, !tbaa !11
  %647 = fneg float %646
  br label %648

648:                                              ; preds = %645, %643
  %649 = phi float [ %644, %643 ], [ %647, %645 ]
  %650 = fpext float %649 to double
  %651 = fadd double %638, %650
  %652 = fptrunc double %651 to float
  store float %652, ptr %40, align 4, !tbaa !11
  %653 = load float, ptr %40, align 4, !tbaa !11
  %654 = load float, ptr %57, align 4, !tbaa !11
  %655 = fcmp oge float %653, %654
  br i1 %655, label %656, label %667

656:                                              ; preds = %648
  %657 = load float, ptr %38, align 4, !tbaa !11
  %658 = load float, ptr %40, align 4, !tbaa !11
  %659 = fcmp ogt float %657, %658
  br i1 %659, label %660, label %666

660:                                              ; preds = %656
  %661 = load float, ptr %40, align 4, !tbaa !11
  %662 = load float, ptr %38, align 4, !tbaa !11
  %663 = fdiv float %661, %662
  %664 = load float, ptr %43, align 4, !tbaa !11
  %665 = fmul float %664, %663
  store float %665, ptr %43, align 4, !tbaa !11
  br label %666

666:                                              ; preds = %660, %656
  br label %668

667:                                              ; preds = %648
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  br label %668

668:                                              ; preds = %667, %666
  %669 = load i64, ptr %42, align 8, !tbaa !9
  %670 = add nsw i64 %669, 1
  store i64 %670, ptr %42, align 8, !tbaa !9
  %671 = load i64, ptr %41, align 8, !tbaa !9
  %672 = load i64, ptr %42, align 8, !tbaa !9
  %673 = mul nsw i64 %671, %672
  %674 = load i64, ptr %37, align 8, !tbaa !9
  %675 = add nsw i64 %674, %673
  store i64 %675, ptr %37, align 8, !tbaa !9
  br label %676

676:                                              ; preds = %668
  %677 = load i64, ptr %23, align 8, !tbaa !9
  %678 = load i64, ptr %36, align 8, !tbaa !9
  %679 = add nsw i64 %678, %677
  store i64 %679, ptr %36, align 8, !tbaa !9
  br label %572, !llvm.loop !22

680:                                              ; preds = %585
  %681 = load float, ptr %48, align 4, !tbaa !11
  %682 = load float, ptr %43, align 4, !tbaa !11
  %683 = fcmp ole float %681, %682
  br i1 %683, label %684, label %686

684:                                              ; preds = %680
  %685 = load float, ptr %48, align 4, !tbaa !11
  br label %688

686:                                              ; preds = %680
  %687 = load float, ptr %43, align 4, !tbaa !11
  br label %688

688:                                              ; preds = %686, %684
  %689 = phi float [ %685, %684 ], [ %687, %686 ]
  %690 = fpext float %689 to double
  %691 = fptrunc double %690 to float
  store float %691, ptr %48, align 4, !tbaa !11
  br label %754

692:                                              ; preds = %547
  store float 1.000000e+00, ptr %27, align 4, !tbaa !11
  %693 = load float, ptr %43, align 4, !tbaa !11
  %694 = load float, ptr %57, align 4, !tbaa !11
  %695 = fcmp oge float %693, %694
  br i1 %695, label %696, label %698

696:                                              ; preds = %692
  %697 = load float, ptr %43, align 4, !tbaa !11
  br label %700

698:                                              ; preds = %692
  %699 = load float, ptr %57, align 4, !tbaa !11
  br label %700

700:                                              ; preds = %698, %696
  %701 = phi float [ %697, %696 ], [ %699, %698 ]
  %702 = fpext float %701 to double
  %703 = fdiv double 5.000000e-01, %702
  %704 = fptrunc double %703 to float
  store float %704, ptr %28, align 4, !tbaa !11
  %705 = load float, ptr %27, align 4, !tbaa !11
  %706 = load float, ptr %28, align 4, !tbaa !11
  %707 = fcmp ole float %705, %706
  br i1 %707, label %708, label %710

708:                                              ; preds = %700
  %709 = load float, ptr %27, align 4, !tbaa !11
  br label %712

710:                                              ; preds = %700
  %711 = load float, ptr %28, align 4, !tbaa !11
  br label %712

712:                                              ; preds = %710, %708
  %713 = phi float [ %709, %708 ], [ %711, %710 ]
  %714 = fpext float %713 to double
  %715 = fptrunc double %714 to float
  store float %715, ptr %48, align 4, !tbaa !11
  %716 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %716, ptr %23, align 8, !tbaa !9
  %717 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %717, ptr %22, align 8, !tbaa !9
  %718 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %718, ptr %36, align 8, !tbaa !9
  br label %719

719:                                              ; preds = %749, %712
  %720 = load i64, ptr %22, align 8, !tbaa !9
  %721 = icmp slt i64 %720, 0
  br i1 %721, label %722, label %727

722:                                              ; preds = %719
  %723 = load i64, ptr %36, align 8, !tbaa !9
  %724 = load i64, ptr %23, align 8, !tbaa !9
  %725 = icmp sge i64 %723, %724
  %726 = zext i1 %725 to i32
  br label %732

727:                                              ; preds = %719
  %728 = load i64, ptr %36, align 8, !tbaa !9
  %729 = load i64, ptr %23, align 8, !tbaa !9
  %730 = icmp sle i64 %728, %729
  %731 = zext i1 %730 to i32
  br label %732

732:                                              ; preds = %727, %722
  %733 = phi i32 [ %726, %722 ], [ %731, %727 ]
  %734 = icmp ne i32 %733, 0
  br i1 %734, label %735, label %753

735:                                              ; preds = %732
  %736 = load float, ptr %48, align 4, !tbaa !11
  %737 = load float, ptr %57, align 4, !tbaa !11
  %738 = fcmp ole float %736, %737
  br i1 %738, label %739, label %740

739:                                              ; preds = %735
  br label %755

740:                                              ; preds = %735
  %741 = load ptr, ptr %20, align 8, !tbaa !5
  %742 = load i64, ptr %36, align 8, !tbaa !9
  %743 = getelementptr inbounds float, ptr %741, i64 %742
  %744 = load float, ptr %743, align 4, !tbaa !11
  %745 = fadd float %744, 1.000000e+00
  store float %745, ptr %38, align 4, !tbaa !11
  %746 = load float, ptr %38, align 4, !tbaa !11
  %747 = load float, ptr %48, align 4, !tbaa !11
  %748 = fdiv float %747, %746
  store float %748, ptr %48, align 4, !tbaa !11
  br label %749

749:                                              ; preds = %740
  %750 = load i64, ptr %22, align 8, !tbaa !9
  %751 = load i64, ptr %36, align 8, !tbaa !9
  %752 = add nsw i64 %751, %750
  store i64 %752, ptr %36, align 8, !tbaa !9
  br label %719, !llvm.loop !23

753:                                              ; preds = %732
  br label %754

754:                                              ; preds = %753, %688
  br label %755

755:                                              ; preds = %754, %739, %592, %546
  br label %756

756:                                              ; preds = %755, %533
  %757 = load float, ptr %48, align 4, !tbaa !11
  %758 = load float, ptr %49, align 4, !tbaa !11
  %759 = fmul float %757, %758
  %760 = load float, ptr %57, align 4, !tbaa !11
  %761 = fcmp ogt float %759, %760
  br i1 %761, label %762, label %772

762:                                              ; preds = %756
  %763 = load ptr, ptr %12, align 8, !tbaa !5
  %764 = load ptr, ptr %13, align 8, !tbaa !5
  %765 = load ptr, ptr %14, align 8, !tbaa !5
  %766 = load ptr, ptr %16, align 8, !tbaa !5
  %767 = load ptr, ptr %17, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.complex, ptr %767, i64 1
  %769 = load ptr, ptr %18, align 8, !tbaa !5
  %770 = getelementptr inbounds %struct.complex, ptr %769, i64 1
  %771 = call i32 @f2c_ctpsv(ptr noundef %763, ptr noundef %764, ptr noundef %765, ptr noundef %766, ptr noundef %768, ptr noundef %770, ptr noundef @c__1)
  br label %2953

772:                                              ; preds = %756
  %773 = load float, ptr %47, align 4, !tbaa !11
  %774 = load float, ptr %54, align 4, !tbaa !11
  %775 = fmul float %774, 5.000000e-01
  %776 = fcmp ogt float %773, %775
  br i1 %776, label %777, label %789

777:                                              ; preds = %772
  %778 = load float, ptr %54, align 4, !tbaa !11
  %779 = fmul float %778, 5.000000e-01
  %780 = load float, ptr %47, align 4, !tbaa !11
  %781 = fdiv float %779, %780
  %782 = load ptr, ptr %19, align 8, !tbaa !5
  store float %781, ptr %782, align 4, !tbaa !11
  %783 = load ptr, ptr %16, align 8, !tbaa !5
  %784 = load ptr, ptr %19, align 8, !tbaa !5
  %785 = load ptr, ptr %18, align 8, !tbaa !5
  %786 = getelementptr inbounds %struct.complex, ptr %785, i64 1
  %787 = call i32 @f2c_csscal(ptr noundef %783, ptr noundef %784, ptr noundef %786, ptr noundef @c__1)
  %788 = load float, ptr %54, align 4, !tbaa !11
  store float %788, ptr %47, align 4, !tbaa !11
  br label %792

789:                                              ; preds = %772
  %790 = load float, ptr %47, align 4, !tbaa !11
  %791 = fmul float %790, 2.000000e+00
  store float %791, ptr %47, align 4, !tbaa !11
  br label %792

792:                                              ; preds = %789, %777
  %793 = load i64, ptr %55, align 8, !tbaa !9
  %794 = icmp ne i64 %793, 0
  br i1 %794, label %795, label %1349

795:                                              ; preds = %792
  %796 = load i64, ptr %56, align 8, !tbaa !9
  %797 = load i64, ptr %56, align 8, !tbaa !9
  %798 = add nsw i64 %797, 1
  %799 = mul nsw i64 %796, %798
  %800 = sdiv i64 %799, 2
  store i64 %800, ptr %37, align 8, !tbaa !9
  %801 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %801, ptr %22, align 8, !tbaa !9
  %802 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %802, ptr %23, align 8, !tbaa !9
  %803 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %803, ptr %36, align 8, !tbaa !9
  br label %804

804:                                              ; preds = %1344, %795
  %805 = load i64, ptr %23, align 8, !tbaa !9
  %806 = icmp slt i64 %805, 0
  br i1 %806, label %807, label %812

807:                                              ; preds = %804
  %808 = load i64, ptr %36, align 8, !tbaa !9
  %809 = load i64, ptr %22, align 8, !tbaa !9
  %810 = icmp sge i64 %808, %809
  %811 = zext i1 %810 to i32
  br label %817

812:                                              ; preds = %804
  %813 = load i64, ptr %36, align 8, !tbaa !9
  %814 = load i64, ptr %22, align 8, !tbaa !9
  %815 = icmp sle i64 %813, %814
  %816 = zext i1 %815 to i32
  br label %817

817:                                              ; preds = %812, %807
  %818 = phi i32 [ %811, %807 ], [ %816, %812 ]
  %819 = icmp ne i32 %818, 0
  br i1 %819, label %820, label %1348

820:                                              ; preds = %817
  %821 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %821, ptr %24, align 8, !tbaa !9
  %822 = load ptr, ptr %18, align 8, !tbaa !5
  %823 = load i64, ptr %24, align 8, !tbaa !9
  %824 = getelementptr inbounds %struct.complex, ptr %822, i64 %823
  %825 = getelementptr inbounds %struct.complex, ptr %824, i32 0, i32 0
  %826 = load float, ptr %825, align 4, !tbaa !16
  store float %826, ptr %27, align 4, !tbaa !11
  %827 = load float, ptr %27, align 4, !tbaa !11
  %828 = fcmp oge float %827, 0.000000e+00
  br i1 %828, label %829, label %831

829:                                              ; preds = %820
  %830 = load float, ptr %27, align 4, !tbaa !11
  br label %834

831:                                              ; preds = %820
  %832 = load float, ptr %27, align 4, !tbaa !11
  %833 = fneg float %832
  br label %834

834:                                              ; preds = %831, %829
  %835 = phi float [ %830, %829 ], [ %833, %831 ]
  %836 = fpext float %835 to double
  %837 = load ptr, ptr %18, align 8, !tbaa !5
  %838 = load i64, ptr %36, align 8, !tbaa !9
  %839 = getelementptr inbounds %struct.complex, ptr %837, i64 %838
  %840 = call double @r_imag(ptr noundef %839)
  %841 = fptrunc double %840 to float
  store float %841, ptr %28, align 4, !tbaa !11
  %842 = load float, ptr %28, align 4, !tbaa !11
  %843 = fcmp oge float %842, 0.000000e+00
  br i1 %843, label %844, label %846

844:                                              ; preds = %834
  %845 = load float, ptr %28, align 4, !tbaa !11
  br label %849

846:                                              ; preds = %834
  %847 = load float, ptr %28, align 4, !tbaa !11
  %848 = fneg float %847
  br label %849

849:                                              ; preds = %846, %844
  %850 = phi float [ %845, %844 ], [ %848, %846 ]
  %851 = fpext float %850 to double
  %852 = fadd double %836, %851
  %853 = fptrunc double %852 to float
  store float %853, ptr %38, align 4, !tbaa !11
  %854 = load i64, ptr %58, align 8, !tbaa !9
  %855 = icmp ne i64 %854, 0
  br i1 %855, label %856, label %880

856:                                              ; preds = %849
  %857 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %857, ptr %24, align 8, !tbaa !9
  %858 = load float, ptr %49, align 4, !tbaa !11
  %859 = load ptr, ptr %17, align 8, !tbaa !5
  %860 = load i64, ptr %24, align 8, !tbaa !9
  %861 = getelementptr inbounds %struct.complex, ptr %859, i64 %860
  %862 = getelementptr inbounds %struct.complex, ptr %861, i32 0, i32 0
  %863 = load float, ptr %862, align 4, !tbaa !16
  %864 = fmul float %858, %863
  %865 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %864, ptr %865, align 4, !tbaa !16
  %866 = load float, ptr %49, align 4, !tbaa !11
  %867 = load ptr, ptr %17, align 8, !tbaa !5
  %868 = load i64, ptr %24, align 8, !tbaa !9
  %869 = getelementptr inbounds %struct.complex, ptr %867, i64 %868
  %870 = getelementptr inbounds %struct.complex, ptr %869, i32 0, i32 1
  %871 = load float, ptr %870, align 4, !tbaa !19
  %872 = fmul float %866, %871
  %873 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %872, ptr %873, align 4, !tbaa !19
  %874 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %875 = load float, ptr %874, align 4, !tbaa !16
  %876 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %875, ptr %876, align 4, !tbaa !16
  %877 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %878 = load float, ptr %877, align 4, !tbaa !19
  %879 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %878, ptr %879, align 4, !tbaa !19
  br label %888

880:                                              ; preds = %849
  %881 = load float, ptr %49, align 4, !tbaa !11
  %882 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %881, ptr %882, align 4, !tbaa !16
  %883 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %883, align 4, !tbaa !19
  %884 = load float, ptr %49, align 4, !tbaa !11
  %885 = fcmp oeq float %884, 1.000000e+00
  br i1 %885, label %886, label %887

886:                                              ; preds = %880
  br label %1114

887:                                              ; preds = %880
  br label %888

888:                                              ; preds = %887, %856
  %889 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %890 = load float, ptr %889, align 4, !tbaa !16
  store float %890, ptr %27, align 4, !tbaa !11
  %891 = load float, ptr %27, align 4, !tbaa !11
  %892 = fcmp oge float %891, 0.000000e+00
  br i1 %892, label %893, label %895

893:                                              ; preds = %888
  %894 = load float, ptr %27, align 4, !tbaa !11
  br label %898

895:                                              ; preds = %888
  %896 = load float, ptr %27, align 4, !tbaa !11
  %897 = fneg float %896
  br label %898

898:                                              ; preds = %895, %893
  %899 = phi float [ %894, %893 ], [ %897, %895 ]
  %900 = fpext float %899 to double
  %901 = call double @r_imag(ptr noundef %46)
  %902 = fptrunc double %901 to float
  store float %902, ptr %28, align 4, !tbaa !11
  %903 = load float, ptr %28, align 4, !tbaa !11
  %904 = fcmp oge float %903, 0.000000e+00
  br i1 %904, label %905, label %907

905:                                              ; preds = %898
  %906 = load float, ptr %28, align 4, !tbaa !11
  br label %910

907:                                              ; preds = %898
  %908 = load float, ptr %28, align 4, !tbaa !11
  %909 = fneg float %908
  br label %910

910:                                              ; preds = %907, %905
  %911 = phi float [ %906, %905 ], [ %909, %907 ]
  %912 = fpext float %911 to double
  %913 = fadd double %900, %912
  %914 = fptrunc double %913 to float
  store float %914, ptr %40, align 4, !tbaa !11
  %915 = load float, ptr %40, align 4, !tbaa !11
  %916 = load float, ptr %57, align 4, !tbaa !11
  %917 = fcmp ogt float %915, %916
  br i1 %917, label %918, label %992

918:                                              ; preds = %910
  %919 = load float, ptr %40, align 4, !tbaa !11
  %920 = fcmp olt float %919, 1.000000e+00
  br i1 %920, label %921, label %942

921:                                              ; preds = %918
  %922 = load float, ptr %38, align 4, !tbaa !11
  %923 = load float, ptr %40, align 4, !tbaa !11
  %924 = load float, ptr %54, align 4, !tbaa !11
  %925 = fmul float %923, %924
  %926 = fcmp ogt float %922, %925
  br i1 %926, label %927, label %941

927:                                              ; preds = %921
  %928 = load float, ptr %38, align 4, !tbaa !11
  %929 = fdiv float 1.000000e+00, %928
  store float %929, ptr %39, align 4, !tbaa !11
  %930 = load ptr, ptr %16, align 8, !tbaa !5
  %931 = load ptr, ptr %18, align 8, !tbaa !5
  %932 = getelementptr inbounds %struct.complex, ptr %931, i64 1
  %933 = call i32 @f2c_csscal(ptr noundef %930, ptr noundef %39, ptr noundef %932, ptr noundef @c__1)
  %934 = load float, ptr %39, align 4, !tbaa !11
  %935 = load ptr, ptr %19, align 8, !tbaa !5
  %936 = load float, ptr %935, align 4, !tbaa !11
  %937 = fmul float %936, %934
  store float %937, ptr %935, align 4, !tbaa !11
  %938 = load float, ptr %39, align 4, !tbaa !11
  %939 = load float, ptr %47, align 4, !tbaa !11
  %940 = fmul float %939, %938
  store float %940, ptr %47, align 4, !tbaa !11
  br label %941

941:                                              ; preds = %927, %921
  br label %942

942:                                              ; preds = %941, %918
  %943 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %943, ptr %24, align 8, !tbaa !9
  %944 = load ptr, ptr %18, align 8, !tbaa !5
  %945 = load i64, ptr %36, align 8, !tbaa !9
  %946 = getelementptr inbounds %struct.complex, ptr %944, i64 %945
  call void @cladiv_(ptr noundef %31, ptr noundef %946, ptr noundef %46)
  %947 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %948 = load float, ptr %947, align 4, !tbaa !16
  %949 = load ptr, ptr %18, align 8, !tbaa !5
  %950 = load i64, ptr %24, align 8, !tbaa !9
  %951 = getelementptr inbounds %struct.complex, ptr %949, i64 %950
  %952 = getelementptr inbounds %struct.complex, ptr %951, i32 0, i32 0
  store float %948, ptr %952, align 4, !tbaa !16
  %953 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %954 = load float, ptr %953, align 4, !tbaa !19
  %955 = load ptr, ptr %18, align 8, !tbaa !5
  %956 = load i64, ptr %24, align 8, !tbaa !9
  %957 = getelementptr inbounds %struct.complex, ptr %955, i64 %956
  %958 = getelementptr inbounds %struct.complex, ptr %957, i32 0, i32 1
  store float %954, ptr %958, align 4, !tbaa !19
  %959 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %959, ptr %24, align 8, !tbaa !9
  %960 = load ptr, ptr %18, align 8, !tbaa !5
  %961 = load i64, ptr %24, align 8, !tbaa !9
  %962 = getelementptr inbounds %struct.complex, ptr %960, i64 %961
  %963 = getelementptr inbounds %struct.complex, ptr %962, i32 0, i32 0
  %964 = load float, ptr %963, align 4, !tbaa !16
  store float %964, ptr %27, align 4, !tbaa !11
  %965 = load float, ptr %27, align 4, !tbaa !11
  %966 = fcmp oge float %965, 0.000000e+00
  br i1 %966, label %967, label %969

967:                                              ; preds = %942
  %968 = load float, ptr %27, align 4, !tbaa !11
  br label %972

969:                                              ; preds = %942
  %970 = load float, ptr %27, align 4, !tbaa !11
  %971 = fneg float %970
  br label %972

972:                                              ; preds = %969, %967
  %973 = phi float [ %968, %967 ], [ %971, %969 ]
  %974 = fpext float %973 to double
  %975 = load ptr, ptr %18, align 8, !tbaa !5
  %976 = load i64, ptr %36, align 8, !tbaa !9
  %977 = getelementptr inbounds %struct.complex, ptr %975, i64 %976
  %978 = call double @r_imag(ptr noundef %977)
  %979 = fptrunc double %978 to float
  store float %979, ptr %28, align 4, !tbaa !11
  %980 = load float, ptr %28, align 4, !tbaa !11
  %981 = fcmp oge float %980, 0.000000e+00
  br i1 %981, label %982, label %984

982:                                              ; preds = %972
  %983 = load float, ptr %28, align 4, !tbaa !11
  br label %987

984:                                              ; preds = %972
  %985 = load float, ptr %28, align 4, !tbaa !11
  %986 = fneg float %985
  br label %987

987:                                              ; preds = %984, %982
  %988 = phi float [ %983, %982 ], [ %986, %984 ]
  %989 = fpext float %988 to double
  %990 = fadd double %974, %989
  %991 = fptrunc double %990 to float
  store float %991, ptr %38, align 4, !tbaa !11
  br label %1113

992:                                              ; preds = %910
  %993 = load float, ptr %40, align 4, !tbaa !11
  %994 = fcmp ogt float %993, 0.000000e+00
  br i1 %994, label %995, label %1081

995:                                              ; preds = %992
  %996 = load float, ptr %38, align 4, !tbaa !11
  %997 = load float, ptr %40, align 4, !tbaa !11
  %998 = load float, ptr %54, align 4, !tbaa !11
  %999 = fmul float %997, %998
  %1000 = fcmp ogt float %996, %999
  br i1 %1000, label %1001, label %1031

1001:                                             ; preds = %995
  %1002 = load float, ptr %40, align 4, !tbaa !11
  %1003 = load float, ptr %54, align 4, !tbaa !11
  %1004 = fmul float %1002, %1003
  %1005 = load float, ptr %38, align 4, !tbaa !11
  %1006 = fdiv float %1004, %1005
  store float %1006, ptr %39, align 4, !tbaa !11
  %1007 = load ptr, ptr %20, align 8, !tbaa !5
  %1008 = load i64, ptr %36, align 8, !tbaa !9
  %1009 = getelementptr inbounds float, ptr %1007, i64 %1008
  %1010 = load float, ptr %1009, align 4, !tbaa !11
  %1011 = fcmp ogt float %1010, 1.000000e+00
  br i1 %1011, label %1012, label %1019

1012:                                             ; preds = %1001
  %1013 = load ptr, ptr %20, align 8, !tbaa !5
  %1014 = load i64, ptr %36, align 8, !tbaa !9
  %1015 = getelementptr inbounds float, ptr %1013, i64 %1014
  %1016 = load float, ptr %1015, align 4, !tbaa !11
  %1017 = load float, ptr %39, align 4, !tbaa !11
  %1018 = fdiv float %1017, %1016
  store float %1018, ptr %39, align 4, !tbaa !11
  br label %1019

1019:                                             ; preds = %1012, %1001
  %1020 = load ptr, ptr %16, align 8, !tbaa !5
  %1021 = load ptr, ptr %18, align 8, !tbaa !5
  %1022 = getelementptr inbounds %struct.complex, ptr %1021, i64 1
  %1023 = call i32 @f2c_csscal(ptr noundef %1020, ptr noundef %39, ptr noundef %1022, ptr noundef @c__1)
  %1024 = load float, ptr %39, align 4, !tbaa !11
  %1025 = load ptr, ptr %19, align 8, !tbaa !5
  %1026 = load float, ptr %1025, align 4, !tbaa !11
  %1027 = fmul float %1026, %1024
  store float %1027, ptr %1025, align 4, !tbaa !11
  %1028 = load float, ptr %39, align 4, !tbaa !11
  %1029 = load float, ptr %47, align 4, !tbaa !11
  %1030 = fmul float %1029, %1028
  store float %1030, ptr %47, align 4, !tbaa !11
  br label %1031

1031:                                             ; preds = %1019, %995
  %1032 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1032, ptr %24, align 8, !tbaa !9
  %1033 = load ptr, ptr %18, align 8, !tbaa !5
  %1034 = load i64, ptr %36, align 8, !tbaa !9
  %1035 = getelementptr inbounds %struct.complex, ptr %1033, i64 %1034
  call void @cladiv_(ptr noundef %31, ptr noundef %1035, ptr noundef %46)
  %1036 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1037 = load float, ptr %1036, align 4, !tbaa !16
  %1038 = load ptr, ptr %18, align 8, !tbaa !5
  %1039 = load i64, ptr %24, align 8, !tbaa !9
  %1040 = getelementptr inbounds %struct.complex, ptr %1038, i64 %1039
  %1041 = getelementptr inbounds %struct.complex, ptr %1040, i32 0, i32 0
  store float %1037, ptr %1041, align 4, !tbaa !16
  %1042 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1043 = load float, ptr %1042, align 4, !tbaa !19
  %1044 = load ptr, ptr %18, align 8, !tbaa !5
  %1045 = load i64, ptr %24, align 8, !tbaa !9
  %1046 = getelementptr inbounds %struct.complex, ptr %1044, i64 %1045
  %1047 = getelementptr inbounds %struct.complex, ptr %1046, i32 0, i32 1
  store float %1043, ptr %1047, align 4, !tbaa !19
  %1048 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1048, ptr %24, align 8, !tbaa !9
  %1049 = load ptr, ptr %18, align 8, !tbaa !5
  %1050 = load i64, ptr %24, align 8, !tbaa !9
  %1051 = getelementptr inbounds %struct.complex, ptr %1049, i64 %1050
  %1052 = getelementptr inbounds %struct.complex, ptr %1051, i32 0, i32 0
  %1053 = load float, ptr %1052, align 4, !tbaa !16
  store float %1053, ptr %27, align 4, !tbaa !11
  %1054 = load float, ptr %27, align 4, !tbaa !11
  %1055 = fcmp oge float %1054, 0.000000e+00
  br i1 %1055, label %1056, label %1058

1056:                                             ; preds = %1031
  %1057 = load float, ptr %27, align 4, !tbaa !11
  br label %1061

1058:                                             ; preds = %1031
  %1059 = load float, ptr %27, align 4, !tbaa !11
  %1060 = fneg float %1059
  br label %1061

1061:                                             ; preds = %1058, %1056
  %1062 = phi float [ %1057, %1056 ], [ %1060, %1058 ]
  %1063 = fpext float %1062 to double
  %1064 = load ptr, ptr %18, align 8, !tbaa !5
  %1065 = load i64, ptr %36, align 8, !tbaa !9
  %1066 = getelementptr inbounds %struct.complex, ptr %1064, i64 %1065
  %1067 = call double @r_imag(ptr noundef %1066)
  %1068 = fptrunc double %1067 to float
  store float %1068, ptr %28, align 4, !tbaa !11
  %1069 = load float, ptr %28, align 4, !tbaa !11
  %1070 = fcmp oge float %1069, 0.000000e+00
  br i1 %1070, label %1071, label %1073

1071:                                             ; preds = %1061
  %1072 = load float, ptr %28, align 4, !tbaa !11
  br label %1076

1073:                                             ; preds = %1061
  %1074 = load float, ptr %28, align 4, !tbaa !11
  %1075 = fneg float %1074
  br label %1076

1076:                                             ; preds = %1073, %1071
  %1077 = phi float [ %1072, %1071 ], [ %1075, %1073 ]
  %1078 = fpext float %1077 to double
  %1079 = fadd double %1063, %1078
  %1080 = fptrunc double %1079 to float
  store float %1080, ptr %38, align 4, !tbaa !11
  br label %1112

1081:                                             ; preds = %992
  %1082 = load ptr, ptr %16, align 8, !tbaa !5
  %1083 = load i64, ptr %1082, align 8, !tbaa !9
  store i64 %1083, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  br label %1084

1084:                                             ; preds = %1098, %1081
  %1085 = load i64, ptr %35, align 8, !tbaa !9
  %1086 = load i64, ptr %24, align 8, !tbaa !9
  %1087 = icmp sle i64 %1085, %1086
  br i1 %1087, label %1088, label %1101

1088:                                             ; preds = %1084
  %1089 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %1089, ptr %25, align 8, !tbaa !9
  %1090 = load ptr, ptr %18, align 8, !tbaa !5
  %1091 = load i64, ptr %25, align 8, !tbaa !9
  %1092 = getelementptr inbounds %struct.complex, ptr %1090, i64 %1091
  %1093 = getelementptr inbounds %struct.complex, ptr %1092, i32 0, i32 0
  store float 0.000000e+00, ptr %1093, align 4, !tbaa !16
  %1094 = load ptr, ptr %18, align 8, !tbaa !5
  %1095 = load i64, ptr %25, align 8, !tbaa !9
  %1096 = getelementptr inbounds %struct.complex, ptr %1094, i64 %1095
  %1097 = getelementptr inbounds %struct.complex, ptr %1096, i32 0, i32 1
  store float 0.000000e+00, ptr %1097, align 4, !tbaa !19
  br label %1098

1098:                                             ; preds = %1088
  %1099 = load i64, ptr %35, align 8, !tbaa !9
  %1100 = add nsw i64 %1099, 1
  store i64 %1100, ptr %35, align 8, !tbaa !9
  br label %1084, !llvm.loop !24

1101:                                             ; preds = %1084
  %1102 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1102, ptr %24, align 8, !tbaa !9
  %1103 = load ptr, ptr %18, align 8, !tbaa !5
  %1104 = load i64, ptr %24, align 8, !tbaa !9
  %1105 = getelementptr inbounds %struct.complex, ptr %1103, i64 %1104
  %1106 = getelementptr inbounds %struct.complex, ptr %1105, i32 0, i32 0
  store float 1.000000e+00, ptr %1106, align 4, !tbaa !16
  %1107 = load ptr, ptr %18, align 8, !tbaa !5
  %1108 = load i64, ptr %24, align 8, !tbaa !9
  %1109 = getelementptr inbounds %struct.complex, ptr %1107, i64 %1108
  %1110 = getelementptr inbounds %struct.complex, ptr %1109, i32 0, i32 1
  store float 0.000000e+00, ptr %1110, align 4, !tbaa !19
  store float 1.000000e+00, ptr %38, align 4, !tbaa !11
  %1111 = load ptr, ptr %19, align 8, !tbaa !5
  store float 0.000000e+00, ptr %1111, align 4, !tbaa !11
  store float 0.000000e+00, ptr %47, align 4, !tbaa !11
  br label %1112

1112:                                             ; preds = %1101, %1076
  br label %1113

1113:                                             ; preds = %1112, %987
  br label %1114

1114:                                             ; preds = %1113, %886
  %1115 = load float, ptr %38, align 4, !tbaa !11
  %1116 = fcmp ogt float %1115, 1.000000e+00
  br i1 %1116, label %1117, label %1142

1117:                                             ; preds = %1114
  %1118 = load float, ptr %38, align 4, !tbaa !11
  %1119 = fdiv float 1.000000e+00, %1118
  store float %1119, ptr %39, align 4, !tbaa !11
  %1120 = load ptr, ptr %20, align 8, !tbaa !5
  %1121 = load i64, ptr %36, align 8, !tbaa !9
  %1122 = getelementptr inbounds float, ptr %1120, i64 %1121
  %1123 = load float, ptr %1122, align 4, !tbaa !11
  %1124 = load float, ptr %54, align 4, !tbaa !11
  %1125 = load float, ptr %47, align 4, !tbaa !11
  %1126 = fsub float %1124, %1125
  %1127 = load float, ptr %39, align 4, !tbaa !11
  %1128 = fmul float %1126, %1127
  %1129 = fcmp ogt float %1123, %1128
  br i1 %1129, label %1130, label %1141

1130:                                             ; preds = %1117
  %1131 = load float, ptr %39, align 4, !tbaa !11
  %1132 = fmul float %1131, 5.000000e-01
  store float %1132, ptr %39, align 4, !tbaa !11
  %1133 = load ptr, ptr %16, align 8, !tbaa !5
  %1134 = load ptr, ptr %18, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.complex, ptr %1134, i64 1
  %1136 = call i32 @f2c_csscal(ptr noundef %1133, ptr noundef %39, ptr noundef %1135, ptr noundef @c__1)
  %1137 = load float, ptr %39, align 4, !tbaa !11
  %1138 = load ptr, ptr %19, align 8, !tbaa !5
  %1139 = load float, ptr %1138, align 4, !tbaa !11
  %1140 = fmul float %1139, %1137
  store float %1140, ptr %1138, align 4, !tbaa !11
  br label %1141

1141:                                             ; preds = %1130, %1117
  br label %1162

1142:                                             ; preds = %1114
  %1143 = load float, ptr %38, align 4, !tbaa !11
  %1144 = load ptr, ptr %20, align 8, !tbaa !5
  %1145 = load i64, ptr %36, align 8, !tbaa !9
  %1146 = getelementptr inbounds float, ptr %1144, i64 %1145
  %1147 = load float, ptr %1146, align 4, !tbaa !11
  %1148 = fmul float %1143, %1147
  %1149 = load float, ptr %54, align 4, !tbaa !11
  %1150 = load float, ptr %47, align 4, !tbaa !11
  %1151 = fsub float %1149, %1150
  %1152 = fcmp ogt float %1148, %1151
  br i1 %1152, label %1153, label %1161

1153:                                             ; preds = %1142
  %1154 = load ptr, ptr %16, align 8, !tbaa !5
  %1155 = load ptr, ptr %18, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.complex, ptr %1155, i64 1
  %1157 = call i32 @f2c_csscal(ptr noundef %1154, ptr noundef @c_b36, ptr noundef %1156, ptr noundef @c__1)
  %1158 = load ptr, ptr %19, align 8, !tbaa !5
  %1159 = load float, ptr %1158, align 4, !tbaa !11
  %1160 = fmul float %1159, 5.000000e-01
  store float %1160, ptr %1158, align 4, !tbaa !11
  br label %1161

1161:                                             ; preds = %1153, %1142
  br label %1162

1162:                                             ; preds = %1161, %1141
  %1163 = load i64, ptr %53, align 8, !tbaa !9
  %1164 = icmp ne i64 %1163, 0
  br i1 %1164, label %1165, label %1247

1165:                                             ; preds = %1162
  %1166 = load i64, ptr %36, align 8, !tbaa !9
  %1167 = icmp sgt i64 %1166, 1
  br i1 %1167, label %1168, label %1243

1168:                                             ; preds = %1165
  %1169 = load i64, ptr %36, align 8, !tbaa !9
  %1170 = sub nsw i64 %1169, 1
  store i64 %1170, ptr %24, align 8, !tbaa !9
  %1171 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1171, ptr %25, align 8, !tbaa !9
  %1172 = load ptr, ptr %18, align 8, !tbaa !5
  %1173 = load i64, ptr %25, align 8, !tbaa !9
  %1174 = getelementptr inbounds %struct.complex, ptr %1172, i64 %1173
  %1175 = getelementptr inbounds %struct.complex, ptr %1174, i32 0, i32 0
  %1176 = load float, ptr %1175, align 4, !tbaa !16
  %1177 = fneg float %1176
  %1178 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %1177, ptr %1178, align 4, !tbaa !16
  %1179 = load ptr, ptr %18, align 8, !tbaa !5
  %1180 = load i64, ptr %25, align 8, !tbaa !9
  %1181 = getelementptr inbounds %struct.complex, ptr %1179, i64 %1180
  %1182 = getelementptr inbounds %struct.complex, ptr %1181, i32 0, i32 1
  %1183 = load float, ptr %1182, align 4, !tbaa !19
  %1184 = fneg float %1183
  %1185 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %1184, ptr %1185, align 4, !tbaa !19
  %1186 = load float, ptr %49, align 4, !tbaa !11
  %1187 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1188 = load float, ptr %1187, align 4, !tbaa !16
  %1189 = fmul float %1186, %1188
  %1190 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1189, ptr %1190, align 4, !tbaa !16
  %1191 = load float, ptr %49, align 4, !tbaa !11
  %1192 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %1193 = load float, ptr %1192, align 4, !tbaa !19
  %1194 = fmul float %1191, %1193
  %1195 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %1194, ptr %1195, align 4, !tbaa !19
  %1196 = load ptr, ptr %17, align 8, !tbaa !5
  %1197 = load i64, ptr %37, align 8, !tbaa !9
  %1198 = load i64, ptr %36, align 8, !tbaa !9
  %1199 = sub nsw i64 %1197, %1198
  %1200 = add nsw i64 %1199, 1
  %1201 = getelementptr inbounds %struct.complex, ptr %1196, i64 %1200
  %1202 = load ptr, ptr %18, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.complex, ptr %1202, i64 1
  %1204 = call i32 @f2c_caxpy(ptr noundef %24, ptr noundef %31, ptr noundef %1201, ptr noundef @c__1, ptr noundef %1203, ptr noundef @c__1)
  %1205 = load i64, ptr %36, align 8, !tbaa !9
  %1206 = sub nsw i64 %1205, 1
  store i64 %1206, ptr %24, align 8, !tbaa !9
  %1207 = load ptr, ptr %18, align 8, !tbaa !5
  %1208 = getelementptr inbounds %struct.complex, ptr %1207, i64 1
  %1209 = call i64 @f2c_icamax(ptr noundef %24, ptr noundef %1208, ptr noundef @c__1)
  store i64 %1209, ptr %35, align 8, !tbaa !9
  %1210 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %1210, ptr %24, align 8, !tbaa !9
  %1211 = load ptr, ptr %18, align 8, !tbaa !5
  %1212 = load i64, ptr %24, align 8, !tbaa !9
  %1213 = getelementptr inbounds %struct.complex, ptr %1211, i64 %1212
  %1214 = getelementptr inbounds %struct.complex, ptr %1213, i32 0, i32 0
  %1215 = load float, ptr %1214, align 4, !tbaa !16
  store float %1215, ptr %27, align 4, !tbaa !11
  %1216 = load float, ptr %27, align 4, !tbaa !11
  %1217 = fcmp oge float %1216, 0.000000e+00
  br i1 %1217, label %1218, label %1220

1218:                                             ; preds = %1168
  %1219 = load float, ptr %27, align 4, !tbaa !11
  br label %1223

1220:                                             ; preds = %1168
  %1221 = load float, ptr %27, align 4, !tbaa !11
  %1222 = fneg float %1221
  br label %1223

1223:                                             ; preds = %1220, %1218
  %1224 = phi float [ %1219, %1218 ], [ %1222, %1220 ]
  %1225 = fpext float %1224 to double
  %1226 = load ptr, ptr %18, align 8, !tbaa !5
  %1227 = load i64, ptr %35, align 8, !tbaa !9
  %1228 = getelementptr inbounds %struct.complex, ptr %1226, i64 %1227
  %1229 = call double @r_imag(ptr noundef %1228)
  %1230 = fptrunc double %1229 to float
  store float %1230, ptr %28, align 4, !tbaa !11
  %1231 = load float, ptr %28, align 4, !tbaa !11
  %1232 = fcmp oge float %1231, 0.000000e+00
  br i1 %1232, label %1233, label %1235

1233:                                             ; preds = %1223
  %1234 = load float, ptr %28, align 4, !tbaa !11
  br label %1238

1235:                                             ; preds = %1223
  %1236 = load float, ptr %28, align 4, !tbaa !11
  %1237 = fneg float %1236
  br label %1238

1238:                                             ; preds = %1235, %1233
  %1239 = phi float [ %1234, %1233 ], [ %1237, %1235 ]
  %1240 = fpext float %1239 to double
  %1241 = fadd double %1225, %1240
  %1242 = fptrunc double %1241 to float
  store float %1242, ptr %47, align 4, !tbaa !11
  br label %1243

1243:                                             ; preds = %1238, %1165
  %1244 = load i64, ptr %36, align 8, !tbaa !9
  %1245 = load i64, ptr %37, align 8, !tbaa !9
  %1246 = sub nsw i64 %1245, %1244
  store i64 %1246, ptr %37, align 8, !tbaa !9
  br label %1343

1247:                                             ; preds = %1162
  %1248 = load i64, ptr %36, align 8, !tbaa !9
  %1249 = load ptr, ptr %16, align 8, !tbaa !5
  %1250 = load i64, ptr %1249, align 8, !tbaa !9
  %1251 = icmp slt i64 %1248, %1250
  br i1 %1251, label %1252, label %1335

1252:                                             ; preds = %1247
  %1253 = load ptr, ptr %16, align 8, !tbaa !5
  %1254 = load i64, ptr %1253, align 8, !tbaa !9
  %1255 = load i64, ptr %36, align 8, !tbaa !9
  %1256 = sub nsw i64 %1254, %1255
  store i64 %1256, ptr %24, align 8, !tbaa !9
  %1257 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1257, ptr %25, align 8, !tbaa !9
  %1258 = load ptr, ptr %18, align 8, !tbaa !5
  %1259 = load i64, ptr %25, align 8, !tbaa !9
  %1260 = getelementptr inbounds %struct.complex, ptr %1258, i64 %1259
  %1261 = getelementptr inbounds %struct.complex, ptr %1260, i32 0, i32 0
  %1262 = load float, ptr %1261, align 4, !tbaa !16
  %1263 = fneg float %1262
  %1264 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %1263, ptr %1264, align 4, !tbaa !16
  %1265 = load ptr, ptr %18, align 8, !tbaa !5
  %1266 = load i64, ptr %25, align 8, !tbaa !9
  %1267 = getelementptr inbounds %struct.complex, ptr %1265, i64 %1266
  %1268 = getelementptr inbounds %struct.complex, ptr %1267, i32 0, i32 1
  %1269 = load float, ptr %1268, align 4, !tbaa !19
  %1270 = fneg float %1269
  %1271 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %1270, ptr %1271, align 4, !tbaa !19
  %1272 = load float, ptr %49, align 4, !tbaa !11
  %1273 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1274 = load float, ptr %1273, align 4, !tbaa !16
  %1275 = fmul float %1272, %1274
  %1276 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1275, ptr %1276, align 4, !tbaa !16
  %1277 = load float, ptr %49, align 4, !tbaa !11
  %1278 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %1279 = load float, ptr %1278, align 4, !tbaa !19
  %1280 = fmul float %1277, %1279
  %1281 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %1280, ptr %1281, align 4, !tbaa !19
  %1282 = load ptr, ptr %17, align 8, !tbaa !5
  %1283 = load i64, ptr %37, align 8, !tbaa !9
  %1284 = add nsw i64 %1283, 1
  %1285 = getelementptr inbounds %struct.complex, ptr %1282, i64 %1284
  %1286 = load ptr, ptr %18, align 8, !tbaa !5
  %1287 = load i64, ptr %36, align 8, !tbaa !9
  %1288 = add nsw i64 %1287, 1
  %1289 = getelementptr inbounds %struct.complex, ptr %1286, i64 %1288
  %1290 = call i32 @f2c_caxpy(ptr noundef %24, ptr noundef %31, ptr noundef %1285, ptr noundef @c__1, ptr noundef %1289, ptr noundef @c__1)
  %1291 = load ptr, ptr %16, align 8, !tbaa !5
  %1292 = load i64, ptr %1291, align 8, !tbaa !9
  %1293 = load i64, ptr %36, align 8, !tbaa !9
  %1294 = sub nsw i64 %1292, %1293
  store i64 %1294, ptr %24, align 8, !tbaa !9
  %1295 = load i64, ptr %36, align 8, !tbaa !9
  %1296 = load ptr, ptr %18, align 8, !tbaa !5
  %1297 = load i64, ptr %36, align 8, !tbaa !9
  %1298 = add nsw i64 %1297, 1
  %1299 = getelementptr inbounds %struct.complex, ptr %1296, i64 %1298
  %1300 = call i64 @f2c_icamax(ptr noundef %24, ptr noundef %1299, ptr noundef @c__1)
  %1301 = add nsw i64 %1295, %1300
  store i64 %1301, ptr %35, align 8, !tbaa !9
  %1302 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %1302, ptr %24, align 8, !tbaa !9
  %1303 = load ptr, ptr %18, align 8, !tbaa !5
  %1304 = load i64, ptr %24, align 8, !tbaa !9
  %1305 = getelementptr inbounds %struct.complex, ptr %1303, i64 %1304
  %1306 = getelementptr inbounds %struct.complex, ptr %1305, i32 0, i32 0
  %1307 = load float, ptr %1306, align 4, !tbaa !16
  store float %1307, ptr %27, align 4, !tbaa !11
  %1308 = load float, ptr %27, align 4, !tbaa !11
  %1309 = fcmp oge float %1308, 0.000000e+00
  br i1 %1309, label %1310, label %1312

1310:                                             ; preds = %1252
  %1311 = load float, ptr %27, align 4, !tbaa !11
  br label %1315

1312:                                             ; preds = %1252
  %1313 = load float, ptr %27, align 4, !tbaa !11
  %1314 = fneg float %1313
  br label %1315

1315:                                             ; preds = %1312, %1310
  %1316 = phi float [ %1311, %1310 ], [ %1314, %1312 ]
  %1317 = fpext float %1316 to double
  %1318 = load ptr, ptr %18, align 8, !tbaa !5
  %1319 = load i64, ptr %35, align 8, !tbaa !9
  %1320 = getelementptr inbounds %struct.complex, ptr %1318, i64 %1319
  %1321 = call double @r_imag(ptr noundef %1320)
  %1322 = fptrunc double %1321 to float
  store float %1322, ptr %28, align 4, !tbaa !11
  %1323 = load float, ptr %28, align 4, !tbaa !11
  %1324 = fcmp oge float %1323, 0.000000e+00
  br i1 %1324, label %1325, label %1327

1325:                                             ; preds = %1315
  %1326 = load float, ptr %28, align 4, !tbaa !11
  br label %1330

1327:                                             ; preds = %1315
  %1328 = load float, ptr %28, align 4, !tbaa !11
  %1329 = fneg float %1328
  br label %1330

1330:                                             ; preds = %1327, %1325
  %1331 = phi float [ %1326, %1325 ], [ %1329, %1327 ]
  %1332 = fpext float %1331 to double
  %1333 = fadd double %1317, %1332
  %1334 = fptrunc double %1333 to float
  store float %1334, ptr %47, align 4, !tbaa !11
  br label %1335

1335:                                             ; preds = %1330, %1247
  %1336 = load i64, ptr %37, align 8, !tbaa !9
  %1337 = load ptr, ptr %16, align 8, !tbaa !5
  %1338 = load i64, ptr %1337, align 8, !tbaa !9
  %1339 = add nsw i64 %1336, %1338
  %1340 = load i64, ptr %36, align 8, !tbaa !9
  %1341 = sub nsw i64 %1339, %1340
  %1342 = add nsw i64 %1341, 1
  store i64 %1342, ptr %37, align 8, !tbaa !9
  br label %1343

1343:                                             ; preds = %1335, %1243
  br label %1344

1344:                                             ; preds = %1343
  %1345 = load i64, ptr %23, align 8, !tbaa !9
  %1346 = load i64, ptr %36, align 8, !tbaa !9
  %1347 = add nsw i64 %1346, %1345
  store i64 %1347, ptr %36, align 8, !tbaa !9
  br label %804, !llvm.loop !25

1348:                                             ; preds = %817
  br label %2948

1349:                                             ; preds = %792
  %1350 = load ptr, ptr %13, align 8, !tbaa !5
  %1351 = call i64 @lsame_(ptr noundef %1350, ptr noundef @.str.3)
  %1352 = icmp ne i64 %1351, 0
  br i1 %1352, label %1353, label %2164

1353:                                             ; preds = %1349
  %1354 = load i64, ptr %56, align 8, !tbaa !9
  %1355 = load i64, ptr %56, align 8, !tbaa !9
  %1356 = add nsw i64 %1355, 1
  %1357 = mul nsw i64 %1354, %1356
  %1358 = sdiv i64 %1357, 2
  store i64 %1358, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %42, align 8, !tbaa !9
  %1359 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %1359, ptr %23, align 8, !tbaa !9
  %1360 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %1360, ptr %22, align 8, !tbaa !9
  %1361 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %1361, ptr %36, align 8, !tbaa !9
  br label %1362

1362:                                             ; preds = %2159, %1353
  %1363 = load i64, ptr %22, align 8, !tbaa !9
  %1364 = icmp slt i64 %1363, 0
  br i1 %1364, label %1365, label %1370

1365:                                             ; preds = %1362
  %1366 = load i64, ptr %36, align 8, !tbaa !9
  %1367 = load i64, ptr %23, align 8, !tbaa !9
  %1368 = icmp sge i64 %1366, %1367
  %1369 = zext i1 %1368 to i32
  br label %1375

1370:                                             ; preds = %1362
  %1371 = load i64, ptr %36, align 8, !tbaa !9
  %1372 = load i64, ptr %23, align 8, !tbaa !9
  %1373 = icmp sle i64 %1371, %1372
  %1374 = zext i1 %1373 to i32
  br label %1375

1375:                                             ; preds = %1370, %1365
  %1376 = phi i32 [ %1369, %1365 ], [ %1374, %1370 ]
  %1377 = icmp ne i32 %1376, 0
  br i1 %1377, label %1378, label %2163

1378:                                             ; preds = %1375
  %1379 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1379, ptr %24, align 8, !tbaa !9
  %1380 = load ptr, ptr %18, align 8, !tbaa !5
  %1381 = load i64, ptr %24, align 8, !tbaa !9
  %1382 = getelementptr inbounds %struct.complex, ptr %1380, i64 %1381
  %1383 = getelementptr inbounds %struct.complex, ptr %1382, i32 0, i32 0
  %1384 = load float, ptr %1383, align 4, !tbaa !16
  store float %1384, ptr %27, align 4, !tbaa !11
  %1385 = load float, ptr %27, align 4, !tbaa !11
  %1386 = fcmp oge float %1385, 0.000000e+00
  br i1 %1386, label %1387, label %1389

1387:                                             ; preds = %1378
  %1388 = load float, ptr %27, align 4, !tbaa !11
  br label %1392

1389:                                             ; preds = %1378
  %1390 = load float, ptr %27, align 4, !tbaa !11
  %1391 = fneg float %1390
  br label %1392

1392:                                             ; preds = %1389, %1387
  %1393 = phi float [ %1388, %1387 ], [ %1391, %1389 ]
  %1394 = fpext float %1393 to double
  %1395 = load ptr, ptr %18, align 8, !tbaa !5
  %1396 = load i64, ptr %36, align 8, !tbaa !9
  %1397 = getelementptr inbounds %struct.complex, ptr %1395, i64 %1396
  %1398 = call double @r_imag(ptr noundef %1397)
  %1399 = fptrunc double %1398 to float
  store float %1399, ptr %28, align 4, !tbaa !11
  %1400 = load float, ptr %28, align 4, !tbaa !11
  %1401 = fcmp oge float %1400, 0.000000e+00
  br i1 %1401, label %1402, label %1404

1402:                                             ; preds = %1392
  %1403 = load float, ptr %28, align 4, !tbaa !11
  br label %1407

1404:                                             ; preds = %1392
  %1405 = load float, ptr %28, align 4, !tbaa !11
  %1406 = fneg float %1405
  br label %1407

1407:                                             ; preds = %1404, %1402
  %1408 = phi float [ %1403, %1402 ], [ %1406, %1404 ]
  %1409 = fpext float %1408 to double
  %1410 = fadd double %1394, %1409
  %1411 = fptrunc double %1410 to float
  store float %1411, ptr %38, align 4, !tbaa !11
  %1412 = load float, ptr %49, align 4, !tbaa !11
  %1413 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1412, ptr %1413, align 4, !tbaa !16
  %1414 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float 0.000000e+00, ptr %1414, align 4, !tbaa !19
  %1415 = load float, ptr %47, align 4, !tbaa !11
  %1416 = fcmp oge float %1415, 1.000000e+00
  br i1 %1416, label %1417, label %1419

1417:                                             ; preds = %1407
  %1418 = load float, ptr %47, align 4, !tbaa !11
  br label %1420

1419:                                             ; preds = %1407
  br label %1420

1420:                                             ; preds = %1419, %1417
  %1421 = phi float [ %1418, %1417 ], [ 1.000000e+00, %1419 ]
  %1422 = fpext float %1421 to double
  %1423 = fdiv double 1.000000e+00, %1422
  %1424 = fptrunc double %1423 to float
  store float %1424, ptr %39, align 4, !tbaa !11
  %1425 = load ptr, ptr %20, align 8, !tbaa !5
  %1426 = load i64, ptr %36, align 8, !tbaa !9
  %1427 = getelementptr inbounds float, ptr %1425, i64 %1426
  %1428 = load float, ptr %1427, align 4, !tbaa !11
  %1429 = load float, ptr %54, align 4, !tbaa !11
  %1430 = load float, ptr %38, align 4, !tbaa !11
  %1431 = fsub float %1429, %1430
  %1432 = load float, ptr %39, align 4, !tbaa !11
  %1433 = fmul float %1431, %1432
  %1434 = fcmp ogt float %1428, %1433
  br i1 %1434, label %1435, label %1534

1435:                                             ; preds = %1420
  %1436 = load float, ptr %39, align 4, !tbaa !11
  %1437 = fmul float %1436, 5.000000e-01
  store float %1437, ptr %39, align 4, !tbaa !11
  %1438 = load i64, ptr %58, align 8, !tbaa !9
  %1439 = icmp ne i64 %1438, 0
  br i1 %1439, label %1440, label %1464

1440:                                             ; preds = %1435
  %1441 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %1441, ptr %24, align 8, !tbaa !9
  %1442 = load float, ptr %49, align 4, !tbaa !11
  %1443 = load ptr, ptr %17, align 8, !tbaa !5
  %1444 = load i64, ptr %24, align 8, !tbaa !9
  %1445 = getelementptr inbounds %struct.complex, ptr %1443, i64 %1444
  %1446 = getelementptr inbounds %struct.complex, ptr %1445, i32 0, i32 0
  %1447 = load float, ptr %1446, align 4, !tbaa !16
  %1448 = fmul float %1442, %1447
  %1449 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1448, ptr %1449, align 4, !tbaa !16
  %1450 = load float, ptr %49, align 4, !tbaa !11
  %1451 = load ptr, ptr %17, align 8, !tbaa !5
  %1452 = load i64, ptr %24, align 8, !tbaa !9
  %1453 = getelementptr inbounds %struct.complex, ptr %1451, i64 %1452
  %1454 = getelementptr inbounds %struct.complex, ptr %1453, i32 0, i32 1
  %1455 = load float, ptr %1454, align 4, !tbaa !19
  %1456 = fmul float %1450, %1455
  %1457 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %1456, ptr %1457, align 4, !tbaa !19
  %1458 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1459 = load float, ptr %1458, align 4, !tbaa !16
  %1460 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1459, ptr %1460, align 4, !tbaa !16
  %1461 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1462 = load float, ptr %1461, align 4, !tbaa !19
  %1463 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1462, ptr %1463, align 4, !tbaa !19
  br label %1468

1464:                                             ; preds = %1435
  %1465 = load float, ptr %49, align 4, !tbaa !11
  %1466 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1465, ptr %1466, align 4, !tbaa !16
  %1467 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %1467, align 4, !tbaa !19
  br label %1468

1468:                                             ; preds = %1464, %1440
  %1469 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1470 = load float, ptr %1469, align 4, !tbaa !16
  store float %1470, ptr %27, align 4, !tbaa !11
  %1471 = load float, ptr %27, align 4, !tbaa !11
  %1472 = fcmp oge float %1471, 0.000000e+00
  br i1 %1472, label %1473, label %1475

1473:                                             ; preds = %1468
  %1474 = load float, ptr %27, align 4, !tbaa !11
  br label %1478

1475:                                             ; preds = %1468
  %1476 = load float, ptr %27, align 4, !tbaa !11
  %1477 = fneg float %1476
  br label %1478

1478:                                             ; preds = %1475, %1473
  %1479 = phi float [ %1474, %1473 ], [ %1477, %1475 ]
  %1480 = fpext float %1479 to double
  %1481 = call double @r_imag(ptr noundef %46)
  %1482 = fptrunc double %1481 to float
  store float %1482, ptr %28, align 4, !tbaa !11
  %1483 = load float, ptr %28, align 4, !tbaa !11
  %1484 = fcmp oge float %1483, 0.000000e+00
  br i1 %1484, label %1485, label %1487

1485:                                             ; preds = %1478
  %1486 = load float, ptr %28, align 4, !tbaa !11
  br label %1490

1487:                                             ; preds = %1478
  %1488 = load float, ptr %28, align 4, !tbaa !11
  %1489 = fneg float %1488
  br label %1490

1490:                                             ; preds = %1487, %1485
  %1491 = phi float [ %1486, %1485 ], [ %1489, %1487 ]
  %1492 = fpext float %1491 to double
  %1493 = fadd double %1480, %1492
  %1494 = fptrunc double %1493 to float
  store float %1494, ptr %40, align 4, !tbaa !11
  %1495 = load float, ptr %40, align 4, !tbaa !11
  %1496 = fcmp ogt float %1495, 1.000000e+00
  br i1 %1496, label %1497, label %1518

1497:                                             ; preds = %1490
  store float 1.000000e+00, ptr %27, align 4, !tbaa !11
  %1498 = load float, ptr %39, align 4, !tbaa !11
  %1499 = load float, ptr %40, align 4, !tbaa !11
  %1500 = fmul float %1498, %1499
  store float %1500, ptr %28, align 4, !tbaa !11
  %1501 = load float, ptr %27, align 4, !tbaa !11
  %1502 = load float, ptr %28, align 4, !tbaa !11
  %1503 = fcmp ole float %1501, %1502
  br i1 %1503, label %1504, label %1506

1504:                                             ; preds = %1497
  %1505 = load float, ptr %27, align 4, !tbaa !11
  br label %1508

1506:                                             ; preds = %1497
  %1507 = load float, ptr %28, align 4, !tbaa !11
  br label %1508

1508:                                             ; preds = %1506, %1504
  %1509 = phi float [ %1505, %1504 ], [ %1507, %1506 ]
  %1510 = fpext float %1509 to double
  %1511 = fptrunc double %1510 to float
  store float %1511, ptr %39, align 4, !tbaa !11
  call void @cladiv_(ptr noundef %31, ptr noundef %50, ptr noundef %46)
  %1512 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1513 = load float, ptr %1512, align 4, !tbaa !16
  %1514 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1513, ptr %1514, align 4, !tbaa !16
  %1515 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1516 = load float, ptr %1515, align 4, !tbaa !19
  %1517 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1516, ptr %1517, align 4, !tbaa !19
  br label %1518

1518:                                             ; preds = %1508, %1490
  %1519 = load float, ptr %39, align 4, !tbaa !11
  %1520 = fcmp olt float %1519, 1.000000e+00
  br i1 %1520, label %1521, label %1533

1521:                                             ; preds = %1518
  %1522 = load ptr, ptr %16, align 8, !tbaa !5
  %1523 = load ptr, ptr %18, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.complex, ptr %1523, i64 1
  %1525 = call i32 @f2c_csscal(ptr noundef %1522, ptr noundef %39, ptr noundef %1524, ptr noundef @c__1)
  %1526 = load float, ptr %39, align 4, !tbaa !11
  %1527 = load ptr, ptr %19, align 8, !tbaa !5
  %1528 = load float, ptr %1527, align 4, !tbaa !11
  %1529 = fmul float %1528, %1526
  store float %1529, ptr %1527, align 4, !tbaa !11
  %1530 = load float, ptr %39, align 4, !tbaa !11
  %1531 = load float, ptr %47, align 4, !tbaa !11
  %1532 = fmul float %1531, %1530
  store float %1532, ptr %47, align 4, !tbaa !11
  br label %1533

1533:                                             ; preds = %1521, %1518
  br label %1534

1534:                                             ; preds = %1533, %1420
  %1535 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float 0.000000e+00, ptr %1535, align 4, !tbaa !16
  %1536 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float 0.000000e+00, ptr %1536, align 4, !tbaa !19
  %1537 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1538 = load float, ptr %1537, align 4, !tbaa !16
  %1539 = fcmp oeq float %1538, 1.000000e+00
  br i1 %1539, label %1540, label %1590

1540:                                             ; preds = %1534
  %1541 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1542 = load float, ptr %1541, align 4, !tbaa !19
  %1543 = fcmp oeq float %1542, 0.000000e+00
  br i1 %1543, label %1544, label %1590

1544:                                             ; preds = %1540
  %1545 = load i64, ptr %53, align 8, !tbaa !9
  %1546 = icmp ne i64 %1545, 0
  br i1 %1546, label %1547, label %1564

1547:                                             ; preds = %1544
  %1548 = load i64, ptr %36, align 8, !tbaa !9
  %1549 = sub nsw i64 %1548, 1
  store i64 %1549, ptr %24, align 8, !tbaa !9
  %1550 = load ptr, ptr %17, align 8, !tbaa !5
  %1551 = load i64, ptr %37, align 8, !tbaa !9
  %1552 = load i64, ptr %36, align 8, !tbaa !9
  %1553 = sub nsw i64 %1551, %1552
  %1554 = add nsw i64 %1553, 1
  %1555 = getelementptr inbounds %struct.complex, ptr %1550, i64 %1554
  %1556 = load ptr, ptr %18, align 8, !tbaa !5
  %1557 = getelementptr inbounds %struct.complex, ptr %1556, i64 1
  call void @f2c_cdotu(ptr noundef %31, ptr noundef %24, ptr noundef %1555, ptr noundef @c__1, ptr noundef %1557, ptr noundef @c__1)
  %1558 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1559 = load float, ptr %1558, align 4, !tbaa !16
  %1560 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1559, ptr %1560, align 4, !tbaa !16
  %1561 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1562 = load float, ptr %1561, align 4, !tbaa !19
  %1563 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1562, ptr %1563, align 4, !tbaa !19
  br label %1589

1564:                                             ; preds = %1544
  %1565 = load i64, ptr %36, align 8, !tbaa !9
  %1566 = load ptr, ptr %16, align 8, !tbaa !5
  %1567 = load i64, ptr %1566, align 8, !tbaa !9
  %1568 = icmp slt i64 %1565, %1567
  br i1 %1568, label %1569, label %1588

1569:                                             ; preds = %1564
  %1570 = load ptr, ptr %16, align 8, !tbaa !5
  %1571 = load i64, ptr %1570, align 8, !tbaa !9
  %1572 = load i64, ptr %36, align 8, !tbaa !9
  %1573 = sub nsw i64 %1571, %1572
  store i64 %1573, ptr %24, align 8, !tbaa !9
  %1574 = load ptr, ptr %17, align 8, !tbaa !5
  %1575 = load i64, ptr %37, align 8, !tbaa !9
  %1576 = add nsw i64 %1575, 1
  %1577 = getelementptr inbounds %struct.complex, ptr %1574, i64 %1576
  %1578 = load ptr, ptr %18, align 8, !tbaa !5
  %1579 = load i64, ptr %36, align 8, !tbaa !9
  %1580 = add nsw i64 %1579, 1
  %1581 = getelementptr inbounds %struct.complex, ptr %1578, i64 %1580
  call void @f2c_cdotu(ptr noundef %31, ptr noundef %24, ptr noundef %1577, ptr noundef @c__1, ptr noundef %1581, ptr noundef @c__1)
  %1582 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1583 = load float, ptr %1582, align 4, !tbaa !16
  %1584 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1583, ptr %1584, align 4, !tbaa !16
  %1585 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1586 = load float, ptr %1585, align 4, !tbaa !19
  %1587 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1586, ptr %1587, align 4, !tbaa !19
  br label %1588

1588:                                             ; preds = %1569, %1564
  br label %1589

1589:                                             ; preds = %1588, %1547
  br label %1814

1590:                                             ; preds = %1540, %1534
  %1591 = load i64, ptr %53, align 8, !tbaa !9
  %1592 = icmp ne i64 %1591, 0
  br i1 %1592, label %1593, label %1699

1593:                                             ; preds = %1590
  %1594 = load i64, ptr %36, align 8, !tbaa !9
  %1595 = sub nsw i64 %1594, 1
  store i64 %1595, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  br label %1596

1596:                                             ; preds = %1695, %1593
  %1597 = load i64, ptr %35, align 8, !tbaa !9
  %1598 = load i64, ptr %24, align 8, !tbaa !9
  %1599 = icmp sle i64 %1597, %1598
  br i1 %1599, label %1600, label %1698

1600:                                             ; preds = %1596
  %1601 = load i64, ptr %37, align 8, !tbaa !9
  %1602 = load i64, ptr %36, align 8, !tbaa !9
  %1603 = sub nsw i64 %1601, %1602
  %1604 = load i64, ptr %35, align 8, !tbaa !9
  %1605 = add nsw i64 %1603, %1604
  store i64 %1605, ptr %25, align 8, !tbaa !9
  %1606 = load ptr, ptr %17, align 8, !tbaa !5
  %1607 = load i64, ptr %25, align 8, !tbaa !9
  %1608 = getelementptr inbounds %struct.complex, ptr %1606, i64 %1607
  %1609 = getelementptr inbounds %struct.complex, ptr %1608, i32 0, i32 0
  %1610 = load float, ptr %1609, align 4, !tbaa !16
  %1611 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1612 = load float, ptr %1611, align 4, !tbaa !16
  %1613 = load ptr, ptr %17, align 8, !tbaa !5
  %1614 = load i64, ptr %25, align 8, !tbaa !9
  %1615 = getelementptr inbounds %struct.complex, ptr %1613, i64 %1614
  %1616 = getelementptr inbounds %struct.complex, ptr %1615, i32 0, i32 1
  %1617 = load float, ptr %1616, align 4, !tbaa !19
  %1618 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1619 = load float, ptr %1618, align 4, !tbaa !19
  %1620 = fmul float %1617, %1619
  %1621 = fneg float %1620
  %1622 = call float @llvm.fmuladd.f32(float %1610, float %1612, float %1621)
  %1623 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  store float %1622, ptr %1623, align 4, !tbaa !16
  %1624 = load ptr, ptr %17, align 8, !tbaa !5
  %1625 = load i64, ptr %25, align 8, !tbaa !9
  %1626 = getelementptr inbounds %struct.complex, ptr %1624, i64 %1625
  %1627 = getelementptr inbounds %struct.complex, ptr %1626, i32 0, i32 0
  %1628 = load float, ptr %1627, align 4, !tbaa !16
  %1629 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1630 = load float, ptr %1629, align 4, !tbaa !19
  %1631 = load ptr, ptr %17, align 8, !tbaa !5
  %1632 = load i64, ptr %25, align 8, !tbaa !9
  %1633 = getelementptr inbounds %struct.complex, ptr %1631, i64 %1632
  %1634 = getelementptr inbounds %struct.complex, ptr %1633, i32 0, i32 1
  %1635 = load float, ptr %1634, align 4, !tbaa !19
  %1636 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1637 = load float, ptr %1636, align 4, !tbaa !16
  %1638 = fmul float %1635, %1637
  %1639 = call float @llvm.fmuladd.f32(float %1628, float %1630, float %1638)
  %1640 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  store float %1639, ptr %1640, align 4, !tbaa !19
  %1641 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %1641, ptr %26, align 8, !tbaa !9
  %1642 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %1643 = load float, ptr %1642, align 4, !tbaa !16
  %1644 = load ptr, ptr %18, align 8, !tbaa !5
  %1645 = load i64, ptr %26, align 8, !tbaa !9
  %1646 = getelementptr inbounds %struct.complex, ptr %1644, i64 %1645
  %1647 = getelementptr inbounds %struct.complex, ptr %1646, i32 0, i32 0
  %1648 = load float, ptr %1647, align 4, !tbaa !16
  %1649 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %1650 = load float, ptr %1649, align 4, !tbaa !19
  %1651 = load ptr, ptr %18, align 8, !tbaa !5
  %1652 = load i64, ptr %26, align 8, !tbaa !9
  %1653 = getelementptr inbounds %struct.complex, ptr %1651, i64 %1652
  %1654 = getelementptr inbounds %struct.complex, ptr %1653, i32 0, i32 1
  %1655 = load float, ptr %1654, align 4, !tbaa !19
  %1656 = fmul float %1650, %1655
  %1657 = fneg float %1656
  %1658 = call float @llvm.fmuladd.f32(float %1643, float %1648, float %1657)
  %1659 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %1658, ptr %1659, align 4, !tbaa !16
  %1660 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %1661 = load float, ptr %1660, align 4, !tbaa !16
  %1662 = load ptr, ptr %18, align 8, !tbaa !5
  %1663 = load i64, ptr %26, align 8, !tbaa !9
  %1664 = getelementptr inbounds %struct.complex, ptr %1662, i64 %1663
  %1665 = getelementptr inbounds %struct.complex, ptr %1664, i32 0, i32 1
  %1666 = load float, ptr %1665, align 4, !tbaa !19
  %1667 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %1668 = load float, ptr %1667, align 4, !tbaa !19
  %1669 = load ptr, ptr %18, align 8, !tbaa !5
  %1670 = load i64, ptr %26, align 8, !tbaa !9
  %1671 = getelementptr inbounds %struct.complex, ptr %1669, i64 %1670
  %1672 = getelementptr inbounds %struct.complex, ptr %1671, i32 0, i32 0
  %1673 = load float, ptr %1672, align 4, !tbaa !16
  %1674 = fmul float %1668, %1673
  %1675 = call float @llvm.fmuladd.f32(float %1661, float %1666, float %1674)
  %1676 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %1675, ptr %1676, align 4, !tbaa !19
  %1677 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1678 = load float, ptr %1677, align 4, !tbaa !16
  %1679 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1680 = load float, ptr %1679, align 4, !tbaa !16
  %1681 = fadd float %1678, %1680
  %1682 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1681, ptr %1682, align 4, !tbaa !16
  %1683 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1684 = load float, ptr %1683, align 4, !tbaa !19
  %1685 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %1686 = load float, ptr %1685, align 4, !tbaa !19
  %1687 = fadd float %1684, %1686
  %1688 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %1687, ptr %1688, align 4, !tbaa !19
  %1689 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1690 = load float, ptr %1689, align 4, !tbaa !16
  %1691 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1690, ptr %1691, align 4, !tbaa !16
  %1692 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1693 = load float, ptr %1692, align 4, !tbaa !19
  %1694 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1693, ptr %1694, align 4, !tbaa !19
  br label %1695

1695:                                             ; preds = %1600
  %1696 = load i64, ptr %35, align 8, !tbaa !9
  %1697 = add nsw i64 %1696, 1
  store i64 %1697, ptr %35, align 8, !tbaa !9
  br label %1596, !llvm.loop !26

1698:                                             ; preds = %1596
  br label %1813

1699:                                             ; preds = %1590
  %1700 = load i64, ptr %36, align 8, !tbaa !9
  %1701 = load ptr, ptr %16, align 8, !tbaa !5
  %1702 = load i64, ptr %1701, align 8, !tbaa !9
  %1703 = icmp slt i64 %1700, %1702
  br i1 %1703, label %1704, label %1812

1704:                                             ; preds = %1699
  %1705 = load ptr, ptr %16, align 8, !tbaa !5
  %1706 = load i64, ptr %1705, align 8, !tbaa !9
  %1707 = load i64, ptr %36, align 8, !tbaa !9
  %1708 = sub nsw i64 %1706, %1707
  store i64 %1708, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  br label %1709

1709:                                             ; preds = %1808, %1704
  %1710 = load i64, ptr %35, align 8, !tbaa !9
  %1711 = load i64, ptr %24, align 8, !tbaa !9
  %1712 = icmp sle i64 %1710, %1711
  br i1 %1712, label %1713, label %1811

1713:                                             ; preds = %1709
  %1714 = load i64, ptr %37, align 8, !tbaa !9
  %1715 = load i64, ptr %35, align 8, !tbaa !9
  %1716 = add nsw i64 %1714, %1715
  store i64 %1716, ptr %25, align 8, !tbaa !9
  %1717 = load ptr, ptr %17, align 8, !tbaa !5
  %1718 = load i64, ptr %25, align 8, !tbaa !9
  %1719 = getelementptr inbounds %struct.complex, ptr %1717, i64 %1718
  %1720 = getelementptr inbounds %struct.complex, ptr %1719, i32 0, i32 0
  %1721 = load float, ptr %1720, align 4, !tbaa !16
  %1722 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1723 = load float, ptr %1722, align 4, !tbaa !16
  %1724 = load ptr, ptr %17, align 8, !tbaa !5
  %1725 = load i64, ptr %25, align 8, !tbaa !9
  %1726 = getelementptr inbounds %struct.complex, ptr %1724, i64 %1725
  %1727 = getelementptr inbounds %struct.complex, ptr %1726, i32 0, i32 1
  %1728 = load float, ptr %1727, align 4, !tbaa !19
  %1729 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1730 = load float, ptr %1729, align 4, !tbaa !19
  %1731 = fmul float %1728, %1730
  %1732 = fneg float %1731
  %1733 = call float @llvm.fmuladd.f32(float %1721, float %1723, float %1732)
  %1734 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  store float %1733, ptr %1734, align 4, !tbaa !16
  %1735 = load ptr, ptr %17, align 8, !tbaa !5
  %1736 = load i64, ptr %25, align 8, !tbaa !9
  %1737 = getelementptr inbounds %struct.complex, ptr %1735, i64 %1736
  %1738 = getelementptr inbounds %struct.complex, ptr %1737, i32 0, i32 0
  %1739 = load float, ptr %1738, align 4, !tbaa !16
  %1740 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1741 = load float, ptr %1740, align 4, !tbaa !19
  %1742 = load ptr, ptr %17, align 8, !tbaa !5
  %1743 = load i64, ptr %25, align 8, !tbaa !9
  %1744 = getelementptr inbounds %struct.complex, ptr %1742, i64 %1743
  %1745 = getelementptr inbounds %struct.complex, ptr %1744, i32 0, i32 1
  %1746 = load float, ptr %1745, align 4, !tbaa !19
  %1747 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1748 = load float, ptr %1747, align 4, !tbaa !16
  %1749 = fmul float %1746, %1748
  %1750 = call float @llvm.fmuladd.f32(float %1739, float %1741, float %1749)
  %1751 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  store float %1750, ptr %1751, align 4, !tbaa !19
  %1752 = load i64, ptr %36, align 8, !tbaa !9
  %1753 = load i64, ptr %35, align 8, !tbaa !9
  %1754 = add nsw i64 %1752, %1753
  store i64 %1754, ptr %26, align 8, !tbaa !9
  %1755 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %1756 = load float, ptr %1755, align 4, !tbaa !16
  %1757 = load ptr, ptr %18, align 8, !tbaa !5
  %1758 = load i64, ptr %26, align 8, !tbaa !9
  %1759 = getelementptr inbounds %struct.complex, ptr %1757, i64 %1758
  %1760 = getelementptr inbounds %struct.complex, ptr %1759, i32 0, i32 0
  %1761 = load float, ptr %1760, align 4, !tbaa !16
  %1762 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %1763 = load float, ptr %1762, align 4, !tbaa !19
  %1764 = load ptr, ptr %18, align 8, !tbaa !5
  %1765 = load i64, ptr %26, align 8, !tbaa !9
  %1766 = getelementptr inbounds %struct.complex, ptr %1764, i64 %1765
  %1767 = getelementptr inbounds %struct.complex, ptr %1766, i32 0, i32 1
  %1768 = load float, ptr %1767, align 4, !tbaa !19
  %1769 = fmul float %1763, %1768
  %1770 = fneg float %1769
  %1771 = call float @llvm.fmuladd.f32(float %1756, float %1761, float %1770)
  %1772 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %1771, ptr %1772, align 4, !tbaa !16
  %1773 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %1774 = load float, ptr %1773, align 4, !tbaa !16
  %1775 = load ptr, ptr %18, align 8, !tbaa !5
  %1776 = load i64, ptr %26, align 8, !tbaa !9
  %1777 = getelementptr inbounds %struct.complex, ptr %1775, i64 %1776
  %1778 = getelementptr inbounds %struct.complex, ptr %1777, i32 0, i32 1
  %1779 = load float, ptr %1778, align 4, !tbaa !19
  %1780 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %1781 = load float, ptr %1780, align 4, !tbaa !19
  %1782 = load ptr, ptr %18, align 8, !tbaa !5
  %1783 = load i64, ptr %26, align 8, !tbaa !9
  %1784 = getelementptr inbounds %struct.complex, ptr %1782, i64 %1783
  %1785 = getelementptr inbounds %struct.complex, ptr %1784, i32 0, i32 0
  %1786 = load float, ptr %1785, align 4, !tbaa !16
  %1787 = fmul float %1781, %1786
  %1788 = call float @llvm.fmuladd.f32(float %1774, float %1779, float %1787)
  %1789 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %1788, ptr %1789, align 4, !tbaa !19
  %1790 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1791 = load float, ptr %1790, align 4, !tbaa !16
  %1792 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1793 = load float, ptr %1792, align 4, !tbaa !16
  %1794 = fadd float %1791, %1793
  %1795 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1794, ptr %1795, align 4, !tbaa !16
  %1796 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1797 = load float, ptr %1796, align 4, !tbaa !19
  %1798 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %1799 = load float, ptr %1798, align 4, !tbaa !19
  %1800 = fadd float %1797, %1799
  %1801 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %1800, ptr %1801, align 4, !tbaa !19
  %1802 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1803 = load float, ptr %1802, align 4, !tbaa !16
  %1804 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1803, ptr %1804, align 4, !tbaa !16
  %1805 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1806 = load float, ptr %1805, align 4, !tbaa !19
  %1807 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1806, ptr %1807, align 4, !tbaa !19
  br label %1808

1808:                                             ; preds = %1713
  %1809 = load i64, ptr %35, align 8, !tbaa !9
  %1810 = add nsw i64 %1809, 1
  store i64 %1810, ptr %35, align 8, !tbaa !9
  br label %1709, !llvm.loop !27

1811:                                             ; preds = %1709
  br label %1812

1812:                                             ; preds = %1811, %1699
  br label %1813

1813:                                             ; preds = %1812, %1698
  br label %1814

1814:                                             ; preds = %1813, %1589
  %1815 = load float, ptr %49, align 4, !tbaa !11
  %1816 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1815, ptr %1816, align 4, !tbaa !16
  %1817 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float 0.000000e+00, ptr %1817, align 4, !tbaa !19
  %1818 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1819 = load float, ptr %1818, align 4, !tbaa !16
  %1820 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1821 = load float, ptr %1820, align 4, !tbaa !16
  %1822 = fcmp oeq float %1819, %1821
  br i1 %1822, label %1823, label %2077

1823:                                             ; preds = %1814
  %1824 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1825 = load float, ptr %1824, align 4, !tbaa !19
  %1826 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1827 = load float, ptr %1826, align 4, !tbaa !19
  %1828 = fcmp oeq float %1825, %1827
  br i1 %1828, label %1829, label %2077

1829:                                             ; preds = %1823
  %1830 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1830, ptr %24, align 8, !tbaa !9
  %1831 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1831, ptr %25, align 8, !tbaa !9
  %1832 = load ptr, ptr %18, align 8, !tbaa !5
  %1833 = load i64, ptr %25, align 8, !tbaa !9
  %1834 = getelementptr inbounds %struct.complex, ptr %1832, i64 %1833
  %1835 = getelementptr inbounds %struct.complex, ptr %1834, i32 0, i32 0
  %1836 = load float, ptr %1835, align 4, !tbaa !16
  %1837 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1838 = load float, ptr %1837, align 4, !tbaa !16
  %1839 = fsub float %1836, %1838
  %1840 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1839, ptr %1840, align 4, !tbaa !16
  %1841 = load ptr, ptr %18, align 8, !tbaa !5
  %1842 = load i64, ptr %25, align 8, !tbaa !9
  %1843 = getelementptr inbounds %struct.complex, ptr %1841, i64 %1842
  %1844 = getelementptr inbounds %struct.complex, ptr %1843, i32 0, i32 1
  %1845 = load float, ptr %1844, align 4, !tbaa !19
  %1846 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1847 = load float, ptr %1846, align 4, !tbaa !19
  %1848 = fsub float %1845, %1847
  %1849 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %1848, ptr %1849, align 4, !tbaa !19
  %1850 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1851 = load float, ptr %1850, align 4, !tbaa !16
  %1852 = load ptr, ptr %18, align 8, !tbaa !5
  %1853 = load i64, ptr %24, align 8, !tbaa !9
  %1854 = getelementptr inbounds %struct.complex, ptr %1852, i64 %1853
  %1855 = getelementptr inbounds %struct.complex, ptr %1854, i32 0, i32 0
  store float %1851, ptr %1855, align 4, !tbaa !16
  %1856 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1857 = load float, ptr %1856, align 4, !tbaa !19
  %1858 = load ptr, ptr %18, align 8, !tbaa !5
  %1859 = load i64, ptr %24, align 8, !tbaa !9
  %1860 = getelementptr inbounds %struct.complex, ptr %1858, i64 %1859
  %1861 = getelementptr inbounds %struct.complex, ptr %1860, i32 0, i32 1
  store float %1857, ptr %1861, align 4, !tbaa !19
  %1862 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1862, ptr %24, align 8, !tbaa !9
  %1863 = load ptr, ptr %18, align 8, !tbaa !5
  %1864 = load i64, ptr %24, align 8, !tbaa !9
  %1865 = getelementptr inbounds %struct.complex, ptr %1863, i64 %1864
  %1866 = getelementptr inbounds %struct.complex, ptr %1865, i32 0, i32 0
  %1867 = load float, ptr %1866, align 4, !tbaa !16
  store float %1867, ptr %27, align 4, !tbaa !11
  %1868 = load float, ptr %27, align 4, !tbaa !11
  %1869 = fcmp oge float %1868, 0.000000e+00
  br i1 %1869, label %1870, label %1872

1870:                                             ; preds = %1829
  %1871 = load float, ptr %27, align 4, !tbaa !11
  br label %1875

1872:                                             ; preds = %1829
  %1873 = load float, ptr %27, align 4, !tbaa !11
  %1874 = fneg float %1873
  br label %1875

1875:                                             ; preds = %1872, %1870
  %1876 = phi float [ %1871, %1870 ], [ %1874, %1872 ]
  %1877 = fpext float %1876 to double
  %1878 = load ptr, ptr %18, align 8, !tbaa !5
  %1879 = load i64, ptr %36, align 8, !tbaa !9
  %1880 = getelementptr inbounds %struct.complex, ptr %1878, i64 %1879
  %1881 = call double @r_imag(ptr noundef %1880)
  %1882 = fptrunc double %1881 to float
  store float %1882, ptr %28, align 4, !tbaa !11
  %1883 = load float, ptr %28, align 4, !tbaa !11
  %1884 = fcmp oge float %1883, 0.000000e+00
  br i1 %1884, label %1885, label %1887

1885:                                             ; preds = %1875
  %1886 = load float, ptr %28, align 4, !tbaa !11
  br label %1890

1887:                                             ; preds = %1875
  %1888 = load float, ptr %28, align 4, !tbaa !11
  %1889 = fneg float %1888
  br label %1890

1890:                                             ; preds = %1887, %1885
  %1891 = phi float [ %1886, %1885 ], [ %1889, %1887 ]
  %1892 = fpext float %1891 to double
  %1893 = fadd double %1877, %1892
  %1894 = fptrunc double %1893 to float
  store float %1894, ptr %38, align 4, !tbaa !11
  %1895 = load i64, ptr %58, align 8, !tbaa !9
  %1896 = icmp ne i64 %1895, 0
  br i1 %1896, label %1897, label %1921

1897:                                             ; preds = %1890
  %1898 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %1898, ptr %24, align 8, !tbaa !9
  %1899 = load float, ptr %49, align 4, !tbaa !11
  %1900 = load ptr, ptr %17, align 8, !tbaa !5
  %1901 = load i64, ptr %24, align 8, !tbaa !9
  %1902 = getelementptr inbounds %struct.complex, ptr %1900, i64 %1901
  %1903 = getelementptr inbounds %struct.complex, ptr %1902, i32 0, i32 0
  %1904 = load float, ptr %1903, align 4, !tbaa !16
  %1905 = fmul float %1899, %1904
  %1906 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1905, ptr %1906, align 4, !tbaa !16
  %1907 = load float, ptr %49, align 4, !tbaa !11
  %1908 = load ptr, ptr %17, align 8, !tbaa !5
  %1909 = load i64, ptr %24, align 8, !tbaa !9
  %1910 = getelementptr inbounds %struct.complex, ptr %1908, i64 %1909
  %1911 = getelementptr inbounds %struct.complex, ptr %1910, i32 0, i32 1
  %1912 = load float, ptr %1911, align 4, !tbaa !19
  %1913 = fmul float %1907, %1912
  %1914 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %1913, ptr %1914, align 4, !tbaa !19
  %1915 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1916 = load float, ptr %1915, align 4, !tbaa !16
  %1917 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1916, ptr %1917, align 4, !tbaa !16
  %1918 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1919 = load float, ptr %1918, align 4, !tbaa !19
  %1920 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1919, ptr %1920, align 4, !tbaa !19
  br label %1929

1921:                                             ; preds = %1890
  %1922 = load float, ptr %49, align 4, !tbaa !11
  %1923 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1922, ptr %1923, align 4, !tbaa !16
  %1924 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %1924, align 4, !tbaa !19
  %1925 = load float, ptr %49, align 4, !tbaa !11
  %1926 = fcmp oeq float %1925, 1.000000e+00
  br i1 %1926, label %1927, label %1928

1927:                                             ; preds = %1921
  br label %2076

1928:                                             ; preds = %1921
  br label %1929

1929:                                             ; preds = %1928, %1897
  %1930 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1931 = load float, ptr %1930, align 4, !tbaa !16
  store float %1931, ptr %27, align 4, !tbaa !11
  %1932 = load float, ptr %27, align 4, !tbaa !11
  %1933 = fcmp oge float %1932, 0.000000e+00
  br i1 %1933, label %1934, label %1936

1934:                                             ; preds = %1929
  %1935 = load float, ptr %27, align 4, !tbaa !11
  br label %1939

1936:                                             ; preds = %1929
  %1937 = load float, ptr %27, align 4, !tbaa !11
  %1938 = fneg float %1937
  br label %1939

1939:                                             ; preds = %1936, %1934
  %1940 = phi float [ %1935, %1934 ], [ %1938, %1936 ]
  %1941 = fpext float %1940 to double
  %1942 = call double @r_imag(ptr noundef %46)
  %1943 = fptrunc double %1942 to float
  store float %1943, ptr %28, align 4, !tbaa !11
  %1944 = load float, ptr %28, align 4, !tbaa !11
  %1945 = fcmp oge float %1944, 0.000000e+00
  br i1 %1945, label %1946, label %1948

1946:                                             ; preds = %1939
  %1947 = load float, ptr %28, align 4, !tbaa !11
  br label %1951

1948:                                             ; preds = %1939
  %1949 = load float, ptr %28, align 4, !tbaa !11
  %1950 = fneg float %1949
  br label %1951

1951:                                             ; preds = %1948, %1946
  %1952 = phi float [ %1947, %1946 ], [ %1950, %1948 ]
  %1953 = fpext float %1952 to double
  %1954 = fadd double %1941, %1953
  %1955 = fptrunc double %1954 to float
  store float %1955, ptr %40, align 4, !tbaa !11
  %1956 = load float, ptr %40, align 4, !tbaa !11
  %1957 = load float, ptr %57, align 4, !tbaa !11
  %1958 = fcmp ogt float %1956, %1957
  br i1 %1958, label %1959, label %2000

1959:                                             ; preds = %1951
  %1960 = load float, ptr %40, align 4, !tbaa !11
  %1961 = fcmp olt float %1960, 1.000000e+00
  br i1 %1961, label %1962, label %1983

1962:                                             ; preds = %1959
  %1963 = load float, ptr %38, align 4, !tbaa !11
  %1964 = load float, ptr %40, align 4, !tbaa !11
  %1965 = load float, ptr %54, align 4, !tbaa !11
  %1966 = fmul float %1964, %1965
  %1967 = fcmp ogt float %1963, %1966
  br i1 %1967, label %1968, label %1982

1968:                                             ; preds = %1962
  %1969 = load float, ptr %38, align 4, !tbaa !11
  %1970 = fdiv float 1.000000e+00, %1969
  store float %1970, ptr %39, align 4, !tbaa !11
  %1971 = load ptr, ptr %16, align 8, !tbaa !5
  %1972 = load ptr, ptr %18, align 8, !tbaa !5
  %1973 = getelementptr inbounds %struct.complex, ptr %1972, i64 1
  %1974 = call i32 @f2c_csscal(ptr noundef %1971, ptr noundef %39, ptr noundef %1973, ptr noundef @c__1)
  %1975 = load float, ptr %39, align 4, !tbaa !11
  %1976 = load ptr, ptr %19, align 8, !tbaa !5
  %1977 = load float, ptr %1976, align 4, !tbaa !11
  %1978 = fmul float %1977, %1975
  store float %1978, ptr %1976, align 4, !tbaa !11
  %1979 = load float, ptr %39, align 4, !tbaa !11
  %1980 = load float, ptr %47, align 4, !tbaa !11
  %1981 = fmul float %1980, %1979
  store float %1981, ptr %47, align 4, !tbaa !11
  br label %1982

1982:                                             ; preds = %1968, %1962
  br label %1983

1983:                                             ; preds = %1982, %1959
  %1984 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1984, ptr %24, align 8, !tbaa !9
  %1985 = load ptr, ptr %18, align 8, !tbaa !5
  %1986 = load i64, ptr %36, align 8, !tbaa !9
  %1987 = getelementptr inbounds %struct.complex, ptr %1985, i64 %1986
  call void @cladiv_(ptr noundef %31, ptr noundef %1987, ptr noundef %46)
  %1988 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1989 = load float, ptr %1988, align 4, !tbaa !16
  %1990 = load ptr, ptr %18, align 8, !tbaa !5
  %1991 = load i64, ptr %24, align 8, !tbaa !9
  %1992 = getelementptr inbounds %struct.complex, ptr %1990, i64 %1991
  %1993 = getelementptr inbounds %struct.complex, ptr %1992, i32 0, i32 0
  store float %1989, ptr %1993, align 4, !tbaa !16
  %1994 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1995 = load float, ptr %1994, align 4, !tbaa !19
  %1996 = load ptr, ptr %18, align 8, !tbaa !5
  %1997 = load i64, ptr %24, align 8, !tbaa !9
  %1998 = getelementptr inbounds %struct.complex, ptr %1996, i64 %1997
  %1999 = getelementptr inbounds %struct.complex, ptr %1998, i32 0, i32 1
  store float %1995, ptr %1999, align 4, !tbaa !19
  br label %2075

2000:                                             ; preds = %1951
  %2001 = load float, ptr %40, align 4, !tbaa !11
  %2002 = fcmp ogt float %2001, 0.000000e+00
  br i1 %2002, label %2003, label %2043

2003:                                             ; preds = %2000
  %2004 = load float, ptr %38, align 4, !tbaa !11
  %2005 = load float, ptr %40, align 4, !tbaa !11
  %2006 = load float, ptr %54, align 4, !tbaa !11
  %2007 = fmul float %2005, %2006
  %2008 = fcmp ogt float %2004, %2007
  br i1 %2008, label %2009, label %2026

2009:                                             ; preds = %2003
  %2010 = load float, ptr %40, align 4, !tbaa !11
  %2011 = load float, ptr %54, align 4, !tbaa !11
  %2012 = fmul float %2010, %2011
  %2013 = load float, ptr %38, align 4, !tbaa !11
  %2014 = fdiv float %2012, %2013
  store float %2014, ptr %39, align 4, !tbaa !11
  %2015 = load ptr, ptr %16, align 8, !tbaa !5
  %2016 = load ptr, ptr %18, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.complex, ptr %2016, i64 1
  %2018 = call i32 @f2c_csscal(ptr noundef %2015, ptr noundef %39, ptr noundef %2017, ptr noundef @c__1)
  %2019 = load float, ptr %39, align 4, !tbaa !11
  %2020 = load ptr, ptr %19, align 8, !tbaa !5
  %2021 = load float, ptr %2020, align 4, !tbaa !11
  %2022 = fmul float %2021, %2019
  store float %2022, ptr %2020, align 4, !tbaa !11
  %2023 = load float, ptr %39, align 4, !tbaa !11
  %2024 = load float, ptr %47, align 4, !tbaa !11
  %2025 = fmul float %2024, %2023
  store float %2025, ptr %47, align 4, !tbaa !11
  br label %2026

2026:                                             ; preds = %2009, %2003
  %2027 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2027, ptr %24, align 8, !tbaa !9
  %2028 = load ptr, ptr %18, align 8, !tbaa !5
  %2029 = load i64, ptr %36, align 8, !tbaa !9
  %2030 = getelementptr inbounds %struct.complex, ptr %2028, i64 %2029
  call void @cladiv_(ptr noundef %31, ptr noundef %2030, ptr noundef %46)
  %2031 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2032 = load float, ptr %2031, align 4, !tbaa !16
  %2033 = load ptr, ptr %18, align 8, !tbaa !5
  %2034 = load i64, ptr %24, align 8, !tbaa !9
  %2035 = getelementptr inbounds %struct.complex, ptr %2033, i64 %2034
  %2036 = getelementptr inbounds %struct.complex, ptr %2035, i32 0, i32 0
  store float %2032, ptr %2036, align 4, !tbaa !16
  %2037 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2038 = load float, ptr %2037, align 4, !tbaa !19
  %2039 = load ptr, ptr %18, align 8, !tbaa !5
  %2040 = load i64, ptr %24, align 8, !tbaa !9
  %2041 = getelementptr inbounds %struct.complex, ptr %2039, i64 %2040
  %2042 = getelementptr inbounds %struct.complex, ptr %2041, i32 0, i32 1
  store float %2038, ptr %2042, align 4, !tbaa !19
  br label %2074

2043:                                             ; preds = %2000
  %2044 = load ptr, ptr %16, align 8, !tbaa !5
  %2045 = load i64, ptr %2044, align 8, !tbaa !9
  store i64 %2045, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  br label %2046

2046:                                             ; preds = %2060, %2043
  %2047 = load i64, ptr %35, align 8, !tbaa !9
  %2048 = load i64, ptr %24, align 8, !tbaa !9
  %2049 = icmp sle i64 %2047, %2048
  br i1 %2049, label %2050, label %2063

2050:                                             ; preds = %2046
  %2051 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %2051, ptr %25, align 8, !tbaa !9
  %2052 = load ptr, ptr %18, align 8, !tbaa !5
  %2053 = load i64, ptr %25, align 8, !tbaa !9
  %2054 = getelementptr inbounds %struct.complex, ptr %2052, i64 %2053
  %2055 = getelementptr inbounds %struct.complex, ptr %2054, i32 0, i32 0
  store float 0.000000e+00, ptr %2055, align 4, !tbaa !16
  %2056 = load ptr, ptr %18, align 8, !tbaa !5
  %2057 = load i64, ptr %25, align 8, !tbaa !9
  %2058 = getelementptr inbounds %struct.complex, ptr %2056, i64 %2057
  %2059 = getelementptr inbounds %struct.complex, ptr %2058, i32 0, i32 1
  store float 0.000000e+00, ptr %2059, align 4, !tbaa !19
  br label %2060

2060:                                             ; preds = %2050
  %2061 = load i64, ptr %35, align 8, !tbaa !9
  %2062 = add nsw i64 %2061, 1
  store i64 %2062, ptr %35, align 8, !tbaa !9
  br label %2046, !llvm.loop !28

2063:                                             ; preds = %2046
  %2064 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2064, ptr %24, align 8, !tbaa !9
  %2065 = load ptr, ptr %18, align 8, !tbaa !5
  %2066 = load i64, ptr %24, align 8, !tbaa !9
  %2067 = getelementptr inbounds %struct.complex, ptr %2065, i64 %2066
  %2068 = getelementptr inbounds %struct.complex, ptr %2067, i32 0, i32 0
  store float 1.000000e+00, ptr %2068, align 4, !tbaa !16
  %2069 = load ptr, ptr %18, align 8, !tbaa !5
  %2070 = load i64, ptr %24, align 8, !tbaa !9
  %2071 = getelementptr inbounds %struct.complex, ptr %2069, i64 %2070
  %2072 = getelementptr inbounds %struct.complex, ptr %2071, i32 0, i32 1
  store float 0.000000e+00, ptr %2072, align 4, !tbaa !19
  %2073 = load ptr, ptr %19, align 8, !tbaa !5
  store float 0.000000e+00, ptr %2073, align 4, !tbaa !11
  store float 0.000000e+00, ptr %47, align 4, !tbaa !11
  br label %2074

2074:                                             ; preds = %2063, %2026
  br label %2075

2075:                                             ; preds = %2074, %1983
  br label %2076

2076:                                             ; preds = %2075, %1927
  br label %2106

2077:                                             ; preds = %1823, %1814
  %2078 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2078, ptr %24, align 8, !tbaa !9
  %2079 = load ptr, ptr %18, align 8, !tbaa !5
  %2080 = load i64, ptr %36, align 8, !tbaa !9
  %2081 = getelementptr inbounds %struct.complex, ptr %2079, i64 %2080
  call void @cladiv_(ptr noundef %32, ptr noundef %2081, ptr noundef %46)
  %2082 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %2083 = load float, ptr %2082, align 4, !tbaa !16
  %2084 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %2085 = load float, ptr %2084, align 4, !tbaa !16
  %2086 = fsub float %2083, %2085
  %2087 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %2086, ptr %2087, align 4, !tbaa !16
  %2088 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %2089 = load float, ptr %2088, align 4, !tbaa !19
  %2090 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %2091 = load float, ptr %2090, align 4, !tbaa !19
  %2092 = fsub float %2089, %2091
  %2093 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %2092, ptr %2093, align 4, !tbaa !19
  %2094 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2095 = load float, ptr %2094, align 4, !tbaa !16
  %2096 = load ptr, ptr %18, align 8, !tbaa !5
  %2097 = load i64, ptr %24, align 8, !tbaa !9
  %2098 = getelementptr inbounds %struct.complex, ptr %2096, i64 %2097
  %2099 = getelementptr inbounds %struct.complex, ptr %2098, i32 0, i32 0
  store float %2095, ptr %2099, align 4, !tbaa !16
  %2100 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2101 = load float, ptr %2100, align 4, !tbaa !19
  %2102 = load ptr, ptr %18, align 8, !tbaa !5
  %2103 = load i64, ptr %24, align 8, !tbaa !9
  %2104 = getelementptr inbounds %struct.complex, ptr %2102, i64 %2103
  %2105 = getelementptr inbounds %struct.complex, ptr %2104, i32 0, i32 1
  store float %2101, ptr %2105, align 4, !tbaa !19
  br label %2106

2106:                                             ; preds = %2077, %2076
  %2107 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2107, ptr %24, align 8, !tbaa !9
  %2108 = load float, ptr %47, align 4, !tbaa !11
  store float %2108, ptr %29, align 4, !tbaa !11
  %2109 = load ptr, ptr %18, align 8, !tbaa !5
  %2110 = load i64, ptr %24, align 8, !tbaa !9
  %2111 = getelementptr inbounds %struct.complex, ptr %2109, i64 %2110
  %2112 = getelementptr inbounds %struct.complex, ptr %2111, i32 0, i32 0
  %2113 = load float, ptr %2112, align 4, !tbaa !16
  store float %2113, ptr %27, align 4, !tbaa !11
  %2114 = load float, ptr %27, align 4, !tbaa !11
  %2115 = fcmp oge float %2114, 0.000000e+00
  br i1 %2115, label %2116, label %2118

2116:                                             ; preds = %2106
  %2117 = load float, ptr %27, align 4, !tbaa !11
  br label %2121

2118:                                             ; preds = %2106
  %2119 = load float, ptr %27, align 4, !tbaa !11
  %2120 = fneg float %2119
  br label %2121

2121:                                             ; preds = %2118, %2116
  %2122 = phi float [ %2117, %2116 ], [ %2120, %2118 ]
  %2123 = fpext float %2122 to double
  %2124 = load ptr, ptr %18, align 8, !tbaa !5
  %2125 = load i64, ptr %36, align 8, !tbaa !9
  %2126 = getelementptr inbounds %struct.complex, ptr %2124, i64 %2125
  %2127 = call double @r_imag(ptr noundef %2126)
  %2128 = fptrunc double %2127 to float
  store float %2128, ptr %28, align 4, !tbaa !11
  %2129 = load float, ptr %28, align 4, !tbaa !11
  %2130 = fcmp oge float %2129, 0.000000e+00
  br i1 %2130, label %2131, label %2133

2131:                                             ; preds = %2121
  %2132 = load float, ptr %28, align 4, !tbaa !11
  br label %2136

2133:                                             ; preds = %2121
  %2134 = load float, ptr %28, align 4, !tbaa !11
  %2135 = fneg float %2134
  br label %2136

2136:                                             ; preds = %2133, %2131
  %2137 = phi float [ %2132, %2131 ], [ %2135, %2133 ]
  %2138 = fpext float %2137 to double
  %2139 = fadd double %2123, %2138
  %2140 = fptrunc double %2139 to float
  store float %2140, ptr %30, align 4, !tbaa !11
  %2141 = load float, ptr %29, align 4, !tbaa !11
  %2142 = load float, ptr %30, align 4, !tbaa !11
  %2143 = fcmp oge float %2141, %2142
  br i1 %2143, label %2144, label %2146

2144:                                             ; preds = %2136
  %2145 = load float, ptr %29, align 4, !tbaa !11
  br label %2148

2146:                                             ; preds = %2136
  %2147 = load float, ptr %30, align 4, !tbaa !11
  br label %2148

2148:                                             ; preds = %2146, %2144
  %2149 = phi float [ %2145, %2144 ], [ %2147, %2146 ]
  %2150 = fpext float %2149 to double
  %2151 = fptrunc double %2150 to float
  store float %2151, ptr %47, align 4, !tbaa !11
  %2152 = load i64, ptr %42, align 8, !tbaa !9
  %2153 = add nsw i64 %2152, 1
  store i64 %2153, ptr %42, align 8, !tbaa !9
  %2154 = load i64, ptr %41, align 8, !tbaa !9
  %2155 = load i64, ptr %42, align 8, !tbaa !9
  %2156 = mul nsw i64 %2154, %2155
  %2157 = load i64, ptr %37, align 8, !tbaa !9
  %2158 = add nsw i64 %2157, %2156
  store i64 %2158, ptr %37, align 8, !tbaa !9
  br label %2159

2159:                                             ; preds = %2148
  %2160 = load i64, ptr %22, align 8, !tbaa !9
  %2161 = load i64, ptr %36, align 8, !tbaa !9
  %2162 = add nsw i64 %2161, %2160
  store i64 %2162, ptr %36, align 8, !tbaa !9
  br label %1362, !llvm.loop !29

2163:                                             ; preds = %1375
  br label %2947

2164:                                             ; preds = %1349
  %2165 = load i64, ptr %56, align 8, !tbaa !9
  %2166 = load i64, ptr %56, align 8, !tbaa !9
  %2167 = add nsw i64 %2166, 1
  %2168 = mul nsw i64 %2165, %2167
  %2169 = sdiv i64 %2168, 2
  store i64 %2169, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %42, align 8, !tbaa !9
  %2170 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %2170, ptr %22, align 8, !tbaa !9
  %2171 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %2171, ptr %23, align 8, !tbaa !9
  %2172 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %2172, ptr %36, align 8, !tbaa !9
  br label %2173

2173:                                             ; preds = %2942, %2164
  %2174 = load i64, ptr %23, align 8, !tbaa !9
  %2175 = icmp slt i64 %2174, 0
  br i1 %2175, label %2176, label %2181

2176:                                             ; preds = %2173
  %2177 = load i64, ptr %36, align 8, !tbaa !9
  %2178 = load i64, ptr %22, align 8, !tbaa !9
  %2179 = icmp sge i64 %2177, %2178
  %2180 = zext i1 %2179 to i32
  br label %2186

2181:                                             ; preds = %2173
  %2182 = load i64, ptr %36, align 8, !tbaa !9
  %2183 = load i64, ptr %22, align 8, !tbaa !9
  %2184 = icmp sle i64 %2182, %2183
  %2185 = zext i1 %2184 to i32
  br label %2186

2186:                                             ; preds = %2181, %2176
  %2187 = phi i32 [ %2180, %2176 ], [ %2185, %2181 ]
  %2188 = icmp ne i32 %2187, 0
  br i1 %2188, label %2189, label %2946

2189:                                             ; preds = %2186
  %2190 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2190, ptr %24, align 8, !tbaa !9
  %2191 = load ptr, ptr %18, align 8, !tbaa !5
  %2192 = load i64, ptr %24, align 8, !tbaa !9
  %2193 = getelementptr inbounds %struct.complex, ptr %2191, i64 %2192
  %2194 = getelementptr inbounds %struct.complex, ptr %2193, i32 0, i32 0
  %2195 = load float, ptr %2194, align 4, !tbaa !16
  store float %2195, ptr %27, align 4, !tbaa !11
  %2196 = load float, ptr %27, align 4, !tbaa !11
  %2197 = fcmp oge float %2196, 0.000000e+00
  br i1 %2197, label %2198, label %2200

2198:                                             ; preds = %2189
  %2199 = load float, ptr %27, align 4, !tbaa !11
  br label %2203

2200:                                             ; preds = %2189
  %2201 = load float, ptr %27, align 4, !tbaa !11
  %2202 = fneg float %2201
  br label %2203

2203:                                             ; preds = %2200, %2198
  %2204 = phi float [ %2199, %2198 ], [ %2202, %2200 ]
  %2205 = fpext float %2204 to double
  %2206 = load ptr, ptr %18, align 8, !tbaa !5
  %2207 = load i64, ptr %36, align 8, !tbaa !9
  %2208 = getelementptr inbounds %struct.complex, ptr %2206, i64 %2207
  %2209 = call double @r_imag(ptr noundef %2208)
  %2210 = fptrunc double %2209 to float
  store float %2210, ptr %28, align 4, !tbaa !11
  %2211 = load float, ptr %28, align 4, !tbaa !11
  %2212 = fcmp oge float %2211, 0.000000e+00
  br i1 %2212, label %2213, label %2215

2213:                                             ; preds = %2203
  %2214 = load float, ptr %28, align 4, !tbaa !11
  br label %2218

2215:                                             ; preds = %2203
  %2216 = load float, ptr %28, align 4, !tbaa !11
  %2217 = fneg float %2216
  br label %2218

2218:                                             ; preds = %2215, %2213
  %2219 = phi float [ %2214, %2213 ], [ %2217, %2215 ]
  %2220 = fpext float %2219 to double
  %2221 = fadd double %2205, %2220
  %2222 = fptrunc double %2221 to float
  store float %2222, ptr %38, align 4, !tbaa !11
  %2223 = load float, ptr %49, align 4, !tbaa !11
  %2224 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %2223, ptr %2224, align 4, !tbaa !16
  %2225 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float 0.000000e+00, ptr %2225, align 4, !tbaa !19
  %2226 = load float, ptr %47, align 4, !tbaa !11
  %2227 = fcmp oge float %2226, 1.000000e+00
  br i1 %2227, label %2228, label %2230

2228:                                             ; preds = %2218
  %2229 = load float, ptr %47, align 4, !tbaa !11
  br label %2231

2230:                                             ; preds = %2218
  br label %2231

2231:                                             ; preds = %2230, %2228
  %2232 = phi float [ %2229, %2228 ], [ 1.000000e+00, %2230 ]
  %2233 = fpext float %2232 to double
  %2234 = fdiv double 1.000000e+00, %2233
  %2235 = fptrunc double %2234 to float
  store float %2235, ptr %39, align 4, !tbaa !11
  %2236 = load ptr, ptr %20, align 8, !tbaa !5
  %2237 = load i64, ptr %36, align 8, !tbaa !9
  %2238 = getelementptr inbounds float, ptr %2236, i64 %2237
  %2239 = load float, ptr %2238, align 4, !tbaa !11
  %2240 = load float, ptr %54, align 4, !tbaa !11
  %2241 = load float, ptr %38, align 4, !tbaa !11
  %2242 = fsub float %2240, %2241
  %2243 = load float, ptr %39, align 4, !tbaa !11
  %2244 = fmul float %2242, %2243
  %2245 = fcmp ogt float %2239, %2244
  br i1 %2245, label %2246, label %2341

2246:                                             ; preds = %2231
  %2247 = load float, ptr %39, align 4, !tbaa !11
  %2248 = fmul float %2247, 5.000000e-01
  store float %2248, ptr %39, align 4, !tbaa !11
  %2249 = load i64, ptr %58, align 8, !tbaa !9
  %2250 = icmp ne i64 %2249, 0
  br i1 %2250, label %2251, label %2271

2251:                                             ; preds = %2246
  %2252 = load ptr, ptr %17, align 8, !tbaa !5
  %2253 = load i64, ptr %37, align 8, !tbaa !9
  %2254 = getelementptr inbounds %struct.complex, ptr %2252, i64 %2253
  call void @r_cnjg(ptr noundef %32, ptr noundef %2254)
  %2255 = load float, ptr %49, align 4, !tbaa !11
  %2256 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %2257 = load float, ptr %2256, align 4, !tbaa !16
  %2258 = fmul float %2255, %2257
  %2259 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %2258, ptr %2259, align 4, !tbaa !16
  %2260 = load float, ptr %49, align 4, !tbaa !11
  %2261 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %2262 = load float, ptr %2261, align 4, !tbaa !19
  %2263 = fmul float %2260, %2262
  %2264 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %2263, ptr %2264, align 4, !tbaa !19
  %2265 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2266 = load float, ptr %2265, align 4, !tbaa !16
  %2267 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2266, ptr %2267, align 4, !tbaa !16
  %2268 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2269 = load float, ptr %2268, align 4, !tbaa !19
  %2270 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2269, ptr %2270, align 4, !tbaa !19
  br label %2275

2271:                                             ; preds = %2246
  %2272 = load float, ptr %49, align 4, !tbaa !11
  %2273 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2272, ptr %2273, align 4, !tbaa !16
  %2274 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %2274, align 4, !tbaa !19
  br label %2275

2275:                                             ; preds = %2271, %2251
  %2276 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2277 = load float, ptr %2276, align 4, !tbaa !16
  store float %2277, ptr %27, align 4, !tbaa !11
  %2278 = load float, ptr %27, align 4, !tbaa !11
  %2279 = fcmp oge float %2278, 0.000000e+00
  br i1 %2279, label %2280, label %2282

2280:                                             ; preds = %2275
  %2281 = load float, ptr %27, align 4, !tbaa !11
  br label %2285

2282:                                             ; preds = %2275
  %2283 = load float, ptr %27, align 4, !tbaa !11
  %2284 = fneg float %2283
  br label %2285

2285:                                             ; preds = %2282, %2280
  %2286 = phi float [ %2281, %2280 ], [ %2284, %2282 ]
  %2287 = fpext float %2286 to double
  %2288 = call double @r_imag(ptr noundef %46)
  %2289 = fptrunc double %2288 to float
  store float %2289, ptr %28, align 4, !tbaa !11
  %2290 = load float, ptr %28, align 4, !tbaa !11
  %2291 = fcmp oge float %2290, 0.000000e+00
  br i1 %2291, label %2292, label %2294

2292:                                             ; preds = %2285
  %2293 = load float, ptr %28, align 4, !tbaa !11
  br label %2297

2294:                                             ; preds = %2285
  %2295 = load float, ptr %28, align 4, !tbaa !11
  %2296 = fneg float %2295
  br label %2297

2297:                                             ; preds = %2294, %2292
  %2298 = phi float [ %2293, %2292 ], [ %2296, %2294 ]
  %2299 = fpext float %2298 to double
  %2300 = fadd double %2287, %2299
  %2301 = fptrunc double %2300 to float
  store float %2301, ptr %40, align 4, !tbaa !11
  %2302 = load float, ptr %40, align 4, !tbaa !11
  %2303 = fcmp ogt float %2302, 1.000000e+00
  br i1 %2303, label %2304, label %2325

2304:                                             ; preds = %2297
  store float 1.000000e+00, ptr %27, align 4, !tbaa !11
  %2305 = load float, ptr %39, align 4, !tbaa !11
  %2306 = load float, ptr %40, align 4, !tbaa !11
  %2307 = fmul float %2305, %2306
  store float %2307, ptr %28, align 4, !tbaa !11
  %2308 = load float, ptr %27, align 4, !tbaa !11
  %2309 = load float, ptr %28, align 4, !tbaa !11
  %2310 = fcmp ole float %2308, %2309
  br i1 %2310, label %2311, label %2313

2311:                                             ; preds = %2304
  %2312 = load float, ptr %27, align 4, !tbaa !11
  br label %2315

2313:                                             ; preds = %2304
  %2314 = load float, ptr %28, align 4, !tbaa !11
  br label %2315

2315:                                             ; preds = %2313, %2311
  %2316 = phi float [ %2312, %2311 ], [ %2314, %2313 ]
  %2317 = fpext float %2316 to double
  %2318 = fptrunc double %2317 to float
  store float %2318, ptr %39, align 4, !tbaa !11
  call void @cladiv_(ptr noundef %31, ptr noundef %50, ptr noundef %46)
  %2319 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2320 = load float, ptr %2319, align 4, !tbaa !16
  %2321 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %2320, ptr %2321, align 4, !tbaa !16
  %2322 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2323 = load float, ptr %2322, align 4, !tbaa !19
  %2324 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %2323, ptr %2324, align 4, !tbaa !19
  br label %2325

2325:                                             ; preds = %2315, %2297
  %2326 = load float, ptr %39, align 4, !tbaa !11
  %2327 = fcmp olt float %2326, 1.000000e+00
  br i1 %2327, label %2328, label %2340

2328:                                             ; preds = %2325
  %2329 = load ptr, ptr %16, align 8, !tbaa !5
  %2330 = load ptr, ptr %18, align 8, !tbaa !5
  %2331 = getelementptr inbounds %struct.complex, ptr %2330, i64 1
  %2332 = call i32 @f2c_csscal(ptr noundef %2329, ptr noundef %39, ptr noundef %2331, ptr noundef @c__1)
  %2333 = load float, ptr %39, align 4, !tbaa !11
  %2334 = load ptr, ptr %19, align 8, !tbaa !5
  %2335 = load float, ptr %2334, align 4, !tbaa !11
  %2336 = fmul float %2335, %2333
  store float %2336, ptr %2334, align 4, !tbaa !11
  %2337 = load float, ptr %39, align 4, !tbaa !11
  %2338 = load float, ptr %47, align 4, !tbaa !11
  %2339 = fmul float %2338, %2337
  store float %2339, ptr %47, align 4, !tbaa !11
  br label %2340

2340:                                             ; preds = %2328, %2325
  br label %2341

2341:                                             ; preds = %2340, %2231
  %2342 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float 0.000000e+00, ptr %2342, align 4, !tbaa !16
  %2343 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float 0.000000e+00, ptr %2343, align 4, !tbaa !19
  %2344 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2345 = load float, ptr %2344, align 4, !tbaa !16
  %2346 = fcmp oeq float %2345, 1.000000e+00
  br i1 %2346, label %2347, label %2397

2347:                                             ; preds = %2341
  %2348 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2349 = load float, ptr %2348, align 4, !tbaa !19
  %2350 = fcmp oeq float %2349, 0.000000e+00
  br i1 %2350, label %2351, label %2397

2351:                                             ; preds = %2347
  %2352 = load i64, ptr %53, align 8, !tbaa !9
  %2353 = icmp ne i64 %2352, 0
  br i1 %2353, label %2354, label %2371

2354:                                             ; preds = %2351
  %2355 = load i64, ptr %36, align 8, !tbaa !9
  %2356 = sub nsw i64 %2355, 1
  store i64 %2356, ptr %24, align 8, !tbaa !9
  %2357 = load ptr, ptr %17, align 8, !tbaa !5
  %2358 = load i64, ptr %37, align 8, !tbaa !9
  %2359 = load i64, ptr %36, align 8, !tbaa !9
  %2360 = sub nsw i64 %2358, %2359
  %2361 = add nsw i64 %2360, 1
  %2362 = getelementptr inbounds %struct.complex, ptr %2357, i64 %2361
  %2363 = load ptr, ptr %18, align 8, !tbaa !5
  %2364 = getelementptr inbounds %struct.complex, ptr %2363, i64 1
  call void @f2c_cdotc(ptr noundef %31, ptr noundef %24, ptr noundef %2362, ptr noundef @c__1, ptr noundef %2364, ptr noundef @c__1)
  %2365 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2366 = load float, ptr %2365, align 4, !tbaa !16
  %2367 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %2366, ptr %2367, align 4, !tbaa !16
  %2368 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2369 = load float, ptr %2368, align 4, !tbaa !19
  %2370 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %2369, ptr %2370, align 4, !tbaa !19
  br label %2396

2371:                                             ; preds = %2351
  %2372 = load i64, ptr %36, align 8, !tbaa !9
  %2373 = load ptr, ptr %16, align 8, !tbaa !5
  %2374 = load i64, ptr %2373, align 8, !tbaa !9
  %2375 = icmp slt i64 %2372, %2374
  br i1 %2375, label %2376, label %2395

2376:                                             ; preds = %2371
  %2377 = load ptr, ptr %16, align 8, !tbaa !5
  %2378 = load i64, ptr %2377, align 8, !tbaa !9
  %2379 = load i64, ptr %36, align 8, !tbaa !9
  %2380 = sub nsw i64 %2378, %2379
  store i64 %2380, ptr %24, align 8, !tbaa !9
  %2381 = load ptr, ptr %17, align 8, !tbaa !5
  %2382 = load i64, ptr %37, align 8, !tbaa !9
  %2383 = add nsw i64 %2382, 1
  %2384 = getelementptr inbounds %struct.complex, ptr %2381, i64 %2383
  %2385 = load ptr, ptr %18, align 8, !tbaa !5
  %2386 = load i64, ptr %36, align 8, !tbaa !9
  %2387 = add nsw i64 %2386, 1
  %2388 = getelementptr inbounds %struct.complex, ptr %2385, i64 %2387
  call void @f2c_cdotc(ptr noundef %31, ptr noundef %24, ptr noundef %2384, ptr noundef @c__1, ptr noundef %2388, ptr noundef @c__1)
  %2389 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2390 = load float, ptr %2389, align 4, !tbaa !16
  %2391 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %2390, ptr %2391, align 4, !tbaa !16
  %2392 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2393 = load float, ptr %2392, align 4, !tbaa !19
  %2394 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %2393, ptr %2394, align 4, !tbaa !19
  br label %2395

2395:                                             ; preds = %2376, %2371
  br label %2396

2396:                                             ; preds = %2395, %2354
  br label %2601

2397:                                             ; preds = %2347, %2341
  %2398 = load i64, ptr %53, align 8, !tbaa !9
  %2399 = icmp ne i64 %2398, 0
  br i1 %2399, label %2400, label %2496

2400:                                             ; preds = %2397
  %2401 = load i64, ptr %36, align 8, !tbaa !9
  %2402 = sub nsw i64 %2401, 1
  store i64 %2402, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  br label %2403

2403:                                             ; preds = %2492, %2400
  %2404 = load i64, ptr %35, align 8, !tbaa !9
  %2405 = load i64, ptr %24, align 8, !tbaa !9
  %2406 = icmp sle i64 %2404, %2405
  br i1 %2406, label %2407, label %2495

2407:                                             ; preds = %2403
  %2408 = load ptr, ptr %17, align 8, !tbaa !5
  %2409 = load i64, ptr %37, align 8, !tbaa !9
  %2410 = load i64, ptr %36, align 8, !tbaa !9
  %2411 = sub nsw i64 %2409, %2410
  %2412 = load i64, ptr %35, align 8, !tbaa !9
  %2413 = add nsw i64 %2411, %2412
  %2414 = getelementptr inbounds %struct.complex, ptr %2408, i64 %2413
  call void @r_cnjg(ptr noundef %34, ptr noundef %2414)
  %2415 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2416 = load float, ptr %2415, align 4, !tbaa !16
  %2417 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2418 = load float, ptr %2417, align 4, !tbaa !16
  %2419 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2420 = load float, ptr %2419, align 4, !tbaa !19
  %2421 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2422 = load float, ptr %2421, align 4, !tbaa !19
  %2423 = fmul float %2420, %2422
  %2424 = fneg float %2423
  %2425 = call float @llvm.fmuladd.f32(float %2416, float %2418, float %2424)
  %2426 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  store float %2425, ptr %2426, align 4, !tbaa !16
  %2427 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2428 = load float, ptr %2427, align 4, !tbaa !16
  %2429 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2430 = load float, ptr %2429, align 4, !tbaa !19
  %2431 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2432 = load float, ptr %2431, align 4, !tbaa !19
  %2433 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2434 = load float, ptr %2433, align 4, !tbaa !16
  %2435 = fmul float %2432, %2434
  %2436 = call float @llvm.fmuladd.f32(float %2428, float %2430, float %2435)
  %2437 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  store float %2436, ptr %2437, align 4, !tbaa !19
  %2438 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %2438, ptr %25, align 8, !tbaa !9
  %2439 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %2440 = load float, ptr %2439, align 4, !tbaa !16
  %2441 = load ptr, ptr %18, align 8, !tbaa !5
  %2442 = load i64, ptr %25, align 8, !tbaa !9
  %2443 = getelementptr inbounds %struct.complex, ptr %2441, i64 %2442
  %2444 = getelementptr inbounds %struct.complex, ptr %2443, i32 0, i32 0
  %2445 = load float, ptr %2444, align 4, !tbaa !16
  %2446 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %2447 = load float, ptr %2446, align 4, !tbaa !19
  %2448 = load ptr, ptr %18, align 8, !tbaa !5
  %2449 = load i64, ptr %25, align 8, !tbaa !9
  %2450 = getelementptr inbounds %struct.complex, ptr %2448, i64 %2449
  %2451 = getelementptr inbounds %struct.complex, ptr %2450, i32 0, i32 1
  %2452 = load float, ptr %2451, align 4, !tbaa !19
  %2453 = fmul float %2447, %2452
  %2454 = fneg float %2453
  %2455 = call float @llvm.fmuladd.f32(float %2440, float %2445, float %2454)
  %2456 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %2455, ptr %2456, align 4, !tbaa !16
  %2457 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %2458 = load float, ptr %2457, align 4, !tbaa !16
  %2459 = load ptr, ptr %18, align 8, !tbaa !5
  %2460 = load i64, ptr %25, align 8, !tbaa !9
  %2461 = getelementptr inbounds %struct.complex, ptr %2459, i64 %2460
  %2462 = getelementptr inbounds %struct.complex, ptr %2461, i32 0, i32 1
  %2463 = load float, ptr %2462, align 4, !tbaa !19
  %2464 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %2465 = load float, ptr %2464, align 4, !tbaa !19
  %2466 = load ptr, ptr %18, align 8, !tbaa !5
  %2467 = load i64, ptr %25, align 8, !tbaa !9
  %2468 = getelementptr inbounds %struct.complex, ptr %2466, i64 %2467
  %2469 = getelementptr inbounds %struct.complex, ptr %2468, i32 0, i32 0
  %2470 = load float, ptr %2469, align 4, !tbaa !16
  %2471 = fmul float %2465, %2470
  %2472 = call float @llvm.fmuladd.f32(float %2458, float %2463, float %2471)
  %2473 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %2472, ptr %2473, align 4, !tbaa !19
  %2474 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %2475 = load float, ptr %2474, align 4, !tbaa !16
  %2476 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %2477 = load float, ptr %2476, align 4, !tbaa !16
  %2478 = fadd float %2475, %2477
  %2479 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %2478, ptr %2479, align 4, !tbaa !16
  %2480 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %2481 = load float, ptr %2480, align 4, !tbaa !19
  %2482 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %2483 = load float, ptr %2482, align 4, !tbaa !19
  %2484 = fadd float %2481, %2483
  %2485 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %2484, ptr %2485, align 4, !tbaa !19
  %2486 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2487 = load float, ptr %2486, align 4, !tbaa !16
  %2488 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %2487, ptr %2488, align 4, !tbaa !16
  %2489 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2490 = load float, ptr %2489, align 4, !tbaa !19
  %2491 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %2490, ptr %2491, align 4, !tbaa !19
  br label %2492

2492:                                             ; preds = %2407
  %2493 = load i64, ptr %35, align 8, !tbaa !9
  %2494 = add nsw i64 %2493, 1
  store i64 %2494, ptr %35, align 8, !tbaa !9
  br label %2403, !llvm.loop !30

2495:                                             ; preds = %2403
  br label %2600

2496:                                             ; preds = %2397
  %2497 = load i64, ptr %36, align 8, !tbaa !9
  %2498 = load ptr, ptr %16, align 8, !tbaa !5
  %2499 = load i64, ptr %2498, align 8, !tbaa !9
  %2500 = icmp slt i64 %2497, %2499
  br i1 %2500, label %2501, label %2599

2501:                                             ; preds = %2496
  %2502 = load ptr, ptr %16, align 8, !tbaa !5
  %2503 = load i64, ptr %2502, align 8, !tbaa !9
  %2504 = load i64, ptr %36, align 8, !tbaa !9
  %2505 = sub nsw i64 %2503, %2504
  store i64 %2505, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  br label %2506

2506:                                             ; preds = %2595, %2501
  %2507 = load i64, ptr %35, align 8, !tbaa !9
  %2508 = load i64, ptr %24, align 8, !tbaa !9
  %2509 = icmp sle i64 %2507, %2508
  br i1 %2509, label %2510, label %2598

2510:                                             ; preds = %2506
  %2511 = load ptr, ptr %17, align 8, !tbaa !5
  %2512 = load i64, ptr %37, align 8, !tbaa !9
  %2513 = load i64, ptr %35, align 8, !tbaa !9
  %2514 = add nsw i64 %2512, %2513
  %2515 = getelementptr inbounds %struct.complex, ptr %2511, i64 %2514
  call void @r_cnjg(ptr noundef %34, ptr noundef %2515)
  %2516 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2517 = load float, ptr %2516, align 4, !tbaa !16
  %2518 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2519 = load float, ptr %2518, align 4, !tbaa !16
  %2520 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2521 = load float, ptr %2520, align 4, !tbaa !19
  %2522 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2523 = load float, ptr %2522, align 4, !tbaa !19
  %2524 = fmul float %2521, %2523
  %2525 = fneg float %2524
  %2526 = call float @llvm.fmuladd.f32(float %2517, float %2519, float %2525)
  %2527 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  store float %2526, ptr %2527, align 4, !tbaa !16
  %2528 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2529 = load float, ptr %2528, align 4, !tbaa !16
  %2530 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2531 = load float, ptr %2530, align 4, !tbaa !19
  %2532 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2533 = load float, ptr %2532, align 4, !tbaa !19
  %2534 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2535 = load float, ptr %2534, align 4, !tbaa !16
  %2536 = fmul float %2533, %2535
  %2537 = call float @llvm.fmuladd.f32(float %2529, float %2531, float %2536)
  %2538 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  store float %2537, ptr %2538, align 4, !tbaa !19
  %2539 = load i64, ptr %36, align 8, !tbaa !9
  %2540 = load i64, ptr %35, align 8, !tbaa !9
  %2541 = add nsw i64 %2539, %2540
  store i64 %2541, ptr %25, align 8, !tbaa !9
  %2542 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %2543 = load float, ptr %2542, align 4, !tbaa !16
  %2544 = load ptr, ptr %18, align 8, !tbaa !5
  %2545 = load i64, ptr %25, align 8, !tbaa !9
  %2546 = getelementptr inbounds %struct.complex, ptr %2544, i64 %2545
  %2547 = getelementptr inbounds %struct.complex, ptr %2546, i32 0, i32 0
  %2548 = load float, ptr %2547, align 4, !tbaa !16
  %2549 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %2550 = load float, ptr %2549, align 4, !tbaa !19
  %2551 = load ptr, ptr %18, align 8, !tbaa !5
  %2552 = load i64, ptr %25, align 8, !tbaa !9
  %2553 = getelementptr inbounds %struct.complex, ptr %2551, i64 %2552
  %2554 = getelementptr inbounds %struct.complex, ptr %2553, i32 0, i32 1
  %2555 = load float, ptr %2554, align 4, !tbaa !19
  %2556 = fmul float %2550, %2555
  %2557 = fneg float %2556
  %2558 = call float @llvm.fmuladd.f32(float %2543, float %2548, float %2557)
  %2559 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %2558, ptr %2559, align 4, !tbaa !16
  %2560 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %2561 = load float, ptr %2560, align 4, !tbaa !16
  %2562 = load ptr, ptr %18, align 8, !tbaa !5
  %2563 = load i64, ptr %25, align 8, !tbaa !9
  %2564 = getelementptr inbounds %struct.complex, ptr %2562, i64 %2563
  %2565 = getelementptr inbounds %struct.complex, ptr %2564, i32 0, i32 1
  %2566 = load float, ptr %2565, align 4, !tbaa !19
  %2567 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %2568 = load float, ptr %2567, align 4, !tbaa !19
  %2569 = load ptr, ptr %18, align 8, !tbaa !5
  %2570 = load i64, ptr %25, align 8, !tbaa !9
  %2571 = getelementptr inbounds %struct.complex, ptr %2569, i64 %2570
  %2572 = getelementptr inbounds %struct.complex, ptr %2571, i32 0, i32 0
  %2573 = load float, ptr %2572, align 4, !tbaa !16
  %2574 = fmul float %2568, %2573
  %2575 = call float @llvm.fmuladd.f32(float %2561, float %2566, float %2574)
  %2576 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %2575, ptr %2576, align 4, !tbaa !19
  %2577 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %2578 = load float, ptr %2577, align 4, !tbaa !16
  %2579 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %2580 = load float, ptr %2579, align 4, !tbaa !16
  %2581 = fadd float %2578, %2580
  %2582 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %2581, ptr %2582, align 4, !tbaa !16
  %2583 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %2584 = load float, ptr %2583, align 4, !tbaa !19
  %2585 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %2586 = load float, ptr %2585, align 4, !tbaa !19
  %2587 = fadd float %2584, %2586
  %2588 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %2587, ptr %2588, align 4, !tbaa !19
  %2589 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2590 = load float, ptr %2589, align 4, !tbaa !16
  %2591 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %2590, ptr %2591, align 4, !tbaa !16
  %2592 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2593 = load float, ptr %2592, align 4, !tbaa !19
  %2594 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %2593, ptr %2594, align 4, !tbaa !19
  br label %2595

2595:                                             ; preds = %2510
  %2596 = load i64, ptr %35, align 8, !tbaa !9
  %2597 = add nsw i64 %2596, 1
  store i64 %2597, ptr %35, align 8, !tbaa !9
  br label %2506, !llvm.loop !31

2598:                                             ; preds = %2506
  br label %2599

2599:                                             ; preds = %2598, %2496
  br label %2600

2600:                                             ; preds = %2599, %2495
  br label %2601

2601:                                             ; preds = %2600, %2396
  %2602 = load float, ptr %49, align 4, !tbaa !11
  %2603 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %2602, ptr %2603, align 4, !tbaa !16
  %2604 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float 0.000000e+00, ptr %2604, align 4, !tbaa !19
  %2605 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2606 = load float, ptr %2605, align 4, !tbaa !16
  %2607 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2608 = load float, ptr %2607, align 4, !tbaa !16
  %2609 = fcmp oeq float %2606, %2608
  br i1 %2609, label %2610, label %2860

2610:                                             ; preds = %2601
  %2611 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2612 = load float, ptr %2611, align 4, !tbaa !19
  %2613 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2614 = load float, ptr %2613, align 4, !tbaa !19
  %2615 = fcmp oeq float %2612, %2614
  br i1 %2615, label %2616, label %2860

2616:                                             ; preds = %2610
  %2617 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2617, ptr %24, align 8, !tbaa !9
  %2618 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2618, ptr %25, align 8, !tbaa !9
  %2619 = load ptr, ptr %18, align 8, !tbaa !5
  %2620 = load i64, ptr %25, align 8, !tbaa !9
  %2621 = getelementptr inbounds %struct.complex, ptr %2619, i64 %2620
  %2622 = getelementptr inbounds %struct.complex, ptr %2621, i32 0, i32 0
  %2623 = load float, ptr %2622, align 4, !tbaa !16
  %2624 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %2625 = load float, ptr %2624, align 4, !tbaa !16
  %2626 = fsub float %2623, %2625
  %2627 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %2626, ptr %2627, align 4, !tbaa !16
  %2628 = load ptr, ptr %18, align 8, !tbaa !5
  %2629 = load i64, ptr %25, align 8, !tbaa !9
  %2630 = getelementptr inbounds %struct.complex, ptr %2628, i64 %2629
  %2631 = getelementptr inbounds %struct.complex, ptr %2630, i32 0, i32 1
  %2632 = load float, ptr %2631, align 4, !tbaa !19
  %2633 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %2634 = load float, ptr %2633, align 4, !tbaa !19
  %2635 = fsub float %2632, %2634
  %2636 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %2635, ptr %2636, align 4, !tbaa !19
  %2637 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2638 = load float, ptr %2637, align 4, !tbaa !16
  %2639 = load ptr, ptr %18, align 8, !tbaa !5
  %2640 = load i64, ptr %24, align 8, !tbaa !9
  %2641 = getelementptr inbounds %struct.complex, ptr %2639, i64 %2640
  %2642 = getelementptr inbounds %struct.complex, ptr %2641, i32 0, i32 0
  store float %2638, ptr %2642, align 4, !tbaa !16
  %2643 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2644 = load float, ptr %2643, align 4, !tbaa !19
  %2645 = load ptr, ptr %18, align 8, !tbaa !5
  %2646 = load i64, ptr %24, align 8, !tbaa !9
  %2647 = getelementptr inbounds %struct.complex, ptr %2645, i64 %2646
  %2648 = getelementptr inbounds %struct.complex, ptr %2647, i32 0, i32 1
  store float %2644, ptr %2648, align 4, !tbaa !19
  %2649 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2649, ptr %24, align 8, !tbaa !9
  %2650 = load ptr, ptr %18, align 8, !tbaa !5
  %2651 = load i64, ptr %24, align 8, !tbaa !9
  %2652 = getelementptr inbounds %struct.complex, ptr %2650, i64 %2651
  %2653 = getelementptr inbounds %struct.complex, ptr %2652, i32 0, i32 0
  %2654 = load float, ptr %2653, align 4, !tbaa !16
  store float %2654, ptr %27, align 4, !tbaa !11
  %2655 = load float, ptr %27, align 4, !tbaa !11
  %2656 = fcmp oge float %2655, 0.000000e+00
  br i1 %2656, label %2657, label %2659

2657:                                             ; preds = %2616
  %2658 = load float, ptr %27, align 4, !tbaa !11
  br label %2662

2659:                                             ; preds = %2616
  %2660 = load float, ptr %27, align 4, !tbaa !11
  %2661 = fneg float %2660
  br label %2662

2662:                                             ; preds = %2659, %2657
  %2663 = phi float [ %2658, %2657 ], [ %2661, %2659 ]
  %2664 = fpext float %2663 to double
  %2665 = load ptr, ptr %18, align 8, !tbaa !5
  %2666 = load i64, ptr %36, align 8, !tbaa !9
  %2667 = getelementptr inbounds %struct.complex, ptr %2665, i64 %2666
  %2668 = call double @r_imag(ptr noundef %2667)
  %2669 = fptrunc double %2668 to float
  store float %2669, ptr %28, align 4, !tbaa !11
  %2670 = load float, ptr %28, align 4, !tbaa !11
  %2671 = fcmp oge float %2670, 0.000000e+00
  br i1 %2671, label %2672, label %2674

2672:                                             ; preds = %2662
  %2673 = load float, ptr %28, align 4, !tbaa !11
  br label %2677

2674:                                             ; preds = %2662
  %2675 = load float, ptr %28, align 4, !tbaa !11
  %2676 = fneg float %2675
  br label %2677

2677:                                             ; preds = %2674, %2672
  %2678 = phi float [ %2673, %2672 ], [ %2676, %2674 ]
  %2679 = fpext float %2678 to double
  %2680 = fadd double %2664, %2679
  %2681 = fptrunc double %2680 to float
  store float %2681, ptr %38, align 4, !tbaa !11
  %2682 = load i64, ptr %58, align 8, !tbaa !9
  %2683 = icmp ne i64 %2682, 0
  br i1 %2683, label %2684, label %2704

2684:                                             ; preds = %2677
  %2685 = load ptr, ptr %17, align 8, !tbaa !5
  %2686 = load i64, ptr %37, align 8, !tbaa !9
  %2687 = getelementptr inbounds %struct.complex, ptr %2685, i64 %2686
  call void @r_cnjg(ptr noundef %32, ptr noundef %2687)
  %2688 = load float, ptr %49, align 4, !tbaa !11
  %2689 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %2690 = load float, ptr %2689, align 4, !tbaa !16
  %2691 = fmul float %2688, %2690
  %2692 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %2691, ptr %2692, align 4, !tbaa !16
  %2693 = load float, ptr %49, align 4, !tbaa !11
  %2694 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %2695 = load float, ptr %2694, align 4, !tbaa !19
  %2696 = fmul float %2693, %2695
  %2697 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %2696, ptr %2697, align 4, !tbaa !19
  %2698 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2699 = load float, ptr %2698, align 4, !tbaa !16
  %2700 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2699, ptr %2700, align 4, !tbaa !16
  %2701 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2702 = load float, ptr %2701, align 4, !tbaa !19
  %2703 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2702, ptr %2703, align 4, !tbaa !19
  br label %2712

2704:                                             ; preds = %2677
  %2705 = load float, ptr %49, align 4, !tbaa !11
  %2706 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2705, ptr %2706, align 4, !tbaa !16
  %2707 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float 0.000000e+00, ptr %2707, align 4, !tbaa !19
  %2708 = load float, ptr %49, align 4, !tbaa !11
  %2709 = fcmp oeq float %2708, 1.000000e+00
  br i1 %2709, label %2710, label %2711

2710:                                             ; preds = %2704
  br label %2859

2711:                                             ; preds = %2704
  br label %2712

2712:                                             ; preds = %2711, %2684
  %2713 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2714 = load float, ptr %2713, align 4, !tbaa !16
  store float %2714, ptr %27, align 4, !tbaa !11
  %2715 = load float, ptr %27, align 4, !tbaa !11
  %2716 = fcmp oge float %2715, 0.000000e+00
  br i1 %2716, label %2717, label %2719

2717:                                             ; preds = %2712
  %2718 = load float, ptr %27, align 4, !tbaa !11
  br label %2722

2719:                                             ; preds = %2712
  %2720 = load float, ptr %27, align 4, !tbaa !11
  %2721 = fneg float %2720
  br label %2722

2722:                                             ; preds = %2719, %2717
  %2723 = phi float [ %2718, %2717 ], [ %2721, %2719 ]
  %2724 = fpext float %2723 to double
  %2725 = call double @r_imag(ptr noundef %46)
  %2726 = fptrunc double %2725 to float
  store float %2726, ptr %28, align 4, !tbaa !11
  %2727 = load float, ptr %28, align 4, !tbaa !11
  %2728 = fcmp oge float %2727, 0.000000e+00
  br i1 %2728, label %2729, label %2731

2729:                                             ; preds = %2722
  %2730 = load float, ptr %28, align 4, !tbaa !11
  br label %2734

2731:                                             ; preds = %2722
  %2732 = load float, ptr %28, align 4, !tbaa !11
  %2733 = fneg float %2732
  br label %2734

2734:                                             ; preds = %2731, %2729
  %2735 = phi float [ %2730, %2729 ], [ %2733, %2731 ]
  %2736 = fpext float %2735 to double
  %2737 = fadd double %2724, %2736
  %2738 = fptrunc double %2737 to float
  store float %2738, ptr %40, align 4, !tbaa !11
  %2739 = load float, ptr %40, align 4, !tbaa !11
  %2740 = load float, ptr %57, align 4, !tbaa !11
  %2741 = fcmp ogt float %2739, %2740
  br i1 %2741, label %2742, label %2783

2742:                                             ; preds = %2734
  %2743 = load float, ptr %40, align 4, !tbaa !11
  %2744 = fcmp olt float %2743, 1.000000e+00
  br i1 %2744, label %2745, label %2766

2745:                                             ; preds = %2742
  %2746 = load float, ptr %38, align 4, !tbaa !11
  %2747 = load float, ptr %40, align 4, !tbaa !11
  %2748 = load float, ptr %54, align 4, !tbaa !11
  %2749 = fmul float %2747, %2748
  %2750 = fcmp ogt float %2746, %2749
  br i1 %2750, label %2751, label %2765

2751:                                             ; preds = %2745
  %2752 = load float, ptr %38, align 4, !tbaa !11
  %2753 = fdiv float 1.000000e+00, %2752
  store float %2753, ptr %39, align 4, !tbaa !11
  %2754 = load ptr, ptr %16, align 8, !tbaa !5
  %2755 = load ptr, ptr %18, align 8, !tbaa !5
  %2756 = getelementptr inbounds %struct.complex, ptr %2755, i64 1
  %2757 = call i32 @f2c_csscal(ptr noundef %2754, ptr noundef %39, ptr noundef %2756, ptr noundef @c__1)
  %2758 = load float, ptr %39, align 4, !tbaa !11
  %2759 = load ptr, ptr %19, align 8, !tbaa !5
  %2760 = load float, ptr %2759, align 4, !tbaa !11
  %2761 = fmul float %2760, %2758
  store float %2761, ptr %2759, align 4, !tbaa !11
  %2762 = load float, ptr %39, align 4, !tbaa !11
  %2763 = load float, ptr %47, align 4, !tbaa !11
  %2764 = fmul float %2763, %2762
  store float %2764, ptr %47, align 4, !tbaa !11
  br label %2765

2765:                                             ; preds = %2751, %2745
  br label %2766

2766:                                             ; preds = %2765, %2742
  %2767 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2767, ptr %24, align 8, !tbaa !9
  %2768 = load ptr, ptr %18, align 8, !tbaa !5
  %2769 = load i64, ptr %36, align 8, !tbaa !9
  %2770 = getelementptr inbounds %struct.complex, ptr %2768, i64 %2769
  call void @cladiv_(ptr noundef %31, ptr noundef %2770, ptr noundef %46)
  %2771 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2772 = load float, ptr %2771, align 4, !tbaa !16
  %2773 = load ptr, ptr %18, align 8, !tbaa !5
  %2774 = load i64, ptr %24, align 8, !tbaa !9
  %2775 = getelementptr inbounds %struct.complex, ptr %2773, i64 %2774
  %2776 = getelementptr inbounds %struct.complex, ptr %2775, i32 0, i32 0
  store float %2772, ptr %2776, align 4, !tbaa !16
  %2777 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2778 = load float, ptr %2777, align 4, !tbaa !19
  %2779 = load ptr, ptr %18, align 8, !tbaa !5
  %2780 = load i64, ptr %24, align 8, !tbaa !9
  %2781 = getelementptr inbounds %struct.complex, ptr %2779, i64 %2780
  %2782 = getelementptr inbounds %struct.complex, ptr %2781, i32 0, i32 1
  store float %2778, ptr %2782, align 4, !tbaa !19
  br label %2858

2783:                                             ; preds = %2734
  %2784 = load float, ptr %40, align 4, !tbaa !11
  %2785 = fcmp ogt float %2784, 0.000000e+00
  br i1 %2785, label %2786, label %2826

2786:                                             ; preds = %2783
  %2787 = load float, ptr %38, align 4, !tbaa !11
  %2788 = load float, ptr %40, align 4, !tbaa !11
  %2789 = load float, ptr %54, align 4, !tbaa !11
  %2790 = fmul float %2788, %2789
  %2791 = fcmp ogt float %2787, %2790
  br i1 %2791, label %2792, label %2809

2792:                                             ; preds = %2786
  %2793 = load float, ptr %40, align 4, !tbaa !11
  %2794 = load float, ptr %54, align 4, !tbaa !11
  %2795 = fmul float %2793, %2794
  %2796 = load float, ptr %38, align 4, !tbaa !11
  %2797 = fdiv float %2795, %2796
  store float %2797, ptr %39, align 4, !tbaa !11
  %2798 = load ptr, ptr %16, align 8, !tbaa !5
  %2799 = load ptr, ptr %18, align 8, !tbaa !5
  %2800 = getelementptr inbounds %struct.complex, ptr %2799, i64 1
  %2801 = call i32 @f2c_csscal(ptr noundef %2798, ptr noundef %39, ptr noundef %2800, ptr noundef @c__1)
  %2802 = load float, ptr %39, align 4, !tbaa !11
  %2803 = load ptr, ptr %19, align 8, !tbaa !5
  %2804 = load float, ptr %2803, align 4, !tbaa !11
  %2805 = fmul float %2804, %2802
  store float %2805, ptr %2803, align 4, !tbaa !11
  %2806 = load float, ptr %39, align 4, !tbaa !11
  %2807 = load float, ptr %47, align 4, !tbaa !11
  %2808 = fmul float %2807, %2806
  store float %2808, ptr %47, align 4, !tbaa !11
  br label %2809

2809:                                             ; preds = %2792, %2786
  %2810 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2810, ptr %24, align 8, !tbaa !9
  %2811 = load ptr, ptr %18, align 8, !tbaa !5
  %2812 = load i64, ptr %36, align 8, !tbaa !9
  %2813 = getelementptr inbounds %struct.complex, ptr %2811, i64 %2812
  call void @cladiv_(ptr noundef %31, ptr noundef %2813, ptr noundef %46)
  %2814 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2815 = load float, ptr %2814, align 4, !tbaa !16
  %2816 = load ptr, ptr %18, align 8, !tbaa !5
  %2817 = load i64, ptr %24, align 8, !tbaa !9
  %2818 = getelementptr inbounds %struct.complex, ptr %2816, i64 %2817
  %2819 = getelementptr inbounds %struct.complex, ptr %2818, i32 0, i32 0
  store float %2815, ptr %2819, align 4, !tbaa !16
  %2820 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2821 = load float, ptr %2820, align 4, !tbaa !19
  %2822 = load ptr, ptr %18, align 8, !tbaa !5
  %2823 = load i64, ptr %24, align 8, !tbaa !9
  %2824 = getelementptr inbounds %struct.complex, ptr %2822, i64 %2823
  %2825 = getelementptr inbounds %struct.complex, ptr %2824, i32 0, i32 1
  store float %2821, ptr %2825, align 4, !tbaa !19
  br label %2857

2826:                                             ; preds = %2783
  %2827 = load ptr, ptr %16, align 8, !tbaa !5
  %2828 = load i64, ptr %2827, align 8, !tbaa !9
  store i64 %2828, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  br label %2829

2829:                                             ; preds = %2843, %2826
  %2830 = load i64, ptr %35, align 8, !tbaa !9
  %2831 = load i64, ptr %24, align 8, !tbaa !9
  %2832 = icmp sle i64 %2830, %2831
  br i1 %2832, label %2833, label %2846

2833:                                             ; preds = %2829
  %2834 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %2834, ptr %25, align 8, !tbaa !9
  %2835 = load ptr, ptr %18, align 8, !tbaa !5
  %2836 = load i64, ptr %25, align 8, !tbaa !9
  %2837 = getelementptr inbounds %struct.complex, ptr %2835, i64 %2836
  %2838 = getelementptr inbounds %struct.complex, ptr %2837, i32 0, i32 0
  store float 0.000000e+00, ptr %2838, align 4, !tbaa !16
  %2839 = load ptr, ptr %18, align 8, !tbaa !5
  %2840 = load i64, ptr %25, align 8, !tbaa !9
  %2841 = getelementptr inbounds %struct.complex, ptr %2839, i64 %2840
  %2842 = getelementptr inbounds %struct.complex, ptr %2841, i32 0, i32 1
  store float 0.000000e+00, ptr %2842, align 4, !tbaa !19
  br label %2843

2843:                                             ; preds = %2833
  %2844 = load i64, ptr %35, align 8, !tbaa !9
  %2845 = add nsw i64 %2844, 1
  store i64 %2845, ptr %35, align 8, !tbaa !9
  br label %2829, !llvm.loop !32

2846:                                             ; preds = %2829
  %2847 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2847, ptr %24, align 8, !tbaa !9
  %2848 = load ptr, ptr %18, align 8, !tbaa !5
  %2849 = load i64, ptr %24, align 8, !tbaa !9
  %2850 = getelementptr inbounds %struct.complex, ptr %2848, i64 %2849
  %2851 = getelementptr inbounds %struct.complex, ptr %2850, i32 0, i32 0
  store float 1.000000e+00, ptr %2851, align 4, !tbaa !16
  %2852 = load ptr, ptr %18, align 8, !tbaa !5
  %2853 = load i64, ptr %24, align 8, !tbaa !9
  %2854 = getelementptr inbounds %struct.complex, ptr %2852, i64 %2853
  %2855 = getelementptr inbounds %struct.complex, ptr %2854, i32 0, i32 1
  store float 0.000000e+00, ptr %2855, align 4, !tbaa !19
  %2856 = load ptr, ptr %19, align 8, !tbaa !5
  store float 0.000000e+00, ptr %2856, align 4, !tbaa !11
  store float 0.000000e+00, ptr %47, align 4, !tbaa !11
  br label %2857

2857:                                             ; preds = %2846, %2809
  br label %2858

2858:                                             ; preds = %2857, %2766
  br label %2859

2859:                                             ; preds = %2858, %2710
  br label %2889

2860:                                             ; preds = %2610, %2601
  %2861 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2861, ptr %24, align 8, !tbaa !9
  %2862 = load ptr, ptr %18, align 8, !tbaa !5
  %2863 = load i64, ptr %36, align 8, !tbaa !9
  %2864 = getelementptr inbounds %struct.complex, ptr %2862, i64 %2863
  call void @cladiv_(ptr noundef %32, ptr noundef %2864, ptr noundef %46)
  %2865 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %2866 = load float, ptr %2865, align 4, !tbaa !16
  %2867 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %2868 = load float, ptr %2867, align 4, !tbaa !16
  %2869 = fsub float %2866, %2868
  %2870 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %2869, ptr %2870, align 4, !tbaa !16
  %2871 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %2872 = load float, ptr %2871, align 4, !tbaa !19
  %2873 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %2874 = load float, ptr %2873, align 4, !tbaa !19
  %2875 = fsub float %2872, %2874
  %2876 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %2875, ptr %2876, align 4, !tbaa !19
  %2877 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2878 = load float, ptr %2877, align 4, !tbaa !16
  %2879 = load ptr, ptr %18, align 8, !tbaa !5
  %2880 = load i64, ptr %24, align 8, !tbaa !9
  %2881 = getelementptr inbounds %struct.complex, ptr %2879, i64 %2880
  %2882 = getelementptr inbounds %struct.complex, ptr %2881, i32 0, i32 0
  store float %2878, ptr %2882, align 4, !tbaa !16
  %2883 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2884 = load float, ptr %2883, align 4, !tbaa !19
  %2885 = load ptr, ptr %18, align 8, !tbaa !5
  %2886 = load i64, ptr %24, align 8, !tbaa !9
  %2887 = getelementptr inbounds %struct.complex, ptr %2885, i64 %2886
  %2888 = getelementptr inbounds %struct.complex, ptr %2887, i32 0, i32 1
  store float %2884, ptr %2888, align 4, !tbaa !19
  br label %2889

2889:                                             ; preds = %2860, %2859
  %2890 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2890, ptr %24, align 8, !tbaa !9
  %2891 = load float, ptr %47, align 4, !tbaa !11
  store float %2891, ptr %29, align 4, !tbaa !11
  %2892 = load ptr, ptr %18, align 8, !tbaa !5
  %2893 = load i64, ptr %24, align 8, !tbaa !9
  %2894 = getelementptr inbounds %struct.complex, ptr %2892, i64 %2893
  %2895 = getelementptr inbounds %struct.complex, ptr %2894, i32 0, i32 0
  %2896 = load float, ptr %2895, align 4, !tbaa !16
  store float %2896, ptr %27, align 4, !tbaa !11
  %2897 = load float, ptr %27, align 4, !tbaa !11
  %2898 = fcmp oge float %2897, 0.000000e+00
  br i1 %2898, label %2899, label %2901

2899:                                             ; preds = %2889
  %2900 = load float, ptr %27, align 4, !tbaa !11
  br label %2904

2901:                                             ; preds = %2889
  %2902 = load float, ptr %27, align 4, !tbaa !11
  %2903 = fneg float %2902
  br label %2904

2904:                                             ; preds = %2901, %2899
  %2905 = phi float [ %2900, %2899 ], [ %2903, %2901 ]
  %2906 = fpext float %2905 to double
  %2907 = load ptr, ptr %18, align 8, !tbaa !5
  %2908 = load i64, ptr %36, align 8, !tbaa !9
  %2909 = getelementptr inbounds %struct.complex, ptr %2907, i64 %2908
  %2910 = call double @r_imag(ptr noundef %2909)
  %2911 = fptrunc double %2910 to float
  store float %2911, ptr %28, align 4, !tbaa !11
  %2912 = load float, ptr %28, align 4, !tbaa !11
  %2913 = fcmp oge float %2912, 0.000000e+00
  br i1 %2913, label %2914, label %2916

2914:                                             ; preds = %2904
  %2915 = load float, ptr %28, align 4, !tbaa !11
  br label %2919

2916:                                             ; preds = %2904
  %2917 = load float, ptr %28, align 4, !tbaa !11
  %2918 = fneg float %2917
  br label %2919

2919:                                             ; preds = %2916, %2914
  %2920 = phi float [ %2915, %2914 ], [ %2918, %2916 ]
  %2921 = fpext float %2920 to double
  %2922 = fadd double %2906, %2921
  %2923 = fptrunc double %2922 to float
  store float %2923, ptr %30, align 4, !tbaa !11
  %2924 = load float, ptr %29, align 4, !tbaa !11
  %2925 = load float, ptr %30, align 4, !tbaa !11
  %2926 = fcmp oge float %2924, %2925
  br i1 %2926, label %2927, label %2929

2927:                                             ; preds = %2919
  %2928 = load float, ptr %29, align 4, !tbaa !11
  br label %2931

2929:                                             ; preds = %2919
  %2930 = load float, ptr %30, align 4, !tbaa !11
  br label %2931

2931:                                             ; preds = %2929, %2927
  %2932 = phi float [ %2928, %2927 ], [ %2930, %2929 ]
  %2933 = fpext float %2932 to double
  %2934 = fptrunc double %2933 to float
  store float %2934, ptr %47, align 4, !tbaa !11
  %2935 = load i64, ptr %42, align 8, !tbaa !9
  %2936 = add nsw i64 %2935, 1
  store i64 %2936, ptr %42, align 8, !tbaa !9
  %2937 = load i64, ptr %41, align 8, !tbaa !9
  %2938 = load i64, ptr %42, align 8, !tbaa !9
  %2939 = mul nsw i64 %2937, %2938
  %2940 = load i64, ptr %37, align 8, !tbaa !9
  %2941 = add nsw i64 %2940, %2939
  store i64 %2941, ptr %37, align 8, !tbaa !9
  br label %2942

2942:                                             ; preds = %2931
  %2943 = load i64, ptr %23, align 8, !tbaa !9
  %2944 = load i64, ptr %36, align 8, !tbaa !9
  %2945 = add nsw i64 %2944, %2943
  store i64 %2945, ptr %36, align 8, !tbaa !9
  br label %2173, !llvm.loop !33

2946:                                             ; preds = %2186
  br label %2947

2947:                                             ; preds = %2946, %2163
  br label %2948

2948:                                             ; preds = %2947, %1348
  %2949 = load float, ptr %49, align 4, !tbaa !11
  %2950 = load ptr, ptr %19, align 8, !tbaa !5
  %2951 = load float, ptr %2950, align 4, !tbaa !11
  %2952 = fdiv float %2951, %2949
  store float %2952, ptr %2950, align 4, !tbaa !11
  br label %2953

2953:                                             ; preds = %2948, %762
  %2954 = load float, ptr %49, align 4, !tbaa !11
  %2955 = fcmp une float %2954, 1.000000e+00
  br i1 %2955, label %2956, label %2963

2956:                                             ; preds = %2953
  %2957 = load float, ptr %49, align 4, !tbaa !11
  %2958 = fdiv float 1.000000e+00, %2957
  store float %2958, ptr %27, align 4, !tbaa !11
  %2959 = load ptr, ptr %16, align 8, !tbaa !5
  %2960 = load ptr, ptr %20, align 8, !tbaa !5
  %2961 = getelementptr inbounds float, ptr %2960, i64 1
  %2962 = call i32 @f2c_sscal(ptr noundef %2959, ptr noundef %27, ptr noundef %2961, ptr noundef @c__1)
  br label %2963

2963:                                             ; preds = %2956, %2953
  store i32 0, ptr %11, align 4
  store i32 1, ptr %59, align 4
  br label %2964

2964:                                             ; preds = %2963, %136, %127
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #4
  %2965 = load i32, ptr %11, align 4
  ret i32 %2965
}

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

declare double @r_imag(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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


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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @clatps_(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 nocapture noundef %9) local_unnamed_addr #0 {
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca float, align 4
  %15 = alloca %struct.complex, align 8
  %16 = alloca %struct.complex, align 8
  %17 = alloca %struct.complex, align 4
  %18 = alloca float, align 4
  %19 = alloca %struct.complex, align 8
  %20 = alloca float, align 4
  %21 = alloca %struct.complex, align 8
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  %24 = getelementptr inbounds i8, ptr %8, i64 -4
  %25 = getelementptr inbounds i8, ptr %6, i64 -8
  %26 = getelementptr inbounds i8, ptr %5, i64 -8
  store i64 0, ptr %9, align 8, !tbaa !5
  %27 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %28 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %29 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #6
  %.not.not.not = icmp eq i64 %27, 0
  br i1 %.not.not.not, label %30, label %32

30:                                               ; preds = %10
  %31 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %.not819 = icmp eq i64 %31, 0
  br i1 %.not819, label %.thread.sink.split, label %32

32:                                               ; preds = %30, %10
  %.not820 = icmp eq i64 %28, 0
  br i1 %.not820, label %33, label %37

33:                                               ; preds = %32
  %34 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %.not821 = icmp eq i64 %34, 0
  br i1 %.not821, label %35, label %37

35:                                               ; preds = %33
  %36 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  %.not822 = icmp eq i64 %36, 0
  br i1 %.not822, label %.thread.sink.split, label %37

37:                                               ; preds = %35, %33, %32
  %.not823 = icmp eq i64 %29, 0
  br i1 %.not823, label %38, label %40

38:                                               ; preds = %37
  %39 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %.not824 = icmp eq i64 %39, 0
  br i1 %.not824, label %.thread.sink.split, label %40

40:                                               ; preds = %38, %37
  %41 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.5) #6
  %.not825 = icmp eq i64 %41, 0
  br i1 %.not825, label %42, label %44

42:                                               ; preds = %40
  %43 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #6
  %.not826 = icmp eq i64 %43, 0
  br i1 %.not826, label %.thread.sink.split, label %44

44:                                               ; preds = %42, %40
  %45 = load i64, ptr %4, align 8, !tbaa !5
  %46 = icmp slt i64 %45, 0
  br i1 %46, label %.thread.sink.split, label %47

47:                                               ; preds = %44
  %.pr = load i64, ptr %9, align 8, !tbaa !5
  %.not827 = icmp eq i64 %.pr, 0
  br i1 %.not827, label %51, label %.thread

.thread.sink.split:                               ; preds = %44, %42, %38, %35, %30
  %.sink = phi i64 [ -1, %30 ], [ -2, %35 ], [ -3, %38 ], [ -4, %42 ], [ -5, %44 ]
  store i64 %.sink, ptr %9, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %47
  %48 = phi i64 [ %.pr, %47 ], [ %.sink, %.thread.sink.split ]
  %49 = sub nsw i64 0, %48
  store i64 %49, ptr %11, align 8, !tbaa !5
  %50 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %11) #6
  br label %971

51:                                               ; preds = %47
  %52 = icmp eq i64 %45, 0
  br i1 %52, label %971, label %53

53:                                               ; preds = %51
  %54 = tail call double @slamch_(ptr noundef nonnull @.str.7) #6
  %55 = fptrunc double %54 to float
  store float %55, ptr %23, align 4, !tbaa !9
  %56 = fdiv float 1.000000e+00, %55
  store float %56, ptr %22, align 4, !tbaa !9
  %57 = call i32 @slabad_(ptr noundef nonnull %23, ptr noundef nonnull %22) #6
  %58 = call double @slamch_(ptr noundef nonnull @.str.8) #6
  %59 = load float, ptr %23, align 4, !tbaa !9
  %60 = fpext float %59 to double
  %61 = fdiv double %60, %58
  %62 = fptrunc double %61 to float
  store float %62, ptr %23, align 4, !tbaa !9
  %63 = fdiv float 1.000000e+00, %62
  store float %63, ptr %22, align 4, !tbaa !9
  store float 1.000000e+00, ptr %7, align 4, !tbaa !9
  %64 = call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #6
  %.not828 = icmp eq i64 %64, 0
  br i1 %.not828, label %.loopexit880, label %65

65:                                               ; preds = %53
  %66 = load i64, ptr %4, align 8, !tbaa !5
  br i1 %.not.not.not, label %75, label %67

67:                                               ; preds = %65
  store i64 %66, ptr %11, align 8, !tbaa !5
  %.not830883 = icmp slt i64 %66, 1
  br i1 %.not830883, label %.loopexit880, label %.lr.ph

.lr.ph:                                           ; preds = %67, %.lr.ph
  %.0764885 = phi i64 [ %73, %.lr.ph ], [ 1, %67 ]
  %.0772884 = phi i64 [ %74, %.lr.ph ], [ 1, %67 ]
  %68 = add nsw i64 %.0772884, -1
  store i64 %68, ptr %12, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.complex, ptr %26, i64 %.0764885
  %70 = call double @f2c_scasum(ptr noundef nonnull %12, ptr noundef nonnull %69, ptr noundef nonnull @c__1) #6
  %71 = fptrunc double %70 to float
  %72 = getelementptr inbounds float, ptr %24, i64 %.0772884
  store float %71, ptr %72, align 4, !tbaa !9
  %73 = add nuw nsw i64 %.0764885, %.0772884
  %74 = add nuw nsw i64 %.0772884, 1
  %.not830.not = icmp slt i64 %.0772884, %66
  br i1 %.not830.not, label %.lr.ph, label %.loopexit880, !llvm.loop !11

75:                                               ; preds = %65
  %76 = add nsw i64 %66, -1
  store i64 %76, ptr %11, align 8, !tbaa !5
  %.not829886 = icmp slt i64 %66, 2
  br i1 %.not829886, label %._crit_edge, label %.lr.ph889

.lr.ph889:                                        ; preds = %75, %.lr.ph889
  %77 = phi i64 [ %83, %.lr.ph889 ], [ %66, %75 ]
  %.1765888 = phi i64 [ %85, %.lr.ph889 ], [ 1, %75 ]
  %.1773887 = phi i64 [ %86, %.lr.ph889 ], [ 1, %75 ]
  %78 = sub nsw i64 %77, %.1773887
  store i64 %78, ptr %12, align 8, !tbaa !5
  %79 = getelementptr %struct.complex, ptr %5, i64 %.1765888
  %80 = call double @f2c_scasum(ptr noundef nonnull %12, ptr noundef %79, ptr noundef nonnull @c__1) #6
  %81 = fptrunc double %80 to float
  %82 = getelementptr inbounds float, ptr %24, i64 %.1773887
  store float %81, ptr %82, align 4, !tbaa !9
  %83 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub = sub i64 %.1765888, %.1773887
  %84 = add i64 %reass.sub, 1
  %85 = add i64 %84, %83
  %86 = add nuw nsw i64 %.1773887, 1
  %.not829.not = icmp slt i64 %.1773887, %76
  br i1 %.not829.not, label %.lr.ph889, label %._crit_edge, !llvm.loop !13

._crit_edge:                                      ; preds = %.lr.ph889, %75
  %87 = phi i64 [ %66, %75 ], [ %83, %.lr.ph889 ]
  %88 = getelementptr inbounds float, ptr %24, i64 %87
  store float 0.000000e+00, ptr %88, align 4, !tbaa !9
  br label %.loopexit880

.loopexit880:                                     ; preds = %.lr.ph, %67, %._crit_edge, %53
  %89 = call i64 @f2c_isamax(ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull @c__1) #6
  %90 = getelementptr inbounds float, ptr %24, i64 %89
  %91 = load float, ptr %90, align 4, !tbaa !9
  %92 = load float, ptr %22, align 4, !tbaa !9
  %93 = fmul float %92, 5.000000e-01
  %94 = fcmp ugt float %91, %93
  br i1 %94, label %96, label %95

95:                                               ; preds = %.loopexit880
  store float 1.000000e+00, ptr %20, align 4, !tbaa !9
  br label %101

96:                                               ; preds = %.loopexit880
  %97 = load float, ptr %23, align 4, !tbaa !9
  %98 = fmul float %91, %97
  %99 = fdiv float 5.000000e-01, %98
  store float %99, ptr %20, align 4, !tbaa !9
  %100 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %20, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #6
  br label %101

101:                                              ; preds = %96, %95
  %102 = load i64, ptr %4, align 8, !tbaa !5
  %.not831890 = icmp slt i64 %102, 1
  br i1 %.not831890, label %._crit_edge895, label %.lr.ph894

.lr.ph894:                                        ; preds = %101, %.lr.ph894
  %.0746892 = phi float [ %117, %.lr.ph894 ], [ 0.000000e+00, %101 ]
  %.2774891 = phi i64 [ %118, %.lr.ph894 ], [ 1, %101 ]
  store i64 %.2774891, ptr %12, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.complex, ptr %25, i64 %.2774891
  %104 = load float, ptr %103, align 4, !tbaa !14
  %105 = fmul float %104, 5.000000e-01
  store float %105, ptr %14, align 4, !tbaa !9
  %106 = call double @r_imag(ptr noundef nonnull %103) #6
  %107 = fmul double %106, 5.000000e-01
  %108 = fptrunc double %107 to float
  %109 = insertelement <2 x float> poison, float %105, i64 0
  %110 = insertelement <2 x float> %109, float %108, i64 1
  %111 = fcmp oge <2 x float> %110, zeroinitializer
  %112 = fneg <2 x float> %110
  %113 = select <2 x i1> %111, <2 x float> %110, <2 x float> %112
  %shift = shufflevector <2 x float> %113, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %114 = fadd <2 x float> %113, %shift
  %115 = extractelement <2 x float> %114, i64 0
  %116 = fcmp oge float %.0746892, %115
  %117 = select i1 %116, float %.0746892, float %115
  %118 = add nuw nsw i64 %.2774891, 1
  %.not831.not = icmp slt i64 %.2774891, %102
  br i1 %.not831.not, label %.lr.ph894, label %._crit_edge895, !llvm.loop !16

._crit_edge895:                                   ; preds = %.lr.ph894, %101
  %.0746.lcssa = phi float [ 0.000000e+00, %101 ], [ %117, %.lr.ph894 ]
  %119 = load i64, ptr %4, align 8, !tbaa !5
  %120 = load float, ptr %20, align 4, !tbaa !9
  %121 = fcmp une float %120, 1.000000e+00
  br i1 %.not820, label %188, label %122

122:                                              ; preds = %._crit_edge895
  %. = select i1 %.not.not.not, i64 1, i64 -1
  %.1061 = select i1 %.not.not.not, i64 %119, i64 1
  %.1062 = select i1 %.not.not.not, i64 1, i64 %119
  br i1 %121, label %.loopexit876, label %123

123:                                              ; preds = %122
  %124 = load float, ptr %23, align 4
  %125 = fcmp oge float %.0746.lcssa, %124
  %126 = select i1 %125, float %.0746.lcssa, float %124
  %127 = fdiv float 5.000000e-01, %126
  br i1 %.not823, label %173, label %128

128:                                              ; preds = %123
  store i64 %., ptr %12, align 8, !tbaa !5
  %129 = icmp sge i64 %.1062, %.1061
  %130 = icmp sle i64 %.1062, %.1061
  %.in837896 = select i1 %.not.not.not, i1 %130, i1 %129
  br i1 %.in837896, label %.lr.ph903, label %.loopexit876

.lr.ph903:                                        ; preds = %128
  %131 = add nsw i64 %.1062, 1
  %132 = mul nsw i64 %131, %.1062
  %133 = sdiv i64 %132, 2
  br label %134

134:                                              ; preds = %.lr.ph903, %158
  %135 = phi float [ %124, %.lr.ph903 ], [ %150, %158 ]
  %.0743901 = phi float [ %127, %.lr.ph903 ], [ %.1744, %158 ]
  %.0752900 = phi float [ %127, %.lr.ph903 ], [ %.1753, %158 ]
  %.0756899 = phi i64 [ %119, %.lr.ph903 ], [ %167, %158 ]
  %.2766898 = phi i64 [ %133, %.lr.ph903 ], [ %166, %158 ]
  %.3775897 = phi i64 [ %.1062, %.lr.ph903 ], [ %169, %158 ]
  %136 = fcmp ugt float %.0743901, %135
  br i1 %136, label %137, label %.loopexit876

137:                                              ; preds = %134
  store i64 %.2766898, ptr %13, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.complex, ptr %26, i64 %.2766898
  %139 = load <2 x float>, ptr %138, align 4, !tbaa !9
  store <2 x float> %139, ptr %19, align 8, !tbaa !9
  %140 = extractelement <2 x float> %139, i64 0
  store float %140, ptr %14, align 4, !tbaa !9
  %141 = fcmp oge float %140, 0.000000e+00
  %142 = fneg float %140
  %143 = select i1 %141, float %140, float %142
  %144 = call double @r_imag(ptr noundef nonnull %19) #6
  %145 = fptrunc double %144 to float
  %146 = fcmp oge float %145, 0.000000e+00
  %147 = fneg float %145
  %148 = select i1 %146, float %145, float %147
  %149 = fadd float %143, %148
  %150 = load float, ptr %23, align 4, !tbaa !9
  %151 = fcmp ult float %149, %150
  br i1 %151, label %158, label %152

152:                                              ; preds = %137
  store float %.0752900, ptr %14, align 4, !tbaa !9
  %153 = fcmp oge float %149, 1.000000e+00
  %154 = select i1 %153, float 1.000000e+00, float %149
  %155 = fmul float %.0743901, %154
  %156 = fcmp ole float %.0752900, %155
  %157 = select i1 %156, float %.0752900, float %155
  br label %158

158:                                              ; preds = %137, %152
  %.1753 = phi float [ %157, %152 ], [ 0.000000e+00, %137 ]
  %159 = getelementptr inbounds float, ptr %24, i64 %.3775897
  %160 = load float, ptr %159, align 4, !tbaa !9
  %161 = fadd float %149, %160
  %162 = fcmp ult float %161, %150
  %163 = fdiv float %149, %161
  %164 = fmul float %.0743901, %163
  %.1744 = select i1 %162, float 0.000000e+00, float %164
  %165 = mul nsw i64 %.0756899, %.
  %166 = add nsw i64 %165, %.2766898
  %167 = add nsw i64 %.0756899, -1
  %168 = load i64, ptr %12, align 8, !tbaa !5
  %169 = add nsw i64 %168, %.3775897
  %170 = icmp slt i64 %168, 0
  %171 = icmp sge i64 %169, %.1061
  %172 = icmp sle i64 %169, %.1061
  %.in837 = select i1 %170, i1 %171, i1 %172
  br i1 %.in837, label %134, label %.loopexit876, !llvm.loop !17

173:                                              ; preds = %123
  %174 = fcmp oge float %127, 1.000000e+00
  %175 = select i1 %174, float 1.000000e+00, float %127
  store i64 %.1061, ptr %12, align 8, !tbaa !5
  %176 = icmp sge i64 %.1062, %.1061
  %177 = icmp sle i64 %.1062, %.1061
  %.in836907 = select i1 %.not.not.not, i1 %177, i1 %176
  %178 = fcmp ugt float %175, %124
  %or.cond855908 = select i1 %.in836907, i1 %178, i1 false
  br i1 %or.cond855908, label %.lr.ph912, label %.loopexit876

.lr.ph912:                                        ; preds = %173, %.lr.ph912
  %.2745910 = phi float [ %183, %.lr.ph912 ], [ %175, %173 ]
  %.4776909 = phi i64 [ %184, %.lr.ph912 ], [ %.1062, %173 ]
  %179 = getelementptr inbounds float, ptr %24, i64 %.4776909
  %180 = load float, ptr %179, align 4, !tbaa !9
  %181 = fadd float %180, 1.000000e+00
  %182 = fdiv float 1.000000e+00, %181
  %183 = fmul float %.2745910, %182
  %184 = add nsw i64 %.4776909, %.
  %185 = icmp sge i64 %184, %.1061
  %186 = icmp sle i64 %184, %.1061
  %.in836 = select i1 %.not.not.not, i1 %186, i1 %185
  %187 = fcmp ugt float %183, %124
  %or.cond855 = select i1 %.in836, i1 %187, i1 false
  br i1 %or.cond855, label %.lr.ph912, label %.loopexit876, !llvm.loop !18

188:                                              ; preds = %._crit_edge895
  %.1063 = select i1 %.not.not.not, i64 -1, i64 1
  %.1064 = select i1 %.not.not.not, i64 1, i64 %119
  %.1065 = select i1 %.not.not.not, i64 %119, i64 1
  br i1 %121, label %.loopexit876, label %189

189:                                              ; preds = %188
  %190 = load float, ptr %23, align 4
  %191 = fcmp oge float %.0746.lcssa, %190
  %192 = select i1 %191, float %.0746.lcssa, float %190
  %193 = fdiv float 5.000000e-01, %192
  br i1 %.not823, label %240, label %194

194:                                              ; preds = %189
  store i64 %.1064, ptr %11, align 8, !tbaa !5
  store i64 %.1063, ptr %12, align 8, !tbaa !5
  %195 = icmp sge i64 %.1065, %.1064
  %196 = icmp sle i64 %.1065, %.1064
  %.in834914 = select i1 %.not.not.not, i1 %195, i1 %196
  br i1 %.in834914, label %.lr.ph921, label %._crit_edge922

.lr.ph921:                                        ; preds = %194
  %197 = add nsw i64 %.1065, 1
  %198 = mul nsw i64 %197, %.1065
  %199 = sdiv i64 %198, 2
  br label %200

200:                                              ; preds = %.lr.ph921, %229
  %201 = phi float [ %190, %.lr.ph921 ], [ %222, %229 ]
  %.3919 = phi float [ %193, %.lr.ph921 ], [ %209, %229 ]
  %.2754918 = phi float [ %193, %.lr.ph921 ], [ %.3755, %229 ]
  %.1757917 = phi i64 [ 1, %.lr.ph921 ], [ %230, %229 ]
  %.3767916 = phi i64 [ %199, %.lr.ph921 ], [ %232, %229 ]
  %.5777915 = phi i64 [ %.1065, %.lr.ph921 ], [ %234, %229 ]
  %202 = fcmp ugt float %.3919, %201
  br i1 %202, label %203, label %.loopexit876

203:                                              ; preds = %200
  %204 = getelementptr inbounds float, ptr %24, i64 %.5777915
  %205 = load float, ptr %204, align 4, !tbaa !9
  %206 = fadd float %205, 1.000000e+00
  %207 = fdiv float %.2754918, %206
  %208 = fcmp ole float %.3919, %207
  %209 = select i1 %208, float %.3919, float %207
  store i64 %.3767916, ptr %13, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.complex, ptr %26, i64 %.3767916
  %211 = load <2 x float>, ptr %210, align 4, !tbaa !9
  store <2 x float> %211, ptr %19, align 8, !tbaa !9
  %212 = extractelement <2 x float> %211, i64 0
  store float %212, ptr %14, align 4, !tbaa !9
  %213 = fcmp oge float %212, 0.000000e+00
  %214 = fneg float %212
  %215 = select i1 %213, float %212, float %214
  %216 = call double @r_imag(ptr noundef nonnull %19) #6
  %217 = fptrunc double %216 to float
  %218 = fcmp oge float %217, 0.000000e+00
  %219 = fneg float %217
  %220 = select i1 %218, float %217, float %219
  %221 = fadd float %215, %220
  %222 = load float, ptr %23, align 4, !tbaa !9
  %223 = fcmp ult float %221, %222
  br i1 %223, label %229, label %224

224:                                              ; preds = %203
  %225 = fcmp ogt float %206, %221
  br i1 %225, label %226, label %229

226:                                              ; preds = %224
  %227 = fdiv float %221, %206
  %228 = fmul float %.2754918, %227
  br label %229

229:                                              ; preds = %203, %224, %226
  %.3755 = phi float [ %228, %226 ], [ %.2754918, %224 ], [ 0.000000e+00, %203 ]
  %230 = add nuw nsw i64 %.1757917, 1
  %231 = mul nsw i64 %230, %.1063
  %232 = add nsw i64 %231, %.3767916
  %233 = load i64, ptr %12, align 8, !tbaa !5
  %234 = add nsw i64 %233, %.5777915
  %235 = icmp slt i64 %233, 0
  %236 = icmp sge i64 %234, %.1064
  %237 = icmp sle i64 %234, %.1064
  %.in834 = select i1 %235, i1 %236, i1 %237
  br i1 %.in834, label %200, label %._crit_edge922, !llvm.loop !19

._crit_edge922:                                   ; preds = %229, %194
  %.2754.lcssa = phi float [ %193, %194 ], [ %.3755, %229 ]
  %.3.lcssa = phi float [ %193, %194 ], [ %209, %229 ]
  %238 = fcmp ole float %.3.lcssa, %.2754.lcssa
  %239 = select i1 %238, float %.3.lcssa, float %.2754.lcssa
  br label %.loopexit876

240:                                              ; preds = %189
  %241 = fcmp oge float %193, 1.000000e+00
  %242 = select i1 %241, float 1.000000e+00, float %193
  store i64 %.1064, ptr %12, align 8, !tbaa !5
  %243 = icmp sge i64 %.1065, %.1064
  %244 = icmp sle i64 %.1065, %.1064
  %.in925 = select i1 %.not.not.not, i1 %243, i1 %244
  %245 = fcmp ugt float %242, %190
  %or.cond857926 = select i1 %.in925, i1 %245, i1 false
  br i1 %or.cond857926, label %.lr.ph930, label %.loopexit876

.lr.ph930:                                        ; preds = %240, %.lr.ph930
  %.4928 = phi float [ %249, %.lr.ph930 ], [ %242, %240 ]
  %.6778927 = phi i64 [ %250, %.lr.ph930 ], [ %.1065, %240 ]
  %246 = getelementptr inbounds float, ptr %24, i64 %.6778927
  %247 = load float, ptr %246, align 4, !tbaa !9
  %248 = fadd float %247, 1.000000e+00
  %249 = fdiv float %.4928, %248
  %250 = add nsw i64 %.6778927, %.1063
  %251 = icmp sge i64 %250, %.1064
  %252 = icmp sle i64 %250, %.1064
  %.in = select i1 %.not.not.not, i1 %251, i1 %252
  %253 = fcmp ugt float %249, %190
  %or.cond857 = select i1 %.in, i1 %253, i1 false
  br i1 %or.cond857, label %.lr.ph930, label %.loopexit876, !llvm.loop !20

.loopexit876:                                     ; preds = %134, %158, %.lr.ph912, %200, %.lr.ph930, %128, %173, %240, %188, %122, %._crit_edge922
  %254 = phi i64 [ %.1063, %._crit_edge922 ], [ %., %122 ], [ %.1063, %188 ], [ %.1063, %240 ], [ %., %173 ], [ %., %128 ], [ %.1063, %.lr.ph930 ], [ %.1063, %200 ], [ %., %.lr.ph912 ], [ %., %158 ], [ %., %134 ]
  %.5 = phi float [ %239, %._crit_edge922 ], [ 0.000000e+00, %122 ], [ 0.000000e+00, %188 ], [ %242, %240 ], [ %175, %173 ], [ %127, %128 ], [ %249, %.lr.ph930 ], [ %.3919, %200 ], [ %183, %.lr.ph912 ], [ %.0743901, %134 ], [ %.1753, %158 ]
  %255 = phi i64 [ %.1064, %._crit_edge922 ], [ %.1061, %122 ], [ %.1064, %188 ], [ %.1064, %240 ], [ %.1061, %173 ], [ %.1061, %128 ], [ %.1064, %.lr.ph930 ], [ %.1064, %200 ], [ %.1061, %.lr.ph912 ], [ %.1061, %158 ], [ %.1061, %134 ]
  %.2 = phi i64 [ %.1065, %._crit_edge922 ], [ %.1062, %122 ], [ %.1065, %188 ], [ %.1065, %240 ], [ %.1062, %173 ], [ %.1062, %128 ], [ %.1065, %.lr.ph930 ], [ %.1065, %200 ], [ %.1062, %.lr.ph912 ], [ %.1062, %158 ], [ %.1062, %134 ]
  %256 = load float, ptr %20, align 4, !tbaa !9
  %257 = fmul float %.5, %256
  %258 = load float, ptr %23, align 4, !tbaa !9
  %259 = fcmp ogt float %257, %258
  br i1 %259, label %260, label %262

260:                                              ; preds = %.loopexit876
  %261 = call i32 @f2c_ctpsv(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef nonnull @c__1) #6
  %.pr869 = load float, ptr %20, align 4, !tbaa !9
  br label %965

262:                                              ; preds = %.loopexit876
  %263 = load float, ptr %22, align 4, !tbaa !9
  %264 = fmul float %263, 5.000000e-01
  %265 = fcmp ogt float %.0746.lcssa, %264
  br i1 %265, label %266, label %270

266:                                              ; preds = %262
  %267 = fdiv float %264, %.0746.lcssa
  store float %267, ptr %7, align 4, !tbaa !9
  %268 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull @c__1) #6
  %269 = load float, ptr %22, align 4, !tbaa !9
  br label %272

270:                                              ; preds = %262
  %271 = fmul float %.0746.lcssa, 2.000000e+00
  br label %272

272:                                              ; preds = %270, %266
  %.1747 = phi float [ %269, %266 ], [ %271, %270 ]
  br i1 %.not820, label %459, label %273

273:                                              ; preds = %272
  store i64 %254, ptr %12, align 8, !tbaa !5
  %274 = icmp slt i64 %254, 0
  %275 = icmp sge i64 %.2, %255
  %276 = icmp sle i64 %.2, %255
  %.in851936 = select i1 %274, i1 %275, i1 %276
  br i1 %.in851936, label %.lr.ph942, label %.loopexit871

.lr.ph942:                                        ; preds = %273
  %277 = add nsw i64 %.2, 1
  %278 = mul nsw i64 %277, %.2
  %279 = sdiv i64 %278, 2
  %280 = getelementptr inbounds i8, ptr %15, i64 4
  %281 = getelementptr inbounds i8, ptr %19, i64 4
  br label %282

282:                                              ; preds = %.lr.ph942, %453
  %.2748940 = phi float [ %.1747, %.lr.ph942 ], [ %.8, %453 ]
  %.4768939 = phi i64 [ %279, %.lr.ph942 ], [ %.5769, %453 ]
  %.7779937 = phi i64 [ %.2, %.lr.ph942 ], [ %455, %453 ]
  store i64 %.7779937, ptr %13, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.complex, ptr %25, i64 %.7779937
  %284 = load float, ptr %283, align 4, !tbaa !14
  %285 = fcmp oge float %284, 0.000000e+00
  %286 = fneg float %284
  %287 = select i1 %285, float %284, float %286
  %288 = call double @r_imag(ptr noundef nonnull %283) #6
  %289 = fptrunc double %288 to float
  %290 = fcmp oge float %289, 0.000000e+00
  %291 = fneg float %289
  %292 = select i1 %290, float %289, float %291
  %293 = fadd float %287, %292
  br i1 %.not823, label %302, label %294

294:                                              ; preds = %282
  store i64 %.4768939, ptr %13, align 8, !tbaa !5
  %295 = load float, ptr %20, align 4, !tbaa !9
  %296 = getelementptr inbounds %struct.complex, ptr %26, i64 %.4768939
  %297 = load <2 x float>, ptr %296, align 4, !tbaa !9
  %298 = insertelement <2 x float> poison, float %295, i64 0
  %299 = shufflevector <2 x float> %298, <2 x float> poison, <2 x i32> zeroinitializer
  %300 = fmul <2 x float> %299, %297
  store <2 x float> %300, ptr %15, align 8, !tbaa !9
  store <2 x float> %300, ptr %19, align 8, !tbaa !9
  %301 = extractelement <2 x float> %300, i64 0
  br label %305

302:                                              ; preds = %282
  %303 = load float, ptr %20, align 4, !tbaa !9
  store float %303, ptr %19, align 8, !tbaa !14
  store float 0.000000e+00, ptr %281, align 4, !tbaa !21
  %304 = fcmp oeq float %303, 1.000000e+00
  br i1 %304, label %367, label %305

305:                                              ; preds = %302, %294
  %306 = phi float [ %303, %302 ], [ %301, %294 ]
  %307 = call double @r_imag(ptr noundef nonnull %19) #6
  %308 = fptrunc double %307 to float
  %309 = insertelement <2 x float> poison, float %306, i64 0
  %310 = insertelement <2 x float> %309, float %308, i64 1
  %311 = fcmp oge <2 x float> %310, zeroinitializer
  %312 = fneg <2 x float> %310
  %313 = select <2 x i1> %311, <2 x float> %310, <2 x float> %312
  %shift1112 = shufflevector <2 x float> %313, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %314 = fadd <2 x float> %313, %shift1112
  %315 = extractelement <2 x float> %314, i64 0
  %316 = load float, ptr %23, align 4, !tbaa !9
  %317 = fcmp ogt float %315, %316
  br i1 %317, label %318, label %332

318:                                              ; preds = %305
  %319 = fcmp olt float %315, 1.000000e+00
  br i1 %319, label %320, label %331

320:                                              ; preds = %318
  %321 = load float, ptr %22, align 4, !tbaa !9
  %322 = fmul float %315, %321
  %323 = fcmp ogt float %293, %322
  br i1 %323, label %324, label %331

324:                                              ; preds = %320
  %325 = fdiv float 1.000000e+00, %293
  store float %325, ptr %18, align 4, !tbaa !9
  %326 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %327 = load float, ptr %18, align 4, !tbaa !9
  %328 = load float, ptr %7, align 4, !tbaa !9
  %329 = fmul float %327, %328
  store float %329, ptr %7, align 4, !tbaa !9
  %330 = fmul float %.2748940, %327
  br label %331

331:                                              ; preds = %320, %324, %318
  %.3749 = phi float [ %330, %324 ], [ %.2748940, %320 ], [ %.2748940, %318 ]
  store i64 %.7779937, ptr %13, align 8, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %283, ptr noundef nonnull %19) #6
  br label %.sink.split

332:                                              ; preds = %305
  %333 = fcmp ogt float %315, 0.000000e+00
  br i1 %333, label %334, label %352

334:                                              ; preds = %332
  %335 = load float, ptr %22, align 4, !tbaa !9
  %336 = fmul float %315, %335
  %337 = fcmp ogt float %293, %336
  br i1 %337, label %338, label %351

338:                                              ; preds = %334
  %339 = fdiv float %336, %293
  store float %339, ptr %18, align 4, !tbaa !9
  %340 = getelementptr inbounds float, ptr %24, i64 %.7779937
  %341 = load float, ptr %340, align 4, !tbaa !9
  %342 = fcmp ogt float %341, 1.000000e+00
  br i1 %342, label %343, label %345

343:                                              ; preds = %338
  %344 = fdiv float %339, %341
  store float %344, ptr %18, align 4, !tbaa !9
  br label %345

345:                                              ; preds = %343, %338
  %346 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %347 = load float, ptr %18, align 4, !tbaa !9
  %348 = load float, ptr %7, align 4, !tbaa !9
  %349 = fmul float %347, %348
  store float %349, ptr %7, align 4, !tbaa !9
  %350 = fmul float %.2748940, %347
  br label %351

351:                                              ; preds = %345, %334
  %.4750 = phi float [ %350, %345 ], [ %.2748940, %334 ]
  store i64 %.7779937, ptr %13, align 8, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %283, ptr noundef nonnull %19) #6
  br label %.sink.split

352:                                              ; preds = %332
  %353 = load i64, ptr %4, align 8, !tbaa !5
  %.not853932 = icmp slt i64 %353, 1
  br i1 %.not853932, label %.thread863, label %.lr.ph935.preheader

.lr.ph935.preheader:                              ; preds = %352
  %354 = shl nuw i64 %353, 3
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %6, i8 0, i64 %354, i1 false), !tbaa !9
  br label %.thread863

.thread863:                                       ; preds = %.lr.ph935.preheader, %352
  store i64 %.7779937, ptr %13, align 8, !tbaa !5
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %283, align 4, !tbaa !9
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  br label %383

.sink.split:                                      ; preds = %351, %331
  %.5751.ph = phi float [ %.4750, %351 ], [ %.3749, %331 ]
  %.sink1109 = load float, ptr %15, align 8, !tbaa !14
  %.sink1111 = load i64, ptr %13, align 8, !tbaa !5
  %355 = getelementptr inbounds %struct.complex, ptr %25, i64 %.sink1111
  store float %.sink1109, ptr %355, align 4, !tbaa !14
  %356 = load float, ptr %280, align 4, !tbaa !21
  %357 = getelementptr inbounds %struct.complex, ptr %25, i64 %.sink1111, i32 1
  store float %356, ptr %357, align 4, !tbaa !21
  store i64 %.7779937, ptr %13, align 8, !tbaa !5
  %storemerge1082 = load float, ptr %283, align 4, !tbaa !14
  store float %storemerge1082, ptr %14, align 4, !tbaa !9
  %358 = call double @r_imag(ptr noundef nonnull %283) #6
  %359 = fptrunc double %358 to float
  %360 = insertelement <2 x float> poison, float %storemerge1082, i64 0
  %361 = insertelement <2 x float> %360, float %359, i64 1
  %362 = fcmp oge <2 x float> %361, zeroinitializer
  %363 = fneg <2 x float> %361
  %364 = select <2 x i1> %362, <2 x float> %361, <2 x float> %363
  %shift1113 = shufflevector <2 x float> %364, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %365 = fadd <2 x float> %364, %shift1113
  %366 = extractelement <2 x float> %365, i64 0
  br label %367

367:                                              ; preds = %.sink.split, %302
  %.0763 = phi float [ %293, %302 ], [ %366, %.sink.split ]
  %.5751 = phi float [ %.2748940, %302 ], [ %.5751.ph, %.sink.split ]
  %368 = fcmp ogt float %.0763, 1.000000e+00
  br i1 %368, label %369, label %383

369:                                              ; preds = %367
  %370 = fdiv float 1.000000e+00, %.0763
  store float %370, ptr %18, align 4, !tbaa !9
  %371 = getelementptr inbounds float, ptr %24, i64 %.7779937
  %372 = load float, ptr %371, align 4, !tbaa !9
  %373 = load float, ptr %22, align 4, !tbaa !9
  %374 = fsub float %373, %.5751
  %375 = fmul float %370, %374
  %376 = fcmp ogt float %372, %375
  br i1 %376, label %377, label %394

377:                                              ; preds = %369
  %378 = fmul float %370, 5.000000e-01
  store float %378, ptr %18, align 4, !tbaa !9
  %379 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %380 = load float, ptr %18, align 4, !tbaa !9
  %381 = load float, ptr %7, align 4, !tbaa !9
  %382 = fmul float %380, %381
  br label %.sink.split1079

383:                                              ; preds = %.thread863, %367
  %.5751868 = phi float [ 0.000000e+00, %.thread863 ], [ %.5751, %367 ]
  %.0763866 = phi float [ 1.000000e+00, %.thread863 ], [ %.0763, %367 ]
  %384 = getelementptr inbounds float, ptr %24, i64 %.7779937
  %385 = load float, ptr %384, align 4, !tbaa !9
  %386 = fmul float %.0763866, %385
  %387 = load float, ptr %22, align 4, !tbaa !9
  %388 = fsub float %387, %.5751868
  %389 = fcmp ogt float %386, %388
  br i1 %389, label %390, label %394

390:                                              ; preds = %383
  %391 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull @c_b36, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %392 = load float, ptr %7, align 4, !tbaa !9
  %393 = fmul float %392, 5.000000e-01
  br label %.sink.split1079

.sink.split1079:                                  ; preds = %377, %390
  %.sink1080 = phi float [ %393, %390 ], [ %382, %377 ]
  %.5751867.ph = phi float [ %.5751868, %390 ], [ %.5751, %377 ]
  store float %.sink1080, ptr %7, align 4, !tbaa !9
  br label %394

394:                                              ; preds = %.sink.split1079, %383, %369
  %.5751867 = phi float [ %.5751868, %383 ], [ %.5751, %369 ], [ %.5751867.ph, %.sink.split1079 ]
  br i1 %.not.not.not, label %420, label %395

395:                                              ; preds = %394
  %396 = icmp sgt i64 %.7779937, 1
  br i1 %396, label %397, label %._crit_edge1033

._crit_edge1033:                                  ; preds = %395
  %.pre1034 = sub nsw i64 %.4768939, %.7779937
  br label %453

397:                                              ; preds = %395
  %398 = add nsw i64 %.7779937, -1
  store i64 %398, ptr %13, align 8, !tbaa !5
  %399 = load <2 x float>, ptr %283, align 4, !tbaa !9
  %400 = fneg <2 x float> %399
  store <2 x float> %400, ptr %16, align 8, !tbaa !9
  %401 = load float, ptr %20, align 4, !tbaa !9
  %402 = insertelement <2 x float> poison, float %401, i64 0
  %403 = shufflevector <2 x float> %402, <2 x float> poison, <2 x i32> zeroinitializer
  %404 = fmul <2 x float> %403, %400
  store <2 x float> %404, ptr %15, align 8, !tbaa !9
  %405 = sub nsw i64 %.4768939, %.7779937
  %406 = getelementptr %struct.complex, ptr %5, i64 %405
  %407 = call i32 @f2c_caxpy(ptr noundef nonnull %13, ptr noundef nonnull %15, ptr noundef %406, ptr noundef nonnull @c__1, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  store i64 %398, ptr %13, align 8, !tbaa !5
  %408 = call i64 @f2c_icamax(ptr noundef nonnull %13, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  store i64 %408, ptr %13, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.complex, ptr %25, i64 %408
  %410 = load float, ptr %409, align 4, !tbaa !14
  store float %410, ptr %14, align 4, !tbaa !9
  %411 = call double @r_imag(ptr noundef nonnull %409) #6
  %412 = fptrunc double %411 to float
  %413 = insertelement <2 x float> poison, float %410, i64 0
  %414 = insertelement <2 x float> %413, float %412, i64 1
  %415 = fcmp oge <2 x float> %414, zeroinitializer
  %416 = fneg <2 x float> %414
  %417 = select <2 x i1> %415, <2 x float> %414, <2 x float> %416
  %shift1114 = shufflevector <2 x float> %417, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %418 = fadd <2 x float> %417, %shift1114
  %419 = extractelement <2 x float> %418, i64 0
  br label %453

420:                                              ; preds = %394
  %421 = load i64, ptr %4, align 8, !tbaa !5
  %422 = icmp slt i64 %.7779937, %421
  br i1 %422, label %423, label %449

423:                                              ; preds = %420
  %424 = sub nsw i64 %421, %.7779937
  store i64 %424, ptr %13, align 8, !tbaa !5
  %425 = load <2 x float>, ptr %283, align 4, !tbaa !9
  %426 = fneg <2 x float> %425
  store <2 x float> %426, ptr %16, align 8, !tbaa !9
  %427 = load float, ptr %20, align 4, !tbaa !9
  %428 = insertelement <2 x float> poison, float %427, i64 0
  %429 = shufflevector <2 x float> %428, <2 x float> poison, <2 x i32> zeroinitializer
  %430 = fmul <2 x float> %429, %426
  store <2 x float> %430, ptr %15, align 8, !tbaa !9
  %431 = getelementptr %struct.complex, ptr %5, i64 %.4768939
  %432 = getelementptr %struct.complex, ptr %6, i64 %.7779937
  %433 = call i32 @f2c_caxpy(ptr noundef nonnull %13, ptr noundef nonnull %15, ptr noundef %431, ptr noundef nonnull @c__1, ptr noundef %432, ptr noundef nonnull @c__1) #6
  %434 = load i64, ptr %4, align 8, !tbaa !5
  %435 = sub nsw i64 %434, %.7779937
  store i64 %435, ptr %13, align 8, !tbaa !5
  %436 = call i64 @f2c_icamax(ptr noundef nonnull %13, ptr noundef %432, ptr noundef nonnull @c__1) #6
  %437 = add nsw i64 %436, %.7779937
  store i64 %437, ptr %13, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.complex, ptr %25, i64 %437
  %439 = load float, ptr %438, align 4, !tbaa !14
  store float %439, ptr %14, align 4, !tbaa !9
  %440 = call double @r_imag(ptr noundef nonnull %438) #6
  %441 = fptrunc double %440 to float
  %442 = insertelement <2 x float> poison, float %439, i64 0
  %443 = insertelement <2 x float> %442, float %441, i64 1
  %444 = fcmp oge <2 x float> %443, zeroinitializer
  %445 = fneg <2 x float> %443
  %446 = select <2 x i1> %444, <2 x float> %443, <2 x float> %445
  %shift1115 = shufflevector <2 x float> %446, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %447 = fadd <2 x float> %446, %shift1115
  %448 = extractelement <2 x float> %447, i64 0
  %.pre = load i64, ptr %4, align 8, !tbaa !5
  br label %449

449:                                              ; preds = %423, %420
  %450 = phi i64 [ %.pre, %423 ], [ %421, %420 ]
  %.7 = phi float [ %448, %423 ], [ %.5751867, %420 ]
  %reass.sub1009 = sub i64 %.4768939, %.7779937
  %451 = add i64 %reass.sub1009, 1
  %452 = add i64 %451, %450
  br label %453

453:                                              ; preds = %397, %._crit_edge1033, %449
  %.5769 = phi i64 [ %452, %449 ], [ %.pre1034, %._crit_edge1033 ], [ %405, %397 ]
  %.8 = phi float [ %.7, %449 ], [ %.5751867, %._crit_edge1033 ], [ %419, %397 ]
  %454 = load i64, ptr %12, align 8, !tbaa !5
  %455 = add nsw i64 %454, %.7779937
  %456 = icmp slt i64 %454, 0
  %457 = icmp sge i64 %455, %255
  %458 = icmp sle i64 %455, %255
  %.in851 = select i1 %456, i1 %457, i1 %458
  br i1 %.in851, label %282, label %.loopexit871, !llvm.loop !22

459:                                              ; preds = %272
  %460 = call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %.not838 = icmp eq i64 %460, 0
  %461 = icmp slt i64 %254, 0
  %462 = icmp sge i64 %.2, %255
  %463 = icmp sle i64 %.2, %255
  %.in8391001 = select i1 %461, i1 %462, i1 %463
  br i1 %.not838, label %708, label %464

464:                                              ; preds = %459
  store i64 %255, ptr %12, align 8, !tbaa !5
  store i64 %254, ptr %11, align 8, !tbaa !5
  br i1 %.in8391001, label %.lr.ph979, label %.loopexit871

.lr.ph979:                                        ; preds = %464
  %465 = add nsw i64 %.2, 1
  %466 = mul nsw i64 %465, %.2
  %467 = sdiv i64 %466, 2
  %468 = getelementptr inbounds i8, ptr %21, i64 4
  %469 = getelementptr inbounds i8, ptr %15, i64 4
  %470 = getelementptr inbounds i8, ptr %19, i64 4
  br label %471

471:                                              ; preds = %.lr.ph979, %688
  %.9977 = phi float [ %.1747, %.lr.ph979 ], [ %700, %688 ]
  %.2758976 = phi i64 [ 1, %.lr.ph979 ], [ %701, %688 ]
  %.6770974 = phi i64 [ %467, %.lr.ph979 ], [ %703, %688 ]
  %.8780972 = phi i64 [ %.2, %.lr.ph979 ], [ %704, %688 ]
  store i64 %.8780972, ptr %13, align 8, !tbaa !5
  %472 = getelementptr inbounds %struct.complex, ptr %25, i64 %.8780972
  %473 = load float, ptr %472, align 4, !tbaa !14
  store float %473, ptr %14, align 4, !tbaa !9
  %474 = call double @r_imag(ptr noundef nonnull %472) #6
  %475 = fptrunc double %474 to float
  %476 = insertelement <2 x float> poison, float %473, i64 0
  %477 = insertelement <2 x float> %476, float %475, i64 1
  %478 = fcmp oge <2 x float> %477, zeroinitializer
  %479 = fneg <2 x float> %477
  %480 = select <2 x i1> %478, <2 x float> %477, <2 x float> %479
  %shift1116 = shufflevector <2 x float> %480, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %481 = fadd <2 x float> %480, %shift1116
  %482 = extractelement <2 x float> %481, i64 0
  %483 = load float, ptr %20, align 4, !tbaa !9
  store float %483, ptr %21, align 8, !tbaa !14
  store float 0.000000e+00, ptr %468, align 4, !tbaa !21
  %484 = fcmp oge float %.9977, 1.000000e+00
  %485 = select i1 %484, float %.9977, float 1.000000e+00
  %486 = fdiv float 1.000000e+00, %485
  store float %486, ptr %18, align 4, !tbaa !9
  %487 = getelementptr inbounds float, ptr %24, i64 %.8780972
  %488 = load float, ptr %487, align 4, !tbaa !9
  %489 = load float, ptr %22, align 4, !tbaa !9
  %490 = fsub float %489, %482
  %491 = fmul float %486, %490
  %492 = fcmp ogt float %488, %491
  br i1 %492, label %493, label %529

493:                                              ; preds = %471
  %494 = fmul float %486, 5.000000e-01
  store float %494, ptr %18, align 4, !tbaa !9
  %495 = insertelement <2 x float> <float poison, float 0.000000e+00>, float %483, i64 0
  br i1 %.not823, label %501, label %496

496:                                              ; preds = %493
  store i64 %.6770974, ptr %13, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.complex, ptr %26, i64 %.6770974
  %498 = load <2 x float>, ptr %497, align 4, !tbaa !9
  %499 = shufflevector <2 x float> %495, <2 x float> poison, <2 x i32> zeroinitializer
  %500 = fmul <2 x float> %499, %498
  store <2 x float> %500, ptr %15, align 8, !tbaa !9
  br label %501

501:                                              ; preds = %493, %496
  %502 = phi <2 x float> [ %500, %496 ], [ %495, %493 ]
  store <2 x float> %502, ptr %19, align 8, !tbaa !9
  %503 = extractelement <2 x float> %502, i64 0
  %504 = fcmp oge float %503, 0.000000e+00
  %505 = fneg float %503
  %506 = select i1 %504, float %503, float %505
  %507 = call double @r_imag(ptr noundef nonnull %19) #6
  %508 = fptrunc double %507 to float
  %509 = fcmp oge float %508, 0.000000e+00
  %510 = fneg float %508
  %511 = select i1 %509, float %508, float %510
  %512 = fadd float %506, %511
  %513 = fcmp ogt float %512, 1.000000e+00
  br i1 %513, label %514, label %520

514:                                              ; preds = %501
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  %515 = load float, ptr %18, align 4, !tbaa !9
  %516 = fmul float %512, %515
  %517 = fcmp oge float %516, 1.000000e+00
  %518 = select i1 %517, float 1.000000e+00, float %516
  store float %518, ptr %18, align 4, !tbaa !9
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %21, ptr noundef nonnull %19) #6
  %519 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %519, ptr %21, align 8, !tbaa !9
  br label %520

520:                                              ; preds = %514, %501
  %521 = load float, ptr %18, align 4, !tbaa !9
  %522 = fcmp olt float %521, 1.000000e+00
  br i1 %522, label %523, label %529

523:                                              ; preds = %520
  %524 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %525 = load float, ptr %18, align 4, !tbaa !9
  %526 = load float, ptr %7, align 4, !tbaa !9
  %527 = fmul float %525, %526
  store float %527, ptr %7, align 4, !tbaa !9
  %528 = fmul float %.9977, %525
  br label %529

529:                                              ; preds = %520, %523, %471
  %.10 = phi float [ %528, %523 ], [ %.9977, %520 ], [ %.9977, %471 ]
  %530 = load float, ptr %21, align 8, !tbaa !14
  %531 = fcmp oeq float %530, 1.000000e+00
  %532 = load float, ptr %468, align 4
  %533 = fcmp oeq float %532, 0.000000e+00
  %or.cond = select i1 %531, i1 %533, i1 false
  br i1 %or.cond, label %534, label %548

534:                                              ; preds = %529
  br i1 %.not.not.not, label %540, label %535

535:                                              ; preds = %534
  %536 = add nsw i64 %.8780972, -1
  store i64 %536, ptr %13, align 8, !tbaa !5
  %537 = sub nsw i64 %.6770974, %.8780972
  %538 = getelementptr %struct.complex, ptr %5, i64 %537
  call void @f2c_cdotu(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %538, ptr noundef nonnull @c__1, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %539 = load <2 x float>, ptr %15, align 8, !tbaa !9
  br label %.loopexit872

540:                                              ; preds = %534
  %541 = load i64, ptr %4, align 8, !tbaa !5
  %542 = icmp slt i64 %.8780972, %541
  br i1 %542, label %543, label %.loopexit872

543:                                              ; preds = %540
  %544 = sub nsw i64 %541, %.8780972
  store i64 %544, ptr %13, align 8, !tbaa !5
  %545 = getelementptr %struct.complex, ptr %5, i64 %.6770974
  %546 = getelementptr %struct.complex, ptr %6, i64 %.8780972
  call void @f2c_cdotu(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %545, ptr noundef nonnull @c__1, ptr noundef %546, ptr noundef nonnull @c__1) #6
  %547 = load <2 x float>, ptr %15, align 8, !tbaa !9
  br label %.loopexit872

548:                                              ; preds = %529
  br i1 %.not.not.not, label %575, label %549

549:                                              ; preds = %548
  %.not848.not943 = icmp sgt i64 %.8780972, 1
  br i1 %.not848.not943, label %.lr.ph948, label %.loopexit872

.lr.ph948:                                        ; preds = %549
  %550 = sub nsw i64 %.6770974, %.8780972
  %551 = getelementptr %struct.complex, ptr %26, i64 %550
  br label %552

552:                                              ; preds = %.lr.ph948, %552
  %.1783944 = phi i64 [ 1, %.lr.ph948 ], [ %574, %552 ]
  %553 = phi <2 x float> [ zeroinitializer, %.lr.ph948 ], [ %573, %552 ]
  %554 = getelementptr %struct.complex, ptr %551, i64 %.1783944
  %555 = load float, ptr %554, align 4, !tbaa !14
  %556 = getelementptr inbounds i8, ptr %554, i64 4
  %557 = load float, ptr %556, align 4, !tbaa !21
  %558 = fneg float %557
  %559 = fmul float %532, %558
  %560 = call float @llvm.fmuladd.f32(float %555, float %530, float %559)
  %561 = fmul float %530, %557
  %562 = call float @llvm.fmuladd.f32(float %555, float %532, float %561)
  %563 = getelementptr inbounds %struct.complex, ptr %25, i64 %.1783944
  %564 = fneg float %562
  %565 = load <2 x float>, ptr %563, align 4, !tbaa !9
  %566 = insertelement <2 x float> poison, float %562, i64 0
  %567 = insertelement <2 x float> %566, float %564, i64 1
  %568 = fmul <2 x float> %565, %567
  %569 = shufflevector <2 x float> %568, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %570 = insertelement <2 x float> poison, float %560, i64 0
  %571 = shufflevector <2 x float> %570, <2 x float> poison, <2 x i32> zeroinitializer
  %572 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %571, <2 x float> %565, <2 x float> %569)
  %573 = fadd <2 x float> %553, %572
  %574 = add nuw nsw i64 %.1783944, 1
  %exitcond.not = icmp eq i64 %574, %.8780972
  br i1 %exitcond.not, label %..loopexit873_crit_edge, label %552, !llvm.loop !23

575:                                              ; preds = %548
  %576 = load i64, ptr %4, align 8, !tbaa !5
  %.not = icmp slt i64 %.8780972, %576
  br i1 %.not, label %.lr.ph959, label %.loopexit872

.lr.ph959:                                        ; preds = %575
  %577 = getelementptr %struct.complex, ptr %26, i64 %.6770974
  %578 = add i64 %576, 1
  %579 = sub i64 %578, %.8780972
  br label %580

580:                                              ; preds = %.lr.ph959, %580
  %.2784955 = phi i64 [ 1, %.lr.ph959 ], [ %602, %580 ]
  %581 = phi <2 x float> [ zeroinitializer, %.lr.ph959 ], [ %601, %580 ]
  %582 = getelementptr %struct.complex, ptr %577, i64 %.2784955
  %583 = load float, ptr %582, align 4, !tbaa !14
  %584 = getelementptr inbounds i8, ptr %582, i64 4
  %585 = load float, ptr %584, align 4, !tbaa !21
  %586 = fneg float %585
  %587 = fmul float %532, %586
  %588 = call float @llvm.fmuladd.f32(float %583, float %530, float %587)
  %589 = fmul float %530, %585
  %590 = call float @llvm.fmuladd.f32(float %583, float %532, float %589)
  %591 = getelementptr %struct.complex, ptr %472, i64 %.2784955
  %592 = fneg float %590
  %593 = load <2 x float>, ptr %591, align 4, !tbaa !9
  %594 = insertelement <2 x float> poison, float %590, i64 0
  %595 = insertelement <2 x float> %594, float %592, i64 1
  %596 = fmul <2 x float> %593, %595
  %597 = shufflevector <2 x float> %596, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %598 = insertelement <2 x float> poison, float %588, i64 0
  %599 = shufflevector <2 x float> %598, <2 x float> poison, <2 x i32> zeroinitializer
  %600 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %599, <2 x float> %593, <2 x float> %597)
  %601 = fadd <2 x float> %581, %600
  %602 = add nuw i64 %.2784955, 1
  %exitcond1032.not = icmp eq i64 %602, %579
  br i1 %exitcond1032.not, label %..loopexit872_crit_edge, label %580, !llvm.loop !24

..loopexit872_crit_edge:                          ; preds = %580
  store <2 x float> %600, ptr %16, align 8, !tbaa !9
  br label %.loopexit872

..loopexit873_crit_edge:                          ; preds = %552
  store <2 x float> %572, ptr %16, align 8, !tbaa !9
  br label %.loopexit872

.loopexit872:                                     ; preds = %549, %..loopexit873_crit_edge, %..loopexit872_crit_edge, %575, %535, %543, %540
  %603 = phi <2 x float> [ %539, %535 ], [ %547, %543 ], [ zeroinitializer, %540 ], [ zeroinitializer, %575 ], [ %601, %..loopexit872_crit_edge ], [ %573, %..loopexit873_crit_edge ], [ zeroinitializer, %549 ]
  %604 = load float, ptr %20, align 4, !tbaa !9
  store float %604, ptr %15, align 8, !tbaa !14
  store float 0.000000e+00, ptr %469, align 4, !tbaa !21
  %605 = load float, ptr %21, align 8, !tbaa !14
  %606 = fcmp oeq float %605, %604
  %607 = load float, ptr %468, align 4
  %608 = fcmp oeq float %607, 0.000000e+00
  %or.cond859 = select i1 %606, i1 %608, i1 false
  br i1 %or.cond859, label %609, label %683

609:                                              ; preds = %.loopexit872
  %610 = load <2 x float>, ptr %472, align 4, !tbaa !9
  %611 = fsub <2 x float> %610, %603
  store <2 x float> %611, ptr %15, align 8, !tbaa !9
  store <2 x float> %611, ptr %472, align 4, !tbaa !9
  store i64 %.8780972, ptr %13, align 8, !tbaa !5
  %612 = extractelement <2 x float> %611, i64 0
  %613 = fcmp oge float %612, 0.000000e+00
  %614 = fneg float %612
  %615 = select i1 %613, float %612, float %614
  %616 = call double @r_imag(ptr noundef nonnull %472) #6
  %617 = fptrunc double %616 to float
  %618 = fcmp oge float %617, 0.000000e+00
  %619 = fneg float %617
  %620 = select i1 %618, float %617, float %619
  %621 = fadd float %615, %620
  br i1 %.not823, label %630, label %622

622:                                              ; preds = %609
  store i64 %.6770974, ptr %13, align 8, !tbaa !5
  %623 = load float, ptr %20, align 4, !tbaa !9
  %624 = getelementptr inbounds %struct.complex, ptr %26, i64 %.6770974
  %625 = load <2 x float>, ptr %624, align 4, !tbaa !9
  %626 = insertelement <2 x float> poison, float %623, i64 0
  %627 = shufflevector <2 x float> %626, <2 x float> poison, <2 x i32> zeroinitializer
  %628 = fmul <2 x float> %627, %625
  store <2 x float> %628, ptr %15, align 8, !tbaa !9
  store <2 x float> %628, ptr %19, align 8, !tbaa !9
  %629 = extractelement <2 x float> %628, i64 0
  br label %633

630:                                              ; preds = %609
  %631 = load float, ptr %20, align 4, !tbaa !9
  store float %631, ptr %19, align 8, !tbaa !14
  store float 0.000000e+00, ptr %470, align 4, !tbaa !21
  %632 = fcmp oeq float %631, 1.000000e+00
  br i1 %632, label %688, label %633

633:                                              ; preds = %630, %622
  %634 = phi float [ %631, %630 ], [ %629, %622 ]
  store float %634, ptr %14, align 4, !tbaa !9
  %635 = call double @r_imag(ptr noundef nonnull %19) #6
  %636 = fptrunc double %635 to float
  %637 = insertelement <2 x float> poison, float %634, i64 0
  %638 = insertelement <2 x float> %637, float %636, i64 1
  %639 = fcmp oge <2 x float> %638, zeroinitializer
  %640 = fneg <2 x float> %638
  %641 = select <2 x i1> %639, <2 x float> %638, <2 x float> %640
  %shift1117 = shufflevector <2 x float> %641, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %642 = fadd <2 x float> %641, %shift1117
  %643 = extractelement <2 x float> %642, i64 0
  %644 = load float, ptr %23, align 4, !tbaa !9
  %645 = fcmp ogt float %643, %644
  br i1 %645, label %646, label %663

646:                                              ; preds = %633
  %647 = fcmp olt float %643, 1.000000e+00
  br i1 %647, label %648, label %659

648:                                              ; preds = %646
  %649 = load float, ptr %22, align 4, !tbaa !9
  %650 = fmul float %643, %649
  %651 = fcmp ogt float %621, %650
  br i1 %651, label %652, label %659

652:                                              ; preds = %648
  %653 = fdiv float 1.000000e+00, %621
  store float %653, ptr %18, align 4, !tbaa !9
  %654 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %655 = load float, ptr %18, align 4, !tbaa !9
  %656 = load float, ptr %7, align 4, !tbaa !9
  %657 = fmul float %655, %656
  store float %657, ptr %7, align 4, !tbaa !9
  %658 = fmul float %.10, %655
  br label %659

659:                                              ; preds = %648, %652, %646
  %.11 = phi float [ %658, %652 ], [ %.10, %648 ], [ %.10, %646 ]
  store i64 %.8780972, ptr %13, align 8, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %472, ptr noundef nonnull %19) #6
  %660 = load i64, ptr %13, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.complex, ptr %25, i64 %660
  %662 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %662, ptr %661, align 4, !tbaa !9
  br label %688

663:                                              ; preds = %633
  %664 = fcmp ogt float %643, 0.000000e+00
  br i1 %664, label %665, label %680

665:                                              ; preds = %663
  %666 = load float, ptr %22, align 4, !tbaa !9
  %667 = fmul float %643, %666
  %668 = fcmp ogt float %621, %667
  br i1 %668, label %669, label %676

669:                                              ; preds = %665
  %670 = fdiv float %667, %621
  store float %670, ptr %18, align 4, !tbaa !9
  %671 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %672 = load float, ptr %18, align 4, !tbaa !9
  %673 = load float, ptr %7, align 4, !tbaa !9
  %674 = fmul float %672, %673
  store float %674, ptr %7, align 4, !tbaa !9
  %675 = fmul float %.10, %672
  br label %676

676:                                              ; preds = %669, %665
  %.12 = phi float [ %675, %669 ], [ %.10, %665 ]
  store i64 %.8780972, ptr %13, align 8, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %472, ptr noundef nonnull %19) #6
  %677 = load i64, ptr %13, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.complex, ptr %25, i64 %677
  %679 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %679, ptr %678, align 4, !tbaa !9
  br label %688

680:                                              ; preds = %663
  %681 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %681, ptr %13, align 8, !tbaa !5
  %.not850966 = icmp slt i64 %681, 1
  br i1 %.not850966, label %._crit_edge970, label %.lr.ph969.preheader

.lr.ph969.preheader:                              ; preds = %680
  %682 = shl nuw i64 %681, 3
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %6, i8 0, i64 %682, i1 false), !tbaa !9
  br label %._crit_edge970

._crit_edge970:                                   ; preds = %.lr.ph969.preheader, %680
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %472, align 4, !tbaa !9
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  br label %688

683:                                              ; preds = %.loopexit872
  store i64 %.8780972, ptr %13, align 8, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %472, ptr noundef nonnull %19) #6
  %684 = load <2 x float>, ptr %16, align 8, !tbaa !9
  %685 = fsub <2 x float> %684, %603
  store <2 x float> %685, ptr %15, align 8, !tbaa !9
  %686 = load i64, ptr %13, align 8, !tbaa !5
  %687 = getelementptr inbounds %struct.complex, ptr %25, i64 %686
  store <2 x float> %685, ptr %687, align 4, !tbaa !9
  br label %688

688:                                              ; preds = %630, %676, %._crit_edge970, %659, %683
  %.13 = phi float [ %.11, %659 ], [ %.12, %676 ], [ 0.000000e+00, %._crit_edge970 ], [ %.10, %630 ], [ %.10, %683 ]
  store i64 %.8780972, ptr %13, align 8, !tbaa !5
  %689 = load float, ptr %472, align 4, !tbaa !14
  store float %689, ptr %14, align 4, !tbaa !9
  %690 = call double @r_imag(ptr noundef nonnull %472) #6
  %691 = fptrunc double %690 to float
  %692 = insertelement <2 x float> poison, float %689, i64 0
  %693 = insertelement <2 x float> %692, float %691, i64 1
  %694 = fcmp oge <2 x float> %693, zeroinitializer
  %695 = fneg <2 x float> %693
  %696 = select <2 x i1> %694, <2 x float> %693, <2 x float> %695
  %shift1118 = shufflevector <2 x float> %696, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %697 = fadd <2 x float> %696, %shift1118
  %698 = extractelement <2 x float> %697, i64 0
  %699 = fcmp oge float %.13, %698
  %700 = select i1 %699, float %.13, float %698
  %701 = add nuw nsw i64 %.2758976, 1
  %702 = mul nsw i64 %701, %254
  %703 = add nsw i64 %702, %.6770974
  %704 = add nsw i64 %254, %.8780972
  %705 = load i64, ptr %12, align 8
  %706 = icmp sge i64 %704, %705
  %707 = icmp sle i64 %704, %705
  %.in845 = select i1 %461, i1 %706, i1 %707
  br i1 %.in845, label %471, label %.loopexit871, !llvm.loop !25

708:                                              ; preds = %459
  store i64 %255, ptr %11, align 8, !tbaa !5
  store i64 %254, ptr %12, align 8, !tbaa !5
  br i1 %.in8391001, label %.lr.ph1008, label %.loopexit871

.lr.ph1008:                                       ; preds = %708
  %709 = add nsw i64 %.2, 1
  %710 = mul nsw i64 %709, %.2
  %711 = sdiv i64 %710, 2
  %712 = getelementptr inbounds i8, ptr %21, i64 4
  %713 = getelementptr inbounds i8, ptr %15, i64 4
  %714 = getelementptr inbounds i8, ptr %19, i64 4
  %715 = getelementptr inbounds i8, ptr %17, i64 4
  br label %716

716:                                              ; preds = %.lr.ph1008, %941
  %.141006 = phi float [ %.1747, %.lr.ph1008 ], [ %953, %941 ]
  %.37591005 = phi i64 [ 1, %.lr.ph1008 ], [ %954, %941 ]
  %.77711003 = phi i64 [ %711, %.lr.ph1008 ], [ %956, %941 ]
  %.97811002 = phi i64 [ %.2, %.lr.ph1008 ], [ %958, %941 ]
  store i64 %.97811002, ptr %13, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.complex, ptr %25, i64 %.97811002
  %718 = load float, ptr %717, align 4, !tbaa !14
  store float %718, ptr %14, align 4, !tbaa !9
  %719 = call double @r_imag(ptr noundef nonnull %717) #6
  %720 = fptrunc double %719 to float
  %721 = insertelement <2 x float> poison, float %718, i64 0
  %722 = insertelement <2 x float> %721, float %720, i64 1
  %723 = fcmp oge <2 x float> %722, zeroinitializer
  %724 = fneg <2 x float> %722
  %725 = select <2 x i1> %723, <2 x float> %722, <2 x float> %724
  %shift1119 = shufflevector <2 x float> %725, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %726 = fadd <2 x float> %725, %shift1119
  %727 = extractelement <2 x float> %726, i64 0
  %728 = load float, ptr %20, align 4, !tbaa !9
  store float %728, ptr %21, align 8, !tbaa !14
  store float 0.000000e+00, ptr %712, align 4, !tbaa !21
  %729 = fcmp oge float %.141006, 1.000000e+00
  %730 = select i1 %729, float %.141006, float 1.000000e+00
  %731 = fdiv float 1.000000e+00, %730
  store float %731, ptr %18, align 4, !tbaa !9
  %732 = getelementptr inbounds float, ptr %24, i64 %.97811002
  %733 = load float, ptr %732, align 4, !tbaa !9
  %734 = load float, ptr %22, align 4, !tbaa !9
  %735 = fsub float %734, %727
  %736 = fmul float %731, %735
  %737 = fcmp ogt float %733, %736
  br i1 %737, label %738, label %776

738:                                              ; preds = %716
  %739 = fmul float %731, 5.000000e-01
  store float %739, ptr %18, align 4, !tbaa !9
  %740 = insertelement <2 x float> <float poison, float 0.000000e+00>, float %728, i64 0
  br i1 %.not823, label %748, label %741

741:                                              ; preds = %738
  %742 = getelementptr inbounds %struct.complex, ptr %26, i64 %.77711003
  call void @r_cnjg(ptr noundef nonnull %16, ptr noundef nonnull %742) #6
  %743 = load float, ptr %20, align 4, !tbaa !9
  %744 = load <2 x float>, ptr %16, align 8, !tbaa !9
  %745 = insertelement <2 x float> poison, float %743, i64 0
  %746 = shufflevector <2 x float> %745, <2 x float> poison, <2 x i32> zeroinitializer
  %747 = fmul <2 x float> %746, %744
  store <2 x float> %747, ptr %15, align 8, !tbaa !9
  br label %748

748:                                              ; preds = %738, %741
  %749 = phi <2 x float> [ %747, %741 ], [ %740, %738 ]
  store <2 x float> %749, ptr %19, align 8, !tbaa !9
  %750 = extractelement <2 x float> %749, i64 0
  %751 = fcmp oge float %750, 0.000000e+00
  %752 = fneg float %750
  %753 = select i1 %751, float %750, float %752
  %754 = call double @r_imag(ptr noundef nonnull %19) #6
  %755 = fptrunc double %754 to float
  %756 = fcmp oge float %755, 0.000000e+00
  %757 = fneg float %755
  %758 = select i1 %756, float %755, float %757
  %759 = fadd float %753, %758
  %760 = fcmp ogt float %759, 1.000000e+00
  br i1 %760, label %761, label %767

761:                                              ; preds = %748
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  %762 = load float, ptr %18, align 4, !tbaa !9
  %763 = fmul float %759, %762
  %764 = fcmp oge float %763, 1.000000e+00
  %765 = select i1 %764, float 1.000000e+00, float %763
  store float %765, ptr %18, align 4, !tbaa !9
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %21, ptr noundef nonnull %19) #6
  %766 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %766, ptr %21, align 8, !tbaa !9
  br label %767

767:                                              ; preds = %761, %748
  %768 = load float, ptr %18, align 4, !tbaa !9
  %769 = fcmp olt float %768, 1.000000e+00
  br i1 %769, label %770, label %776

770:                                              ; preds = %767
  %771 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %772 = load float, ptr %18, align 4, !tbaa !9
  %773 = load float, ptr %7, align 4, !tbaa !9
  %774 = fmul float %772, %773
  store float %774, ptr %7, align 4, !tbaa !9
  %775 = fmul float %.141006, %772
  br label %776

776:                                              ; preds = %767, %770, %716
  %.15 = phi float [ %775, %770 ], [ %.141006, %767 ], [ %.141006, %716 ]
  %777 = load float, ptr %21, align 8, !tbaa !14
  %778 = fcmp oeq float %777, 1.000000e+00
  %779 = load float, ptr %712, align 4
  %780 = fcmp oeq float %779, 0.000000e+00
  %or.cond5 = select i1 %778, i1 %780, i1 false
  br i1 %or.cond5, label %781, label %795

781:                                              ; preds = %776
  br i1 %.not.not.not, label %787, label %782

782:                                              ; preds = %781
  %783 = add nsw i64 %.97811002, -1
  store i64 %783, ptr %13, align 8, !tbaa !5
  %784 = sub nsw i64 %.77711003, %.97811002
  %785 = getelementptr %struct.complex, ptr %5, i64 %784
  call void @f2c_cdotc(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %785, ptr noundef nonnull @c__1, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %786 = load <2 x float>, ptr %15, align 8, !tbaa !9
  br label %.loopexit

787:                                              ; preds = %781
  %788 = load i64, ptr %4, align 8, !tbaa !5
  %789 = icmp slt i64 %.97811002, %788
  br i1 %789, label %790, label %.loopexit

790:                                              ; preds = %787
  %791 = sub nsw i64 %788, %.97811002
  store i64 %791, ptr %13, align 8, !tbaa !5
  %792 = getelementptr %struct.complex, ptr %5, i64 %.77711003
  %793 = getelementptr %struct.complex, ptr %6, i64 %.97811002
  call void @f2c_cdotc(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %792, ptr noundef nonnull @c__1, ptr noundef %793, ptr noundef nonnull @c__1) #6
  %794 = load <2 x float>, ptr %15, align 8, !tbaa !9
  br label %.loopexit

795:                                              ; preds = %776
  br i1 %.not.not.not, label %825, label %796

796:                                              ; preds = %795
  %797 = add nsw i64 %.97811002, -1
  store i64 %797, ptr %13, align 8, !tbaa !5
  %.not842980 = icmp slt i64 %.97811002, 2
  br i1 %.not842980, label %.loopexit, label %.lr.ph985

.lr.ph985:                                        ; preds = %796
  %798 = sub nsw i64 %.77711003, %.97811002
  %799 = getelementptr %struct.complex, ptr %26, i64 %798
  br label %800

800:                                              ; preds = %.lr.ph985, %800
  %.4786981 = phi i64 [ 1, %.lr.ph985 ], [ %823, %800 ]
  %801 = phi <2 x float> [ zeroinitializer, %.lr.ph985 ], [ %822, %800 ]
  %802 = getelementptr %struct.complex, ptr %799, i64 %.4786981
  call void @r_cnjg(ptr noundef nonnull %17, ptr noundef %802) #6
  %803 = load float, ptr %17, align 4, !tbaa !14
  %804 = load float, ptr %21, align 8, !tbaa !14
  %805 = load float, ptr %715, align 4, !tbaa !21
  %806 = load float, ptr %712, align 4, !tbaa !21
  %807 = fneg float %805
  %808 = fmul float %806, %807
  %809 = call float @llvm.fmuladd.f32(float %803, float %804, float %808)
  %810 = fmul float %804, %805
  %811 = call float @llvm.fmuladd.f32(float %803, float %806, float %810)
  %812 = getelementptr inbounds %struct.complex, ptr %25, i64 %.4786981
  %813 = fneg float %811
  %814 = load <2 x float>, ptr %812, align 4, !tbaa !9
  %815 = insertelement <2 x float> poison, float %811, i64 0
  %816 = insertelement <2 x float> %815, float %813, i64 1
  %817 = fmul <2 x float> %814, %816
  %818 = shufflevector <2 x float> %817, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %819 = insertelement <2 x float> poison, float %809, i64 0
  %820 = shufflevector <2 x float> %819, <2 x float> poison, <2 x i32> zeroinitializer
  %821 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %820, <2 x float> %814, <2 x float> %818)
  store <2 x float> %821, ptr %16, align 8, !tbaa !9
  %822 = fadd <2 x float> %801, %821
  store <2 x float> %822, ptr %15, align 8, !tbaa !9
  %823 = add nuw nsw i64 %.4786981, 1
  %824 = load i64, ptr %13, align 8, !tbaa !5
  %.not842.not = icmp slt i64 %.4786981, %824
  br i1 %.not842.not, label %800, label %.loopexit, !llvm.loop !26

825:                                              ; preds = %795
  %826 = load i64, ptr %4, align 8, !tbaa !5
  %827 = icmp slt i64 %.97811002, %826
  br i1 %827, label %828, label %.loopexit

828:                                              ; preds = %825
  %829 = sub nsw i64 %826, %.97811002
  store i64 %829, ptr %13, align 8, !tbaa !5
  %.not841988 = icmp slt i64 %829, 1
  br i1 %.not841988, label %.loopexit, label %.lr.ph993

.lr.ph993:                                        ; preds = %828
  %830 = getelementptr %struct.complex, ptr %26, i64 %.77711003
  br label %831

831:                                              ; preds = %.lr.ph993, %831
  %.5787989 = phi i64 [ 1, %.lr.ph993 ], [ %854, %831 ]
  %832 = phi <2 x float> [ zeroinitializer, %.lr.ph993 ], [ %853, %831 ]
  %833 = getelementptr %struct.complex, ptr %830, i64 %.5787989
  call void @r_cnjg(ptr noundef nonnull %17, ptr noundef %833) #6
  %834 = load float, ptr %17, align 4, !tbaa !14
  %835 = load float, ptr %21, align 8, !tbaa !14
  %836 = load float, ptr %715, align 4, !tbaa !21
  %837 = load float, ptr %712, align 4, !tbaa !21
  %838 = fneg float %836
  %839 = fmul float %837, %838
  %840 = call float @llvm.fmuladd.f32(float %834, float %835, float %839)
  %841 = fmul float %835, %836
  %842 = call float @llvm.fmuladd.f32(float %834, float %837, float %841)
  %843 = getelementptr %struct.complex, ptr %717, i64 %.5787989
  %844 = fneg float %842
  %845 = load <2 x float>, ptr %843, align 4, !tbaa !9
  %846 = insertelement <2 x float> poison, float %842, i64 0
  %847 = insertelement <2 x float> %846, float %844, i64 1
  %848 = fmul <2 x float> %845, %847
  %849 = shufflevector <2 x float> %848, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %850 = insertelement <2 x float> poison, float %840, i64 0
  %851 = shufflevector <2 x float> %850, <2 x float> poison, <2 x i32> zeroinitializer
  %852 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %851, <2 x float> %845, <2 x float> %849)
  store <2 x float> %852, ptr %16, align 8, !tbaa !9
  %853 = fadd <2 x float> %832, %852
  store <2 x float> %853, ptr %15, align 8, !tbaa !9
  %854 = add nuw nsw i64 %.5787989, 1
  %855 = load i64, ptr %13, align 8, !tbaa !5
  %.not841.not = icmp slt i64 %.5787989, %855
  br i1 %.not841.not, label %831, label %.loopexit, !llvm.loop !27

.loopexit:                                        ; preds = %800, %831, %796, %828, %825, %782, %790, %787
  %856 = phi <2 x float> [ %786, %782 ], [ %794, %790 ], [ zeroinitializer, %787 ], [ zeroinitializer, %825 ], [ zeroinitializer, %828 ], [ zeroinitializer, %796 ], [ %853, %831 ], [ %822, %800 ]
  %857 = load float, ptr %20, align 4, !tbaa !9
  store float %857, ptr %15, align 8, !tbaa !14
  store float 0.000000e+00, ptr %713, align 4, !tbaa !21
  %858 = load float, ptr %21, align 8, !tbaa !14
  %859 = fcmp oeq float %858, %857
  %860 = load float, ptr %712, align 4
  %861 = fcmp oeq float %860, 0.000000e+00
  %or.cond861 = select i1 %859, i1 %861, i1 false
  br i1 %or.cond861, label %862, label %936

862:                                              ; preds = %.loopexit
  %863 = load <2 x float>, ptr %717, align 4, !tbaa !9
  %864 = fsub <2 x float> %863, %856
  store <2 x float> %864, ptr %15, align 8, !tbaa !9
  store <2 x float> %864, ptr %717, align 4, !tbaa !9
  store i64 %.97811002, ptr %13, align 8, !tbaa !5
  %865 = extractelement <2 x float> %864, i64 0
  %866 = fcmp oge float %865, 0.000000e+00
  %867 = fneg float %865
  %868 = select i1 %866, float %865, float %867
  %869 = call double @r_imag(ptr noundef nonnull %717) #6
  %870 = fptrunc double %869 to float
  %871 = fcmp oge float %870, 0.000000e+00
  %872 = fneg float %870
  %873 = select i1 %871, float %870, float %872
  %874 = fadd float %868, %873
  br i1 %.not823, label %883, label %875

875:                                              ; preds = %862
  %876 = getelementptr inbounds %struct.complex, ptr %26, i64 %.77711003
  call void @r_cnjg(ptr noundef nonnull %16, ptr noundef nonnull %876) #6
  %877 = load float, ptr %20, align 4, !tbaa !9
  %878 = load <2 x float>, ptr %16, align 8, !tbaa !9
  %879 = insertelement <2 x float> poison, float %877, i64 0
  %880 = shufflevector <2 x float> %879, <2 x float> poison, <2 x i32> zeroinitializer
  %881 = fmul <2 x float> %880, %878
  store <2 x float> %881, ptr %15, align 8, !tbaa !9
  store <2 x float> %881, ptr %19, align 8, !tbaa !9
  %882 = extractelement <2 x float> %881, i64 0
  br label %886

883:                                              ; preds = %862
  %884 = load float, ptr %20, align 4, !tbaa !9
  store float %884, ptr %19, align 8, !tbaa !14
  store float 0.000000e+00, ptr %714, align 4, !tbaa !21
  %885 = fcmp oeq float %884, 1.000000e+00
  br i1 %885, label %941, label %886

886:                                              ; preds = %883, %875
  %887 = phi float [ %884, %883 ], [ %882, %875 ]
  store float %887, ptr %14, align 4, !tbaa !9
  %888 = call double @r_imag(ptr noundef nonnull %19) #6
  %889 = fptrunc double %888 to float
  %890 = insertelement <2 x float> poison, float %887, i64 0
  %891 = insertelement <2 x float> %890, float %889, i64 1
  %892 = fcmp oge <2 x float> %891, zeroinitializer
  %893 = fneg <2 x float> %891
  %894 = select <2 x i1> %892, <2 x float> %891, <2 x float> %893
  %shift1120 = shufflevector <2 x float> %894, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %895 = fadd <2 x float> %894, %shift1120
  %896 = extractelement <2 x float> %895, i64 0
  %897 = load float, ptr %23, align 4, !tbaa !9
  %898 = fcmp ogt float %896, %897
  br i1 %898, label %899, label %916

899:                                              ; preds = %886
  %900 = fcmp olt float %896, 1.000000e+00
  br i1 %900, label %901, label %912

901:                                              ; preds = %899
  %902 = load float, ptr %22, align 4, !tbaa !9
  %903 = fmul float %896, %902
  %904 = fcmp ogt float %874, %903
  br i1 %904, label %905, label %912

905:                                              ; preds = %901
  %906 = fdiv float 1.000000e+00, %874
  store float %906, ptr %18, align 4, !tbaa !9
  %907 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %908 = load float, ptr %18, align 4, !tbaa !9
  %909 = load float, ptr %7, align 4, !tbaa !9
  %910 = fmul float %908, %909
  store float %910, ptr %7, align 4, !tbaa !9
  %911 = fmul float %.15, %908
  br label %912

912:                                              ; preds = %901, %905, %899
  %.16 = phi float [ %911, %905 ], [ %.15, %901 ], [ %.15, %899 ]
  store i64 %.97811002, ptr %13, align 8, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %717, ptr noundef nonnull %19) #6
  %913 = load i64, ptr %13, align 8, !tbaa !5
  %914 = getelementptr inbounds %struct.complex, ptr %25, i64 %913
  %915 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %915, ptr %914, align 4, !tbaa !9
  br label %941

916:                                              ; preds = %886
  %917 = fcmp ogt float %896, 0.000000e+00
  br i1 %917, label %918, label %933

918:                                              ; preds = %916
  %919 = load float, ptr %22, align 4, !tbaa !9
  %920 = fmul float %896, %919
  %921 = fcmp ogt float %874, %920
  br i1 %921, label %922, label %929

922:                                              ; preds = %918
  %923 = fdiv float %920, %874
  store float %923, ptr %18, align 4, !tbaa !9
  %924 = call i32 @f2c_csscal(ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #6
  %925 = load float, ptr %18, align 4, !tbaa !9
  %926 = load float, ptr %7, align 4, !tbaa !9
  %927 = fmul float %925, %926
  store float %927, ptr %7, align 4, !tbaa !9
  %928 = fmul float %.15, %925
  br label %929

929:                                              ; preds = %922, %918
  %.17 = phi float [ %928, %922 ], [ %.15, %918 ]
  store i64 %.97811002, ptr %13, align 8, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %717, ptr noundef nonnull %19) #6
  %930 = load i64, ptr %13, align 8, !tbaa !5
  %931 = getelementptr inbounds %struct.complex, ptr %25, i64 %930
  %932 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %932, ptr %931, align 4, !tbaa !9
  br label %941

933:                                              ; preds = %916
  %934 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %934, ptr %13, align 8, !tbaa !5
  %.not844996 = icmp slt i64 %934, 1
  br i1 %.not844996, label %._crit_edge1000, label %.lr.ph999.preheader

.lr.ph999.preheader:                              ; preds = %933
  %935 = shl nuw i64 %934, 3
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %6, i8 0, i64 %935, i1 false), !tbaa !9
  br label %._crit_edge1000

._crit_edge1000:                                  ; preds = %.lr.ph999.preheader, %933
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %717, align 4, !tbaa !9
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  br label %941

936:                                              ; preds = %.loopexit
  store i64 %.97811002, ptr %13, align 8, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %717, ptr noundef nonnull %19) #6
  %937 = load <2 x float>, ptr %16, align 8, !tbaa !9
  %938 = fsub <2 x float> %937, %856
  store <2 x float> %938, ptr %15, align 8, !tbaa !9
  %939 = load i64, ptr %13, align 8, !tbaa !5
  %940 = getelementptr inbounds %struct.complex, ptr %25, i64 %939
  store <2 x float> %938, ptr %940, align 4, !tbaa !9
  br label %941

941:                                              ; preds = %883, %929, %._crit_edge1000, %912, %936
  %.18 = phi float [ %.16, %912 ], [ %.17, %929 ], [ 0.000000e+00, %._crit_edge1000 ], [ %.15, %883 ], [ %.15, %936 ]
  store i64 %.97811002, ptr %13, align 8, !tbaa !5
  %942 = load float, ptr %717, align 4, !tbaa !14
  store float %942, ptr %14, align 4, !tbaa !9
  %943 = call double @r_imag(ptr noundef nonnull %717) #6
  %944 = fptrunc double %943 to float
  %945 = insertelement <2 x float> poison, float %942, i64 0
  %946 = insertelement <2 x float> %945, float %944, i64 1
  %947 = fcmp oge <2 x float> %946, zeroinitializer
  %948 = fneg <2 x float> %946
  %949 = select <2 x i1> %947, <2 x float> %946, <2 x float> %948
  %shift1121 = shufflevector <2 x float> %949, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %950 = fadd <2 x float> %949, %shift1121
  %951 = extractelement <2 x float> %950, i64 0
  %952 = fcmp oge float %.18, %951
  %953 = select i1 %952, float %.18, float %951
  %954 = add nuw nsw i64 %.37591005, 1
  %955 = mul nsw i64 %954, %254
  %956 = add nsw i64 %955, %.77711003
  %957 = load i64, ptr %12, align 8, !tbaa !5
  %958 = add nsw i64 %957, %.97811002
  %959 = icmp slt i64 %957, 0
  %960 = icmp sge i64 %958, %255
  %961 = icmp sle i64 %958, %255
  %.in839 = select i1 %959, i1 %960, i1 %961
  br i1 %.in839, label %716, label %.loopexit871, !llvm.loop !28

.loopexit871:                                     ; preds = %453, %688, %941, %273, %464, %708
  %962 = load float, ptr %20, align 4, !tbaa !9
  %963 = load float, ptr %7, align 4, !tbaa !9
  %964 = fdiv float %963, %962
  store float %964, ptr %7, align 4, !tbaa !9
  br label %965

965:                                              ; preds = %.loopexit871, %260
  %966 = phi float [ %962, %.loopexit871 ], [ %.pr869, %260 ]
  %967 = fcmp une float %966, 1.000000e+00
  br i1 %967, label %968, label %971

968:                                              ; preds = %965
  %969 = fdiv float 1.000000e+00, %966
  store float %969, ptr %14, align 4, !tbaa !9
  %970 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %8, ptr noundef nonnull @c__1) #6
  br label %971

971:                                              ; preds = %965, %968, %51, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  ret i32 0
}

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

declare i64 @f2c_isamax(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare double @r_imag(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare i64 @f2c_icamax(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

; 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>) #5

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

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

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


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