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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @clarrv_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24) #0 {
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca float, align 4
  %61 = alloca float, align 4
  %62 = alloca %struct.complex, align 4
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca float, align 4
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  %75 = alloca float, align 4
  %76 = alloca float, align 4
  %77 = alloca float, align 4
  %78 = alloca float, align 4
  %79 = alloca float, align 4
  %80 = alloca float, align 4
  %81 = alloca i64, align 8
  %82 = alloca float, align 4
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca float, align 4
  %86 = alloca i64, align 8
  %87 = alloca float, align 4
  %88 = alloca float, align 4
  %89 = alloca i64, align 8
  %90 = alloca i64, align 8
  %91 = alloca float, align 4
  %92 = alloca i64, align 8
  %93 = alloca i64, align 8
  %94 = alloca float, align 4
  %95 = alloca i64, align 8
  %96 = alloca float, align 4
  %97 = alloca i64, align 8
  %98 = alloca i64, align 8
  %99 = alloca float, align 4
  %100 = alloca i64, align 8
  %101 = alloca float, align 4
  %102 = alloca i64, align 8
  %103 = alloca i64, align 8
  %104 = alloca float, align 4
  %105 = alloca i64, align 8
  %106 = alloca i64, align 8
  %107 = alloca i64, align 8
  %108 = alloca i64, align 8
  %109 = alloca i64, align 8
  %110 = alloca float, align 4
  %111 = alloca i64, align 8
  %112 = alloca i64, align 8
  %113 = alloca i64, align 8
  %114 = alloca i64, align 8
  %115 = alloca float, align 4
  %116 = alloca float, align 4
  %117 = alloca i64, align 8
  %118 = alloca i64, align 8
  %119 = alloca i64, align 8
  %120 = alloca float, align 4
  %121 = alloca i64, align 8
  %122 = alloca i64, align 8
  %123 = alloca float, align 4
  %124 = alloca i64, align 8
  %125 = alloca float, align 4
  %126 = alloca i64, align 8
  %127 = alloca i64, align 8
  %128 = alloca i64, align 8
  %129 = alloca float, align 4
  %130 = alloca i64, align 8
  %131 = alloca i64, align 8
  %132 = alloca i64, align 8
  %133 = alloca i64, align 8
  %134 = alloca i64, align 8
  %135 = alloca i64, align 8
  %136 = alloca i64, align 8
  %137 = alloca i64, align 8
  %138 = alloca i64, align 8
  %139 = alloca i64, align 8
  %140 = alloca i64, align 8
  %141 = alloca i64, align 8
  %142 = alloca i64, align 8
  %143 = alloca i64, align 8
  %144 = alloca float, align 4
  %145 = alloca i64, align 8
  %146 = alloca i64, align 8
  %147 = alloca i64, align 8
  %148 = alloca float, align 4
  %149 = alloca float, align 4
  %150 = alloca i64, align 8
  %151 = alloca i64, align 8
  %152 = alloca i32, align 4
  store ptr %0, ptr %27, align 8, !tbaa !5
  store ptr %1, ptr %28, align 8, !tbaa !5
  store ptr %2, ptr %29, align 8, !tbaa !5
  store ptr %3, ptr %30, align 8, !tbaa !5
  store ptr %4, ptr %31, align 8, !tbaa !5
  store ptr %5, ptr %32, align 8, !tbaa !5
  store ptr %6, ptr %33, align 8, !tbaa !5
  store ptr %7, ptr %34, align 8, !tbaa !5
  store ptr %8, ptr %35, align 8, !tbaa !5
  store ptr %9, ptr %36, align 8, !tbaa !5
  store ptr %10, ptr %37, align 8, !tbaa !5
  store ptr %11, ptr %38, align 8, !tbaa !5
  store ptr %12, ptr %39, align 8, !tbaa !5
  store ptr %13, ptr %40, align 8, !tbaa !5
  store ptr %14, ptr %41, align 8, !tbaa !5
  store ptr %15, ptr %42, align 8, !tbaa !5
  store ptr %16, ptr %43, align 8, !tbaa !5
  store ptr %17, ptr %44, align 8, !tbaa !5
  store ptr %18, ptr %45, align 8, !tbaa !5
  store ptr %19, ptr %46, align 8, !tbaa !5
  store ptr %20, ptr %47, align 8, !tbaa !5
  store ptr %21, ptr %48, align 8, !tbaa !5
  store ptr %22, ptr %49, align 8, !tbaa !5
  store ptr %23, ptr %50, align 8, !tbaa !5
  store ptr %24, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #5
  %153 = load ptr, ptr %30, align 8, !tbaa !5
  %154 = getelementptr inbounds float, ptr %153, i32 -1
  store ptr %154, ptr %30, align 8, !tbaa !5
  %155 = load ptr, ptr %31, align 8, !tbaa !5
  %156 = getelementptr inbounds float, ptr %155, i32 -1
  store ptr %156, ptr %31, align 8, !tbaa !5
  %157 = load ptr, ptr %33, align 8, !tbaa !5
  %158 = getelementptr inbounds i64, ptr %157, i32 -1
  store ptr %158, ptr %33, align 8, !tbaa !5
  %159 = load ptr, ptr %40, align 8, !tbaa !5
  %160 = getelementptr inbounds float, ptr %159, i32 -1
  store ptr %160, ptr %40, align 8, !tbaa !5
  %161 = load ptr, ptr %41, align 8, !tbaa !5
  %162 = getelementptr inbounds float, ptr %161, i32 -1
  store ptr %162, ptr %41, align 8, !tbaa !5
  %163 = load ptr, ptr %42, align 8, !tbaa !5
  %164 = getelementptr inbounds float, ptr %163, i32 -1
  store ptr %164, ptr %42, align 8, !tbaa !5
  %165 = load ptr, ptr %43, align 8, !tbaa !5
  %166 = getelementptr inbounds i64, ptr %165, i32 -1
  store ptr %166, ptr %43, align 8, !tbaa !5
  %167 = load ptr, ptr %44, align 8, !tbaa !5
  %168 = getelementptr inbounds i64, ptr %167, i32 -1
  store ptr %168, ptr %44, align 8, !tbaa !5
  %169 = load ptr, ptr %45, align 8, !tbaa !5
  %170 = getelementptr inbounds float, ptr %169, i32 -1
  store ptr %170, ptr %45, align 8, !tbaa !5
  %171 = load ptr, ptr %47, align 8, !tbaa !5
  %172 = load i64, ptr %171, align 8, !tbaa !9
  store i64 %172, ptr %52, align 8, !tbaa !9
  %173 = load i64, ptr %52, align 8, !tbaa !9
  %174 = add nsw i64 1, %173
  store i64 %174, ptr %53, align 8, !tbaa !9
  %175 = load i64, ptr %53, align 8, !tbaa !9
  %176 = load ptr, ptr %46, align 8, !tbaa !5
  %177 = sub i64 0, %175
  %178 = getelementptr inbounds %struct.complex, ptr %176, i64 %177
  store ptr %178, ptr %46, align 8, !tbaa !5
  %179 = load ptr, ptr %48, align 8, !tbaa !5
  %180 = getelementptr inbounds i64, ptr %179, i32 -1
  store ptr %180, ptr %48, align 8, !tbaa !5
  %181 = load ptr, ptr %49, align 8, !tbaa !5
  %182 = getelementptr inbounds float, ptr %181, i32 -1
  store ptr %182, ptr %49, align 8, !tbaa !5
  %183 = load ptr, ptr %50, align 8, !tbaa !5
  %184 = getelementptr inbounds i64, ptr %183, i32 -1
  store ptr %184, ptr %50, align 8, !tbaa !5
  %185 = load ptr, ptr %27, align 8, !tbaa !5
  %186 = load i64, ptr %185, align 8, !tbaa !9
  %187 = add nsw i64 %186, 1
  store i64 %187, ptr %93, align 8, !tbaa !9
  %188 = load ptr, ptr %27, align 8, !tbaa !5
  %189 = load i64, ptr %188, align 8, !tbaa !9
  %190 = shl i64 %189, 1
  %191 = add nsw i64 %190, 1
  store i64 %191, ptr %114, align 8, !tbaa !9
  %192 = load ptr, ptr %27, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  %194 = mul nsw i64 %193, 3
  %195 = add nsw i64 %194, 1
  store i64 %195, ptr %107, align 8, !tbaa !9
  %196 = load ptr, ptr %27, align 8, !tbaa !5
  %197 = load i64, ptr %196, align 8, !tbaa !9
  %198 = shl i64 %197, 2
  %199 = add nsw i64 %198, 1
  store i64 %199, ptr %108, align 8, !tbaa !9
  %200 = load ptr, ptr %27, align 8, !tbaa !5
  %201 = load i64, ptr %200, align 8, !tbaa !9
  %202 = mul nsw i64 %201, 5
  %203 = add nsw i64 %202, 1
  store i64 %203, ptr %132, align 8, !tbaa !9
  %204 = load ptr, ptr %27, align 8, !tbaa !5
  %205 = load i64, ptr %204, align 8, !tbaa !9
  %206 = mul nsw i64 %205, 12
  store i64 %206, ptr %64, align 8, !tbaa !9
  %207 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %207, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %208

208:                                              ; preds = %216, %25
  %209 = load i64, ptr %65, align 8, !tbaa !9
  %210 = load i64, ptr %54, align 8, !tbaa !9
  %211 = icmp sle i64 %209, %210
  br i1 %211, label %212, label %219

212:                                              ; preds = %208
  %213 = load ptr, ptr %49, align 8, !tbaa !5
  %214 = load i64, ptr %65, align 8, !tbaa !9
  %215 = getelementptr inbounds float, ptr %213, i64 %214
  store float 0.000000e+00, ptr %215, align 4, !tbaa !11
  br label %216

216:                                              ; preds = %212
  %217 = load i64, ptr %65, align 8, !tbaa !9
  %218 = add nsw i64 %217, 1
  store i64 %218, ptr %65, align 8, !tbaa !9
  br label %208, !llvm.loop !13

219:                                              ; preds = %208
  store i64 0, ptr %98, align 8, !tbaa !9
  %220 = load ptr, ptr %27, align 8, !tbaa !5
  %221 = load i64, ptr %220, align 8, !tbaa !9
  store i64 %221, ptr %105, align 8, !tbaa !9
  %222 = load ptr, ptr %27, align 8, !tbaa !5
  %223 = load i64, ptr %222, align 8, !tbaa !9
  %224 = shl i64 %223, 1
  store i64 %224, ptr %106, align 8, !tbaa !9
  %225 = load ptr, ptr %27, align 8, !tbaa !5
  %226 = load i64, ptr %225, align 8, !tbaa !9
  %227 = mul nsw i64 %226, 3
  %228 = add nsw i64 %227, 1
  store i64 %228, ptr %127, align 8, !tbaa !9
  %229 = load ptr, ptr %27, align 8, !tbaa !5
  %230 = load i64, ptr %229, align 8, !tbaa !9
  %231 = mul nsw i64 %230, 7
  store i64 %231, ptr %70, align 8, !tbaa !9
  %232 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %232, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %233

233:                                              ; preds = %241, %219
  %234 = load i64, ptr %65, align 8, !tbaa !9
  %235 = load i64, ptr %54, align 8, !tbaa !9
  %236 = icmp sle i64 %234, %235
  br i1 %236, label %237, label %244

237:                                              ; preds = %233
  %238 = load ptr, ptr %50, align 8, !tbaa !5
  %239 = load i64, ptr %65, align 8, !tbaa !9
  %240 = getelementptr inbounds i64, ptr %238, i64 %239
  store i64 0, ptr %240, align 8, !tbaa !9
  br label %241

241:                                              ; preds = %237
  %242 = load i64, ptr %65, align 8, !tbaa !9
  %243 = add nsw i64 %242, 1
  store i64 %243, ptr %65, align 8, !tbaa !9
  br label %233, !llvm.loop !15

244:                                              ; preds = %233
  store i64 1, ptr %143, align 8, !tbaa !9
  %245 = load ptr, ptr %35, align 8, !tbaa !5
  %246 = load i64, ptr %245, align 8, !tbaa !9
  %247 = icmp sgt i64 %246, 1
  br i1 %247, label %248, label %252

248:                                              ; preds = %244
  %249 = load ptr, ptr %35, align 8, !tbaa !5
  %250 = load i64, ptr %249, align 8, !tbaa !9
  %251 = sub nsw i64 %250, 1
  store i64 %251, ptr %143, align 8, !tbaa !9
  br label %252

252:                                              ; preds = %248, %244
  %253 = load ptr, ptr %34, align 8, !tbaa !5
  %254 = load i64, ptr %253, align 8, !tbaa !9
  store i64 %254, ptr %146, align 8, !tbaa !9
  %255 = load ptr, ptr %36, align 8, !tbaa !5
  %256 = load i64, ptr %255, align 8, !tbaa !9
  %257 = load ptr, ptr %34, align 8, !tbaa !5
  %258 = load i64, ptr %257, align 8, !tbaa !9
  %259 = icmp slt i64 %256, %258
  br i1 %259, label %260, label %264

260:                                              ; preds = %252
  %261 = load ptr, ptr %36, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = add nsw i64 %262, 1
  store i64 %263, ptr %146, align 8, !tbaa !9
  br label %264

264:                                              ; preds = %260, %252
  %265 = load i64, ptr %146, align 8, !tbaa !9
  %266 = load i64, ptr %143, align 8, !tbaa !9
  %267 = sub nsw i64 %265, %266
  %268 = add nsw i64 %267, 1
  store i64 %268, ptr %147, align 8, !tbaa !9
  %269 = load ptr, ptr %27, align 8, !tbaa !5
  %270 = load ptr, ptr %46, align 8, !tbaa !5
  %271 = load i64, ptr %143, align 8, !tbaa !9
  %272 = load i64, ptr %52, align 8, !tbaa !9
  %273 = mul nsw i64 %271, %272
  %274 = add nsw i64 %273, 1
  %275 = getelementptr inbounds %struct.complex, ptr %270, i64 %274
  %276 = load ptr, ptr %47, align 8, !tbaa !5
  %277 = call i32 @claset_(ptr noundef @.str, ptr noundef %269, ptr noundef %147, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %275, ptr noundef %276)
  %278 = call double @slamch_(ptr noundef @.str.1)
  %279 = fptrunc double %278 to float
  store float %279, ptr %77, align 4, !tbaa !11
  %280 = load float, ptr %77, align 4, !tbaa !11
  %281 = fmul float %280, 2.000000e+00
  store float %281, ptr %104, align 4, !tbaa !11
  store i64 1, ptr %150, align 8, !tbaa !9
  %282 = load ptr, ptr %35, align 8, !tbaa !5
  %283 = load i64, ptr %282, align 8, !tbaa !9
  %284 = icmp eq i64 %283, 1
  br i1 %284, label %285, label %292

285:                                              ; preds = %264
  %286 = load ptr, ptr %36, align 8, !tbaa !5
  %287 = load i64, ptr %286, align 8, !tbaa !9
  %288 = load ptr, ptr %34, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  %290 = icmp eq i64 %287, %289
  br i1 %290, label %291, label %292

291:                                              ; preds = %285
  br label %299

292:                                              ; preds = %285, %264
  %293 = load float, ptr %77, align 4, !tbaa !11
  %294 = fmul float %293, 4.000000e+00
  %295 = load ptr, ptr %38, align 8, !tbaa !5
  store float %294, ptr %295, align 4, !tbaa !11
  %296 = load float, ptr %77, align 4, !tbaa !11
  %297 = fmul float %296, 4.000000e+00
  %298 = load ptr, ptr %39, align 8, !tbaa !5
  store float %297, ptr %298, align 4, !tbaa !11
  br label %299

299:                                              ; preds = %292, %291
  store i64 0, ptr %86, align 8, !tbaa !9
  store i64 1, ptr %111, align 8, !tbaa !9
  store i64 1, ptr %119, align 8, !tbaa !9
  %300 = load ptr, ptr %43, align 8, !tbaa !5
  %301 = load ptr, ptr %34, align 8, !tbaa !5
  %302 = load i64, ptr %301, align 8, !tbaa !9
  %303 = getelementptr inbounds i64, ptr %300, i64 %302
  %304 = load i64, ptr %303, align 8, !tbaa !9
  store i64 %304, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %305

305:                                              ; preds = %2157, %299
  %306 = load i64, ptr %84, align 8, !tbaa !9
  %307 = load i64, ptr %54, align 8, !tbaa !9
  %308 = icmp sle i64 %306, %307
  br i1 %308, label %309, label %2160

309:                                              ; preds = %305
  %310 = load ptr, ptr %33, align 8, !tbaa !5
  %311 = load i64, ptr %84, align 8, !tbaa !9
  %312 = getelementptr inbounds i64, ptr %310, i64 %311
  %313 = load i64, ptr %312, align 8, !tbaa !9
  store i64 %313, ptr %83, align 8, !tbaa !9
  %314 = load ptr, ptr %31, align 8, !tbaa !5
  %315 = load i64, ptr %83, align 8, !tbaa !9
  %316 = getelementptr inbounds float, ptr %314, i64 %315
  %317 = load float, ptr %316, align 4, !tbaa !11
  store float %317, ptr %96, align 4, !tbaa !11
  %318 = load i64, ptr %119, align 8, !tbaa !9
  %319 = sub nsw i64 %318, 1
  store i64 %319, ptr %89, align 8, !tbaa !9
  br label %320

320:                                              ; preds = %333, %309
  %321 = load i64, ptr %89, align 8, !tbaa !9
  %322 = load ptr, ptr %34, align 8, !tbaa !5
  %323 = load i64, ptr %322, align 8, !tbaa !9
  %324 = icmp slt i64 %321, %323
  br i1 %324, label %325, label %337

325:                                              ; preds = %320
  %326 = load ptr, ptr %43, align 8, !tbaa !5
  %327 = load i64, ptr %89, align 8, !tbaa !9
  %328 = add nsw i64 %327, 1
  %329 = getelementptr inbounds i64, ptr %326, i64 %328
  %330 = load i64, ptr %329, align 8, !tbaa !9
  %331 = load i64, ptr %84, align 8, !tbaa !9
  %332 = icmp eq i64 %330, %331
  br i1 %332, label %333, label %336

333:                                              ; preds = %325
  %334 = load i64, ptr %89, align 8, !tbaa !9
  %335 = add nsw i64 %334, 1
  store i64 %335, ptr %89, align 8, !tbaa !9
  br label %320

336:                                              ; preds = %325
  br label %337

337:                                              ; preds = %336, %320
  %338 = load i64, ptr %89, align 8, !tbaa !9
  %339 = load i64, ptr %119, align 8, !tbaa !9
  %340 = icmp slt i64 %338, %339
  br i1 %340, label %341, label %344

341:                                              ; preds = %337
  %342 = load i64, ptr %83, align 8, !tbaa !9
  %343 = add nsw i64 %342, 1
  store i64 %343, ptr %111, align 8, !tbaa !9
  br label %2156

344:                                              ; preds = %337
  %345 = load i64, ptr %89, align 8, !tbaa !9
  %346 = load ptr, ptr %35, align 8, !tbaa !5
  %347 = load i64, ptr %346, align 8, !tbaa !9
  %348 = icmp slt i64 %345, %347
  br i1 %348, label %354, label %349

349:                                              ; preds = %344
  %350 = load i64, ptr %119, align 8, !tbaa !9
  %351 = load ptr, ptr %36, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  %353 = icmp sgt i64 %350, %352
  br i1 %353, label %354, label %359

354:                                              ; preds = %349, %344
  %355 = load i64, ptr %83, align 8, !tbaa !9
  %356 = add nsw i64 %355, 1
  store i64 %356, ptr %111, align 8, !tbaa !9
  %357 = load i64, ptr %89, align 8, !tbaa !9
  %358 = add nsw i64 %357, 1
  store i64 %358, ptr %119, align 8, !tbaa !9
  br label %2156

359:                                              ; preds = %349
  br label %360

360:                                              ; preds = %359
  %361 = load ptr, ptr %45, align 8, !tbaa !5
  %362 = load i64, ptr %111, align 8, !tbaa !9
  %363 = shl i64 %362, 1
  %364 = sub nsw i64 %363, 1
  %365 = getelementptr inbounds float, ptr %361, i64 %364
  %366 = load float, ptr %365, align 4, !tbaa !11
  store float %366, ptr %72, align 4, !tbaa !11
  %367 = load ptr, ptr %45, align 8, !tbaa !5
  %368 = load i64, ptr %111, align 8, !tbaa !9
  %369 = mul nsw i64 %368, 2
  %370 = getelementptr inbounds float, ptr %367, i64 %369
  %371 = load float, ptr %370, align 4, !tbaa !11
  store float %371, ptr %75, align 4, !tbaa !11
  %372 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %372, ptr %55, align 8, !tbaa !9
  %373 = load i64, ptr %111, align 8, !tbaa !9
  %374 = add nsw i64 %373, 1
  store i64 %374, ptr %65, align 8, !tbaa !9
  br label %375

375:                                              ; preds = %413, %360
  %376 = load i64, ptr %65, align 8, !tbaa !9
  %377 = load i64, ptr %55, align 8, !tbaa !9
  %378 = icmp sle i64 %376, %377
  br i1 %378, label %379, label %416

379:                                              ; preds = %375
  %380 = load ptr, ptr %45, align 8, !tbaa !5
  %381 = load i64, ptr %65, align 8, !tbaa !9
  %382 = shl i64 %381, 1
  %383 = sub nsw i64 %382, 1
  %384 = getelementptr inbounds float, ptr %380, i64 %383
  %385 = load float, ptr %384, align 4, !tbaa !11
  store float %385, ptr %60, align 4, !tbaa !11
  %386 = load float, ptr %60, align 4, !tbaa !11
  %387 = load float, ptr %72, align 4, !tbaa !11
  %388 = fcmp ole float %386, %387
  br i1 %388, label %389, label %391

389:                                              ; preds = %379
  %390 = load float, ptr %60, align 4, !tbaa !11
  br label %393

391:                                              ; preds = %379
  %392 = load float, ptr %72, align 4, !tbaa !11
  br label %393

393:                                              ; preds = %391, %389
  %394 = phi float [ %390, %389 ], [ %392, %391 ]
  %395 = fpext float %394 to double
  %396 = fptrunc double %395 to float
  store float %396, ptr %72, align 4, !tbaa !11
  %397 = load ptr, ptr %45, align 8, !tbaa !5
  %398 = load i64, ptr %65, align 8, !tbaa !9
  %399 = mul nsw i64 %398, 2
  %400 = getelementptr inbounds float, ptr %397, i64 %399
  %401 = load float, ptr %400, align 4, !tbaa !11
  store float %401, ptr %60, align 4, !tbaa !11
  %402 = load float, ptr %60, align 4, !tbaa !11
  %403 = load float, ptr %75, align 4, !tbaa !11
  %404 = fcmp oge float %402, %403
  br i1 %404, label %405, label %407

405:                                              ; preds = %393
  %406 = load float, ptr %60, align 4, !tbaa !11
  br label %409

407:                                              ; preds = %393
  %408 = load float, ptr %75, align 4, !tbaa !11
  br label %409

409:                                              ; preds = %407, %405
  %410 = phi float [ %406, %405 ], [ %408, %407 ]
  %411 = fpext float %410 to double
  %412 = fptrunc double %411 to float
  store float %412, ptr %75, align 4, !tbaa !11
  br label %413

413:                                              ; preds = %409
  %414 = load i64, ptr %65, align 8, !tbaa !9
  %415 = add nsw i64 %414, 1
  store i64 %415, ptr %65, align 8, !tbaa !9
  br label %375, !llvm.loop !16

416:                                              ; preds = %375
  %417 = load float, ptr %75, align 4, !tbaa !11
  %418 = load float, ptr %72, align 4, !tbaa !11
  %419 = fsub float %417, %418
  store float %419, ptr %120, align 4, !tbaa !11
  %420 = load i64, ptr %111, align 8, !tbaa !9
  %421 = sub nsw i64 %420, 1
  store i64 %421, ptr %117, align 8, !tbaa !9
  %422 = load i64, ptr %83, align 8, !tbaa !9
  %423 = load i64, ptr %111, align 8, !tbaa !9
  %424 = sub nsw i64 %422, %423
  %425 = add nsw i64 %424, 1
  store i64 %425, ptr %74, align 8, !tbaa !9
  %426 = load i64, ptr %89, align 8, !tbaa !9
  %427 = load i64, ptr %119, align 8, !tbaa !9
  %428 = sub nsw i64 %426, %427
  %429 = add nsw i64 %428, 1
  store i64 %429, ptr %73, align 8, !tbaa !9
  %430 = load i64, ptr %111, align 8, !tbaa !9
  %431 = load i64, ptr %83, align 8, !tbaa !9
  %432 = icmp eq i64 %430, %431
  br i1 %432, label %433, label %477

433:                                              ; preds = %416
  %434 = load i64, ptr %86, align 8, !tbaa !9
  %435 = add nsw i64 %434, 1
  store i64 %435, ptr %86, align 8, !tbaa !9
  %436 = load i64, ptr %111, align 8, !tbaa !9
  %437 = load i64, ptr %119, align 8, !tbaa !9
  %438 = load i64, ptr %52, align 8, !tbaa !9
  %439 = mul nsw i64 %437, %438
  %440 = add nsw i64 %436, %439
  store i64 %440, ptr %55, align 8, !tbaa !9
  %441 = load ptr, ptr %46, align 8, !tbaa !5
  %442 = load i64, ptr %55, align 8, !tbaa !9
  %443 = getelementptr inbounds %struct.complex, ptr %441, i64 %442
  %444 = getelementptr inbounds %struct.complex, ptr %443, i32 0, i32 0
  store float 1.000000e+00, ptr %444, align 4, !tbaa !17
  %445 = load ptr, ptr %46, align 8, !tbaa !5
  %446 = load i64, ptr %55, align 8, !tbaa !9
  %447 = getelementptr inbounds %struct.complex, ptr %445, i64 %446
  %448 = getelementptr inbounds %struct.complex, ptr %447, i32 0, i32 1
  store float 0.000000e+00, ptr %448, align 4, !tbaa !19
  %449 = load i64, ptr %111, align 8, !tbaa !9
  %450 = load ptr, ptr %48, align 8, !tbaa !5
  %451 = load i64, ptr %119, align 8, !tbaa !9
  %452 = shl i64 %451, 1
  %453 = sub nsw i64 %452, 1
  %454 = getelementptr inbounds i64, ptr %450, i64 %453
  store i64 %449, ptr %454, align 8, !tbaa !9
  %455 = load i64, ptr %111, align 8, !tbaa !9
  %456 = load ptr, ptr %48, align 8, !tbaa !5
  %457 = load i64, ptr %119, align 8, !tbaa !9
  %458 = mul nsw i64 %457, 2
  %459 = getelementptr inbounds i64, ptr %456, i64 %458
  store i64 %455, ptr %459, align 8, !tbaa !9
  %460 = load float, ptr %96, align 4, !tbaa !11
  %461 = load ptr, ptr %40, align 8, !tbaa !5
  %462 = load i64, ptr %119, align 8, !tbaa !9
  %463 = getelementptr inbounds float, ptr %461, i64 %462
  %464 = load float, ptr %463, align 4, !tbaa !11
  %465 = fadd float %464, %460
  store float %465, ptr %463, align 4, !tbaa !11
  %466 = load ptr, ptr %40, align 8, !tbaa !5
  %467 = load i64, ptr %119, align 8, !tbaa !9
  %468 = getelementptr inbounds float, ptr %466, i64 %467
  %469 = load float, ptr %468, align 4, !tbaa !11
  %470 = load ptr, ptr %49, align 8, !tbaa !5
  %471 = load i64, ptr %119, align 8, !tbaa !9
  %472 = getelementptr inbounds float, ptr %470, i64 %471
  store float %469, ptr %472, align 4, !tbaa !11
  %473 = load i64, ptr %83, align 8, !tbaa !9
  %474 = add nsw i64 %473, 1
  store i64 %474, ptr %111, align 8, !tbaa !9
  %475 = load i64, ptr %119, align 8, !tbaa !9
  %476 = add nsw i64 %475, 1
  store i64 %476, ptr %119, align 8, !tbaa !9
  br label %2156

477:                                              ; preds = %416
  %478 = load ptr, ptr %40, align 8, !tbaa !5
  %479 = load i64, ptr %119, align 8, !tbaa !9
  %480 = getelementptr inbounds float, ptr %478, i64 %479
  %481 = load ptr, ptr %49, align 8, !tbaa !5
  %482 = load i64, ptr %119, align 8, !tbaa !9
  %483 = getelementptr inbounds float, ptr %481, i64 %482
  %484 = call i32 @f2c_scopy(ptr noundef %73, ptr noundef %480, ptr noundef @c__1, ptr noundef %483, ptr noundef @c__1)
  %485 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %485, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %486

486:                                              ; preds = %500, %477
  %487 = load i64, ptr %65, align 8, !tbaa !9
  %488 = load i64, ptr %55, align 8, !tbaa !9
  %489 = icmp sle i64 %487, %488
  br i1 %489, label %490, label %503

490:                                              ; preds = %486
  %491 = load float, ptr %96, align 4, !tbaa !11
  %492 = load ptr, ptr %40, align 8, !tbaa !5
  %493 = load i64, ptr %119, align 8, !tbaa !9
  %494 = load i64, ptr %65, align 8, !tbaa !9
  %495 = add nsw i64 %493, %494
  %496 = sub nsw i64 %495, 1
  %497 = getelementptr inbounds float, ptr %492, i64 %496
  %498 = load float, ptr %497, align 4, !tbaa !11
  %499 = fadd float %498, %491
  store float %499, ptr %497, align 4, !tbaa !11
  br label %500

500:                                              ; preds = %490
  %501 = load i64, ptr %65, align 8, !tbaa !9
  %502 = add nsw i64 %501, 1
  store i64 %502, ptr %65, align 8, !tbaa !9
  br label %486, !llvm.loop !20

503:                                              ; preds = %486
  store i64 0, ptr %124, align 8, !tbaa !9
  store i64 1, ptr %138, align 8, !tbaa !9
  store i64 1, ptr %102, align 8, !tbaa !9
  %504 = load ptr, ptr %50, align 8, !tbaa !5
  %505 = load i64, ptr %105, align 8, !tbaa !9
  %506 = add nsw i64 %505, 1
  %507 = getelementptr inbounds i64, ptr %504, i64 %506
  store i64 1, ptr %507, align 8, !tbaa !9
  %508 = load i64, ptr %73, align 8, !tbaa !9
  %509 = load ptr, ptr %50, align 8, !tbaa !5
  %510 = load i64, ptr %105, align 8, !tbaa !9
  %511 = add nsw i64 %510, 2
  %512 = getelementptr inbounds i64, ptr %509, i64 %511
  store i64 %508, ptr %512, align 8, !tbaa !9
  store i64 0, ptr %95, align 8, !tbaa !9
  br label %513

513:                                              ; preds = %2148, %503
  %514 = load i64, ptr %95, align 8, !tbaa !9
  %515 = load i64, ptr %73, align 8, !tbaa !9
  %516 = icmp slt i64 %514, %515
  br i1 %516, label %517, label %2151

517:                                              ; preds = %513
  %518 = load i64, ptr %124, align 8, !tbaa !9
  %519 = load ptr, ptr %34, align 8, !tbaa !5
  %520 = load i64, ptr %519, align 8, !tbaa !9
  %521 = icmp sgt i64 %518, %520
  br i1 %521, label %522, label %524

522:                                              ; preds = %517
  %523 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -2, ptr %523, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %152, align 4
  br label %2161

524:                                              ; preds = %517
  %525 = load i64, ptr %102, align 8, !tbaa !9
  store i64 %525, ptr %118, align 8, !tbaa !9
  store i64 0, ptr %102, align 8, !tbaa !9
  %526 = load i64, ptr %138, align 8, !tbaa !9
  %527 = sub nsw i64 1, %526
  store i64 %527, ptr %138, align 8, !tbaa !9
  %528 = load i64, ptr %138, align 8, !tbaa !9
  %529 = icmp eq i64 %528, 0
  br i1 %529, label %530, label %533

530:                                              ; preds = %524
  %531 = load i64, ptr %105, align 8, !tbaa !9
  store i64 %531, ptr %122, align 8, !tbaa !9
  %532 = load i64, ptr %106, align 8, !tbaa !9
  store i64 %532, ptr %130, align 8, !tbaa !9
  br label %536

533:                                              ; preds = %524
  %534 = load i64, ptr %106, align 8, !tbaa !9
  store i64 %534, ptr %122, align 8, !tbaa !9
  %535 = load i64, ptr %105, align 8, !tbaa !9
  store i64 %535, ptr %130, align 8, !tbaa !9
  br label %536

536:                                              ; preds = %533, %530
  %537 = load i64, ptr %118, align 8, !tbaa !9
  store i64 %537, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %538

538:                                              ; preds = %2145, %536
  %539 = load i64, ptr %65, align 8, !tbaa !9
  %540 = load i64, ptr %55, align 8, !tbaa !9
  %541 = icmp sle i64 %539, %540
  br i1 %541, label %542, label %2148

542:                                              ; preds = %538
  %543 = load i64, ptr %122, align 8, !tbaa !9
  %544 = load i64, ptr %65, align 8, !tbaa !9
  %545 = shl i64 %544, 1
  %546 = add nsw i64 %543, %545
  store i64 %546, ptr %66, align 8, !tbaa !9
  %547 = load ptr, ptr %50, align 8, !tbaa !5
  %548 = load i64, ptr %66, align 8, !tbaa !9
  %549 = sub nsw i64 %548, 1
  %550 = getelementptr inbounds i64, ptr %547, i64 %549
  %551 = load i64, ptr %550, align 8, !tbaa !9
  store i64 %551, ptr %131, align 8, !tbaa !9
  %552 = load ptr, ptr %50, align 8, !tbaa !5
  %553 = load i64, ptr %66, align 8, !tbaa !9
  %554 = getelementptr inbounds i64, ptr %552, i64 %553
  %555 = load i64, ptr %554, align 8, !tbaa !9
  store i64 %555, ptr %134, align 8, !tbaa !9
  %556 = load i64, ptr %124, align 8, !tbaa !9
  %557 = icmp sgt i64 %556, 0
  br i1 %557, label %558, label %687

558:                                              ; preds = %542
  %559 = load ptr, ptr %35, align 8, !tbaa !5
  %560 = load i64, ptr %559, align 8, !tbaa !9
  %561 = icmp eq i64 %560, 1
  br i1 %561, label %562, label %573

562:                                              ; preds = %558
  %563 = load ptr, ptr %36, align 8, !tbaa !5
  %564 = load i64, ptr %563, align 8, !tbaa !9
  %565 = load ptr, ptr %34, align 8, !tbaa !5
  %566 = load i64, ptr %565, align 8, !tbaa !9
  %567 = icmp eq i64 %564, %566
  br i1 %567, label %568, label %573

568:                                              ; preds = %562
  %569 = load i64, ptr %119, align 8, !tbaa !9
  %570 = load i64, ptr %131, align 8, !tbaa !9
  %571 = add nsw i64 %569, %570
  %572 = sub nsw i64 %571, 1
  store i64 %572, ptr %66, align 8, !tbaa !9
  br label %603

573:                                              ; preds = %562, %558
  %574 = load i64, ptr %119, align 8, !tbaa !9
  %575 = load i64, ptr %131, align 8, !tbaa !9
  %576 = add nsw i64 %574, %575
  %577 = sub nsw i64 %576, 1
  %578 = load ptr, ptr %35, align 8, !tbaa !5
  %579 = load i64, ptr %578, align 8, !tbaa !9
  %580 = icmp slt i64 %577, %579
  br i1 %580, label %581, label %585

581:                                              ; preds = %573
  %582 = load ptr, ptr %35, align 8, !tbaa !5
  %583 = load i64, ptr %582, align 8, !tbaa !9
  %584 = sub nsw i64 %583, 1
  store i64 %584, ptr %66, align 8, !tbaa !9
  br label %602

585:                                              ; preds = %573
  %586 = load i64, ptr %119, align 8, !tbaa !9
  %587 = load i64, ptr %131, align 8, !tbaa !9
  %588 = add nsw i64 %586, %587
  %589 = sub nsw i64 %588, 1
  %590 = load ptr, ptr %36, align 8, !tbaa !5
  %591 = load i64, ptr %590, align 8, !tbaa !9
  %592 = icmp sgt i64 %589, %591
  br i1 %592, label %593, label %596

593:                                              ; preds = %585
  %594 = load ptr, ptr %36, align 8, !tbaa !5
  %595 = load i64, ptr %594, align 8, !tbaa !9
  store i64 %595, ptr %66, align 8, !tbaa !9
  br label %601

596:                                              ; preds = %585
  %597 = load i64, ptr %119, align 8, !tbaa !9
  %598 = load i64, ptr %131, align 8, !tbaa !9
  %599 = add nsw i64 %597, %598
  %600 = sub nsw i64 %599, 1
  store i64 %600, ptr %66, align 8, !tbaa !9
  br label %601

601:                                              ; preds = %596, %593
  br label %602

602:                                              ; preds = %601, %581
  br label %603

603:                                              ; preds = %602, %568
  %604 = load i64, ptr %74, align 8, !tbaa !9
  %605 = sub nsw i64 %604, 1
  store i64 %605, ptr %56, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %606

606:                                              ; preds = %650, %603
  %607 = load i64, ptr %67, align 8, !tbaa !9
  %608 = load i64, ptr %56, align 8, !tbaa !9
  %609 = icmp sle i64 %607, %608
  br i1 %609, label %610, label %653

610:                                              ; preds = %606
  %611 = load i64, ptr %111, align 8, !tbaa !9
  %612 = load i64, ptr %67, align 8, !tbaa !9
  %613 = add nsw i64 %611, %612
  %614 = sub nsw i64 %613, 1
  %615 = load i64, ptr %66, align 8, !tbaa !9
  %616 = load i64, ptr %52, align 8, !tbaa !9
  %617 = mul nsw i64 %615, %616
  %618 = add nsw i64 %614, %617
  store i64 %618, ptr %57, align 8, !tbaa !9
  %619 = load ptr, ptr %46, align 8, !tbaa !5
  %620 = load i64, ptr %57, align 8, !tbaa !9
  %621 = getelementptr inbounds %struct.complex, ptr %619, i64 %620
  %622 = getelementptr inbounds %struct.complex, ptr %621, i32 0, i32 0
  %623 = load float, ptr %622, align 4, !tbaa !17
  %624 = load ptr, ptr %30, align 8, !tbaa !5
  %625 = load i64, ptr %111, align 8, !tbaa !9
  %626 = load i64, ptr %67, align 8, !tbaa !9
  %627 = add nsw i64 %625, %626
  %628 = sub nsw i64 %627, 1
  %629 = getelementptr inbounds float, ptr %624, i64 %628
  store float %623, ptr %629, align 4, !tbaa !11
  %630 = load i64, ptr %111, align 8, !tbaa !9
  %631 = load i64, ptr %67, align 8, !tbaa !9
  %632 = add nsw i64 %630, %631
  %633 = sub nsw i64 %632, 1
  %634 = load i64, ptr %66, align 8, !tbaa !9
  %635 = add nsw i64 %634, 1
  %636 = load i64, ptr %52, align 8, !tbaa !9
  %637 = mul nsw i64 %635, %636
  %638 = add nsw i64 %633, %637
  store i64 %638, ptr %57, align 8, !tbaa !9
  %639 = load ptr, ptr %46, align 8, !tbaa !5
  %640 = load i64, ptr %57, align 8, !tbaa !9
  %641 = getelementptr inbounds %struct.complex, ptr %639, i64 %640
  %642 = getelementptr inbounds %struct.complex, ptr %641, i32 0, i32 0
  %643 = load float, ptr %642, align 4, !tbaa !17
  %644 = load ptr, ptr %31, align 8, !tbaa !5
  %645 = load i64, ptr %111, align 8, !tbaa !9
  %646 = load i64, ptr %67, align 8, !tbaa !9
  %647 = add nsw i64 %645, %646
  %648 = sub nsw i64 %647, 1
  %649 = getelementptr inbounds float, ptr %644, i64 %648
  store float %643, ptr %649, align 4, !tbaa !11
  br label %650

650:                                              ; preds = %610
  %651 = load i64, ptr %67, align 8, !tbaa !9
  %652 = add nsw i64 %651, 1
  store i64 %652, ptr %67, align 8, !tbaa !9
  br label %606, !llvm.loop !21

653:                                              ; preds = %606
  %654 = load i64, ptr %83, align 8, !tbaa !9
  %655 = load i64, ptr %66, align 8, !tbaa !9
  %656 = load i64, ptr %52, align 8, !tbaa !9
  %657 = mul nsw i64 %655, %656
  %658 = add nsw i64 %654, %657
  store i64 %658, ptr %56, align 8, !tbaa !9
  %659 = load ptr, ptr %46, align 8, !tbaa !5
  %660 = load i64, ptr %56, align 8, !tbaa !9
  %661 = getelementptr inbounds %struct.complex, ptr %659, i64 %660
  %662 = getelementptr inbounds %struct.complex, ptr %661, i32 0, i32 0
  %663 = load float, ptr %662, align 4, !tbaa !17
  %664 = load ptr, ptr %30, align 8, !tbaa !5
  %665 = load i64, ptr %83, align 8, !tbaa !9
  %666 = getelementptr inbounds float, ptr %664, i64 %665
  store float %663, ptr %666, align 4, !tbaa !11
  %667 = load i64, ptr %83, align 8, !tbaa !9
  %668 = load i64, ptr %66, align 8, !tbaa !9
  %669 = add nsw i64 %668, 1
  %670 = load i64, ptr %52, align 8, !tbaa !9
  %671 = mul nsw i64 %669, %670
  %672 = add nsw i64 %667, %671
  store i64 %672, ptr %56, align 8, !tbaa !9
  %673 = load ptr, ptr %46, align 8, !tbaa !5
  %674 = load i64, ptr %56, align 8, !tbaa !9
  %675 = getelementptr inbounds %struct.complex, ptr %673, i64 %674
  %676 = getelementptr inbounds %struct.complex, ptr %675, i32 0, i32 0
  %677 = load float, ptr %676, align 4, !tbaa !17
  store float %677, ptr %96, align 4, !tbaa !11
  %678 = load ptr, ptr %46, align 8, !tbaa !5
  %679 = load i64, ptr %111, align 8, !tbaa !9
  %680 = load i64, ptr %66, align 8, !tbaa !9
  %681 = load i64, ptr %52, align 8, !tbaa !9
  %682 = mul nsw i64 %680, %681
  %683 = add nsw i64 %679, %682
  %684 = getelementptr inbounds %struct.complex, ptr %678, i64 %683
  %685 = load ptr, ptr %47, align 8, !tbaa !5
  %686 = call i32 @claset_(ptr noundef @.str, ptr noundef %74, ptr noundef @c__2, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %684, ptr noundef %685)
  br label %687

687:                                              ; preds = %653, %542
  %688 = load i64, ptr %83, align 8, !tbaa !9
  %689 = sub nsw i64 %688, 1
  store i64 %689, ptr %56, align 8, !tbaa !9
  %690 = load i64, ptr %111, align 8, !tbaa !9
  store i64 %690, ptr %66, align 8, !tbaa !9
  br label %691

691:                                              ; preds = %724, %687
  %692 = load i64, ptr %66, align 8, !tbaa !9
  %693 = load i64, ptr %56, align 8, !tbaa !9
  %694 = icmp sle i64 %692, %693
  br i1 %694, label %695, label %727

695:                                              ; preds = %691
  %696 = load ptr, ptr %30, align 8, !tbaa !5
  %697 = load i64, ptr %66, align 8, !tbaa !9
  %698 = getelementptr inbounds float, ptr %696, i64 %697
  %699 = load float, ptr %698, align 4, !tbaa !11
  %700 = load ptr, ptr %31, align 8, !tbaa !5
  %701 = load i64, ptr %66, align 8, !tbaa !9
  %702 = getelementptr inbounds float, ptr %700, i64 %701
  %703 = load float, ptr %702, align 4, !tbaa !11
  %704 = fmul float %699, %703
  store float %704, ptr %80, align 4, !tbaa !11
  %705 = load float, ptr %80, align 4, !tbaa !11
  %706 = load ptr, ptr %49, align 8, !tbaa !5
  %707 = load i64, ptr %93, align 8, !tbaa !9
  %708 = sub nsw i64 %707, 1
  %709 = load i64, ptr %66, align 8, !tbaa !9
  %710 = add nsw i64 %708, %709
  %711 = getelementptr inbounds float, ptr %706, i64 %710
  store float %705, ptr %711, align 4, !tbaa !11
  %712 = load float, ptr %80, align 4, !tbaa !11
  %713 = load ptr, ptr %31, align 8, !tbaa !5
  %714 = load i64, ptr %66, align 8, !tbaa !9
  %715 = getelementptr inbounds float, ptr %713, i64 %714
  %716 = load float, ptr %715, align 4, !tbaa !11
  %717 = fmul float %712, %716
  %718 = load ptr, ptr %49, align 8, !tbaa !5
  %719 = load i64, ptr %114, align 8, !tbaa !9
  %720 = sub nsw i64 %719, 1
  %721 = load i64, ptr %66, align 8, !tbaa !9
  %722 = add nsw i64 %720, %721
  %723 = getelementptr inbounds float, ptr %718, i64 %722
  store float %717, ptr %723, align 4, !tbaa !11
  br label %724

724:                                              ; preds = %695
  %725 = load i64, ptr %66, align 8, !tbaa !9
  %726 = add nsw i64 %725, 1
  store i64 %726, ptr %66, align 8, !tbaa !9
  br label %691, !llvm.loop !22

727:                                              ; preds = %691
  %728 = load i64, ptr %124, align 8, !tbaa !9
  %729 = icmp sgt i64 %728, 0
  br i1 %729, label %730, label %929

730:                                              ; preds = %727
  %731 = load ptr, ptr %44, align 8, !tbaa !5
  %732 = load i64, ptr %119, align 8, !tbaa !9
  %733 = sub nsw i64 %732, 1
  %734 = load i64, ptr %131, align 8, !tbaa !9
  %735 = add nsw i64 %733, %734
  %736 = getelementptr inbounds i64, ptr %731, i64 %735
  %737 = load i64, ptr %736, align 8, !tbaa !9
  store i64 %737, ptr %68, align 8, !tbaa !9
  %738 = load ptr, ptr %44, align 8, !tbaa !5
  %739 = load i64, ptr %119, align 8, !tbaa !9
  %740 = sub nsw i64 %739, 1
  %741 = load i64, ptr %134, align 8, !tbaa !9
  %742 = add nsw i64 %740, %741
  %743 = getelementptr inbounds i64, ptr %738, i64 %742
  %744 = load i64, ptr %743, align 8, !tbaa !9
  store i64 %744, ptr %69, align 8, !tbaa !9
  %745 = load ptr, ptr %44, align 8, !tbaa !5
  %746 = load i64, ptr %119, align 8, !tbaa !9
  %747 = getelementptr inbounds i64, ptr %745, i64 %746
  %748 = load i64, ptr %747, align 8, !tbaa !9
  %749 = sub nsw i64 %748, 1
  store i64 %749, ptr %128, align 8, !tbaa !9
  %750 = load ptr, ptr %30, align 8, !tbaa !5
  %751 = load i64, ptr %111, align 8, !tbaa !9
  %752 = getelementptr inbounds float, ptr %750, i64 %751
  %753 = load ptr, ptr %49, align 8, !tbaa !5
  %754 = load i64, ptr %114, align 8, !tbaa !9
  %755 = load i64, ptr %111, align 8, !tbaa !9
  %756 = add nsw i64 %754, %755
  %757 = sub nsw i64 %756, 1
  %758 = getelementptr inbounds float, ptr %753, i64 %757
  %759 = load ptr, ptr %38, align 8, !tbaa !5
  %760 = load ptr, ptr %39, align 8, !tbaa !5
  %761 = load ptr, ptr %49, align 8, !tbaa !5
  %762 = load i64, ptr %119, align 8, !tbaa !9
  %763 = getelementptr inbounds float, ptr %761, i64 %762
  %764 = load ptr, ptr %42, align 8, !tbaa !5
  %765 = load i64, ptr %119, align 8, !tbaa !9
  %766 = getelementptr inbounds float, ptr %764, i64 %765
  %767 = load ptr, ptr %41, align 8, !tbaa !5
  %768 = load i64, ptr %119, align 8, !tbaa !9
  %769 = getelementptr inbounds float, ptr %767, i64 %768
  %770 = load ptr, ptr %49, align 8, !tbaa !5
  %771 = load i64, ptr %132, align 8, !tbaa !9
  %772 = getelementptr inbounds float, ptr %770, i64 %771
  %773 = load ptr, ptr %50, align 8, !tbaa !5
  %774 = load i64, ptr %127, align 8, !tbaa !9
  %775 = getelementptr inbounds i64, ptr %773, i64 %774
  %776 = load ptr, ptr %32, align 8, !tbaa !5
  %777 = call i32 @slarrb_(ptr noundef %74, ptr noundef %752, ptr noundef %758, ptr noundef %68, ptr noundef %69, ptr noundef %759, ptr noundef %760, ptr noundef %128, ptr noundef %763, ptr noundef %766, ptr noundef %769, ptr noundef %772, ptr noundef %775, ptr noundef %776, ptr noundef %120, ptr noundef %74, ptr noundef %97)
  %778 = load i64, ptr %97, align 8, !tbaa !9
  %779 = icmp ne i64 %778, 0
  br i1 %779, label %780, label %782

780:                                              ; preds = %730
  %781 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -1, ptr %781, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %152, align 4
  br label %2161

782:                                              ; preds = %730
  %783 = load i64, ptr %131, align 8, !tbaa !9
  %784 = icmp sgt i64 %783, 1
  br i1 %784, label %785, label %841

785:                                              ; preds = %782
  %786 = load ptr, ptr %42, align 8, !tbaa !5
  %787 = load i64, ptr %119, align 8, !tbaa !9
  %788 = load i64, ptr %131, align 8, !tbaa !9
  %789 = add nsw i64 %787, %788
  %790 = sub nsw i64 %789, 2
  %791 = getelementptr inbounds float, ptr %786, i64 %790
  %792 = load float, ptr %791, align 4, !tbaa !11
  store float %792, ptr %60, align 4, !tbaa !11
  %793 = load ptr, ptr %40, align 8, !tbaa !5
  %794 = load i64, ptr %119, align 8, !tbaa !9
  %795 = load i64, ptr %131, align 8, !tbaa !9
  %796 = add nsw i64 %794, %795
  %797 = sub nsw i64 %796, 1
  %798 = getelementptr inbounds float, ptr %793, i64 %797
  %799 = load float, ptr %798, align 4, !tbaa !11
  %800 = load ptr, ptr %41, align 8, !tbaa !5
  %801 = load i64, ptr %119, align 8, !tbaa !9
  %802 = load i64, ptr %131, align 8, !tbaa !9
  %803 = add nsw i64 %801, %802
  %804 = sub nsw i64 %803, 1
  %805 = getelementptr inbounds float, ptr %800, i64 %804
  %806 = load float, ptr %805, align 4, !tbaa !11
  %807 = fsub float %799, %806
  %808 = load ptr, ptr %40, align 8, !tbaa !5
  %809 = load i64, ptr %119, align 8, !tbaa !9
  %810 = load i64, ptr %131, align 8, !tbaa !9
  %811 = add nsw i64 %809, %810
  %812 = sub nsw i64 %811, 2
  %813 = getelementptr inbounds float, ptr %808, i64 %812
  %814 = load float, ptr %813, align 4, !tbaa !11
  %815 = fsub float %807, %814
  %816 = load ptr, ptr %41, align 8, !tbaa !5
  %817 = load i64, ptr %119, align 8, !tbaa !9
  %818 = load i64, ptr %131, align 8, !tbaa !9
  %819 = add nsw i64 %817, %818
  %820 = sub nsw i64 %819, 2
  %821 = getelementptr inbounds float, ptr %816, i64 %820
  %822 = load float, ptr %821, align 4, !tbaa !11
  %823 = fsub float %815, %822
  store float %823, ptr %61, align 4, !tbaa !11
  %824 = load float, ptr %60, align 4, !tbaa !11
  %825 = load float, ptr %61, align 4, !tbaa !11
  %826 = fcmp oge float %824, %825
  br i1 %826, label %827, label %829

827:                                              ; preds = %785
  %828 = load float, ptr %60, align 4, !tbaa !11
  br label %831

829:                                              ; preds = %785
  %830 = load float, ptr %61, align 4, !tbaa !11
  br label %831

831:                                              ; preds = %829, %827
  %832 = phi float [ %828, %827 ], [ %830, %829 ]
  %833 = fpext float %832 to double
  %834 = fptrunc double %833 to float
  %835 = load ptr, ptr %42, align 8, !tbaa !5
  %836 = load i64, ptr %119, align 8, !tbaa !9
  %837 = load i64, ptr %131, align 8, !tbaa !9
  %838 = add nsw i64 %836, %837
  %839 = sub nsw i64 %838, 2
  %840 = getelementptr inbounds float, ptr %835, i64 %839
  store float %834, ptr %840, align 4, !tbaa !11
  br label %841

841:                                              ; preds = %831, %782
  %842 = load i64, ptr %119, align 8, !tbaa !9
  %843 = load i64, ptr %134, align 8, !tbaa !9
  %844 = add nsw i64 %842, %843
  %845 = sub nsw i64 %844, 1
  %846 = load i64, ptr %89, align 8, !tbaa !9
  %847 = icmp slt i64 %845, %846
  br i1 %847, label %848, label %902

848:                                              ; preds = %841
  %849 = load ptr, ptr %42, align 8, !tbaa !5
  %850 = load i64, ptr %119, align 8, !tbaa !9
  %851 = load i64, ptr %134, align 8, !tbaa !9
  %852 = add nsw i64 %850, %851
  %853 = sub nsw i64 %852, 1
  %854 = getelementptr inbounds float, ptr %849, i64 %853
  %855 = load float, ptr %854, align 4, !tbaa !11
  store float %855, ptr %60, align 4, !tbaa !11
  %856 = load ptr, ptr %40, align 8, !tbaa !5
  %857 = load i64, ptr %119, align 8, !tbaa !9
  %858 = load i64, ptr %134, align 8, !tbaa !9
  %859 = add nsw i64 %857, %858
  %860 = getelementptr inbounds float, ptr %856, i64 %859
  %861 = load float, ptr %860, align 4, !tbaa !11
  %862 = load ptr, ptr %41, align 8, !tbaa !5
  %863 = load i64, ptr %119, align 8, !tbaa !9
  %864 = load i64, ptr %134, align 8, !tbaa !9
  %865 = add nsw i64 %863, %864
  %866 = getelementptr inbounds float, ptr %862, i64 %865
  %867 = load float, ptr %866, align 4, !tbaa !11
  %868 = fsub float %861, %867
  %869 = load ptr, ptr %40, align 8, !tbaa !5
  %870 = load i64, ptr %119, align 8, !tbaa !9
  %871 = load i64, ptr %134, align 8, !tbaa !9
  %872 = add nsw i64 %870, %871
  %873 = sub nsw i64 %872, 1
  %874 = getelementptr inbounds float, ptr %869, i64 %873
  %875 = load float, ptr %874, align 4, !tbaa !11
  %876 = fsub float %868, %875
  %877 = load ptr, ptr %41, align 8, !tbaa !5
  %878 = load i64, ptr %119, align 8, !tbaa !9
  %879 = load i64, ptr %134, align 8, !tbaa !9
  %880 = add nsw i64 %878, %879
  %881 = sub nsw i64 %880, 1
  %882 = getelementptr inbounds float, ptr %877, i64 %881
  %883 = load float, ptr %882, align 4, !tbaa !11
  %884 = fsub float %876, %883
  store float %884, ptr %61, align 4, !tbaa !11
  %885 = load float, ptr %60, align 4, !tbaa !11
  %886 = load float, ptr %61, align 4, !tbaa !11
  %887 = fcmp oge float %885, %886
  br i1 %887, label %888, label %890

888:                                              ; preds = %848
  %889 = load float, ptr %60, align 4, !tbaa !11
  br label %892

890:                                              ; preds = %848
  %891 = load float, ptr %61, align 4, !tbaa !11
  br label %892

892:                                              ; preds = %890, %888
  %893 = phi float [ %889, %888 ], [ %891, %890 ]
  %894 = fpext float %893 to double
  %895 = fptrunc double %894 to float
  %896 = load ptr, ptr %42, align 8, !tbaa !5
  %897 = load i64, ptr %119, align 8, !tbaa !9
  %898 = load i64, ptr %134, align 8, !tbaa !9
  %899 = add nsw i64 %897, %898
  %900 = sub nsw i64 %899, 1
  %901 = getelementptr inbounds float, ptr %896, i64 %900
  store float %895, ptr %901, align 4, !tbaa !11
  br label %902

902:                                              ; preds = %892, %841
  %903 = load i64, ptr %134, align 8, !tbaa !9
  store i64 %903, ptr %56, align 8, !tbaa !9
  %904 = load i64, ptr %131, align 8, !tbaa !9
  store i64 %904, ptr %66, align 8, !tbaa !9
  br label %905

905:                                              ; preds = %925, %902
  %906 = load i64, ptr %66, align 8, !tbaa !9
  %907 = load i64, ptr %56, align 8, !tbaa !9
  %908 = icmp sle i64 %906, %907
  br i1 %908, label %909, label %928

909:                                              ; preds = %905
  %910 = load ptr, ptr %49, align 8, !tbaa !5
  %911 = load i64, ptr %119, align 8, !tbaa !9
  %912 = load i64, ptr %66, align 8, !tbaa !9
  %913 = add nsw i64 %911, %912
  %914 = sub nsw i64 %913, 1
  %915 = getelementptr inbounds float, ptr %910, i64 %914
  %916 = load float, ptr %915, align 4, !tbaa !11
  %917 = load float, ptr %96, align 4, !tbaa !11
  %918 = fadd float %916, %917
  %919 = load ptr, ptr %40, align 8, !tbaa !5
  %920 = load i64, ptr %119, align 8, !tbaa !9
  %921 = load i64, ptr %66, align 8, !tbaa !9
  %922 = add nsw i64 %920, %921
  %923 = sub nsw i64 %922, 1
  %924 = getelementptr inbounds float, ptr %919, i64 %923
  store float %918, ptr %924, align 4, !tbaa !11
  br label %925

925:                                              ; preds = %909
  %926 = load i64, ptr %66, align 8, !tbaa !9
  %927 = add nsw i64 %926, 1
  store i64 %927, ptr %66, align 8, !tbaa !9
  br label %905, !llvm.loop !23

928:                                              ; preds = %905
  br label %929

929:                                              ; preds = %928, %727
  %930 = load i64, ptr %131, align 8, !tbaa !9
  store i64 %930, ptr %136, align 8, !tbaa !9
  %931 = load i64, ptr %134, align 8, !tbaa !9
  store i64 %931, ptr %56, align 8, !tbaa !9
  %932 = load i64, ptr %131, align 8, !tbaa !9
  store i64 %932, ptr %66, align 8, !tbaa !9
  br label %933

933:                                              ; preds = %2141, %929
  %934 = load i64, ptr %66, align 8, !tbaa !9
  %935 = load i64, ptr %56, align 8, !tbaa !9
  %936 = icmp sle i64 %934, %935
  br i1 %936, label %937, label %2144

937:                                              ; preds = %933
  %938 = load i64, ptr %66, align 8, !tbaa !9
  %939 = load i64, ptr %134, align 8, !tbaa !9
  %940 = icmp eq i64 %938, %939
  br i1 %940, label %941, label %943

941:                                              ; preds = %937
  %942 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %942, ptr %142, align 8, !tbaa !9
  br label %978

943:                                              ; preds = %937
  %944 = load ptr, ptr %42, align 8, !tbaa !5
  %945 = load i64, ptr %119, align 8, !tbaa !9
  %946 = load i64, ptr %66, align 8, !tbaa !9
  %947 = add nsw i64 %945, %946
  %948 = sub nsw i64 %947, 1
  %949 = getelementptr inbounds float, ptr %944, i64 %948
  %950 = load float, ptr %949, align 4, !tbaa !11
  %951 = fpext float %950 to double
  %952 = load ptr, ptr %37, align 8, !tbaa !5
  %953 = load float, ptr %952, align 4, !tbaa !11
  %954 = fpext float %953 to double
  %955 = load ptr, ptr %49, align 8, !tbaa !5
  %956 = load i64, ptr %119, align 8, !tbaa !9
  %957 = load i64, ptr %66, align 8, !tbaa !9
  %958 = add nsw i64 %956, %957
  %959 = sub nsw i64 %958, 1
  %960 = getelementptr inbounds float, ptr %955, i64 %959
  %961 = load float, ptr %960, align 4, !tbaa !11
  store float %961, ptr %60, align 4, !tbaa !11
  %962 = load float, ptr %60, align 4, !tbaa !11
  %963 = fcmp oge float %962, 0.000000e+00
  br i1 %963, label %964, label %966

964:                                              ; preds = %943
  %965 = load float, ptr %60, align 4, !tbaa !11
  br label %969

966:                                              ; preds = %943
  %967 = load float, ptr %60, align 4, !tbaa !11
  %968 = fneg float %967
  br label %969

969:                                              ; preds = %966, %964
  %970 = phi float [ %965, %964 ], [ %968, %966 ]
  %971 = fpext float %970 to double
  %972 = fmul double %954, %971
  %973 = fcmp oge double %951, %972
  br i1 %973, label %974, label %976

974:                                              ; preds = %969
  %975 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %975, ptr %142, align 8, !tbaa !9
  br label %977

976:                                              ; preds = %969
  br label %2140

977:                                              ; preds = %974
  br label %978

978:                                              ; preds = %977, %941
  %979 = load i64, ptr %142, align 8, !tbaa !9
  %980 = load i64, ptr %136, align 8, !tbaa !9
  %981 = sub nsw i64 %979, %980
  %982 = add nsw i64 %981, 1
  store i64 %982, ptr %145, align 8, !tbaa !9
  %983 = load ptr, ptr %35, align 8, !tbaa !5
  %984 = load i64, ptr %983, align 8, !tbaa !9
  %985 = icmp eq i64 %984, 1
  br i1 %985, label %986, label %997

986:                                              ; preds = %978
  %987 = load ptr, ptr %36, align 8, !tbaa !5
  %988 = load i64, ptr %987, align 8, !tbaa !9
  %989 = load ptr, ptr %34, align 8, !tbaa !5
  %990 = load i64, ptr %989, align 8, !tbaa !9
  %991 = icmp eq i64 %988, %990
  br i1 %991, label %992, label %997

992:                                              ; preds = %986
  %993 = load i64, ptr %119, align 8, !tbaa !9
  %994 = load i64, ptr %136, align 8, !tbaa !9
  %995 = add nsw i64 %993, %994
  %996 = sub nsw i64 %995, 1
  store i64 %996, ptr %137, align 8, !tbaa !9
  br label %1027

997:                                              ; preds = %986, %978
  %998 = load i64, ptr %119, align 8, !tbaa !9
  %999 = load i64, ptr %136, align 8, !tbaa !9
  %1000 = add nsw i64 %998, %999
  %1001 = sub nsw i64 %1000, 1
  %1002 = load ptr, ptr %35, align 8, !tbaa !5
  %1003 = load i64, ptr %1002, align 8, !tbaa !9
  %1004 = icmp slt i64 %1001, %1003
  br i1 %1004, label %1005, label %1009

1005:                                             ; preds = %997
  %1006 = load ptr, ptr %35, align 8, !tbaa !5
  %1007 = load i64, ptr %1006, align 8, !tbaa !9
  %1008 = sub nsw i64 %1007, 1
  store i64 %1008, ptr %137, align 8, !tbaa !9
  br label %1026

1009:                                             ; preds = %997
  %1010 = load i64, ptr %119, align 8, !tbaa !9
  %1011 = load i64, ptr %136, align 8, !tbaa !9
  %1012 = add nsw i64 %1010, %1011
  %1013 = sub nsw i64 %1012, 1
  %1014 = load ptr, ptr %36, align 8, !tbaa !5
  %1015 = load i64, ptr %1014, align 8, !tbaa !9
  %1016 = icmp sgt i64 %1013, %1015
  br i1 %1016, label %1017, label %1020

1017:                                             ; preds = %1009
  %1018 = load ptr, ptr %36, align 8, !tbaa !5
  %1019 = load i64, ptr %1018, align 8, !tbaa !9
  store i64 %1019, ptr %137, align 8, !tbaa !9
  br label %1025

1020:                                             ; preds = %1009
  %1021 = load i64, ptr %119, align 8, !tbaa !9
  %1022 = load i64, ptr %136, align 8, !tbaa !9
  %1023 = add nsw i64 %1021, %1022
  %1024 = sub nsw i64 %1023, 1
  store i64 %1024, ptr %137, align 8, !tbaa !9
  br label %1025

1025:                                             ; preds = %1020, %1017
  br label %1026

1026:                                             ; preds = %1025, %1005
  br label %1027

1027:                                             ; preds = %1026, %992
  %1028 = load i64, ptr %145, align 8, !tbaa !9
  %1029 = icmp sgt i64 %1028, 1
  br i1 %1029, label %1030, label %1405

1030:                                             ; preds = %1027
  %1031 = load i64, ptr %136, align 8, !tbaa !9
  %1032 = icmp eq i64 %1031, 1
  br i1 %1032, label %1033, label %1057

1033:                                             ; preds = %1030
  store float 0.000000e+00, ptr %60, align 4, !tbaa !11
  %1034 = load ptr, ptr %40, align 8, !tbaa !5
  %1035 = load i64, ptr %119, align 8, !tbaa !9
  %1036 = getelementptr inbounds float, ptr %1034, i64 %1035
  %1037 = load float, ptr %1036, align 4, !tbaa !11
  %1038 = load ptr, ptr %41, align 8, !tbaa !5
  %1039 = load i64, ptr %119, align 8, !tbaa !9
  %1040 = getelementptr inbounds float, ptr %1038, i64 %1039
  %1041 = load float, ptr %1040, align 4, !tbaa !11
  %1042 = fsub float %1037, %1041
  %1043 = load ptr, ptr %28, align 8, !tbaa !5
  %1044 = load float, ptr %1043, align 4, !tbaa !11
  %1045 = fsub float %1042, %1044
  store float %1045, ptr %61, align 4, !tbaa !11
  %1046 = load float, ptr %60, align 4, !tbaa !11
  %1047 = load float, ptr %61, align 4, !tbaa !11
  %1048 = fcmp oge float %1046, %1047
  br i1 %1048, label %1049, label %1051

1049:                                             ; preds = %1033
  %1050 = load float, ptr %60, align 4, !tbaa !11
  br label %1053

1051:                                             ; preds = %1033
  %1052 = load float, ptr %61, align 4, !tbaa !11
  br label %1053

1053:                                             ; preds = %1051, %1049
  %1054 = phi float [ %1050, %1049 ], [ %1052, %1051 ]
  %1055 = fpext float %1054 to double
  %1056 = fptrunc double %1055 to float
  store float %1056, ptr %85, align 4, !tbaa !11
  br label %1065

1057:                                             ; preds = %1030
  %1058 = load ptr, ptr %42, align 8, !tbaa !5
  %1059 = load i64, ptr %119, align 8, !tbaa !9
  %1060 = load i64, ptr %136, align 8, !tbaa !9
  %1061 = add nsw i64 %1059, %1060
  %1062 = sub nsw i64 %1061, 2
  %1063 = getelementptr inbounds float, ptr %1058, i64 %1062
  %1064 = load float, ptr %1063, align 4, !tbaa !11
  store float %1064, ptr %85, align 4, !tbaa !11
  br label %1065

1065:                                             ; preds = %1057, %1053
  %1066 = load ptr, ptr %42, align 8, !tbaa !5
  %1067 = load i64, ptr %119, align 8, !tbaa !9
  %1068 = load i64, ptr %142, align 8, !tbaa !9
  %1069 = add nsw i64 %1067, %1068
  %1070 = sub nsw i64 %1069, 1
  %1071 = getelementptr inbounds float, ptr %1066, i64 %1070
  %1072 = load float, ptr %1071, align 4, !tbaa !11
  store float %1072, ptr %87, align 4, !tbaa !11
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %1073

1073:                                             ; preds = %1127, %1065
  %1074 = load i64, ptr %67, align 8, !tbaa !9
  %1075 = icmp sle i64 %1074, 2
  br i1 %1075, label %1076, label %1130

1076:                                             ; preds = %1073
  %1077 = load i64, ptr %67, align 8, !tbaa !9
  %1078 = icmp eq i64 %1077, 1
  br i1 %1078, label %1079, label %1087

1079:                                             ; preds = %1076
  %1080 = load ptr, ptr %44, align 8, !tbaa !5
  %1081 = load i64, ptr %119, align 8, !tbaa !9
  %1082 = sub nsw i64 %1081, 1
  %1083 = load i64, ptr %136, align 8, !tbaa !9
  %1084 = add nsw i64 %1082, %1083
  %1085 = getelementptr inbounds i64, ptr %1080, i64 %1084
  %1086 = load i64, ptr %1085, align 8, !tbaa !9
  store i64 %1086, ptr %68, align 8, !tbaa !9
  br label %1095

1087:                                             ; preds = %1076
  %1088 = load ptr, ptr %44, align 8, !tbaa !5
  %1089 = load i64, ptr %119, align 8, !tbaa !9
  %1090 = sub nsw i64 %1089, 1
  %1091 = load i64, ptr %142, align 8, !tbaa !9
  %1092 = add nsw i64 %1090, %1091
  %1093 = getelementptr inbounds i64, ptr %1088, i64 %1092
  %1094 = load i64, ptr %1093, align 8, !tbaa !9
  store i64 %1094, ptr %68, align 8, !tbaa !9
  br label %1095

1095:                                             ; preds = %1087, %1079
  %1096 = load ptr, ptr %44, align 8, !tbaa !5
  %1097 = load i64, ptr %119, align 8, !tbaa !9
  %1098 = getelementptr inbounds i64, ptr %1096, i64 %1097
  %1099 = load i64, ptr %1098, align 8, !tbaa !9
  %1100 = sub nsw i64 %1099, 1
  store i64 %1100, ptr %128, align 8, !tbaa !9
  %1101 = load ptr, ptr %30, align 8, !tbaa !5
  %1102 = load i64, ptr %111, align 8, !tbaa !9
  %1103 = getelementptr inbounds float, ptr %1101, i64 %1102
  %1104 = load ptr, ptr %49, align 8, !tbaa !5
  %1105 = load i64, ptr %114, align 8, !tbaa !9
  %1106 = load i64, ptr %111, align 8, !tbaa !9
  %1107 = add nsw i64 %1105, %1106
  %1108 = sub nsw i64 %1107, 1
  %1109 = getelementptr inbounds float, ptr %1104, i64 %1108
  %1110 = load ptr, ptr %49, align 8, !tbaa !5
  %1111 = load i64, ptr %119, align 8, !tbaa !9
  %1112 = getelementptr inbounds float, ptr %1110, i64 %1111
  %1113 = load ptr, ptr %42, align 8, !tbaa !5
  %1114 = load i64, ptr %119, align 8, !tbaa !9
  %1115 = getelementptr inbounds float, ptr %1113, i64 %1114
  %1116 = load ptr, ptr %41, align 8, !tbaa !5
  %1117 = load i64, ptr %119, align 8, !tbaa !9
  %1118 = getelementptr inbounds float, ptr %1116, i64 %1117
  %1119 = load ptr, ptr %49, align 8, !tbaa !5
  %1120 = load i64, ptr %132, align 8, !tbaa !9
  %1121 = getelementptr inbounds float, ptr %1119, i64 %1120
  %1122 = load ptr, ptr %50, align 8, !tbaa !5
  %1123 = load i64, ptr %127, align 8, !tbaa !9
  %1124 = getelementptr inbounds i64, ptr %1122, i64 %1123
  %1125 = load ptr, ptr %32, align 8, !tbaa !5
  %1126 = call i32 @slarrb_(ptr noundef %74, ptr noundef %1103, ptr noundef %1109, ptr noundef %68, ptr noundef %68, ptr noundef %104, ptr noundef %104, ptr noundef %128, ptr noundef %1112, ptr noundef %1115, ptr noundef %1118, ptr noundef %1121, ptr noundef %1124, ptr noundef %1125, ptr noundef %120, ptr noundef %74, ptr noundef %97)
  br label %1127

1127:                                             ; preds = %1095
  %1128 = load i64, ptr %67, align 8, !tbaa !9
  %1129 = add nsw i64 %1128, 1
  store i64 %1129, ptr %67, align 8, !tbaa !9
  br label %1073, !llvm.loop !24

1130:                                             ; preds = %1073
  %1131 = load i64, ptr %119, align 8, !tbaa !9
  %1132 = load i64, ptr %142, align 8, !tbaa !9
  %1133 = add nsw i64 %1131, %1132
  %1134 = sub nsw i64 %1133, 1
  %1135 = load ptr, ptr %35, align 8, !tbaa !5
  %1136 = load i64, ptr %1135, align 8, !tbaa !9
  %1137 = icmp slt i64 %1134, %1136
  br i1 %1137, label %1146, label %1138

1138:                                             ; preds = %1130
  %1139 = load i64, ptr %119, align 8, !tbaa !9
  %1140 = load i64, ptr %136, align 8, !tbaa !9
  %1141 = add nsw i64 %1139, %1140
  %1142 = sub nsw i64 %1141, 1
  %1143 = load ptr, ptr %36, align 8, !tbaa !5
  %1144 = load i64, ptr %1143, align 8, !tbaa !9
  %1145 = icmp sgt i64 %1142, %1144
  br i1 %1145, label %1146, label %1153

1146:                                             ; preds = %1138, %1130
  %1147 = load i64, ptr %95, align 8, !tbaa !9
  %1148 = load i64, ptr %142, align 8, !tbaa !9
  %1149 = add nsw i64 %1147, %1148
  %1150 = load i64, ptr %136, align 8, !tbaa !9
  %1151 = sub nsw i64 %1149, %1150
  %1152 = add nsw i64 %1151, 1
  store i64 %1152, ptr %95, align 8, !tbaa !9
  br label %2137

1153:                                             ; preds = %1138
  %1154 = load ptr, ptr %30, align 8, !tbaa !5
  %1155 = load i64, ptr %111, align 8, !tbaa !9
  %1156 = getelementptr inbounds float, ptr %1154, i64 %1155
  %1157 = load ptr, ptr %31, align 8, !tbaa !5
  %1158 = load i64, ptr %111, align 8, !tbaa !9
  %1159 = getelementptr inbounds float, ptr %1157, i64 %1158
  %1160 = load ptr, ptr %49, align 8, !tbaa !5
  %1161 = load i64, ptr %93, align 8, !tbaa !9
  %1162 = load i64, ptr %111, align 8, !tbaa !9
  %1163 = add nsw i64 %1161, %1162
  %1164 = sub nsw i64 %1163, 1
  %1165 = getelementptr inbounds float, ptr %1160, i64 %1164
  %1166 = load ptr, ptr %49, align 8, !tbaa !5
  %1167 = load i64, ptr %119, align 8, !tbaa !9
  %1168 = getelementptr inbounds float, ptr %1166, i64 %1167
  %1169 = load ptr, ptr %42, align 8, !tbaa !5
  %1170 = load i64, ptr %119, align 8, !tbaa !9
  %1171 = getelementptr inbounds float, ptr %1169, i64 %1170
  %1172 = load ptr, ptr %41, align 8, !tbaa !5
  %1173 = load i64, ptr %119, align 8, !tbaa !9
  %1174 = getelementptr inbounds float, ptr %1172, i64 %1173
  %1175 = load ptr, ptr %32, align 8, !tbaa !5
  %1176 = load ptr, ptr %49, align 8, !tbaa !5
  %1177 = load i64, ptr %107, align 8, !tbaa !9
  %1178 = getelementptr inbounds float, ptr %1176, i64 %1177
  %1179 = load ptr, ptr %49, align 8, !tbaa !5
  %1180 = load i64, ptr %108, align 8, !tbaa !9
  %1181 = getelementptr inbounds float, ptr %1179, i64 %1180
  %1182 = load ptr, ptr %49, align 8, !tbaa !5
  %1183 = load i64, ptr %132, align 8, !tbaa !9
  %1184 = getelementptr inbounds float, ptr %1182, i64 %1183
  %1185 = call i32 @slarrf_(ptr noundef %74, ptr noundef %1156, ptr noundef %1159, ptr noundef %1165, ptr noundef %136, ptr noundef %142, ptr noundef %1168, ptr noundef %1171, ptr noundef %1174, ptr noundef %120, ptr noundef %85, ptr noundef %87, ptr noundef %1175, ptr noundef %78, ptr noundef %1178, ptr noundef %1181, ptr noundef %1184, ptr noundef %97)
  %1186 = load i64, ptr %74, align 8, !tbaa !9
  %1187 = sub nsw i64 %1186, 1
  store i64 %1187, ptr %57, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %1188

1188:                                             ; preds = %1254, %1153
  %1189 = load i64, ptr %67, align 8, !tbaa !9
  %1190 = load i64, ptr %57, align 8, !tbaa !9
  %1191 = icmp sle i64 %1189, %1190
  br i1 %1191, label %1192, label %1257

1192:                                             ; preds = %1188
  %1193 = load i64, ptr %111, align 8, !tbaa !9
  %1194 = load i64, ptr %67, align 8, !tbaa !9
  %1195 = add nsw i64 %1193, %1194
  %1196 = sub nsw i64 %1195, 1
  %1197 = load i64, ptr %137, align 8, !tbaa !9
  %1198 = load i64, ptr %52, align 8, !tbaa !9
  %1199 = mul nsw i64 %1197, %1198
  %1200 = add nsw i64 %1196, %1199
  store i64 %1200, ptr %58, align 8, !tbaa !9
  %1201 = load i64, ptr %107, align 8, !tbaa !9
  %1202 = load i64, ptr %67, align 8, !tbaa !9
  %1203 = add nsw i64 %1201, %1202
  %1204 = sub nsw i64 %1203, 1
  store i64 %1204, ptr %59, align 8, !tbaa !9
  %1205 = load ptr, ptr %49, align 8, !tbaa !5
  %1206 = load i64, ptr %59, align 8, !tbaa !9
  %1207 = getelementptr inbounds float, ptr %1205, i64 %1206
  %1208 = load float, ptr %1207, align 4, !tbaa !11
  %1209 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1208, ptr %1209, align 4, !tbaa !17
  %1210 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1210, align 4, !tbaa !19
  %1211 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %1212 = load float, ptr %1211, align 4, !tbaa !17
  %1213 = load ptr, ptr %46, align 8, !tbaa !5
  %1214 = load i64, ptr %58, align 8, !tbaa !9
  %1215 = getelementptr inbounds %struct.complex, ptr %1213, i64 %1214
  %1216 = getelementptr inbounds %struct.complex, ptr %1215, i32 0, i32 0
  store float %1212, ptr %1216, align 4, !tbaa !17
  %1217 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %1218 = load float, ptr %1217, align 4, !tbaa !19
  %1219 = load ptr, ptr %46, align 8, !tbaa !5
  %1220 = load i64, ptr %58, align 8, !tbaa !9
  %1221 = getelementptr inbounds %struct.complex, ptr %1219, i64 %1220
  %1222 = getelementptr inbounds %struct.complex, ptr %1221, i32 0, i32 1
  store float %1218, ptr %1222, align 4, !tbaa !19
  %1223 = load i64, ptr %111, align 8, !tbaa !9
  %1224 = load i64, ptr %67, align 8, !tbaa !9
  %1225 = add nsw i64 %1223, %1224
  %1226 = sub nsw i64 %1225, 1
  %1227 = load i64, ptr %137, align 8, !tbaa !9
  %1228 = add nsw i64 %1227, 1
  %1229 = load i64, ptr %52, align 8, !tbaa !9
  %1230 = mul nsw i64 %1228, %1229
  %1231 = add nsw i64 %1226, %1230
  store i64 %1231, ptr %58, align 8, !tbaa !9
  %1232 = load i64, ptr %108, align 8, !tbaa !9
  %1233 = load i64, ptr %67, align 8, !tbaa !9
  %1234 = add nsw i64 %1232, %1233
  %1235 = sub nsw i64 %1234, 1
  store i64 %1235, ptr %59, align 8, !tbaa !9
  %1236 = load ptr, ptr %49, align 8, !tbaa !5
  %1237 = load i64, ptr %59, align 8, !tbaa !9
  %1238 = getelementptr inbounds float, ptr %1236, i64 %1237
  %1239 = load float, ptr %1238, align 4, !tbaa !11
  %1240 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1239, ptr %1240, align 4, !tbaa !17
  %1241 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1241, align 4, !tbaa !19
  %1242 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %1243 = load float, ptr %1242, align 4, !tbaa !17
  %1244 = load ptr, ptr %46, align 8, !tbaa !5
  %1245 = load i64, ptr %58, align 8, !tbaa !9
  %1246 = getelementptr inbounds %struct.complex, ptr %1244, i64 %1245
  %1247 = getelementptr inbounds %struct.complex, ptr %1246, i32 0, i32 0
  store float %1243, ptr %1247, align 4, !tbaa !17
  %1248 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %1249 = load float, ptr %1248, align 4, !tbaa !19
  %1250 = load ptr, ptr %46, align 8, !tbaa !5
  %1251 = load i64, ptr %58, align 8, !tbaa !9
  %1252 = getelementptr inbounds %struct.complex, ptr %1250, i64 %1251
  %1253 = getelementptr inbounds %struct.complex, ptr %1252, i32 0, i32 1
  store float %1249, ptr %1253, align 4, !tbaa !19
  br label %1254

1254:                                             ; preds = %1192
  %1255 = load i64, ptr %67, align 8, !tbaa !9
  %1256 = add nsw i64 %1255, 1
  store i64 %1256, ptr %67, align 8, !tbaa !9
  br label %1188, !llvm.loop !25

1257:                                             ; preds = %1188
  %1258 = load i64, ptr %83, align 8, !tbaa !9
  %1259 = load i64, ptr %137, align 8, !tbaa !9
  %1260 = load i64, ptr %52, align 8, !tbaa !9
  %1261 = mul nsw i64 %1259, %1260
  %1262 = add nsw i64 %1258, %1261
  store i64 %1262, ptr %57, align 8, !tbaa !9
  %1263 = load i64, ptr %107, align 8, !tbaa !9
  %1264 = load i64, ptr %74, align 8, !tbaa !9
  %1265 = add nsw i64 %1263, %1264
  %1266 = sub nsw i64 %1265, 1
  store i64 %1266, ptr %58, align 8, !tbaa !9
  %1267 = load ptr, ptr %49, align 8, !tbaa !5
  %1268 = load i64, ptr %58, align 8, !tbaa !9
  %1269 = getelementptr inbounds float, ptr %1267, i64 %1268
  %1270 = load float, ptr %1269, align 4, !tbaa !11
  %1271 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1270, ptr %1271, align 4, !tbaa !17
  %1272 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1272, align 4, !tbaa !19
  %1273 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %1274 = load float, ptr %1273, align 4, !tbaa !17
  %1275 = load ptr, ptr %46, align 8, !tbaa !5
  %1276 = load i64, ptr %57, align 8, !tbaa !9
  %1277 = getelementptr inbounds %struct.complex, ptr %1275, i64 %1276
  %1278 = getelementptr inbounds %struct.complex, ptr %1277, i32 0, i32 0
  store float %1274, ptr %1278, align 4, !tbaa !17
  %1279 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %1280 = load float, ptr %1279, align 4, !tbaa !19
  %1281 = load ptr, ptr %46, align 8, !tbaa !5
  %1282 = load i64, ptr %57, align 8, !tbaa !9
  %1283 = getelementptr inbounds %struct.complex, ptr %1281, i64 %1282
  %1284 = getelementptr inbounds %struct.complex, ptr %1283, i32 0, i32 1
  store float %1280, ptr %1284, align 4, !tbaa !19
  %1285 = load i64, ptr %97, align 8, !tbaa !9
  %1286 = icmp eq i64 %1285, 0
  br i1 %1286, label %1287, label %1402

1287:                                             ; preds = %1257
  %1288 = load float, ptr %96, align 4, !tbaa !11
  %1289 = load float, ptr %78, align 4, !tbaa !11
  %1290 = fadd float %1288, %1289
  store float %1290, ptr %125, align 4, !tbaa !11
  %1291 = load i64, ptr %83, align 8, !tbaa !9
  %1292 = load i64, ptr %137, align 8, !tbaa !9
  %1293 = add nsw i64 %1292, 1
  %1294 = load i64, ptr %52, align 8, !tbaa !9
  %1295 = mul nsw i64 %1293, %1294
  %1296 = add nsw i64 %1291, %1295
  store i64 %1296, ptr %57, align 8, !tbaa !9
  %1297 = load float, ptr %125, align 4, !tbaa !11
  %1298 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1297, ptr %1298, align 4, !tbaa !17
  %1299 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1299, align 4, !tbaa !19
  %1300 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %1301 = load float, ptr %1300, align 4, !tbaa !17
  %1302 = load ptr, ptr %46, align 8, !tbaa !5
  %1303 = load i64, ptr %57, align 8, !tbaa !9
  %1304 = getelementptr inbounds %struct.complex, ptr %1302, i64 %1303
  %1305 = getelementptr inbounds %struct.complex, ptr %1304, i32 0, i32 0
  store float %1301, ptr %1305, align 4, !tbaa !17
  %1306 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %1307 = load float, ptr %1306, align 4, !tbaa !19
  %1308 = load ptr, ptr %46, align 8, !tbaa !5
  %1309 = load i64, ptr %57, align 8, !tbaa !9
  %1310 = getelementptr inbounds %struct.complex, ptr %1308, i64 %1309
  %1311 = getelementptr inbounds %struct.complex, ptr %1310, i32 0, i32 1
  store float %1307, ptr %1311, align 4, !tbaa !19
  %1312 = load i64, ptr %142, align 8, !tbaa !9
  store i64 %1312, ptr %57, align 8, !tbaa !9
  %1313 = load i64, ptr %136, align 8, !tbaa !9
  store i64 %1313, ptr %67, align 8, !tbaa !9
  br label %1314

1314:                                             ; preds = %1383, %1287
  %1315 = load i64, ptr %67, align 8, !tbaa !9
  %1316 = load i64, ptr %57, align 8, !tbaa !9
  %1317 = icmp sle i64 %1315, %1316
  br i1 %1317, label %1318, label %1386

1318:                                             ; preds = %1314
  %1319 = load float, ptr %77, align 4, !tbaa !11
  %1320 = fmul float %1319, 3.000000e+00
  %1321 = fpext float %1320 to double
  %1322 = load ptr, ptr %49, align 8, !tbaa !5
  %1323 = load i64, ptr %119, align 8, !tbaa !9
  %1324 = load i64, ptr %67, align 8, !tbaa !9
  %1325 = add nsw i64 %1323, %1324
  %1326 = sub nsw i64 %1325, 1
  %1327 = getelementptr inbounds float, ptr %1322, i64 %1326
  %1328 = load float, ptr %1327, align 4, !tbaa !11
  store float %1328, ptr %60, align 4, !tbaa !11
  %1329 = load float, ptr %60, align 4, !tbaa !11
  %1330 = fcmp oge float %1329, 0.000000e+00
  br i1 %1330, label %1331, label %1333

1331:                                             ; preds = %1318
  %1332 = load float, ptr %60, align 4, !tbaa !11
  br label %1336

1333:                                             ; preds = %1318
  %1334 = load float, ptr %60, align 4, !tbaa !11
  %1335 = fneg float %1334
  br label %1336

1336:                                             ; preds = %1333, %1331
  %1337 = phi float [ %1332, %1331 ], [ %1335, %1333 ]
  %1338 = fpext float %1337 to double
  %1339 = fmul double %1321, %1338
  %1340 = fptrunc double %1339 to float
  store float %1340, ptr %94, align 4, !tbaa !11
  %1341 = load float, ptr %78, align 4, !tbaa !11
  %1342 = load ptr, ptr %49, align 8, !tbaa !5
  %1343 = load i64, ptr %119, align 8, !tbaa !9
  %1344 = load i64, ptr %67, align 8, !tbaa !9
  %1345 = add nsw i64 %1343, %1344
  %1346 = sub nsw i64 %1345, 1
  %1347 = getelementptr inbounds float, ptr %1342, i64 %1346
  %1348 = load float, ptr %1347, align 4, !tbaa !11
  %1349 = fsub float %1348, %1341
  store float %1349, ptr %1347, align 4, !tbaa !11
  %1350 = load float, ptr %77, align 4, !tbaa !11
  %1351 = fmul float %1350, 4.000000e+00
  %1352 = fpext float %1351 to double
  %1353 = load ptr, ptr %49, align 8, !tbaa !5
  %1354 = load i64, ptr %119, align 8, !tbaa !9
  %1355 = load i64, ptr %67, align 8, !tbaa !9
  %1356 = add nsw i64 %1354, %1355
  %1357 = sub nsw i64 %1356, 1
  %1358 = getelementptr inbounds float, ptr %1353, i64 %1357
  %1359 = load float, ptr %1358, align 4, !tbaa !11
  store float %1359, ptr %60, align 4, !tbaa !11
  %1360 = load float, ptr %60, align 4, !tbaa !11
  %1361 = fcmp oge float %1360, 0.000000e+00
  br i1 %1361, label %1362, label %1364

1362:                                             ; preds = %1336
  %1363 = load float, ptr %60, align 4, !tbaa !11
  br label %1367

1364:                                             ; preds = %1336
  %1365 = load float, ptr %60, align 4, !tbaa !11
  %1366 = fneg float %1365
  br label %1367

1367:                                             ; preds = %1364, %1362
  %1368 = phi float [ %1363, %1362 ], [ %1366, %1364 ]
  %1369 = fpext float %1368 to double
  %1370 = load float, ptr %94, align 4, !tbaa !11
  %1371 = fpext float %1370 to double
  %1372 = call double @llvm.fmuladd.f64(double %1352, double %1369, double %1371)
  %1373 = fptrunc double %1372 to float
  store float %1373, ptr %94, align 4, !tbaa !11
  %1374 = load float, ptr %94, align 4, !tbaa !11
  %1375 = load ptr, ptr %41, align 8, !tbaa !5
  %1376 = load i64, ptr %119, align 8, !tbaa !9
  %1377 = load i64, ptr %67, align 8, !tbaa !9
  %1378 = add nsw i64 %1376, %1377
  %1379 = sub nsw i64 %1378, 1
  %1380 = getelementptr inbounds float, ptr %1375, i64 %1379
  %1381 = load float, ptr %1380, align 4, !tbaa !11
  %1382 = fadd float %1381, %1374
  store float %1382, ptr %1380, align 4, !tbaa !11
  br label %1383

1383:                                             ; preds = %1367
  %1384 = load i64, ptr %67, align 8, !tbaa !9
  %1385 = add nsw i64 %1384, 1
  store i64 %1385, ptr %67, align 8, !tbaa !9
  br label %1314, !llvm.loop !26

1386:                                             ; preds = %1314
  %1387 = load i64, ptr %102, align 8, !tbaa !9
  %1388 = add nsw i64 %1387, 1
  store i64 %1388, ptr %102, align 8, !tbaa !9
  %1389 = load i64, ptr %130, align 8, !tbaa !9
  %1390 = load i64, ptr %102, align 8, !tbaa !9
  %1391 = shl i64 %1390, 1
  %1392 = add nsw i64 %1389, %1391
  store i64 %1392, ptr %67, align 8, !tbaa !9
  %1393 = load i64, ptr %136, align 8, !tbaa !9
  %1394 = load ptr, ptr %50, align 8, !tbaa !5
  %1395 = load i64, ptr %67, align 8, !tbaa !9
  %1396 = sub nsw i64 %1395, 1
  %1397 = getelementptr inbounds i64, ptr %1394, i64 %1396
  store i64 %1393, ptr %1397, align 8, !tbaa !9
  %1398 = load i64, ptr %142, align 8, !tbaa !9
  %1399 = load ptr, ptr %50, align 8, !tbaa !5
  %1400 = load i64, ptr %67, align 8, !tbaa !9
  %1401 = getelementptr inbounds i64, ptr %1399, i64 %1400
  store i64 %1398, ptr %1401, align 8, !tbaa !9
  br label %1404

1402:                                             ; preds = %1257
  %1403 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -2, ptr %1403, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %152, align 4
  br label %2161

1404:                                             ; preds = %1386
  br label %2136

1405:                                             ; preds = %1027
  store i64 0, ptr %90, align 8, !tbaa !9
  %1406 = load i64, ptr %74, align 8, !tbaa !9
  %1407 = sitofp i64 %1406 to float
  %1408 = fpext float %1407 to double
  %1409 = call double @log(double noundef %1408) #5
  %1410 = fmul double %1409, 4.000000e+00
  %1411 = load float, ptr %77, align 4, !tbaa !11
  %1412 = fpext float %1411 to double
  %1413 = fmul double %1410, %1412
  %1414 = fptrunc double %1413 to float
  store float %1414, ptr %79, align 4, !tbaa !11
  %1415 = load i64, ptr %136, align 8, !tbaa !9
  store i64 %1415, ptr %67, align 8, !tbaa !9
  %1416 = load i64, ptr %119, align 8, !tbaa !9
  %1417 = load i64, ptr %67, align 8, !tbaa !9
  %1418 = add nsw i64 %1416, %1417
  %1419 = sub nsw i64 %1418, 1
  store i64 %1419, ptr %133, align 8, !tbaa !9
  %1420 = load i64, ptr %133, align 8, !tbaa !9
  %1421 = sub nsw i64 %1420, 1
  store i64 %1421, ptr %57, align 8, !tbaa !9
  %1422 = load i64, ptr %57, align 8, !tbaa !9
  %1423 = icmp sge i64 %1422, 1
  br i1 %1423, label %1424, label %1426

1424:                                             ; preds = %1405
  %1425 = load i64, ptr %57, align 8, !tbaa !9
  br label %1427

1426:                                             ; preds = %1405
  br label %1427

1427:                                             ; preds = %1426, %1424
  %1428 = phi i64 [ %1425, %1424 ], [ 1, %1426 ]
  store i64 %1428, ptr %139, align 8, !tbaa !9
  %1429 = load i64, ptr %133, align 8, !tbaa !9
  %1430 = add nsw i64 %1429, 1
  store i64 %1430, ptr %57, align 8, !tbaa !9
  %1431 = load i64, ptr %57, align 8, !tbaa !9
  %1432 = load ptr, ptr %34, align 8, !tbaa !5
  %1433 = load i64, ptr %1432, align 8, !tbaa !9
  %1434 = icmp sle i64 %1431, %1433
  br i1 %1434, label %1435, label %1437

1435:                                             ; preds = %1427
  %1436 = load i64, ptr %57, align 8, !tbaa !9
  br label %1440

1437:                                             ; preds = %1427
  %1438 = load ptr, ptr %34, align 8, !tbaa !5
  %1439 = load i64, ptr %1438, align 8, !tbaa !9
  br label %1440

1440:                                             ; preds = %1437, %1435
  %1441 = phi i64 [ %1436, %1435 ], [ %1439, %1437 ]
  store i64 %1441, ptr %140, align 8, !tbaa !9
  %1442 = load ptr, ptr %49, align 8, !tbaa !5
  %1443 = load i64, ptr %133, align 8, !tbaa !9
  %1444 = getelementptr inbounds float, ptr %1442, i64 %1443
  %1445 = load float, ptr %1444, align 4, !tbaa !11
  store float %1445, ptr %110, align 4, !tbaa !11
  %1446 = load i64, ptr %86, align 8, !tbaa !9
  %1447 = add nsw i64 %1446, 1
  store i64 %1447, ptr %86, align 8, !tbaa !9
  %1448 = load i64, ptr %133, align 8, !tbaa !9
  %1449 = load ptr, ptr %35, align 8, !tbaa !5
  %1450 = load i64, ptr %1449, align 8, !tbaa !9
  %1451 = icmp slt i64 %1448, %1450
  br i1 %1451, label %1457, label %1452

1452:                                             ; preds = %1440
  %1453 = load i64, ptr %133, align 8, !tbaa !9
  %1454 = load ptr, ptr %36, align 8, !tbaa !5
  %1455 = load i64, ptr %1454, align 8, !tbaa !9
  %1456 = icmp sgt i64 %1453, %1455
  br i1 %1456, label %1457, label %1458

1457:                                             ; preds = %1452, %1440
  store i64 1, ptr %100, align 8, !tbaa !9
  br label %2043

1458:                                             ; preds = %1452
  store i64 0, ptr %100, align 8, !tbaa !9
  br label %1459

1459:                                             ; preds = %1458
  %1460 = load ptr, ptr %49, align 8, !tbaa !5
  %1461 = load i64, ptr %133, align 8, !tbaa !9
  %1462 = getelementptr inbounds float, ptr %1460, i64 %1461
  %1463 = load float, ptr %1462, align 4, !tbaa !11
  %1464 = load ptr, ptr %41, align 8, !tbaa !5
  %1465 = load i64, ptr %133, align 8, !tbaa !9
  %1466 = getelementptr inbounds float, ptr %1464, i64 %1465
  %1467 = load float, ptr %1466, align 4, !tbaa !11
  %1468 = fsub float %1463, %1467
  store float %1468, ptr %88, align 4, !tbaa !11
  %1469 = load ptr, ptr %49, align 8, !tbaa !5
  %1470 = load i64, ptr %133, align 8, !tbaa !9
  %1471 = getelementptr inbounds float, ptr %1469, i64 %1470
  %1472 = load float, ptr %1471, align 4, !tbaa !11
  %1473 = load ptr, ptr %41, align 8, !tbaa !5
  %1474 = load i64, ptr %133, align 8, !tbaa !9
  %1475 = getelementptr inbounds float, ptr %1473, i64 %1474
  %1476 = load float, ptr %1475, align 4, !tbaa !11
  %1477 = fadd float %1472, %1476
  store float %1477, ptr %101, align 4, !tbaa !11
  %1478 = load ptr, ptr %44, align 8, !tbaa !5
  %1479 = load i64, ptr %133, align 8, !tbaa !9
  %1480 = getelementptr inbounds i64, ptr %1478, i64 %1479
  %1481 = load i64, ptr %1480, align 8, !tbaa !9
  store i64 %1481, ptr %112, align 8, !tbaa !9
  %1482 = load i64, ptr %67, align 8, !tbaa !9
  %1483 = icmp eq i64 %1482, 1
  br i1 %1483, label %1484, label %1521

1484:                                             ; preds = %1459
  %1485 = load float, ptr %88, align 4, !tbaa !11
  %1486 = fcmp oge float %1485, 0.000000e+00
  br i1 %1486, label %1487, label %1489

1487:                                             ; preds = %1484
  %1488 = load float, ptr %88, align 4, !tbaa !11
  br label %1492

1489:                                             ; preds = %1484
  %1490 = load float, ptr %88, align 4, !tbaa !11
  %1491 = fneg float %1490
  br label %1492

1492:                                             ; preds = %1489, %1487
  %1493 = phi float [ %1488, %1487 ], [ %1491, %1489 ]
  %1494 = fpext float %1493 to double
  %1495 = fptrunc double %1494 to float
  store float %1495, ptr %60, align 4, !tbaa !11
  %1496 = load float, ptr %101, align 4, !tbaa !11
  %1497 = fcmp oge float %1496, 0.000000e+00
  br i1 %1497, label %1498, label %1500

1498:                                             ; preds = %1492
  %1499 = load float, ptr %101, align 4, !tbaa !11
  br label %1503

1500:                                             ; preds = %1492
  %1501 = load float, ptr %101, align 4, !tbaa !11
  %1502 = fneg float %1501
  br label %1503

1503:                                             ; preds = %1500, %1498
  %1504 = phi float [ %1499, %1498 ], [ %1502, %1500 ]
  %1505 = fpext float %1504 to double
  %1506 = fptrunc double %1505 to float
  store float %1506, ptr %61, align 4, !tbaa !11
  %1507 = load float, ptr %77, align 4, !tbaa !11
  %1508 = fpext float %1507 to double
  %1509 = load float, ptr %60, align 4, !tbaa !11
  %1510 = load float, ptr %61, align 4, !tbaa !11
  %1511 = fcmp oge float %1509, %1510
  br i1 %1511, label %1512, label %1514

1512:                                             ; preds = %1503
  %1513 = load float, ptr %60, align 4, !tbaa !11
  br label %1516

1514:                                             ; preds = %1503
  %1515 = load float, ptr %61, align 4, !tbaa !11
  br label %1516

1516:                                             ; preds = %1514, %1512
  %1517 = phi float [ %1513, %1512 ], [ %1515, %1514 ]
  %1518 = fpext float %1517 to double
  %1519 = fmul double %1508, %1518
  %1520 = fptrunc double %1519 to float
  store float %1520, ptr %85, align 4, !tbaa !11
  br label %1526

1521:                                             ; preds = %1459
  %1522 = load ptr, ptr %42, align 8, !tbaa !5
  %1523 = load i64, ptr %139, align 8, !tbaa !9
  %1524 = getelementptr inbounds float, ptr %1522, i64 %1523
  %1525 = load float, ptr %1524, align 4, !tbaa !11
  store float %1525, ptr %85, align 4, !tbaa !11
  br label %1526

1526:                                             ; preds = %1521, %1516
  %1527 = load i64, ptr %67, align 8, !tbaa !9
  %1528 = load i64, ptr %73, align 8, !tbaa !9
  %1529 = icmp eq i64 %1527, %1528
  br i1 %1529, label %1530, label %1567

1530:                                             ; preds = %1526
  %1531 = load float, ptr %88, align 4, !tbaa !11
  %1532 = fcmp oge float %1531, 0.000000e+00
  br i1 %1532, label %1533, label %1535

1533:                                             ; preds = %1530
  %1534 = load float, ptr %88, align 4, !tbaa !11
  br label %1538

1535:                                             ; preds = %1530
  %1536 = load float, ptr %88, align 4, !tbaa !11
  %1537 = fneg float %1536
  br label %1538

1538:                                             ; preds = %1535, %1533
  %1539 = phi float [ %1534, %1533 ], [ %1537, %1535 ]
  %1540 = fpext float %1539 to double
  %1541 = fptrunc double %1540 to float
  store float %1541, ptr %60, align 4, !tbaa !11
  %1542 = load float, ptr %101, align 4, !tbaa !11
  %1543 = fcmp oge float %1542, 0.000000e+00
  br i1 %1543, label %1544, label %1546

1544:                                             ; preds = %1538
  %1545 = load float, ptr %101, align 4, !tbaa !11
  br label %1549

1546:                                             ; preds = %1538
  %1547 = load float, ptr %101, align 4, !tbaa !11
  %1548 = fneg float %1547
  br label %1549

1549:                                             ; preds = %1546, %1544
  %1550 = phi float [ %1545, %1544 ], [ %1548, %1546 ]
  %1551 = fpext float %1550 to double
  %1552 = fptrunc double %1551 to float
  store float %1552, ptr %61, align 4, !tbaa !11
  %1553 = load float, ptr %77, align 4, !tbaa !11
  %1554 = fpext float %1553 to double
  %1555 = load float, ptr %60, align 4, !tbaa !11
  %1556 = load float, ptr %61, align 4, !tbaa !11
  %1557 = fcmp oge float %1555, %1556
  br i1 %1557, label %1558, label %1560

1558:                                             ; preds = %1549
  %1559 = load float, ptr %60, align 4, !tbaa !11
  br label %1562

1560:                                             ; preds = %1549
  %1561 = load float, ptr %61, align 4, !tbaa !11
  br label %1562

1562:                                             ; preds = %1560, %1558
  %1563 = phi float [ %1559, %1558 ], [ %1561, %1560 ]
  %1564 = fpext float %1563 to double
  %1565 = fmul double %1554, %1564
  %1566 = fptrunc double %1565 to float
  store float %1566, ptr %87, align 4, !tbaa !11
  br label %1572

1567:                                             ; preds = %1526
  %1568 = load ptr, ptr %42, align 8, !tbaa !5
  %1569 = load i64, ptr %133, align 8, !tbaa !9
  %1570 = getelementptr inbounds float, ptr %1568, i64 %1569
  %1571 = load float, ptr %1570, align 4, !tbaa !11
  store float %1571, ptr %87, align 4, !tbaa !11
  br label %1572

1572:                                             ; preds = %1567, %1562
  %1573 = load float, ptr %85, align 4, !tbaa !11
  %1574 = load float, ptr %87, align 4, !tbaa !11
  %1575 = fcmp ole float %1573, %1574
  br i1 %1575, label %1576, label %1578

1576:                                             ; preds = %1572
  %1577 = load float, ptr %85, align 4, !tbaa !11
  br label %1580

1578:                                             ; preds = %1572
  %1579 = load float, ptr %87, align 4, !tbaa !11
  br label %1580

1580:                                             ; preds = %1578, %1576
  %1581 = phi float [ %1577, %1576 ], [ %1579, %1578 ]
  %1582 = fpext float %1581 to double
  %1583 = fptrunc double %1582 to float
  store float %1583, ptr %76, align 4, !tbaa !11
  %1584 = load i64, ptr %67, align 8, !tbaa !9
  %1585 = icmp eq i64 %1584, 1
  br i1 %1585, label %1590, label %1586

1586:                                             ; preds = %1580
  %1587 = load i64, ptr %67, align 8, !tbaa !9
  %1588 = load i64, ptr %73, align 8, !tbaa !9
  %1589 = icmp eq i64 %1587, %1588
  br i1 %1589, label %1590, label %1591

1590:                                             ; preds = %1586, %1580
  store float 0.000000e+00, ptr %129, align 4, !tbaa !11
  br label %1595

1591:                                             ; preds = %1586
  %1592 = load float, ptr %76, align 4, !tbaa !11
  %1593 = load float, ptr %77, align 4, !tbaa !11
  %1594 = fmul float %1592, %1593
  store float %1594, ptr %129, align 4, !tbaa !11
  br label %1595

1595:                                             ; preds = %1591, %1590
  %1596 = load i64, ptr %74, align 8, !tbaa !9
  store i64 %1596, ptr %141, align 8, !tbaa !9
  store i64 1, ptr %151, align 8, !tbaa !9
  %1597 = load ptr, ptr %42, align 8, !tbaa !5
  %1598 = load i64, ptr %133, align 8, !tbaa !9
  %1599 = getelementptr inbounds float, ptr %1597, i64 %1598
  %1600 = load float, ptr %1599, align 4, !tbaa !11
  store float %1600, ptr %123, align 4, !tbaa !11
  %1601 = load float, ptr %76, align 4, !tbaa !11
  %1602 = load ptr, ptr %42, align 8, !tbaa !5
  %1603 = load i64, ptr %133, align 8, !tbaa !9
  %1604 = getelementptr inbounds float, ptr %1602, i64 %1603
  store float %1601, ptr %1604, align 4, !tbaa !11
  store i64 0, ptr %126, align 8, !tbaa !9
  store i64 0, ptr %135, align 8, !tbaa !9
  %1605 = load i64, ptr %150, align 8, !tbaa !9
  %1606 = icmp ne i64 %1605, 0
  %1607 = xor i1 %1606, true
  %1608 = zext i1 %1607 to i32
  %1609 = sext i32 %1608 to i64
  store i64 %1609, ptr %113, align 8, !tbaa !9
  br label %1610

1610:                                             ; preds = %1869, %1865, %1861, %1595
  %1611 = load i64, ptr %113, align 8, !tbaa !9
  %1612 = icmp ne i64 %1611, 0
  br i1 %1612, label %1613, label %1667

1613:                                             ; preds = %1610
  store i64 1, ptr %126, align 8, !tbaa !9
  %1614 = load ptr, ptr %50, align 8, !tbaa !5
  %1615 = load i64, ptr %98, align 8, !tbaa !9
  %1616 = load i64, ptr %133, align 8, !tbaa !9
  %1617 = add nsw i64 %1615, %1616
  %1618 = getelementptr inbounds i64, ptr %1614, i64 %1617
  %1619 = load i64, ptr %1618, align 8, !tbaa !9
  store i64 %1619, ptr %92, align 8, !tbaa !9
  %1620 = load ptr, ptr %44, align 8, !tbaa !5
  %1621 = load i64, ptr %119, align 8, !tbaa !9
  %1622 = getelementptr inbounds i64, ptr %1620, i64 %1621
  %1623 = load i64, ptr %1622, align 8, !tbaa !9
  %1624 = sub nsw i64 %1623, 1
  store i64 %1624, ptr %128, align 8, !tbaa !9
  %1625 = load float, ptr %77, align 4, !tbaa !11
  %1626 = fmul float %1625, 2.000000e+00
  store float %1626, ptr %60, align 4, !tbaa !11
  %1627 = load ptr, ptr %30, align 8, !tbaa !5
  %1628 = load i64, ptr %111, align 8, !tbaa !9
  %1629 = getelementptr inbounds float, ptr %1627, i64 %1628
  %1630 = load ptr, ptr %49, align 8, !tbaa !5
  %1631 = load i64, ptr %114, align 8, !tbaa !9
  %1632 = load i64, ptr %111, align 8, !tbaa !9
  %1633 = add nsw i64 %1631, %1632
  %1634 = sub nsw i64 %1633, 1
  %1635 = getelementptr inbounds float, ptr %1630, i64 %1634
  %1636 = load ptr, ptr %49, align 8, !tbaa !5
  %1637 = load i64, ptr %119, align 8, !tbaa !9
  %1638 = getelementptr inbounds float, ptr %1636, i64 %1637
  %1639 = load ptr, ptr %42, align 8, !tbaa !5
  %1640 = load i64, ptr %119, align 8, !tbaa !9
  %1641 = getelementptr inbounds float, ptr %1639, i64 %1640
  %1642 = load ptr, ptr %41, align 8, !tbaa !5
  %1643 = load i64, ptr %119, align 8, !tbaa !9
  %1644 = getelementptr inbounds float, ptr %1642, i64 %1643
  %1645 = load ptr, ptr %49, align 8, !tbaa !5
  %1646 = load i64, ptr %132, align 8, !tbaa !9
  %1647 = getelementptr inbounds float, ptr %1645, i64 %1646
  %1648 = load ptr, ptr %50, align 8, !tbaa !5
  %1649 = load i64, ptr %127, align 8, !tbaa !9
  %1650 = getelementptr inbounds i64, ptr %1648, i64 %1649
  %1651 = load ptr, ptr %32, align 8, !tbaa !5
  %1652 = call i32 @slarrb_(ptr noundef %74, ptr noundef %1629, ptr noundef %1635, ptr noundef %112, ptr noundef %112, ptr noundef @c_b28, ptr noundef %60, ptr noundef %128, ptr noundef %1638, ptr noundef %1641, ptr noundef %1644, ptr noundef %1647, ptr noundef %1650, ptr noundef %1651, ptr noundef %120, ptr noundef %92, ptr noundef %97)
  %1653 = load i64, ptr %97, align 8, !tbaa !9
  %1654 = icmp ne i64 %1653, 0
  br i1 %1654, label %1655, label %1657

1655:                                             ; preds = %1613
  %1656 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -3, ptr %1656, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %152, align 4
  br label %2161

1657:                                             ; preds = %1613
  %1658 = load ptr, ptr %49, align 8, !tbaa !5
  %1659 = load i64, ptr %133, align 8, !tbaa !9
  %1660 = getelementptr inbounds float, ptr %1658, i64 %1659
  %1661 = load float, ptr %1660, align 4, !tbaa !11
  store float %1661, ptr %110, align 4, !tbaa !11
  %1662 = load ptr, ptr %50, align 8, !tbaa !5
  %1663 = load i64, ptr %98, align 8, !tbaa !9
  %1664 = load i64, ptr %133, align 8, !tbaa !9
  %1665 = add nsw i64 %1663, %1664
  %1666 = getelementptr inbounds i64, ptr %1662, i64 %1665
  store i64 0, ptr %1666, align 8, !tbaa !9
  br label %1667

1667:                                             ; preds = %1657, %1610
  %1668 = load i64, ptr %126, align 8, !tbaa !9
  %1669 = icmp ne i64 %1668, 0
  %1670 = xor i1 %1669, true
  %1671 = zext i1 %1670 to i32
  %1672 = sext i32 %1671 to i64
  store i64 %1672, ptr %63, align 8, !tbaa !9
  %1673 = load ptr, ptr %30, align 8, !tbaa !5
  %1674 = load i64, ptr %111, align 8, !tbaa !9
  %1675 = getelementptr inbounds float, ptr %1673, i64 %1674
  %1676 = load ptr, ptr %31, align 8, !tbaa !5
  %1677 = load i64, ptr %111, align 8, !tbaa !9
  %1678 = getelementptr inbounds float, ptr %1676, i64 %1677
  %1679 = load ptr, ptr %49, align 8, !tbaa !5
  %1680 = load i64, ptr %93, align 8, !tbaa !9
  %1681 = load i64, ptr %111, align 8, !tbaa !9
  %1682 = add nsw i64 %1680, %1681
  %1683 = sub nsw i64 %1682, 1
  %1684 = getelementptr inbounds float, ptr %1679, i64 %1683
  %1685 = load ptr, ptr %49, align 8, !tbaa !5
  %1686 = load i64, ptr %114, align 8, !tbaa !9
  %1687 = load i64, ptr %111, align 8, !tbaa !9
  %1688 = add nsw i64 %1686, %1687
  %1689 = sub nsw i64 %1688, 1
  %1690 = getelementptr inbounds float, ptr %1685, i64 %1689
  %1691 = load ptr, ptr %32, align 8, !tbaa !5
  %1692 = load ptr, ptr %46, align 8, !tbaa !5
  %1693 = load i64, ptr %111, align 8, !tbaa !9
  %1694 = load i64, ptr %133, align 8, !tbaa !9
  %1695 = load i64, ptr %52, align 8, !tbaa !9
  %1696 = mul nsw i64 %1694, %1695
  %1697 = add nsw i64 %1693, %1696
  %1698 = getelementptr inbounds %struct.complex, ptr %1692, i64 %1697
  %1699 = load ptr, ptr %50, align 8, !tbaa !5
  %1700 = load i64, ptr %98, align 8, !tbaa !9
  %1701 = load i64, ptr %133, align 8, !tbaa !9
  %1702 = add nsw i64 %1700, %1701
  %1703 = getelementptr inbounds i64, ptr %1699, i64 %1702
  %1704 = load ptr, ptr %48, align 8, !tbaa !5
  %1705 = load i64, ptr %133, align 8, !tbaa !9
  %1706 = shl i64 %1705, 1
  %1707 = sub nsw i64 %1706, 1
  %1708 = getelementptr inbounds i64, ptr %1704, i64 %1707
  %1709 = load ptr, ptr %49, align 8, !tbaa !5
  %1710 = load i64, ptr %132, align 8, !tbaa !9
  %1711 = getelementptr inbounds float, ptr %1709, i64 %1710
  %1712 = call i32 @clar1v_(ptr noundef %74, ptr noundef @c__1, ptr noundef %74, ptr noundef %110, ptr noundef %1675, ptr noundef %1678, ptr noundef %1684, ptr noundef %1690, ptr noundef %1691, ptr noundef %129, ptr noundef %1698, ptr noundef %63, ptr noundef %121, ptr noundef %82, ptr noundef %116, ptr noundef %1703, ptr noundef %1708, ptr noundef %148, ptr noundef %99, ptr noundef %149, ptr noundef %1711)
  %1713 = load i64, ptr %90, align 8, !tbaa !9
  %1714 = icmp eq i64 %1713, 0
  br i1 %1714, label %1715, label %1718

1715:                                             ; preds = %1667
  %1716 = load float, ptr %99, align 4, !tbaa !11
  store float %1716, ptr %144, align 4, !tbaa !11
  %1717 = load float, ptr %110, align 4, !tbaa !11
  store float %1717, ptr %91, align 4, !tbaa !11
  br label %1726

1718:                                             ; preds = %1667
  %1719 = load float, ptr %99, align 4, !tbaa !11
  %1720 = load float, ptr %144, align 4, !tbaa !11
  %1721 = fcmp olt float %1719, %1720
  br i1 %1721, label %1722, label %1725

1722:                                             ; preds = %1718
  %1723 = load float, ptr %99, align 4, !tbaa !11
  store float %1723, ptr %144, align 4, !tbaa !11
  %1724 = load float, ptr %110, align 4, !tbaa !11
  store float %1724, ptr %91, align 4, !tbaa !11
  br label %1725

1725:                                             ; preds = %1722, %1718
  br label %1726

1726:                                             ; preds = %1725, %1715
  %1727 = load i64, ptr %141, align 8, !tbaa !9
  store i64 %1727, ptr %57, align 8, !tbaa !9
  %1728 = load ptr, ptr %48, align 8, !tbaa !5
  %1729 = load i64, ptr %133, align 8, !tbaa !9
  %1730 = shl i64 %1729, 1
  %1731 = sub nsw i64 %1730, 1
  %1732 = getelementptr inbounds i64, ptr %1728, i64 %1731
  %1733 = load i64, ptr %1732, align 8, !tbaa !9
  store i64 %1733, ptr %58, align 8, !tbaa !9
  %1734 = load i64, ptr %57, align 8, !tbaa !9
  %1735 = load i64, ptr %58, align 8, !tbaa !9
  %1736 = icmp sle i64 %1734, %1735
  br i1 %1736, label %1737, label %1739

1737:                                             ; preds = %1726
  %1738 = load i64, ptr %57, align 8, !tbaa !9
  br label %1741

1739:                                             ; preds = %1726
  %1740 = load i64, ptr %58, align 8, !tbaa !9
  br label %1741

1741:                                             ; preds = %1739, %1737
  %1742 = phi i64 [ %1738, %1737 ], [ %1740, %1739 ]
  store i64 %1742, ptr %141, align 8, !tbaa !9
  %1743 = load i64, ptr %151, align 8, !tbaa !9
  store i64 %1743, ptr %57, align 8, !tbaa !9
  %1744 = load ptr, ptr %48, align 8, !tbaa !5
  %1745 = load i64, ptr %133, align 8, !tbaa !9
  %1746 = mul nsw i64 %1745, 2
  %1747 = getelementptr inbounds i64, ptr %1744, i64 %1746
  %1748 = load i64, ptr %1747, align 8, !tbaa !9
  store i64 %1748, ptr %58, align 8, !tbaa !9
  %1749 = load i64, ptr %57, align 8, !tbaa !9
  %1750 = load i64, ptr %58, align 8, !tbaa !9
  %1751 = icmp sge i64 %1749, %1750
  br i1 %1751, label %1752, label %1754

1752:                                             ; preds = %1741
  %1753 = load i64, ptr %57, align 8, !tbaa !9
  br label %1756

1754:                                             ; preds = %1741
  %1755 = load i64, ptr %58, align 8, !tbaa !9
  br label %1756

1756:                                             ; preds = %1754, %1752
  %1757 = phi i64 [ %1753, %1752 ], [ %1755, %1754 ]
  store i64 %1757, ptr %151, align 8, !tbaa !9
  %1758 = load i64, ptr %90, align 8, !tbaa !9
  %1759 = add nsw i64 %1758, 1
  store i64 %1759, ptr %90, align 8, !tbaa !9
  %1760 = load float, ptr %99, align 4, !tbaa !11
  %1761 = load float, ptr %79, align 4, !tbaa !11
  %1762 = load float, ptr %76, align 4, !tbaa !11
  %1763 = fmul float %1761, %1762
  %1764 = fcmp ogt float %1760, %1763
  br i1 %1764, label %1765, label %1872

1765:                                             ; preds = %1756
  %1766 = load float, ptr %149, align 4, !tbaa !11
  %1767 = fcmp oge float %1766, 0.000000e+00
  br i1 %1767, label %1768, label %1770

1768:                                             ; preds = %1765
  %1769 = load float, ptr %149, align 4, !tbaa !11
  br label %1773

1770:                                             ; preds = %1765
  %1771 = load float, ptr %149, align 4, !tbaa !11
  %1772 = fneg float %1771
  br label %1773

1773:                                             ; preds = %1770, %1768
  %1774 = phi float [ %1769, %1768 ], [ %1772, %1770 ]
  %1775 = fpext float %1774 to double
  %1776 = load float, ptr %104, align 4, !tbaa !11
  %1777 = fpext float %1776 to double
  %1778 = load float, ptr %110, align 4, !tbaa !11
  %1779 = fcmp oge float %1778, 0.000000e+00
  br i1 %1779, label %1780, label %1782

1780:                                             ; preds = %1773
  %1781 = load float, ptr %110, align 4, !tbaa !11
  br label %1785

1782:                                             ; preds = %1773
  %1783 = load float, ptr %110, align 4, !tbaa !11
  %1784 = fneg float %1783
  br label %1785

1785:                                             ; preds = %1782, %1780
  %1786 = phi float [ %1781, %1780 ], [ %1784, %1782 ]
  %1787 = fpext float %1786 to double
  %1788 = fmul double %1777, %1787
  %1789 = fcmp ogt double %1775, %1788
  br i1 %1789, label %1790, label %1872

1790:                                             ; preds = %1785
  %1791 = load i64, ptr %126, align 8, !tbaa !9
  %1792 = icmp ne i64 %1791, 0
  br i1 %1792, label %1872, label %1793

1793:                                             ; preds = %1790
  %1794 = load i64, ptr %112, align 8, !tbaa !9
  %1795 = load i64, ptr %121, align 8, !tbaa !9
  %1796 = icmp sle i64 %1794, %1795
  br i1 %1796, label %1797, label %1798

1797:                                             ; preds = %1793
  store float -1.000000e+00, ptr %115, align 4, !tbaa !11
  br label %1799

1798:                                             ; preds = %1793
  store float 1.000000e+00, ptr %115, align 4, !tbaa !11
  br label %1799

1799:                                             ; preds = %1798, %1797
  %1800 = load float, ptr %149, align 4, !tbaa !11
  %1801 = load float, ptr %115, align 4, !tbaa !11
  %1802 = fmul float %1800, %1801
  %1803 = fcmp oge float %1802, 0.000000e+00
  br i1 %1803, label %1804, label %1841

1804:                                             ; preds = %1799
  %1805 = load float, ptr %110, align 4, !tbaa !11
  %1806 = load float, ptr %149, align 4, !tbaa !11
  %1807 = fadd float %1805, %1806
  %1808 = load float, ptr %101, align 4, !tbaa !11
  %1809 = fcmp ole float %1807, %1808
  br i1 %1809, label %1810, label %1841

1810:                                             ; preds = %1804
  %1811 = load float, ptr %110, align 4, !tbaa !11
  %1812 = load float, ptr %149, align 4, !tbaa !11
  %1813 = fadd float %1811, %1812
  %1814 = load float, ptr %88, align 4, !tbaa !11
  %1815 = fcmp oge float %1813, %1814
  br i1 %1815, label %1816, label %1841

1816:                                             ; preds = %1810
  store i64 1, ptr %135, align 8, !tbaa !9
  %1817 = load float, ptr %115, align 4, !tbaa !11
  %1818 = fcmp oeq float %1817, 1.000000e+00
  br i1 %1818, label %1819, label %1821

1819:                                             ; preds = %1816
  %1820 = load float, ptr %110, align 4, !tbaa !11
  store float %1820, ptr %88, align 4, !tbaa !11
  br label %1823

1821:                                             ; preds = %1816
  %1822 = load float, ptr %110, align 4, !tbaa !11
  store float %1822, ptr %101, align 4, !tbaa !11
  br label %1823

1823:                                             ; preds = %1821, %1819
  %1824 = load float, ptr %101, align 4, !tbaa !11
  %1825 = load float, ptr %88, align 4, !tbaa !11
  %1826 = fadd float %1824, %1825
  %1827 = fmul float %1826, 5.000000e-01
  %1828 = load ptr, ptr %49, align 8, !tbaa !5
  %1829 = load i64, ptr %133, align 8, !tbaa !9
  %1830 = getelementptr inbounds float, ptr %1828, i64 %1829
  store float %1827, ptr %1830, align 4, !tbaa !11
  %1831 = load float, ptr %149, align 4, !tbaa !11
  %1832 = load float, ptr %110, align 4, !tbaa !11
  %1833 = fadd float %1832, %1831
  store float %1833, ptr %110, align 4, !tbaa !11
  %1834 = load float, ptr %101, align 4, !tbaa !11
  %1835 = load float, ptr %88, align 4, !tbaa !11
  %1836 = fsub float %1834, %1835
  %1837 = fmul float %1836, 5.000000e-01
  %1838 = load ptr, ptr %41, align 8, !tbaa !5
  %1839 = load i64, ptr %133, align 8, !tbaa !9
  %1840 = getelementptr inbounds float, ptr %1838, i64 %1839
  store float %1837, ptr %1840, align 4, !tbaa !11
  br label %1842

1841:                                             ; preds = %1810, %1804, %1799
  store i64 1, ptr %113, align 8, !tbaa !9
  br label %1842

1842:                                             ; preds = %1841, %1823
  %1843 = load float, ptr %101, align 4, !tbaa !11
  %1844 = load float, ptr %88, align 4, !tbaa !11
  %1845 = fsub float %1843, %1844
  %1846 = fpext float %1845 to double
  %1847 = load float, ptr %104, align 4, !tbaa !11
  %1848 = fpext float %1847 to double
  %1849 = load float, ptr %110, align 4, !tbaa !11
  %1850 = fcmp oge float %1849, 0.000000e+00
  br i1 %1850, label %1851, label %1853

1851:                                             ; preds = %1842
  %1852 = load float, ptr %110, align 4, !tbaa !11
  br label %1856

1853:                                             ; preds = %1842
  %1854 = load float, ptr %110, align 4, !tbaa !11
  %1855 = fneg float %1854
  br label %1856

1856:                                             ; preds = %1853, %1851
  %1857 = phi float [ %1852, %1851 ], [ %1855, %1853 ]
  %1858 = fpext float %1857 to double
  %1859 = fmul double %1848, %1858
  %1860 = fcmp olt double %1846, %1859
  br i1 %1860, label %1861, label %1862

1861:                                             ; preds = %1856
  store i64 1, ptr %126, align 8, !tbaa !9
  br label %1610

1862:                                             ; preds = %1856
  %1863 = load i64, ptr %90, align 8, !tbaa !9
  %1864 = icmp slt i64 %1863, 10
  br i1 %1864, label %1865, label %1866

1865:                                             ; preds = %1862
  br label %1610

1866:                                             ; preds = %1862
  %1867 = load i64, ptr %90, align 8, !tbaa !9
  %1868 = icmp eq i64 %1867, 10
  br i1 %1868, label %1869, label %1870

1869:                                             ; preds = %1866
  store i64 1, ptr %113, align 8, !tbaa !9
  br label %1610

1870:                                             ; preds = %1866
  %1871 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 5, ptr %1871, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %152, align 4
  br label %2161

1872:                                             ; preds = %1790, %1785, %1756
  store i64 0, ptr %109, align 8, !tbaa !9
  %1873 = load i64, ptr %135, align 8, !tbaa !9
  %1874 = icmp ne i64 %1873, 0
  br i1 %1874, label %1875, label %1884

1875:                                             ; preds = %1872
  %1876 = load i64, ptr %126, align 8, !tbaa !9
  %1877 = icmp ne i64 %1876, 0
  br i1 %1877, label %1878, label %1884

1878:                                             ; preds = %1875
  %1879 = load float, ptr %144, align 4, !tbaa !11
  %1880 = load float, ptr %99, align 4, !tbaa !11
  %1881 = fcmp ole float %1879, %1880
  br i1 %1881, label %1882, label %1884

1882:                                             ; preds = %1878
  %1883 = load float, ptr %91, align 4, !tbaa !11
  store float %1883, ptr %110, align 4, !tbaa !11
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %1884

1884:                                             ; preds = %1882, %1878, %1875, %1872
  %1885 = load i64, ptr %109, align 8, !tbaa !9
  %1886 = icmp ne i64 %1885, 0
  br i1 %1886, label %1887, label %1933

1887:                                             ; preds = %1884
  %1888 = load i64, ptr %126, align 8, !tbaa !9
  %1889 = icmp ne i64 %1888, 0
  %1890 = xor i1 %1889, true
  %1891 = zext i1 %1890 to i32
  %1892 = sext i32 %1891 to i64
  store i64 %1892, ptr %63, align 8, !tbaa !9
  %1893 = load ptr, ptr %30, align 8, !tbaa !5
  %1894 = load i64, ptr %111, align 8, !tbaa !9
  %1895 = getelementptr inbounds float, ptr %1893, i64 %1894
  %1896 = load ptr, ptr %31, align 8, !tbaa !5
  %1897 = load i64, ptr %111, align 8, !tbaa !9
  %1898 = getelementptr inbounds float, ptr %1896, i64 %1897
  %1899 = load ptr, ptr %49, align 8, !tbaa !5
  %1900 = load i64, ptr %93, align 8, !tbaa !9
  %1901 = load i64, ptr %111, align 8, !tbaa !9
  %1902 = add nsw i64 %1900, %1901
  %1903 = sub nsw i64 %1902, 1
  %1904 = getelementptr inbounds float, ptr %1899, i64 %1903
  %1905 = load ptr, ptr %49, align 8, !tbaa !5
  %1906 = load i64, ptr %114, align 8, !tbaa !9
  %1907 = load i64, ptr %111, align 8, !tbaa !9
  %1908 = add nsw i64 %1906, %1907
  %1909 = sub nsw i64 %1908, 1
  %1910 = getelementptr inbounds float, ptr %1905, i64 %1909
  %1911 = load ptr, ptr %32, align 8, !tbaa !5
  %1912 = load ptr, ptr %46, align 8, !tbaa !5
  %1913 = load i64, ptr %111, align 8, !tbaa !9
  %1914 = load i64, ptr %133, align 8, !tbaa !9
  %1915 = load i64, ptr %52, align 8, !tbaa !9
  %1916 = mul nsw i64 %1914, %1915
  %1917 = add nsw i64 %1913, %1916
  %1918 = getelementptr inbounds %struct.complex, ptr %1912, i64 %1917
  %1919 = load ptr, ptr %50, align 8, !tbaa !5
  %1920 = load i64, ptr %98, align 8, !tbaa !9
  %1921 = load i64, ptr %133, align 8, !tbaa !9
  %1922 = add nsw i64 %1920, %1921
  %1923 = getelementptr inbounds i64, ptr %1919, i64 %1922
  %1924 = load ptr, ptr %48, align 8, !tbaa !5
  %1925 = load i64, ptr %133, align 8, !tbaa !9
  %1926 = shl i64 %1925, 1
  %1927 = sub nsw i64 %1926, 1
  %1928 = getelementptr inbounds i64, ptr %1924, i64 %1927
  %1929 = load ptr, ptr %49, align 8, !tbaa !5
  %1930 = load i64, ptr %132, align 8, !tbaa !9
  %1931 = getelementptr inbounds float, ptr %1929, i64 %1930
  %1932 = call i32 @clar1v_(ptr noundef %74, ptr noundef @c__1, ptr noundef %74, ptr noundef %110, ptr noundef %1895, ptr noundef %1898, ptr noundef %1904, ptr noundef %1910, ptr noundef %1911, ptr noundef %129, ptr noundef %1918, ptr noundef %63, ptr noundef %121, ptr noundef %82, ptr noundef %116, ptr noundef %1923, ptr noundef %1928, ptr noundef %148, ptr noundef %99, ptr noundef %149, ptr noundef %1931)
  br label %1933

1933:                                             ; preds = %1887, %1884
  %1934 = load float, ptr %110, align 4, !tbaa !11
  %1935 = load ptr, ptr %49, align 8, !tbaa !5
  %1936 = load i64, ptr %133, align 8, !tbaa !9
  %1937 = getelementptr inbounds float, ptr %1935, i64 %1936
  store float %1934, ptr %1937, align 4, !tbaa !11
  br label %1938

1938:                                             ; preds = %1933
  %1939 = load i64, ptr %117, align 8, !tbaa !9
  %1940 = load ptr, ptr %48, align 8, !tbaa !5
  %1941 = load i64, ptr %133, align 8, !tbaa !9
  %1942 = shl i64 %1941, 1
  %1943 = sub nsw i64 %1942, 1
  %1944 = getelementptr inbounds i64, ptr %1940, i64 %1943
  %1945 = load i64, ptr %1944, align 8, !tbaa !9
  %1946 = add nsw i64 %1945, %1939
  store i64 %1946, ptr %1944, align 8, !tbaa !9
  %1947 = load i64, ptr %117, align 8, !tbaa !9
  %1948 = load ptr, ptr %48, align 8, !tbaa !5
  %1949 = load i64, ptr %133, align 8, !tbaa !9
  %1950 = mul nsw i64 %1949, 2
  %1951 = getelementptr inbounds i64, ptr %1948, i64 %1950
  %1952 = load i64, ptr %1951, align 8, !tbaa !9
  %1953 = add nsw i64 %1952, %1947
  store i64 %1953, ptr %1951, align 8, !tbaa !9
  %1954 = load ptr, ptr %48, align 8, !tbaa !5
  %1955 = load i64, ptr %133, align 8, !tbaa !9
  %1956 = shl i64 %1955, 1
  %1957 = sub nsw i64 %1956, 1
  %1958 = getelementptr inbounds i64, ptr %1954, i64 %1957
  %1959 = load i64, ptr %1958, align 8, !tbaa !9
  store i64 %1959, ptr %103, align 8, !tbaa !9
  %1960 = load ptr, ptr %48, align 8, !tbaa !5
  %1961 = load i64, ptr %133, align 8, !tbaa !9
  %1962 = mul nsw i64 %1961, 2
  %1963 = getelementptr inbounds i64, ptr %1960, i64 %1962
  %1964 = load i64, ptr %1963, align 8, !tbaa !9
  store i64 %1964, ptr %81, align 8, !tbaa !9
  %1965 = load i64, ptr %117, align 8, !tbaa !9
  %1966 = load i64, ptr %141, align 8, !tbaa !9
  %1967 = add nsw i64 %1966, %1965
  store i64 %1967, ptr %141, align 8, !tbaa !9
  %1968 = load i64, ptr %117, align 8, !tbaa !9
  %1969 = load i64, ptr %151, align 8, !tbaa !9
  %1970 = add nsw i64 %1969, %1968
  store i64 %1970, ptr %151, align 8, !tbaa !9
  %1971 = load i64, ptr %141, align 8, !tbaa !9
  %1972 = load i64, ptr %103, align 8, !tbaa !9
  %1973 = icmp slt i64 %1971, %1972
  br i1 %1973, label %1974, label %2000

1974:                                             ; preds = %1938
  %1975 = load i64, ptr %103, align 8, !tbaa !9
  %1976 = sub nsw i64 %1975, 1
  store i64 %1976, ptr %57, align 8, !tbaa !9
  %1977 = load i64, ptr %141, align 8, !tbaa !9
  store i64 %1977, ptr %71, align 8, !tbaa !9
  br label %1978

1978:                                             ; preds = %1996, %1974
  %1979 = load i64, ptr %71, align 8, !tbaa !9
  %1980 = load i64, ptr %57, align 8, !tbaa !9
  %1981 = icmp sle i64 %1979, %1980
  br i1 %1981, label %1982, label %1999

1982:                                             ; preds = %1978
  %1983 = load i64, ptr %71, align 8, !tbaa !9
  %1984 = load i64, ptr %133, align 8, !tbaa !9
  %1985 = load i64, ptr %52, align 8, !tbaa !9
  %1986 = mul nsw i64 %1984, %1985
  %1987 = add nsw i64 %1983, %1986
  store i64 %1987, ptr %58, align 8, !tbaa !9
  %1988 = load ptr, ptr %46, align 8, !tbaa !5
  %1989 = load i64, ptr %58, align 8, !tbaa !9
  %1990 = getelementptr inbounds %struct.complex, ptr %1988, i64 %1989
  %1991 = getelementptr inbounds %struct.complex, ptr %1990, i32 0, i32 0
  store float 0.000000e+00, ptr %1991, align 4, !tbaa !17
  %1992 = load ptr, ptr %46, align 8, !tbaa !5
  %1993 = load i64, ptr %58, align 8, !tbaa !9
  %1994 = getelementptr inbounds %struct.complex, ptr %1992, i64 %1993
  %1995 = getelementptr inbounds %struct.complex, ptr %1994, i32 0, i32 1
  store float 0.000000e+00, ptr %1995, align 4, !tbaa !19
  br label %1996

1996:                                             ; preds = %1982
  %1997 = load i64, ptr %71, align 8, !tbaa !9
  %1998 = add nsw i64 %1997, 1
  store i64 %1998, ptr %71, align 8, !tbaa !9
  br label %1978, !llvm.loop !27

1999:                                             ; preds = %1978
  br label %2000

2000:                                             ; preds = %1999, %1938
  %2001 = load i64, ptr %151, align 8, !tbaa !9
  %2002 = load i64, ptr %81, align 8, !tbaa !9
  %2003 = icmp sgt i64 %2001, %2002
  br i1 %2003, label %2004, label %2030

2004:                                             ; preds = %2000
  %2005 = load i64, ptr %151, align 8, !tbaa !9
  store i64 %2005, ptr %57, align 8, !tbaa !9
  %2006 = load i64, ptr %81, align 8, !tbaa !9
  %2007 = add nsw i64 %2006, 1
  store i64 %2007, ptr %71, align 8, !tbaa !9
  br label %2008

2008:                                             ; preds = %2026, %2004
  %2009 = load i64, ptr %71, align 8, !tbaa !9
  %2010 = load i64, ptr %57, align 8, !tbaa !9
  %2011 = icmp sle i64 %2009, %2010
  br i1 %2011, label %2012, label %2029

2012:                                             ; preds = %2008
  %2013 = load i64, ptr %71, align 8, !tbaa !9
  %2014 = load i64, ptr %133, align 8, !tbaa !9
  %2015 = load i64, ptr %52, align 8, !tbaa !9
  %2016 = mul nsw i64 %2014, %2015
  %2017 = add nsw i64 %2013, %2016
  store i64 %2017, ptr %58, align 8, !tbaa !9
  %2018 = load ptr, ptr %46, align 8, !tbaa !5
  %2019 = load i64, ptr %58, align 8, !tbaa !9
  %2020 = getelementptr inbounds %struct.complex, ptr %2018, i64 %2019
  %2021 = getelementptr inbounds %struct.complex, ptr %2020, i32 0, i32 0
  store float 0.000000e+00, ptr %2021, align 4, !tbaa !17
  %2022 = load ptr, ptr %46, align 8, !tbaa !5
  %2023 = load i64, ptr %58, align 8, !tbaa !9
  %2024 = getelementptr inbounds %struct.complex, ptr %2022, i64 %2023
  %2025 = getelementptr inbounds %struct.complex, ptr %2024, i32 0, i32 1
  store float 0.000000e+00, ptr %2025, align 4, !tbaa !19
  br label %2026

2026:                                             ; preds = %2012
  %2027 = load i64, ptr %71, align 8, !tbaa !9
  %2028 = add nsw i64 %2027, 1
  store i64 %2028, ptr %71, align 8, !tbaa !9
  br label %2008, !llvm.loop !28

2029:                                             ; preds = %2008
  br label %2030

2030:                                             ; preds = %2029, %2000
  %2031 = load i64, ptr %81, align 8, !tbaa !9
  %2032 = load i64, ptr %103, align 8, !tbaa !9
  %2033 = sub nsw i64 %2031, %2032
  %2034 = add nsw i64 %2033, 1
  store i64 %2034, ptr %57, align 8, !tbaa !9
  %2035 = load ptr, ptr %46, align 8, !tbaa !5
  %2036 = load i64, ptr %103, align 8, !tbaa !9
  %2037 = load i64, ptr %133, align 8, !tbaa !9
  %2038 = load i64, ptr %52, align 8, !tbaa !9
  %2039 = mul nsw i64 %2037, %2038
  %2040 = add nsw i64 %2036, %2039
  %2041 = getelementptr inbounds %struct.complex, ptr %2035, i64 %2040
  %2042 = call i32 @f2c_csscal(ptr noundef %57, ptr noundef %148, ptr noundef %2041, ptr noundef @c__1)
  br label %2043

2043:                                             ; preds = %2030, %1457
  %2044 = load float, ptr %110, align 4, !tbaa !11
  %2045 = load float, ptr %96, align 4, !tbaa !11
  %2046 = fadd float %2044, %2045
  %2047 = load ptr, ptr %40, align 8, !tbaa !5
  %2048 = load i64, ptr %133, align 8, !tbaa !9
  %2049 = getelementptr inbounds float, ptr %2047, i64 %2048
  store float %2046, ptr %2049, align 4, !tbaa !11
  %2050 = load i64, ptr %100, align 8, !tbaa !9
  %2051 = icmp ne i64 %2050, 0
  br i1 %2051, label %2133, label %2052

2052:                                             ; preds = %2043
  %2053 = load i64, ptr %67, align 8, !tbaa !9
  %2054 = icmp sgt i64 %2053, 1
  br i1 %2054, label %2055, label %2093

2055:                                             ; preds = %2052
  %2056 = load ptr, ptr %42, align 8, !tbaa !5
  %2057 = load i64, ptr %139, align 8, !tbaa !9
  %2058 = getelementptr inbounds float, ptr %2056, i64 %2057
  %2059 = load float, ptr %2058, align 4, !tbaa !11
  store float %2059, ptr %60, align 4, !tbaa !11
  %2060 = load ptr, ptr %40, align 8, !tbaa !5
  %2061 = load i64, ptr %133, align 8, !tbaa !9
  %2062 = getelementptr inbounds float, ptr %2060, i64 %2061
  %2063 = load float, ptr %2062, align 4, !tbaa !11
  %2064 = load ptr, ptr %41, align 8, !tbaa !5
  %2065 = load i64, ptr %133, align 8, !tbaa !9
  %2066 = getelementptr inbounds float, ptr %2064, i64 %2065
  %2067 = load float, ptr %2066, align 4, !tbaa !11
  %2068 = fsub float %2063, %2067
  %2069 = load ptr, ptr %40, align 8, !tbaa !5
  %2070 = load i64, ptr %139, align 8, !tbaa !9
  %2071 = getelementptr inbounds float, ptr %2069, i64 %2070
  %2072 = load float, ptr %2071, align 4, !tbaa !11
  %2073 = fsub float %2068, %2072
  %2074 = load ptr, ptr %41, align 8, !tbaa !5
  %2075 = load i64, ptr %139, align 8, !tbaa !9
  %2076 = getelementptr inbounds float, ptr %2074, i64 %2075
  %2077 = load float, ptr %2076, align 4, !tbaa !11
  %2078 = fsub float %2073, %2077
  store float %2078, ptr %61, align 4, !tbaa !11
  %2079 = load float, ptr %60, align 4, !tbaa !11
  %2080 = load float, ptr %61, align 4, !tbaa !11
  %2081 = fcmp oge float %2079, %2080
  br i1 %2081, label %2082, label %2084

2082:                                             ; preds = %2055
  %2083 = load float, ptr %60, align 4, !tbaa !11
  br label %2086

2084:                                             ; preds = %2055
  %2085 = load float, ptr %61, align 4, !tbaa !11
  br label %2086

2086:                                             ; preds = %2084, %2082
  %2087 = phi float [ %2083, %2082 ], [ %2085, %2084 ]
  %2088 = fpext float %2087 to double
  %2089 = fptrunc double %2088 to float
  %2090 = load ptr, ptr %42, align 8, !tbaa !5
  %2091 = load i64, ptr %139, align 8, !tbaa !9
  %2092 = getelementptr inbounds float, ptr %2090, i64 %2091
  store float %2089, ptr %2092, align 4, !tbaa !11
  br label %2093

2093:                                             ; preds = %2086, %2052
  %2094 = load i64, ptr %133, align 8, !tbaa !9
  %2095 = load i64, ptr %89, align 8, !tbaa !9
  %2096 = icmp slt i64 %2094, %2095
  br i1 %2096, label %2097, label %2132

2097:                                             ; preds = %2093
  %2098 = load float, ptr %123, align 4, !tbaa !11
  store float %2098, ptr %60, align 4, !tbaa !11
  %2099 = load ptr, ptr %40, align 8, !tbaa !5
  %2100 = load i64, ptr %140, align 8, !tbaa !9
  %2101 = getelementptr inbounds float, ptr %2099, i64 %2100
  %2102 = load float, ptr %2101, align 4, !tbaa !11
  %2103 = load ptr, ptr %41, align 8, !tbaa !5
  %2104 = load i64, ptr %140, align 8, !tbaa !9
  %2105 = getelementptr inbounds float, ptr %2103, i64 %2104
  %2106 = load float, ptr %2105, align 4, !tbaa !11
  %2107 = fsub float %2102, %2106
  %2108 = load ptr, ptr %40, align 8, !tbaa !5
  %2109 = load i64, ptr %133, align 8, !tbaa !9
  %2110 = getelementptr inbounds float, ptr %2108, i64 %2109
  %2111 = load float, ptr %2110, align 4, !tbaa !11
  %2112 = fsub float %2107, %2111
  %2113 = load ptr, ptr %41, align 8, !tbaa !5
  %2114 = load i64, ptr %133, align 8, !tbaa !9
  %2115 = getelementptr inbounds float, ptr %2113, i64 %2114
  %2116 = load float, ptr %2115, align 4, !tbaa !11
  %2117 = fsub float %2112, %2116
  store float %2117, ptr %61, align 4, !tbaa !11
  %2118 = load float, ptr %60, align 4, !tbaa !11
  %2119 = load float, ptr %61, align 4, !tbaa !11
  %2120 = fcmp oge float %2118, %2119
  br i1 %2120, label %2121, label %2123

2121:                                             ; preds = %2097
  %2122 = load float, ptr %60, align 4, !tbaa !11
  br label %2125

2123:                                             ; preds = %2097
  %2124 = load float, ptr %61, align 4, !tbaa !11
  br label %2125

2125:                                             ; preds = %2123, %2121
  %2126 = phi float [ %2122, %2121 ], [ %2124, %2123 ]
  %2127 = fpext float %2126 to double
  %2128 = fptrunc double %2127 to float
  %2129 = load ptr, ptr %42, align 8, !tbaa !5
  %2130 = load i64, ptr %133, align 8, !tbaa !9
  %2131 = getelementptr inbounds float, ptr %2129, i64 %2130
  store float %2128, ptr %2131, align 4, !tbaa !11
  br label %2132

2132:                                             ; preds = %2125, %2093
  br label %2133

2133:                                             ; preds = %2132, %2043
  %2134 = load i64, ptr %95, align 8, !tbaa !9
  %2135 = add nsw i64 %2134, 1
  store i64 %2135, ptr %95, align 8, !tbaa !9
  br label %2136

2136:                                             ; preds = %2133, %1404
  br label %2137

2137:                                             ; preds = %2136, %1146
  %2138 = load i64, ptr %66, align 8, !tbaa !9
  %2139 = add nsw i64 %2138, 1
  store i64 %2139, ptr %136, align 8, !tbaa !9
  br label %2140

2140:                                             ; preds = %2137, %976
  br label %2141

2141:                                             ; preds = %2140
  %2142 = load i64, ptr %66, align 8, !tbaa !9
  %2143 = add nsw i64 %2142, 1
  store i64 %2143, ptr %66, align 8, !tbaa !9
  br label %933, !llvm.loop !29

2144:                                             ; preds = %933
  br label %2145

2145:                                             ; preds = %2144
  %2146 = load i64, ptr %65, align 8, !tbaa !9
  %2147 = add nsw i64 %2146, 1
  store i64 %2147, ptr %65, align 8, !tbaa !9
  br label %538, !llvm.loop !30

2148:                                             ; preds = %538
  %2149 = load i64, ptr %124, align 8, !tbaa !9
  %2150 = add nsw i64 %2149, 1
  store i64 %2150, ptr %124, align 8, !tbaa !9
  br label %513

2151:                                             ; preds = %513
  %2152 = load i64, ptr %83, align 8, !tbaa !9
  %2153 = add nsw i64 %2152, 1
  store i64 %2153, ptr %111, align 8, !tbaa !9
  %2154 = load i64, ptr %89, align 8, !tbaa !9
  %2155 = add nsw i64 %2154, 1
  store i64 %2155, ptr %119, align 8, !tbaa !9
  br label %2156

2156:                                             ; preds = %2151, %433, %354, %341
  br label %2157

2157:                                             ; preds = %2156
  %2158 = load i64, ptr %84, align 8, !tbaa !9
  %2159 = add nsw i64 %2158, 1
  store i64 %2159, ptr %84, align 8, !tbaa !9
  br label %305, !llvm.loop !31

2160:                                             ; preds = %305
  store i32 0, ptr %26, align 4
  store i32 1, ptr %152, align 4
  br label %2161

2161:                                             ; preds = %2160, %1870, %1655, %1402, %780, %522
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  %2162 = load i32, ptr %26, align 4
  ret i32 %2162
}

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

; Function Attrs: nounwind
declare double @log(double noundef) #4

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

declare i32 @f2c_csscal(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 "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 = distinct !{!16, !14}
!17 = !{!18, !12, i64 0}
!18 = !{!"", !12, i64 0, !12, i64 4}
!19 = !{!18, !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}


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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @clarrv_(ptr noundef %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readnone %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr nocapture noundef readonly %6, ptr nocapture noundef readonly %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr nocapture noundef readonly %16, ptr nocapture noundef readonly %17, ptr nocapture noundef readonly %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr nocapture noundef writeonly %24) local_unnamed_addr #0 {
  %26 = ptrtoint ptr %22 to i64
  %27 = ptrtoint ptr %13 to i64
  %28 = alloca i64, align 8
  %29 = alloca float, align 4
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca float, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca i64, align 8
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca float, align 4
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca float, align 4
  %54 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %54) #7
  %55 = getelementptr inbounds i8, ptr %3, i64 -4
  %56 = getelementptr inbounds i8, ptr %4, i64 -4
  %57 = getelementptr inbounds i8, ptr %6, i64 -8
  %58 = getelementptr inbounds i8, ptr %13, i64 -4
  %59 = getelementptr inbounds i8, ptr %14, i64 -4
  %60 = getelementptr inbounds i8, ptr %15, i64 -4
  %61 = getelementptr inbounds i8, ptr %16, i64 -8
  %62 = getelementptr inbounds i8, ptr %17, i64 -8
  %63 = getelementptr inbounds i8, ptr %18, i64 -4
  %64 = load i64, ptr %20, align 8, !tbaa !5
  %65 = xor i64 %64, -1
  %66 = getelementptr inbounds %struct.complex, ptr %19, i64 %65
  %67 = getelementptr inbounds i8, ptr %21, i64 -8
  %68 = getelementptr inbounds i8, ptr %22, i64 -4
  %69 = getelementptr inbounds i8, ptr %23, i64 -8
  %70 = load i64, ptr %0, align 8, !tbaa !5
  %71 = shl i64 %70, 1
  %72 = mul nsw i64 %70, 3
  %.not1026 = icmp slt i64 %70, 1
  br i1 %.not1026, label %._crit_edge1032, label %.lr.ph1031.preheader

.lr.ph1031.preheader:                             ; preds = %25
  %73 = mul i64 %70, 12
  %smax = tail call i64 @llvm.smax.i64(i64 %73, i64 1)
  %74 = shl nuw i64 %smax, 2
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %22, i8 0, i64 %74, i1 false), !tbaa !9
  %75 = mul i64 %70, 7
  %smax1197 = tail call i64 @llvm.smax.i64(i64 %75, i64 1)
  %76 = shl nuw i64 %smax1197, 3
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %23, i8 0, i64 %76, i1 false), !tbaa !5
  br label %._crit_edge1032

._crit_edge1032:                                  ; preds = %25, %.lr.ph1031.preheader
  %77 = load i64, ptr %8, align 8, !tbaa !5
  %78 = icmp sgt i64 %77, 1
  %79 = add nsw i64 %77, -1
  %spec.select = select i1 %78, i64 %79, i64 1
  %80 = load i64, ptr %7, align 8, !tbaa !5
  %81 = load i64, ptr %9, align 8, !tbaa !5
  %82 = icmp slt i64 %81, %80
  %83 = add nsw i64 %81, 1
  %.0749 = select i1 %82, i64 %83, i64 %80
  %reass.sub = sub i64 %.0749, %spec.select
  %84 = add i64 %reass.sub, 1
  store i64 %84, ptr %52, align 8, !tbaa !5
  %85 = mul nsw i64 %spec.select, %64
  %86 = getelementptr %struct.complex, ptr %66, i64 %85
  %87 = getelementptr i8, ptr %86, i64 8
  %88 = call i32 @claset_(ptr noundef nonnull @.str, ptr noundef nonnull %0, ptr noundef nonnull %52, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %87, ptr noundef nonnull %20) #7
  %89 = call double @slamch_(ptr noundef nonnull @.str.1) #7
  %90 = fptrunc double %89 to float
  %91 = fmul float %90, 2.000000e+00
  store float %91, ptr %42, align 4, !tbaa !9
  %92 = load i64, ptr %8, align 8, !tbaa !5
  %93 = icmp eq i64 %92, 1
  %.pre.pre = load i64, ptr %7, align 8, !tbaa !5
  br i1 %93, label %94, label %97

94:                                               ; preds = %._crit_edge1032
  %95 = load i64, ptr %9, align 8, !tbaa !5
  %96 = icmp eq i64 %95, %.pre.pre
  br i1 %96, label %99, label %97

97:                                               ; preds = %94, %._crit_edge1032
  %98 = fmul float %90, 4.000000e+00
  store float %98, ptr %11, align 4, !tbaa !9
  store float %98, ptr %12, align 4, !tbaa !9
  br label %99

99:                                               ; preds = %94, %97
  %100 = getelementptr inbounds i64, ptr %61, i64 %.pre.pre
  %101 = load i64, ptr %100, align 8, !tbaa !5
  %invariant.gep1150 = getelementptr i8, ptr %15, i64 -12
  %invariant.gep1152 = getelementptr i8, ptr %66, i64 -8
  %.not8631154 = icmp slt i64 %101, 1
  br i1 %.not8631154, label %.loopexit926, label %.lr.ph1163

.lr.ph1163:                                       ; preds = %99
  %102 = getelementptr i64, ptr %23, i64 %70
  %103 = getelementptr i64, ptr %69, i64 %70
  %104 = getelementptr i8, ptr %103, i64 16
  %105 = getelementptr float, ptr %68, i64 %70
  %106 = getelementptr float, ptr %68, i64 %71
  %107 = getelementptr float, ptr %22, i64 %71
  %invariant.gep1164 = getelementptr i8, ptr %107, i64 -4
  %.idx1231 = mul i64 %70, 20
  %108 = getelementptr i8, ptr %22, i64 %.idx1231
  %109 = getelementptr i64, ptr %23, i64 %72
  %110 = fpext float %90 to double
  %111 = getelementptr float, ptr %22, i64 %72
  %.idx921 = shl i64 %70, 4
  %112 = getelementptr i8, ptr %22, i64 %.idx921
  %invariant.gep1079 = getelementptr i8, ptr %112, i64 -4
  %113 = getelementptr float, ptr %68, i64 %72
  %114 = fmul float %90, 3.000000e+00
  %115 = fmul float %90, 4.000000e+00
  %116 = fpext float %115 to double
  %scevgep = getelementptr i8, ptr %19, i64 -16
  %scevgep1206 = getelementptr i8, ptr %19, i64 -8
  %scevgep1278 = getelementptr i8, ptr %22, i64 -8
  %scevgep1280 = getelementptr i8, ptr %22, i64 -4
  %scevgep1282 = getelementptr i8, ptr %14, i64 -8
  %scevgep1284 = getelementptr i8, ptr %14, i64 -4
  %scevgep1291 = getelementptr i8, ptr %19, i64 -4
  %scevgep1294 = getelementptr i8, ptr %19, i64 -4
  %117 = shl i64 %64, 3
  %scevgep1300 = getelementptr i8, ptr %19, i64 -8
  %scevgep1306 = getelementptr i8, ptr %19, i64 -8
  %scevgep1313 = getelementptr i8, ptr %19, i64 -8
  %scevgep1316 = getelementptr i8, ptr %19, i64 -20
  %scevgep1319 = getelementptr i8, ptr %19, i64 -8
  %118 = shl i64 %64, 3
  %scevgep1322 = getelementptr i8, ptr %19, i64 -20
  %scevgep1325 = getelementptr i8, ptr %19, i64 -4
  %scevgep1328 = getelementptr i8, ptr %19, i64 -16
  %scevgep1331 = getelementptr i8, ptr %19, i64 -4
  %scevgep1334 = getelementptr i8, ptr %19, i64 -16
  %119 = mul i64 %70, 12
  %scevgep1337 = getelementptr i8, ptr %22, i64 %119
  %120 = getelementptr i8, ptr %22, i64 %119
  %scevgep1338 = getelementptr i8, ptr %120, i64 -4
  %121 = getelementptr i8, ptr %22, i64 %.idx921
  %scevgep1340 = getelementptr i8, ptr %121, i64 -4
  %122 = sub i64 %27, %26
  %123 = shl i64 %70, 2
  %124 = getelementptr i8, ptr %22, i64 %123
  %scevgep1435 = getelementptr i8, ptr %124, i64 -4
  %scevgep1437 = getelementptr i8, ptr %22, i64 -4
  %125 = shl i64 %70, 3
  %126 = add i64 %125, -4
  %scevgep1439 = getelementptr i8, ptr %22, i64 %126
  %scevgep1441 = getelementptr i8, ptr %22, i64 %126
  %scevgep1443 = getelementptr i8, ptr %3, i64 -4
  %scevgep1445 = getelementptr i8, ptr %3, i64 -4
  %scevgep1447 = getelementptr i8, ptr %4, i64 -4
  %scevgep1449 = getelementptr i8, ptr %4, i64 -4
  %diff.check = icmp ult i64 %122, 32
  %broadcast.splatinsert = insertelement <4 x float> poison, float %114, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert1288 = insertelement <4 x double> poison, double %116, i64 0
  %broadcast.splat1289 = shufflevector <4 x double> %broadcast.splatinsert1288, <4 x double> poison, <4 x i32> zeroinitializer
  br label %127

127:                                              ; preds = %.lr.ph1163, %845
  %.07501161 = phi float [ undef, %.lr.ph1163 ], [ %.9, %845 ]
  %.07701159 = phi i64 [ 1, %.lr.ph1163 ], [ %.1771, %845 ]
  %.07751158 = phi i64 [ 1, %.lr.ph1163 ], [ %.1776, %845 ]
  %.07951157 = phi float [ undef, %.lr.ph1163 ], [ %.9804, %845 ]
  %.08171155 = phi i64 [ 1, %.lr.ph1163 ], [ %846, %845 ]
  %128 = getelementptr inbounds i64, ptr %57, i64 %.08171155
  %129 = load i64, ptr %128, align 8, !tbaa !5
  %130 = getelementptr inbounds float, ptr %56, i64 %129
  %131 = load float, ptr %130, align 4, !tbaa !9
  %132 = add i64 %.07701159, -1
  %133 = load i64, ptr %7, align 8, !tbaa !5
  %.not = icmp sgt i64 %.07701159, %133
  br i1 %.not, label %._crit_edge1036, label %.lr.ph1035

.lr.ph1035:                                       ; preds = %127, %137
  %.08061033 = phi i64 [ %138, %137 ], [ %132, %127 ]
  %134 = getelementptr i64, ptr %16, i64 %.08061033
  %135 = load i64, ptr %134, align 8, !tbaa !5
  %136 = icmp eq i64 %135, %.08171155
  br i1 %136, label %137, label %._crit_edge1036

137:                                              ; preds = %.lr.ph1035
  %138 = add i64 %.08061033, 1
  %exitcond.not = icmp eq i64 %138, %133
  br i1 %exitcond.not, label %._crit_edge1036, label %.lr.ph1035

._crit_edge1036:                                  ; preds = %137, %.lr.ph1035, %127
  %.0806.lcssa = phi i64 [ %132, %127 ], [ %.08061033, %.lr.ph1035 ], [ %133, %137 ]
  %139 = icmp slt i64 %.0806.lcssa, %.07701159
  br i1 %139, label %845, label %140

140:                                              ; preds = %._crit_edge1036
  %141 = load i64, ptr %8, align 8, !tbaa !5
  %142 = icmp slt i64 %.0806.lcssa, %141
  br i1 %142, label %146, label %143

143:                                              ; preds = %140
  %144 = load i64, ptr %9, align 8, !tbaa !5
  %145 = icmp sgt i64 %.07701159, %144
  br i1 %145, label %146, label %148

146:                                              ; preds = %143, %140
  %147 = add nuw nsw i64 %.0806.lcssa, 1
  br label %845

148:                                              ; preds = %143
  %.idx = shl i64 %.07751158, 3
  %149 = getelementptr i8, ptr %63, i64 %.idx
  %150 = getelementptr i8, ptr %149, i64 -4
  %151 = load float, ptr %150, align 4, !tbaa !9
  %152 = load float, ptr %149, align 4, !tbaa !9
  %.not865.not1039 = icmp slt i64 %.07751158, %129
  br i1 %.not865.not1039, label %.lr.ph1044.preheader, label %180

.lr.ph1044.preheader:                             ; preds = %148
  %153 = sub i64 %129, %.07751158
  %.neg = add i64 %.07751158, 1
  %xtraiter = and i64 %153, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph1044.prol.loopexit, label %.lr.ph1044.prol

.lr.ph1044.prol:                                  ; preds = %.lr.ph1044.preheader
  %.2820.prol = add nsw i64 %.07751158, 1
  %.idx900.prol = shl i64 %.2820.prol, 3
  %154 = getelementptr i8, ptr %63, i64 %.idx900.prol
  %155 = getelementptr i8, ptr %154, i64 -4
  %156 = load float, ptr %155, align 4, !tbaa !9
  %157 = fcmp ole float %156, %151
  %158 = select i1 %157, float %156, float %151
  %159 = load float, ptr %154, align 4, !tbaa !9
  %160 = fcmp oge float %159, %152
  %161 = select i1 %160, float %159, float %152
  br label %.lr.ph1044.prol.loopexit

.lr.ph1044.prol.loopexit:                         ; preds = %.lr.ph1044.prol, %.lr.ph1044.preheader
  %.lcssa1512.unr = phi float [ poison, %.lr.ph1044.preheader ], [ %158, %.lr.ph1044.prol ]
  %.lcssa1511.unr = phi float [ poison, %.lr.ph1044.preheader ], [ %159, %.lr.ph1044.prol ]
  %.lcssa.unr = phi float [ poison, %.lr.ph1044.preheader ], [ %161, %.lr.ph1044.prol ]
  %.2820.in1042.unr = phi i64 [ %.07751158, %.lr.ph1044.preheader ], [ %.2820.prol, %.lr.ph1044.prol ]
  %.08331041.unr = phi float [ %151, %.lr.ph1044.preheader ], [ %158, %.lr.ph1044.prol ]
  %.08341040.unr = phi float [ %152, %.lr.ph1044.preheader ], [ %161, %.lr.ph1044.prol ]
  %162 = icmp eq i64 %129, %.neg
  br i1 %162, label %._crit_edge1045, label %.lr.ph1044

.lr.ph1044:                                       ; preds = %.lr.ph1044.prol.loopexit, %.lr.ph1044
  %.2820.in1042 = phi i64 [ %.2820.1, %.lr.ph1044 ], [ %.2820.in1042.unr, %.lr.ph1044.prol.loopexit ]
  %.08331041 = phi float [ %176, %.lr.ph1044 ], [ %.08331041.unr, %.lr.ph1044.prol.loopexit ]
  %.08341040 = phi float [ %179, %.lr.ph1044 ], [ %.08341040.unr, %.lr.ph1044.prol.loopexit ]
  %.2820 = shl i64 %.2820.in1042, 3
  %163 = getelementptr i8, ptr %63, i64 %.2820
  %164 = getelementptr i8, ptr %163, i64 8
  %165 = getelementptr i8, ptr %163, i64 4
  %166 = load float, ptr %165, align 4, !tbaa !9
  %167 = fcmp ole float %166, %.08331041
  %168 = select i1 %167, float %166, float %.08331041
  %169 = load float, ptr %164, align 4, !tbaa !9
  %170 = fcmp oge float %169, %.08341040
  %171 = select i1 %170, float %169, float %.08341040
  %.2820.1 = add nsw i64 %.2820.in1042, 2
  %.idx900.1 = shl i64 %.2820.1, 3
  %172 = getelementptr i8, ptr %63, i64 %.idx900.1
  %173 = getelementptr i8, ptr %172, i64 -4
  %174 = load float, ptr %173, align 4, !tbaa !9
  %175 = fcmp ole float %174, %168
  %176 = select i1 %175, float %174, float %168
  %177 = load float, ptr %172, align 4, !tbaa !9
  %178 = fcmp oge float %177, %171
  %179 = select i1 %178, float %177, float %171
  %exitcond1198.not.1 = icmp eq i64 %.2820.1, %129
  br i1 %exitcond1198.not.1, label %._crit_edge1045, label %.lr.ph1044, !llvm.loop !11

._crit_edge1045:                                  ; preds = %.lr.ph1044, %.lr.ph1044.prol.loopexit
  %.lcssa1512 = phi float [ %.lcssa1512.unr, %.lr.ph1044.prol.loopexit ], [ %176, %.lr.ph1044 ]
  %.lcssa1511 = phi float [ %.lcssa1511.unr, %.lr.ph1044.prol.loopexit ], [ %177, %.lr.ph1044 ]
  %.lcssa = phi float [ %.lcssa.unr, %.lr.ph1044.prol.loopexit ], [ %179, %.lr.ph1044 ]
  store float %.lcssa1511, ptr %29, align 4, !tbaa !9
  br label %180

180:                                              ; preds = %._crit_edge1045, %148
  %.0834.lcssa = phi float [ %.lcssa, %._crit_edge1045 ], [ %152, %148 ]
  %.0833.lcssa = phi float [ %.lcssa1512, %._crit_edge1045 ], [ %151, %148 ]
  %181 = fsub float %.0834.lcssa, %.0833.lcssa
  store float %181, ptr %46, align 4, !tbaa !9
  %182 = add nsw i64 %.07751158, -1
  %reass.sub1172 = sub i64 %129, %.07751158
  %183 = add i64 %reass.sub1172, 1
  store i64 %183, ptr %34, align 8, !tbaa !5
  %reass.sub1173 = sub i64 %.0806.lcssa, %.07701159
  %184 = add i64 %reass.sub1173, 1
  store i64 %184, ptr %33, align 8, !tbaa !5
  %185 = icmp eq i64 %.07751158, %129
  br i1 %185, label %186, label %197

186:                                              ; preds = %180
  %187 = mul nsw i64 %.07701159, %64
  %188 = getelementptr %struct.complex, ptr %66, i64 %.07751158
  %189 = getelementptr %struct.complex, ptr %188, i64 %187
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %189, align 4, !tbaa !9
  %.idx898 = shl i64 %.07701159, 4
  %190 = getelementptr i8, ptr %67, i64 %.idx898
  %191 = getelementptr i8, ptr %190, i64 -8
  store i64 %.07751158, ptr %191, align 8, !tbaa !5
  store i64 %.07751158, ptr %190, align 8, !tbaa !5
  %192 = getelementptr inbounds float, ptr %58, i64 %.07701159
  %193 = load float, ptr %192, align 4, !tbaa !9
  %194 = fadd float %131, %193
  store float %194, ptr %192, align 4, !tbaa !9
  %195 = getelementptr inbounds float, ptr %68, i64 %.07701159
  store float %194, ptr %195, align 4, !tbaa !9
  %196 = add nuw nsw i64 %.07701159, 1
  br label %845

197:                                              ; preds = %180
  %198 = getelementptr inbounds float, ptr %58, i64 %.07701159
  %199 = getelementptr inbounds float, ptr %68, i64 %.07701159
  %200 = call i32 @f2c_scopy(ptr noundef nonnull %33, ptr noundef nonnull %198, ptr noundef nonnull @c__1, ptr noundef nonnull %199, ptr noundef nonnull @c__1) #7
  %201 = load i64, ptr %33, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %198, i64 -4
  %.not8661049 = icmp slt i64 %201, 1
  br i1 %.not8661049, label %._crit_edge1053.thread, label %.lr.ph1052.preheader

.lr.ph1052.preheader:                             ; preds = %197
  %min.iters.check1488 = icmp ult i64 %201, 8
  br i1 %min.iters.check1488, label %.lr.ph1052.preheader1510, label %vector.ph1489

.lr.ph1052.preheader1510:                         ; preds = %middle.block1486, %.lr.ph1052.preheader
  %.38211050.ph = phi i64 [ 1, %.lr.ph1052.preheader ], [ %ind.end1492, %middle.block1486 ]
  br label %.lr.ph1052

vector.ph1489:                                    ; preds = %.lr.ph1052.preheader
  %n.vec1491 = and i64 %201, 9223372036854775800
  %ind.end1492 = or disjoint i64 %n.vec1491, 1
  %broadcast.splatinsert1499 = insertelement <4 x float> poison, float %131, i64 0
  %broadcast.splat1500 = shufflevector <4 x float> %broadcast.splatinsert1499, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1494

vector.body1494:                                  ; preds = %vector.body1494, %vector.ph1489
  %index1495 = phi i64 [ 0, %vector.ph1489 ], [ %index.next1501, %vector.body1494 ]
  %202 = getelementptr float, ptr %198, i64 %index1495
  %203 = getelementptr i8, ptr %202, i64 16
  %wide.load1497 = load <4 x float>, ptr %202, align 4, !tbaa !9
  %wide.load1498 = load <4 x float>, ptr %203, align 4, !tbaa !9
  %204 = fadd <4 x float> %broadcast.splat1500, %wide.load1497
  %205 = fadd <4 x float> %broadcast.splat1500, %wide.load1498
  store <4 x float> %204, ptr %202, align 4, !tbaa !9
  store <4 x float> %205, ptr %203, align 4, !tbaa !9
  %index.next1501 = add nuw i64 %index1495, 8
  %206 = icmp eq i64 %index.next1501, %n.vec1491
  br i1 %206, label %middle.block1486, label %vector.body1494, !llvm.loop !13

middle.block1486:                                 ; preds = %vector.body1494
  %cmp.n1502 = icmp eq i64 %201, %n.vec1491
  br i1 %cmp.n1502, label %._crit_edge1053, label %.lr.ph1052.preheader1510

._crit_edge1053.thread:                           ; preds = %197
  store i64 1, ptr %102, align 8, !tbaa !5
  store i64 %201, ptr %104, align 8, !tbaa !5
  br label %._crit_edge1145

.lr.ph1052:                                       ; preds = %.lr.ph1052.preheader1510, %.lr.ph1052
  %.38211050 = phi i64 [ %209, %.lr.ph1052 ], [ %.38211050.ph, %.lr.ph1052.preheader1510 ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %.38211050
  %207 = load float, ptr %gep, align 4, !tbaa !9
  %208 = fadd float %131, %207
  store float %208, ptr %gep, align 4, !tbaa !9
  %209 = add nuw i64 %.38211050, 1
  %exitcond1199.not = icmp eq i64 %.38211050, %201
  br i1 %exitcond1199.not, label %._crit_edge1053, label %.lr.ph1052, !llvm.loop !16

._crit_edge1053:                                  ; preds = %.lr.ph1052, %middle.block1486
  store i64 1, ptr %102, align 8, !tbaa !5
  store i64 %201, ptr %104, align 8, !tbaa !5
  %210 = getelementptr %struct.complex, ptr %66, i64 %129
  %211 = getelementptr inbounds float, ptr %55, i64 %129
  %212 = getelementptr %struct.complex, ptr %66, i64 %.07751158
  %213 = getelementptr i64, ptr %62, i64 %132
  %214 = getelementptr inbounds i64, ptr %62, i64 %.07701159
  %215 = getelementptr inbounds float, ptr %55, i64 %.07751158
  %gep1165 = getelementptr float, ptr %invariant.gep1164, i64 %.07751158
  %216 = getelementptr float, ptr %60, i64 %.07701159
  %217 = getelementptr inbounds float, ptr %59, i64 %.07701159
  %218 = getelementptr inbounds float, ptr %56, i64 %.07751158
  %219 = getelementptr float, ptr %105, i64 %.07751158
  %gep1151 = getelementptr float, ptr %invariant.gep1150, i64 %.07701159
  %invariant.gep1113 = getelementptr i8, ptr %216, i64 -4
  %gep1153 = getelementptr %struct.complex, ptr %invariant.gep1152, i64 %.07751158
  %220 = shl i64 %.07751158, 3
  %scevgep1292 = getelementptr i8, ptr %scevgep1291, i64 %220
  %scevgep1295 = getelementptr i8, ptr %scevgep1294, i64 %220
  %scevgep1301 = getelementptr i8, ptr %scevgep1300, i64 %220
  %scevgep1307 = getelementptr i8, ptr %scevgep1306, i64 %220
  %scevgep1314 = getelementptr i8, ptr %scevgep1313, i64 %220
  %scevgep1317 = getelementptr i8, ptr %scevgep1316, i64 %220
  %scevgep1320 = getelementptr i8, ptr %scevgep1319, i64 %220
  %scevgep1323 = getelementptr i8, ptr %scevgep1322, i64 %220
  %scevgep1326 = getelementptr i8, ptr %scevgep1325, i64 %220
  %scevgep1329 = getelementptr i8, ptr %scevgep1328, i64 %220
  %scevgep1332 = getelementptr i8, ptr %scevgep1331, i64 %220
  %scevgep1335 = getelementptr i8, ptr %scevgep1334, i64 %220
  %221 = shl i64 %.07751158, 2
  %scevgep1436 = getelementptr i8, ptr %scevgep1435, i64 %221
  %222 = add i64 %70, %129
  %223 = shl i64 %222, 2
  %scevgep1438 = getelementptr i8, ptr %scevgep1437, i64 %223
  %scevgep1440 = getelementptr i8, ptr %scevgep1439, i64 %221
  %224 = shl i64 %129, 2
  %scevgep1442 = getelementptr i8, ptr %scevgep1441, i64 %224
  %scevgep1444 = getelementptr i8, ptr %scevgep1443, i64 %221
  %scevgep1446 = getelementptr i8, ptr %scevgep1445, i64 %224
  %scevgep1448 = getelementptr i8, ptr %scevgep1447, i64 %221
  %scevgep1450 = getelementptr i8, ptr %scevgep1449, i64 %224
  %225 = sub i64 %129, %.07751158
  %min.iters.check1472 = icmp ult i64 %225, 12
  %bound01451 = icmp ult ptr %scevgep1436, %scevgep1442
  %bound11452 = icmp ult ptr %scevgep1440, %scevgep1438
  %found.conflict1453 = and i1 %bound01451, %bound11452
  %bound01454 = icmp ult ptr %scevgep1436, %scevgep1446
  %bound11455 = icmp ult ptr %scevgep1444, %scevgep1438
  %found.conflict1456 = and i1 %bound01454, %bound11455
  %conflict.rdx1457 = or i1 %found.conflict1453, %found.conflict1456
  %bound01458 = icmp ult ptr %scevgep1436, %scevgep1450
  %bound11459 = icmp ult ptr %scevgep1448, %scevgep1438
  %found.conflict1460 = and i1 %bound01458, %bound11459
  %conflict.rdx1461 = or i1 %conflict.rdx1457, %found.conflict1460
  %bound01462 = icmp ult ptr %scevgep1440, %scevgep1446
  %bound11463 = icmp ult ptr %scevgep1444, %scevgep1442
  %found.conflict1464 = and i1 %bound01462, %bound11463
  %conflict.rdx1465 = or i1 %conflict.rdx1461, %found.conflict1464
  %bound01466 = icmp ult ptr %scevgep1440, %scevgep1450
  %bound11467 = icmp ult ptr %scevgep1448, %scevgep1442
  %found.conflict1468 = and i1 %bound01466, %bound11467
  %conflict.rdx1469 = or i1 %conflict.rdx1465, %found.conflict1468
  %n.vec1475 = and i64 %225, -4
  %ind.end1476 = add i64 %.07751158, %n.vec1475
  %cmp.n1485 = icmp eq i64 %225, %n.vec1475
  br label %226

226:                                              ; preds = %._crit_edge1053, %._crit_edge1126
  %227 = phi i64 [ %201, %._crit_edge1053 ], [ %841, %._crit_edge1126 ]
  %.11142 = phi float [ %.07501161, %._crit_edge1053 ], [ %.2.lcssa, %._crit_edge1126 ]
  %.07531141 = phi i64 [ 1, %._crit_edge1053 ], [ %231, %._crit_edge1126 ]
  %.07601140 = phi i64 [ 0, %._crit_edge1053 ], [ %842, %._crit_edge1126 ]
  %.07781138 = phi i64 [ 1, %._crit_edge1053 ], [ %.1779.lcssa, %._crit_edge1126 ]
  %.07871137 = phi float [ %131, %._crit_edge1053 ], [ %.1788.lcssa, %._crit_edge1126 ]
  %.07901136 = phi i64 [ 0, %._crit_edge1053 ], [ %.1791.lcssa, %._crit_edge1126 ]
  %.17961135 = phi float [ %.07951157, %._crit_edge1053 ], [ %.2797.lcssa, %._crit_edge1126 ]
  %228 = load i64, ptr %7, align 8, !tbaa !5
  %229 = icmp sgt i64 %.07601140, %228
  br i1 %229, label %.loopexit926.sink.split, label %230

230:                                              ; preds = %226
  %231 = sub nuw nsw i64 1, %.07531141
  %.not8671115 = icmp slt i64 %.07781138, 1
  br i1 %.not8671115, label %._crit_edge1126, label %.lr.ph1125

.lr.ph1125:                                       ; preds = %230
  %232 = icmp eq i64 %.07531141, 1
  %.902 = select i1 %232, i64 %71, i64 %70
  %. = select i1 %232, i64 %70, i64 %71
  %233 = getelementptr i64, ptr %69, i64 %.
  %.not868 = icmp eq i64 %.07601140, 0
  %234 = getelementptr i64, ptr %69, i64 %.902
  br label %235

235:                                              ; preds = %.lr.ph1125, %._crit_edge1104
  %.21123 = phi float [ %.11142, %.lr.ph1125 ], [ %.3.lcssa, %._crit_edge1104 ]
  %.17791121 = phi i64 [ 0, %.lr.ph1125 ], [ %.2780.lcssa, %._crit_edge1104 ]
  %.17881120 = phi float [ %.07871137, %.lr.ph1125 ], [ %.2789, %._crit_edge1104 ]
  %.17911119 = phi i64 [ %.07901136, %.lr.ph1125 ], [ %.2792.lcssa, %._crit_edge1104 ]
  %.27971118 = phi float [ %.17961135, %.lr.ph1125 ], [ %.3798.lcssa, %._crit_edge1104 ]
  %.48221116 = phi i64 [ 1, %.lr.ph1125 ], [ %840, %._crit_edge1104 ]
  %.idx919 = shl i64 %.48221116, 4
  %236 = getelementptr i8, ptr %233, i64 %.idx919
  %237 = getelementptr i8, ptr %236, i64 -8
  %238 = load i64, ptr %237, align 8, !tbaa !5
  %239 = load i64, ptr %236, align 8, !tbaa !5
  br i1 %.not868, label %290, label %240

240:                                              ; preds = %235
  %241 = load i64, ptr %8, align 8, !tbaa !5
  %242 = icmp eq i64 %241, 1
  br i1 %242, label %243, label %249

243:                                              ; preds = %240
  %244 = load i64, ptr %9, align 8, !tbaa !5
  %245 = load i64, ptr %7, align 8, !tbaa !5
  %246 = icmp eq i64 %244, %245
  br i1 %246, label %247, label %249

247:                                              ; preds = %243
  %248 = add i64 %132, %238
  br label %256

249:                                              ; preds = %243, %240
  %250 = add nsw i64 %238, %.07701159
  %.not869 = icmp sgt i64 %250, %241
  br i1 %.not869, label %253, label %251

251:                                              ; preds = %249
  %252 = add nsw i64 %241, -1
  br label %256

253:                                              ; preds = %249
  %254 = add nsw i64 %250, -1
  %255 = load i64, ptr %9, align 8, !tbaa !5
  %.903 = call i64 @llvm.smin.i64(i64 %254, i64 %255)
  br label %256

256:                                              ; preds = %253, %251, %247
  %.0823 = phi i64 [ %248, %247 ], [ %252, %251 ], [ %.903, %253 ]
  %257 = load i64, ptr %34, align 8, !tbaa !5
  %.not870.not1054 = icmp sgt i64 %257, 1
  %258 = mul nsw i64 %.0823, %64
  %259 = add nsw i64 %.0823, 1
  %260 = mul nsw i64 %259, %64
  br i1 %.not870.not1054, label %.lr.ph1057, label %._crit_edge1219

.lr.ph1057:                                       ; preds = %256
  %invariant.gep1258 = getelementptr %struct.complex, ptr %66, i64 %258
  %261 = add nsw i64 %257, -1
  %xtraiter1527 = and i64 %261, 1
  %262 = icmp eq i64 %257, 2
  br i1 %262, label %._crit_edge1058.unr-lcssa, label %.lr.ph1057.new

.lr.ph1057.new:                                   ; preds = %.lr.ph1057
  %unroll_iter = and i64 %261, -2
  %invariant.gep1558 = getelementptr %struct.complex, ptr %66, i64 %260
  br label %263

263:                                              ; preds = %263, %.lr.ph1057.new
  %.08271055 = phi i64 [ 1, %.lr.ph1057.new ], [ %276, %263 ]
  %niter = phi i64 [ 0, %.lr.ph1057.new ], [ %niter.next.1, %263 ]
  %264 = add i64 %182, %.08271055
  %gep1259 = getelementptr %struct.complex, ptr %invariant.gep1258, i64 %264
  %265 = load float, ptr %gep1259, align 4, !tbaa !17
  %266 = getelementptr inbounds float, ptr %55, i64 %264
  store float %265, ptr %266, align 4, !tbaa !9
  %gep1559 = getelementptr %struct.complex, ptr %invariant.gep1558, i64 %264
  %267 = load float, ptr %gep1559, align 4, !tbaa !17
  %268 = getelementptr inbounds float, ptr %56, i64 %264
  store float %267, ptr %268, align 4, !tbaa !9
  %269 = add i64 %.07751158, %.08271055
  %gep1259.1 = getelementptr %struct.complex, ptr %invariant.gep1258, i64 %269
  %270 = load float, ptr %gep1259.1, align 4, !tbaa !17
  %271 = getelementptr inbounds float, ptr %55, i64 %269
  store float %270, ptr %271, align 4, !tbaa !9
  %272 = add nsw i64 %269, %260
  %273 = getelementptr inbounds %struct.complex, ptr %66, i64 %272
  %274 = load float, ptr %273, align 4, !tbaa !17
  %275 = getelementptr inbounds float, ptr %56, i64 %269
  store float %274, ptr %275, align 4, !tbaa !9
  %276 = add nuw nsw i64 %.08271055, 2
  %niter.next.1 = add nuw i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge1058.unr-lcssa, label %263, !llvm.loop !19

._crit_edge1058.unr-lcssa:                        ; preds = %263, %.lr.ph1057
  %.lcssa1513.ph = phi i64 [ poison, %.lr.ph1057 ], [ %272, %263 ]
  %.08271055.unr = phi i64 [ 1, %.lr.ph1057 ], [ %276, %263 ]
  %lcmp.mod1528.not = icmp eq i64 %xtraiter1527, 0
  br i1 %lcmp.mod1528.not, label %._crit_edge1058, label %._crit_edge1058.epilog-lcssa

._crit_edge1058.epilog-lcssa:                     ; preds = %._crit_edge1058.unr-lcssa
  %277 = add i64 %182, %.08271055.unr
  %gep1259.epil = getelementptr %struct.complex, ptr %invariant.gep1258, i64 %277
  %278 = load float, ptr %gep1259.epil, align 4, !tbaa !17
  %279 = getelementptr inbounds float, ptr %55, i64 %277
  store float %278, ptr %279, align 4, !tbaa !9
  %280 = add nsw i64 %277, %260
  %281 = getelementptr inbounds %struct.complex, ptr %66, i64 %280
  %282 = load float, ptr %281, align 4, !tbaa !17
  %283 = getelementptr inbounds float, ptr %56, i64 %277
  store float %282, ptr %283, align 4, !tbaa !9
  br label %._crit_edge1058

._crit_edge1058:                                  ; preds = %._crit_edge1058.unr-lcssa, %._crit_edge1058.epilog-lcssa
  %.lcssa1513 = phi i64 [ %.lcssa1513.ph, %._crit_edge1058.unr-lcssa ], [ %280, %._crit_edge1058.epilog-lcssa ]
  store i64 %.lcssa1513, ptr %28, align 8, !tbaa !5
  br label %._crit_edge1219

._crit_edge1219:                                  ; preds = %256, %._crit_edge1058
  %284 = getelementptr %struct.complex, ptr %210, i64 %258
  %285 = load float, ptr %284, align 4, !tbaa !17
  store float %285, ptr %211, align 4, !tbaa !9
  %286 = getelementptr %struct.complex, ptr %210, i64 %260
  %287 = load float, ptr %286, align 4, !tbaa !17
  %288 = getelementptr %struct.complex, ptr %212, i64 %258
  %289 = call i32 @claset_(ptr noundef nonnull @.str, ptr noundef nonnull %34, ptr noundef nonnull @c__2, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %288, ptr noundef nonnull %20) #7
  br label %290

290:                                              ; preds = %._crit_edge1219, %235
  %.2789 = phi float [ %287, %._crit_edge1219 ], [ %.17881120, %235 ]
  br i1 %.not865.not1039, label %.lr.ph1063.preheader, label %._crit_edge1064

.lr.ph1063.preheader:                             ; preds = %290
  %brmerge = select i1 %min.iters.check1472, i1 true, i1 %conflict.rdx1469
  br i1 %brmerge, label %.lr.ph1063.preheader1507, label %vector.body1478

vector.body1478:                                  ; preds = %.lr.ph1063.preheader, %vector.body1478
  %index1479 = phi i64 [ %index.next1484, %vector.body1478 ], [ 0, %.lr.ph1063.preheader ]
  %offset.idx1480 = add i64 %.07751158, %index1479
  %291 = getelementptr inbounds float, ptr %55, i64 %offset.idx1480
  %wide.load1481 = load <4 x float>, ptr %291, align 4, !tbaa !9, !alias.scope !20
  %292 = getelementptr inbounds float, ptr %56, i64 %offset.idx1480
  %wide.load1482 = load <4 x float>, ptr %292, align 4, !tbaa !9, !alias.scope !23
  %293 = fmul <4 x float> %wide.load1481, %wide.load1482
  %294 = getelementptr float, ptr %105, i64 %offset.idx1480
  store <4 x float> %293, ptr %294, align 4, !tbaa !9, !alias.scope !25, !noalias !27
  %295 = fmul <4 x float> %293, %wide.load1482
  %296 = getelementptr float, ptr %106, i64 %offset.idx1480
  store <4 x float> %295, ptr %296, align 4, !tbaa !9, !alias.scope !29, !noalias !30
  %index.next1484 = add nuw i64 %index1479, 4
  %297 = icmp eq i64 %index.next1484, %n.vec1475
  br i1 %297, label %middle.block1470, label %vector.body1478, !llvm.loop !31

middle.block1470:                                 ; preds = %vector.body1478
  br i1 %cmp.n1485, label %._crit_edge1064, label %.lr.ph1063.preheader1507

.lr.ph1063.preheader1507:                         ; preds = %.lr.ph1063.preheader, %middle.block1470
  %.18241061.ph = phi i64 [ %.07751158, %.lr.ph1063.preheader ], [ %ind.end1476, %middle.block1470 ]
  %298 = sub i64 %129, %.18241061.ph
  %.neg1537 = add i64 %.18241061.ph, 1
  %xtraiter1530 = and i64 %298, 1
  %lcmp.mod1531.not = icmp eq i64 %xtraiter1530, 0
  br i1 %lcmp.mod1531.not, label %.lr.ph1063.prol.loopexit, label %.lr.ph1063.prol

.lr.ph1063.prol:                                  ; preds = %.lr.ph1063.preheader1507
  %299 = getelementptr inbounds float, ptr %55, i64 %.18241061.ph
  %300 = load float, ptr %299, align 4, !tbaa !9
  %301 = getelementptr inbounds float, ptr %56, i64 %.18241061.ph
  %302 = load float, ptr %301, align 4, !tbaa !9
  %303 = fmul float %300, %302
  %304 = getelementptr float, ptr %105, i64 %.18241061.ph
  store float %303, ptr %304, align 4, !tbaa !9
  %305 = load float, ptr %301, align 4, !tbaa !9
  %306 = fmul float %303, %305
  %307 = getelementptr float, ptr %106, i64 %.18241061.ph
  store float %306, ptr %307, align 4, !tbaa !9
  %308 = add nsw i64 %.18241061.ph, 1
  br label %.lr.ph1063.prol.loopexit

.lr.ph1063.prol.loopexit:                         ; preds = %.lr.ph1063.prol, %.lr.ph1063.preheader1507
  %.18241061.unr = phi i64 [ %.18241061.ph, %.lr.ph1063.preheader1507 ], [ %308, %.lr.ph1063.prol ]
  %309 = icmp eq i64 %129, %.neg1537
  br i1 %309, label %._crit_edge1064, label %.lr.ph1063

.lr.ph1063:                                       ; preds = %.lr.ph1063.prol.loopexit, %.lr.ph1063
  %.18241061 = phi i64 [ %329, %.lr.ph1063 ], [ %.18241061.unr, %.lr.ph1063.prol.loopexit ]
  %310 = getelementptr inbounds float, ptr %55, i64 %.18241061
  %311 = load float, ptr %310, align 4, !tbaa !9
  %312 = getelementptr inbounds float, ptr %56, i64 %.18241061
  %313 = load float, ptr %312, align 4, !tbaa !9
  %314 = fmul float %311, %313
  %315 = getelementptr float, ptr %105, i64 %.18241061
  store float %314, ptr %315, align 4, !tbaa !9
  %316 = load float, ptr %312, align 4, !tbaa !9
  %317 = fmul float %314, %316
  %318 = getelementptr float, ptr %106, i64 %.18241061
  store float %317, ptr %318, align 4, !tbaa !9
  %319 = add nsw i64 %.18241061, 1
  %320 = getelementptr float, ptr %3, i64 %.18241061
  %321 = load float, ptr %320, align 4, !tbaa !9
  %322 = getelementptr float, ptr %4, i64 %.18241061
  %323 = load float, ptr %322, align 4, !tbaa !9
  %324 = fmul float %321, %323
  %325 = getelementptr float, ptr %105, i64 %319
  store float %324, ptr %325, align 4, !tbaa !9
  %326 = load float, ptr %322, align 4, !tbaa !9
  %327 = fmul float %324, %326
  %328 = getelementptr float, ptr %106, i64 %319
  store float %327, ptr %328, align 4, !tbaa !9
  %329 = add nsw i64 %.18241061, 2
  %exitcond1201.not.1 = icmp eq i64 %329, %129
  br i1 %exitcond1201.not.1, label %._crit_edge1064, label %.lr.ph1063, !llvm.loop !32

._crit_edge1064:                                  ; preds = %.lr.ph1063.prol.loopexit, %.lr.ph1063, %middle.block1470, %290
  br i1 %.not868, label %.loopexit925, label %330

330:                                              ; preds = %._crit_edge1064
  %331 = getelementptr i64, ptr %213, i64 %238
  %332 = load i64, ptr %331, align 8, !tbaa !5
  store i64 %332, ptr %31, align 8, !tbaa !5
  %333 = getelementptr i64, ptr %213, i64 %239
  %334 = load i64, ptr %333, align 8, !tbaa !5
  store i64 %334, ptr %32, align 8, !tbaa !5
  %335 = load i64, ptr %214, align 8, !tbaa !5
  %336 = add nsw i64 %335, -1
  store i64 %336, ptr %48, align 8, !tbaa !5
  %337 = call i32 @slarrb_(ptr noundef nonnull %34, ptr noundef nonnull %215, ptr noundef %gep1165, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %48, ptr noundef nonnull %199, ptr noundef nonnull %216, ptr noundef nonnull %217, ptr noundef %108, ptr noundef %109, ptr noundef %5, ptr noundef nonnull %46, ptr noundef nonnull %34, ptr noundef nonnull %40) #7
  %338 = load i64, ptr %40, align 8, !tbaa !5
  %.not872 = icmp eq i64 %338, 0
  br i1 %.not872, label %339, label %.loopexit926.sink.split

339:                                              ; preds = %330
  %340 = icmp sgt i64 %238, 1
  br i1 %340, label %341, label %360

341:                                              ; preds = %339
  %342 = add nuw nsw i64 %238, %.07701159
  %343 = add nsw i64 %342, -2
  %344 = getelementptr inbounds float, ptr %60, i64 %343
  %345 = load float, ptr %344, align 4, !tbaa !9
  store float %345, ptr %29, align 4, !tbaa !9
  %346 = add nsw i64 %342, -1
  %347 = getelementptr inbounds float, ptr %58, i64 %346
  %348 = load float, ptr %347, align 4, !tbaa !9
  %349 = getelementptr inbounds float, ptr %59, i64 %346
  %350 = load float, ptr %349, align 4, !tbaa !9
  %351 = fsub float %348, %350
  %352 = getelementptr inbounds float, ptr %58, i64 %343
  %353 = load float, ptr %352, align 4, !tbaa !9
  %354 = fsub float %351, %353
  %355 = getelementptr inbounds float, ptr %59, i64 %343
  %356 = load float, ptr %355, align 4, !tbaa !9
  %357 = fsub float %354, %356
  %358 = fcmp oge float %345, %357
  %359 = select i1 %358, float %345, float %357
  store float %359, ptr %344, align 4, !tbaa !9
  br label %360

360:                                              ; preds = %341, %339
  %361 = add nsw i64 %239, %.07701159
  %.not873 = icmp sgt i64 %361, %.0806.lcssa
  br i1 %.not873, label %379, label %362

362:                                              ; preds = %360
  %363 = add nsw i64 %361, -1
  %364 = getelementptr inbounds float, ptr %60, i64 %363
  %365 = load float, ptr %364, align 4, !tbaa !9
  store float %365, ptr %29, align 4, !tbaa !9
  %366 = getelementptr inbounds float, ptr %58, i64 %361
  %367 = load float, ptr %366, align 4, !tbaa !9
  %368 = getelementptr inbounds float, ptr %59, i64 %361
  %369 = load float, ptr %368, align 4, !tbaa !9
  %370 = fsub float %367, %369
  %371 = getelementptr inbounds float, ptr %58, i64 %363
  %372 = load float, ptr %371, align 4, !tbaa !9
  %373 = fsub float %370, %372
  %374 = getelementptr inbounds float, ptr %59, i64 %363
  %375 = load float, ptr %374, align 4, !tbaa !9
  %376 = fsub float %373, %375
  %377 = fcmp oge float %365, %376
  %378 = select i1 %377, float %365, float %376
  store float %378, ptr %364, align 4, !tbaa !9
  br label %379

379:                                              ; preds = %362, %360
  %.not8741065 = icmp sgt i64 %238, %239
  br i1 %.not8741065, label %.loopexit925, label %.lr.ph1068.preheader

.lr.ph1068.preheader:                             ; preds = %379
  %380 = add i64 %239, 1
  %381 = sub i64 %380, %238
  %min.iters.check1419 = icmp ult i64 %381, 8
  %or.cond1503 = or i1 %min.iters.check1419, %diff.check
  br i1 %or.cond1503, label %.lr.ph1068.preheader1506, label %vector.ph1420

vector.ph1420:                                    ; preds = %.lr.ph1068.preheader
  %n.vec1422 = and i64 %381, -8
  %ind.end1423 = add i64 %238, %n.vec1422
  %broadcast.splatinsert1430 = insertelement <4 x float> poison, float %.2789, i64 0
  %broadcast.splat1431 = shufflevector <4 x float> %broadcast.splatinsert1430, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1425

vector.body1425:                                  ; preds = %vector.body1425, %vector.ph1420
  %index1426 = phi i64 [ 0, %vector.ph1420 ], [ %index.next1432, %vector.body1425 ]
  %offset.idx1427 = add i64 %238, %index1426
  %382 = add i64 %132, %offset.idx1427
  %383 = getelementptr inbounds float, ptr %68, i64 %382
  %384 = getelementptr inbounds i8, ptr %383, i64 16
  %wide.load1428 = load <4 x float>, ptr %383, align 4, !tbaa !9
  %wide.load1429 = load <4 x float>, ptr %384, align 4, !tbaa !9
  %385 = fadd <4 x float> %broadcast.splat1431, %wide.load1428
  %386 = fadd <4 x float> %broadcast.splat1431, %wide.load1429
  %387 = getelementptr inbounds float, ptr %58, i64 %382
  %388 = getelementptr inbounds i8, ptr %387, i64 16
  store <4 x float> %385, ptr %387, align 4, !tbaa !9
  store <4 x float> %386, ptr %388, align 4, !tbaa !9
  %index.next1432 = add nuw i64 %index1426, 8
  %389 = icmp eq i64 %index.next1432, %n.vec1422
  br i1 %389, label %middle.block1417, label %vector.body1425, !llvm.loop !33

middle.block1417:                                 ; preds = %vector.body1425
  %cmp.n1433 = icmp eq i64 %381, %n.vec1422
  br i1 %cmp.n1433, label %.loopexit925, label %.lr.ph1068.preheader1506

.lr.ph1068.preheader1506:                         ; preds = %middle.block1417, %.lr.ph1068.preheader
  %.28251066.ph = phi i64 [ %238, %.lr.ph1068.preheader ], [ %ind.end1423, %middle.block1417 ]
  %390 = add i64 %239, 1
  %391 = sub i64 %390, %.28251066.ph
  %392 = sub i64 %239, %.28251066.ph
  %xtraiter1532 = and i64 %391, 3
  %lcmp.mod1533.not = icmp eq i64 %xtraiter1532, 0
  br i1 %lcmp.mod1533.not, label %.lr.ph1068.prol.loopexit, label %.lr.ph1068.prol

.lr.ph1068.prol:                                  ; preds = %.lr.ph1068.preheader1506, %.lr.ph1068.prol
  %.28251066.prol = phi i64 [ %398, %.lr.ph1068.prol ], [ %.28251066.ph, %.lr.ph1068.preheader1506 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1068.prol ], [ 0, %.lr.ph1068.preheader1506 ]
  %393 = add i64 %132, %.28251066.prol
  %394 = getelementptr inbounds float, ptr %68, i64 %393
  %395 = load float, ptr %394, align 4, !tbaa !9
  %396 = fadd float %.2789, %395
  %397 = getelementptr inbounds float, ptr %58, i64 %393
  store float %396, ptr %397, align 4, !tbaa !9
  %398 = add i64 %.28251066.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter1532
  br i1 %prol.iter.cmp.not, label %.lr.ph1068.prol.loopexit, label %.lr.ph1068.prol, !llvm.loop !34

.lr.ph1068.prol.loopexit:                         ; preds = %.lr.ph1068.prol, %.lr.ph1068.preheader1506
  %.28251066.unr = phi i64 [ %.28251066.ph, %.lr.ph1068.preheader1506 ], [ %398, %.lr.ph1068.prol ]
  %399 = icmp ult i64 %392, 3
  br i1 %399, label %.loopexit925, label %.lr.ph1068

.lr.ph1068:                                       ; preds = %.lr.ph1068.prol.loopexit, %.lr.ph1068
  %.28251066 = phi i64 [ %422, %.lr.ph1068 ], [ %.28251066.unr, %.lr.ph1068.prol.loopexit ]
  %400 = add i64 %132, %.28251066
  %401 = getelementptr inbounds float, ptr %68, i64 %400
  %402 = load float, ptr %401, align 4, !tbaa !9
  %403 = fadd float %.2789, %402
  %404 = getelementptr inbounds float, ptr %58, i64 %400
  store float %403, ptr %404, align 4, !tbaa !9
  %405 = add i64 %.07701159, %.28251066
  %406 = getelementptr inbounds float, ptr %68, i64 %405
  %407 = load float, ptr %406, align 4, !tbaa !9
  %408 = fadd float %.2789, %407
  %409 = getelementptr inbounds float, ptr %58, i64 %405
  store float %408, ptr %409, align 4, !tbaa !9
  %410 = add i64 %.28251066, 2
  %411 = add i64 %132, %410
  %412 = getelementptr inbounds float, ptr %68, i64 %411
  %413 = load float, ptr %412, align 4, !tbaa !9
  %414 = fadd float %.2789, %413
  %415 = getelementptr inbounds float, ptr %58, i64 %411
  store float %414, ptr %415, align 4, !tbaa !9
  %416 = add i64 %.28251066, 3
  %417 = add i64 %132, %416
  %418 = getelementptr inbounds float, ptr %68, i64 %417
  %419 = load float, ptr %418, align 4, !tbaa !9
  %420 = fadd float %.2789, %419
  %421 = getelementptr inbounds float, ptr %58, i64 %417
  store float %420, ptr %421, align 4, !tbaa !9
  %422 = add i64 %.28251066, 4
  %exitcond1202.not.3 = icmp eq i64 %416, %239
  br i1 %exitcond1202.not.3, label %.loopexit925, label %.lr.ph1068, !llvm.loop !36

.loopexit925:                                     ; preds = %.lr.ph1068.prol.loopexit, %.lr.ph1068, %middle.block1417, %379, %._crit_edge1064
  store i64 %238, ptr %50, align 8, !tbaa !5
  %.not8751094 = icmp sgt i64 %238, %239
  br i1 %.not8751094, label %._crit_edge1104, label %.lr.ph1103.preheader

.lr.ph1103.preheader:                             ; preds = %.loopexit925
  %423 = add i64 %239, 1
  br label %.lr.ph1103

.lr.ph1103:                                       ; preds = %.lr.ph1103.preheader, %838
  %424 = phi i64 [ %839, %838 ], [ %238, %.lr.ph1103.preheader ]
  %.31101 = phi float [ %.8, %838 ], [ %.21123, %.lr.ph1103.preheader ]
  %.27801099 = phi i64 [ %.4782, %838 ], [ %.17791121, %.lr.ph1103.preheader ]
  %.27921098 = phi i64 [ %.4794, %838 ], [ %.17911119, %.lr.ph1103.preheader ]
  %.37981097 = phi float [ %.8803, %838 ], [ %.27971118, %.lr.ph1103.preheader ]
  %.38261095 = phi i64 [ %.pre-phi1222, %838 ], [ %238, %.lr.ph1103.preheader ]
  %425 = icmp eq i64 %.38261095, %239
  br i1 %425, label %441, label %426

426:                                              ; preds = %.lr.ph1103
  %427 = add i64 %132, %.38261095
  %428 = getelementptr inbounds float, ptr %60, i64 %427
  %429 = load float, ptr %428, align 4, !tbaa !9
  %430 = fpext float %429 to double
  %431 = load float, ptr %10, align 4, !tbaa !9
  %432 = fpext float %431 to double
  %433 = getelementptr inbounds float, ptr %68, i64 %427
  %434 = load float, ptr %433, align 4, !tbaa !9
  store float %434, ptr %29, align 4, !tbaa !9
  %435 = fcmp oge float %434, 0.000000e+00
  %436 = fneg float %434
  %437 = select i1 %435, float %434, float %436
  %438 = fpext float %437 to double
  %439 = fmul double %432, %438
  %440 = fcmp ugt double %439, %430
  br i1 %440, label %._crit_edge1220, label %441

._crit_edge1220:                                  ; preds = %426
  %.pre1221 = add i64 %.38261095, 1
  br label %838

441:                                              ; preds = %426, %.lr.ph1103
  store i64 %.38261095, ptr %51, align 8, !tbaa !5
  %442 = load i64, ptr %8, align 8, !tbaa !5
  %443 = icmp eq i64 %442, 1
  br i1 %443, label %444, label %450

444:                                              ; preds = %441
  %445 = load i64, ptr %9, align 8, !tbaa !5
  %446 = load i64, ptr %7, align 8, !tbaa !5
  %447 = icmp eq i64 %445, %446
  br i1 %447, label %448, label %450

448:                                              ; preds = %444
  %449 = add i64 %132, %424
  br label %457

450:                                              ; preds = %444, %441
  %451 = add nsw i64 %424, %.07701159
  %.not876 = icmp sgt i64 %451, %442
  br i1 %.not876, label %454, label %452

452:                                              ; preds = %450
  %453 = add nsw i64 %442, -1
  br label %457

454:                                              ; preds = %450
  %455 = add nsw i64 %451, -1
  %456 = load i64, ptr %9, align 8, !tbaa !5
  %.904 = call i64 @llvm.smin.i64(i64 %455, i64 %456)
  br label %457

457:                                              ; preds = %454, %452, %448
  %.0754 = phi i64 [ %449, %448 ], [ %453, %452 ], [ %.904, %454 ]
  %458 = icmp sgt i64 %.38261095, %424
  br i1 %458, label %459, label %625

459:                                              ; preds = %457
  %460 = icmp eq i64 %424, 1
  br i1 %460, label %461, label %469

461:                                              ; preds = %459
  store float 0.000000e+00, ptr %29, align 4, !tbaa !9
  %462 = load float, ptr %198, align 4, !tbaa !9
  %463 = load float, ptr %217, align 4, !tbaa !9
  %464 = fsub float %462, %463
  %465 = load float, ptr %1, align 4, !tbaa !9
  %466 = fsub float %464, %465
  %467 = fcmp ole float %466, 0.000000e+00
  %468 = select i1 %467, float 0.000000e+00, float %466
  br label %471

469:                                              ; preds = %459
  %gep1112 = getelementptr float, ptr %gep1151, i64 %424
  %470 = load float, ptr %gep1112, align 4, !tbaa !9
  br label %471

471:                                              ; preds = %469, %461
  %storemerge893 = phi float [ %470, %469 ], [ %468, %461 ]
  store float %storemerge893, ptr %37, align 4, !tbaa !9
  %gep1114 = getelementptr float, ptr %invariant.gep1113, i64 %.38261095
  %472 = load float, ptr %gep1114, align 4, !tbaa !9
  store float %472, ptr %38, align 4, !tbaa !9
  %storemerge897.in = getelementptr i64, ptr %213, i64 %424
  %storemerge897 = load i64, ptr %storemerge897.in, align 8, !tbaa !5
  store i64 %storemerge897, ptr %31, align 8, !tbaa !5
  %473 = load i64, ptr %214, align 8, !tbaa !5
  %474 = add nsw i64 %473, -1
  store i64 %474, ptr %48, align 8, !tbaa !5
  %475 = call i32 @slarrb_(ptr noundef nonnull %34, ptr noundef nonnull %215, ptr noundef %gep1165, ptr noundef nonnull %31, ptr noundef nonnull %31, ptr noundef nonnull %42, ptr noundef nonnull %42, ptr noundef nonnull %48, ptr noundef nonnull %199, ptr noundef nonnull %216, ptr noundef nonnull %217, ptr noundef %108, ptr noundef %109, ptr noundef %5, ptr noundef nonnull %46, ptr noundef nonnull %34, ptr noundef nonnull %40) #7
  %476 = load i64, ptr %51, align 8
  %storemerge897.in.1 = getelementptr i64, ptr %213, i64 %476
  %storemerge897.1 = load i64, ptr %storemerge897.in.1, align 8, !tbaa !5
  store i64 %storemerge897.1, ptr %31, align 8, !tbaa !5
  %477 = load i64, ptr %214, align 8, !tbaa !5
  %478 = add nsw i64 %477, -1
  store i64 %478, ptr %48, align 8, !tbaa !5
  %479 = call i32 @slarrb_(ptr noundef nonnull %34, ptr noundef nonnull %215, ptr noundef %gep1165, ptr noundef nonnull %31, ptr noundef nonnull %31, ptr noundef nonnull %42, ptr noundef nonnull %42, ptr noundef nonnull %48, ptr noundef nonnull %199, ptr noundef nonnull %216, ptr noundef nonnull %217, ptr noundef %108, ptr noundef %109, ptr noundef %5, ptr noundef nonnull %46, ptr noundef nonnull %34, ptr noundef nonnull %40) #7
  %480 = load i64, ptr %51, align 8, !tbaa !5
  %481 = add nsw i64 %480, %.07701159
  %482 = load i64, ptr %8, align 8, !tbaa !5
  %.not894 = icmp sgt i64 %481, %482
  %.pre1217 = load i64, ptr %50, align 8, !tbaa !5
  br i1 %.not894, label %483, label %487

483:                                              ; preds = %471
  %484 = add i64 %132, %.pre1217
  %485 = load i64, ptr %9, align 8, !tbaa !5
  %486 = icmp sgt i64 %484, %485
  br i1 %486, label %487, label %491

487:                                              ; preds = %483, %471
  %488 = add i64 %.27921098, 1
  %489 = add i64 %488, %480
  %490 = sub i64 %489, %.pre1217
  br label %836

491:                                              ; preds = %483
  %492 = call i32 @slarrf_(ptr noundef nonnull %34, ptr noundef nonnull %215, ptr noundef nonnull %218, ptr noundef %219, ptr noundef nonnull %50, ptr noundef nonnull %51, ptr noundef nonnull %199, ptr noundef nonnull %216, ptr noundef nonnull %217, ptr noundef nonnull %46, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef %5, ptr noundef nonnull %35, ptr noundef %111, ptr noundef %112, ptr noundef %108, ptr noundef nonnull %40) #7
  %493 = load i64, ptr %34, align 8, !tbaa !5
  %.not895.not1081 = icmp sgt i64 %493, 1
  %494 = mul nsw i64 %.0754, %64
  br i1 %.not895.not1081, label %.lr.ph1084, label %._crit_edge1085

.lr.ph1084:                                       ; preds = %491
  %495 = add nsw i64 %.0754, 1
  %496 = mul nsw i64 %495, %64
  %497 = add nsw i64 %493, -1
  %min.iters.check1398 = icmp ult i64 %493, 63
  br i1 %min.iters.check1398, label %scalar.ph1397.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph1084
  %498 = add nsw i64 %493, -2
  %499 = shl i64 %.0754, 3
  %500 = add i64 %499, -8
  %501 = mul i64 %64, %500
  %scevgep1293 = getelementptr i8, ptr %scevgep1292, i64 %501
  %mul.result = shl i64 %498, 3
  %502 = getelementptr i8, ptr %scevgep1293, i64 %mul.result
  %503 = icmp ult ptr %502, %scevgep1293
  %504 = mul i64 %117, %.0754
  %scevgep1296 = getelementptr i8, ptr %scevgep1295, i64 %504
  %mul.result1298 = shl i64 %498, 3
  %mul.overflow1299 = icmp ugt i64 %498, 2305843009213693951
  %505 = getelementptr i8, ptr %scevgep1296, i64 %mul.result1298
  %506 = icmp ult ptr %505, %scevgep1296
  %507 = or i1 %506, %mul.overflow1299
  %scevgep1302 = getelementptr i8, ptr %scevgep1301, i64 %504
  %mul.result1304 = shl i64 %498, 3
  %508 = getelementptr i8, ptr %scevgep1302, i64 %mul.result1304
  %509 = icmp ult ptr %508, %scevgep1302
  %scevgep1308 = getelementptr i8, ptr %scevgep1307, i64 %501
  %mul.result1310 = shl i64 %498, 3
  %510 = getelementptr i8, ptr %scevgep1308, i64 %mul.result1310
  %511 = icmp ult ptr %510, %scevgep1308
  %512 = or i1 %503, %507
  %513 = or i1 %509, %512
  %514 = or i1 %511, %513
  br i1 %514, label %scalar.ph1397.preheader, label %vector.memcheck1312

vector.memcheck1312:                              ; preds = %vector.scevcheck
  %515 = shl i64 %.0754, 3
  %516 = add i64 %515, -8
  %517 = mul i64 %64, %516
  %scevgep1315 = getelementptr i8, ptr %scevgep1314, i64 %517
  %518 = shl i64 %493, 3
  %519 = add i64 %517, %518
  %scevgep1318 = getelementptr i8, ptr %scevgep1317, i64 %519
  %520 = mul i64 %118, %.0754
  %scevgep1321 = getelementptr i8, ptr %scevgep1320, i64 %520
  %521 = add i64 %520, %518
  %scevgep1324 = getelementptr i8, ptr %scevgep1323, i64 %521
  %scevgep1327 = getelementptr i8, ptr %scevgep1326, i64 %517
  %scevgep1330 = getelementptr i8, ptr %scevgep1329, i64 %519
  %scevgep1333 = getelementptr i8, ptr %scevgep1332, i64 %520
  %scevgep1336 = getelementptr i8, ptr %scevgep1335, i64 %521
  %522 = shl nuw i64 %493, 2
  %scevgep1339 = getelementptr i8, ptr %scevgep1338, i64 %522
  %scevgep1341 = getelementptr i8, ptr %scevgep1340, i64 %522
  %bound01342 = icmp ult ptr %scevgep1315, %scevgep1324
  %bound11343 = icmp ult ptr %scevgep1321, %scevgep1318
  %found.conflict1344 = and i1 %bound01342, %bound11343
  %bound01345 = icmp ult ptr %scevgep1315, %scevgep1330
  %bound11346 = icmp ult ptr %scevgep1327, %scevgep1318
  %found.conflict1347 = and i1 %bound01345, %bound11346
  %conflict.rdx = or i1 %found.conflict1344, %found.conflict1347
  %bound01348 = icmp ult ptr %scevgep1315, %scevgep1336
  %bound11349 = icmp ult ptr %scevgep1333, %scevgep1318
  %found.conflict1350 = and i1 %bound01348, %bound11349
  %conflict.rdx1351 = or i1 %conflict.rdx, %found.conflict1350
  %bound01352 = icmp ult ptr %scevgep1315, %scevgep1339
  %bound11353 = icmp ult ptr %scevgep1337, %scevgep1318
  %found.conflict1354 = and i1 %bound01352, %bound11353
  %conflict.rdx1355 = or i1 %conflict.rdx1351, %found.conflict1354
  %bound01356 = icmp ult ptr %scevgep1315, %scevgep1341
  %bound11357 = icmp ult ptr %112, %scevgep1318
  %found.conflict1358 = and i1 %bound01356, %bound11357
  %conflict.rdx1359 = or i1 %conflict.rdx1355, %found.conflict1358
  %bound01360 = icmp ult ptr %scevgep1321, %scevgep1330
  %bound11361 = icmp ult ptr %scevgep1327, %scevgep1324
  %found.conflict1362 = and i1 %bound01360, %bound11361
  %conflict.rdx1363 = or i1 %conflict.rdx1359, %found.conflict1362
  %bound01364 = icmp ult ptr %scevgep1321, %scevgep1336
  %bound11365 = icmp ult ptr %scevgep1333, %scevgep1324
  %found.conflict1366 = and i1 %bound01364, %bound11365
  %conflict.rdx1367 = or i1 %conflict.rdx1363, %found.conflict1366
  %bound01368 = icmp ult ptr %scevgep1321, %scevgep1339
  %bound11369 = icmp ult ptr %scevgep1337, %scevgep1324
  %found.conflict1370 = and i1 %bound01368, %bound11369
  %conflict.rdx1371 = or i1 %conflict.rdx1367, %found.conflict1370
  %bound01372 = icmp ult ptr %scevgep1321, %scevgep1341
  %bound11373 = icmp ult ptr %112, %scevgep1324
  %found.conflict1374 = and i1 %bound01372, %bound11373
  %conflict.rdx1375 = or i1 %conflict.rdx1371, %found.conflict1374
  %bound01376 = icmp ult ptr %scevgep1327, %scevgep1336
  %bound11377 = icmp ult ptr %scevgep1333, %scevgep1330
  %found.conflict1378 = and i1 %bound01376, %bound11377
  %conflict.rdx1379 = or i1 %conflict.rdx1375, %found.conflict1378
  %bound01380 = icmp ult ptr %scevgep1327, %scevgep1339
  %bound11381 = icmp ult ptr %scevgep1337, %scevgep1330
  %found.conflict1382 = and i1 %bound01380, %bound11381
  %conflict.rdx1383 = or i1 %conflict.rdx1379, %found.conflict1382
  %bound01384 = icmp ult ptr %scevgep1327, %scevgep1341
  %bound11385 = icmp ult ptr %112, %scevgep1330
  %found.conflict1386 = and i1 %bound01384, %bound11385
  %conflict.rdx1387 = or i1 %conflict.rdx1383, %found.conflict1386
  %bound01388 = icmp ult ptr %scevgep1333, %scevgep1339
  %bound11389 = icmp ult ptr %scevgep1337, %scevgep1336
  %found.conflict1390 = and i1 %bound01388, %bound11389
  %conflict.rdx1391 = or i1 %conflict.rdx1387, %found.conflict1390
  %bound01392 = icmp ult ptr %scevgep1333, %scevgep1341
  %bound11393 = icmp ult ptr %112, %scevgep1336
  %found.conflict1394 = and i1 %bound01392, %bound11393
  %conflict.rdx1395 = or i1 %conflict.rdx1391, %found.conflict1394
  br i1 %conflict.rdx1395, label %scalar.ph1397.preheader, label %vector.ph1399

vector.ph1399:                                    ; preds = %vector.memcheck1312
  %n.vec1401 = and i64 %497, -4
  %ind.end1402 = or disjoint i64 %n.vec1401, 1
  br label %vector.body1404

vector.body1404:                                  ; preds = %vector.body1404, %vector.ph1399
  %index1405 = phi i64 [ 0, %vector.ph1399 ], [ %index.next1414, %vector.body1404 ]
  %offset.idx1406 = or disjoint i64 %index1405, 1
  %523 = or disjoint i64 %index1405, 3
  %524 = getelementptr float, ptr %113, i64 %offset.idx1406
  %525 = getelementptr i8, ptr %524, i64 8
  %wide.load1407 = load <2 x float>, ptr %524, align 4, !tbaa !9, !alias.scope !37
  %wide.load1408 = load <2 x float>, ptr %525, align 4, !tbaa !9, !alias.scope !37
  %526 = getelementptr %struct.complex, ptr %gep1153, i64 %offset.idx1406
  %527 = getelementptr %struct.complex, ptr %gep1153, i64 %523
  %528 = getelementptr %struct.complex, ptr %526, i64 %494
  %529 = getelementptr %struct.complex, ptr %527, i64 %494
  %interleaved.vec = shufflevector <2 x float> %wide.load1407, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec, ptr %528, align 4, !tbaa !9
  %interleaved.vec1409 = shufflevector <2 x float> %wide.load1408, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1409, ptr %529, align 4, !tbaa !9
  %530 = getelementptr float, ptr %112, i64 %index1405
  %531 = getelementptr i8, ptr %530, i64 8
  %wide.load1410 = load <2 x float>, ptr %530, align 4, !tbaa !9, !alias.scope !40
  %wide.load1411 = load <2 x float>, ptr %531, align 4, !tbaa !9, !alias.scope !40
  %532 = getelementptr %struct.complex, ptr %526, i64 %496
  %533 = getelementptr %struct.complex, ptr %527, i64 %496
  %interleaved.vec1412 = shufflevector <2 x float> %wide.load1410, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1412, ptr %532, align 4, !tbaa !9
  %interleaved.vec1413 = shufflevector <2 x float> %wide.load1411, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1413, ptr %533, align 4, !tbaa !9
  %index.next1414 = add nuw i64 %index1405, 4
  %534 = icmp eq i64 %index.next1414, %n.vec1401
  br i1 %534, label %middle.block1396, label %vector.body1404, !llvm.loop !42

middle.block1396:                                 ; preds = %vector.body1404
  %cmp.n1415 = icmp eq i64 %497, %n.vec1401
  br i1 %cmp.n1415, label %._crit_edge1085, label %scalar.ph1397.preheader

scalar.ph1397.preheader:                          ; preds = %middle.block1396, %vector.memcheck1312, %vector.scevcheck, %.lr.ph1084
  %.28291082.ph = phi i64 [ 1, %vector.memcheck1312 ], [ 1, %vector.scevcheck ], [ 1, %.lr.ph1084 ], [ %ind.end1402, %middle.block1396 ]
  %.neg1538 = add i64 %.28291082.ph, 1
  %535 = and i64 %493, 1
  %lcmp.mod1535.not.not = icmp eq i64 %535, 0
  br i1 %lcmp.mod1535.not.not, label %scalar.ph1397.prol, label %scalar.ph1397.prol.loopexit

scalar.ph1397.prol:                               ; preds = %scalar.ph1397.preheader
  %536 = getelementptr float, ptr %113, i64 %.28291082.ph
  %537 = load float, ptr %536, align 4, !tbaa !9
  %gep1087.prol = getelementptr %struct.complex, ptr %gep1153, i64 %.28291082.ph
  %538 = getelementptr %struct.complex, ptr %gep1087.prol, i64 %494
  store float %537, ptr %538, align 4, !tbaa !17
  %539 = getelementptr inbounds i8, ptr %538, i64 4
  store float 0.000000e+00, ptr %539, align 4, !tbaa !43
  %gep1080.prol = getelementptr float, ptr %invariant.gep1079, i64 %.28291082.ph
  %540 = load float, ptr %gep1080.prol, align 4, !tbaa !9
  %541 = getelementptr %struct.complex, ptr %gep1087.prol, i64 %496
  store float %540, ptr %541, align 4, !tbaa !17
  %542 = getelementptr inbounds i8, ptr %541, i64 4
  store float 0.000000e+00, ptr %542, align 4, !tbaa !43
  %543 = add nuw nsw i64 %.28291082.ph, 1
  br label %scalar.ph1397.prol.loopexit

scalar.ph1397.prol.loopexit:                      ; preds = %scalar.ph1397.prol, %scalar.ph1397.preheader
  %.28291082.unr = phi i64 [ %.28291082.ph, %scalar.ph1397.preheader ], [ %543, %scalar.ph1397.prol ]
  %544 = icmp eq i64 %493, %.neg1538
  br i1 %544, label %._crit_edge1085, label %scalar.ph1397

scalar.ph1397:                                    ; preds = %scalar.ph1397.prol.loopexit, %scalar.ph1397
  %.28291082 = phi i64 [ %560, %scalar.ph1397 ], [ %.28291082.unr, %scalar.ph1397.prol.loopexit ]
  %545 = getelementptr float, ptr %113, i64 %.28291082
  %546 = load float, ptr %545, align 4, !tbaa !9
  %gep1087 = getelementptr %struct.complex, ptr %gep1153, i64 %.28291082
  %547 = getelementptr %struct.complex, ptr %gep1087, i64 %494
  store float %546, ptr %547, align 4, !tbaa !17
  %548 = getelementptr inbounds i8, ptr %547, i64 4
  store float 0.000000e+00, ptr %548, align 4, !tbaa !43
  %gep1080 = getelementptr float, ptr %invariant.gep1079, i64 %.28291082
  %549 = load float, ptr %gep1080, align 4, !tbaa !9
  %550 = getelementptr %struct.complex, ptr %gep1087, i64 %496
  store float %549, ptr %550, align 4, !tbaa !17
  %551 = getelementptr inbounds i8, ptr %550, i64 4
  store float 0.000000e+00, ptr %551, align 4, !tbaa !43
  %552 = add nuw nsw i64 %.28291082, 1
  %553 = getelementptr float, ptr %113, i64 %552
  %554 = load float, ptr %553, align 4, !tbaa !9
  %gep1087.1 = getelementptr %struct.complex, ptr %gep1153, i64 %552
  %555 = getelementptr %struct.complex, ptr %gep1087.1, i64 %494
  store float %554, ptr %555, align 4, !tbaa !17
  %556 = getelementptr inbounds i8, ptr %555, i64 4
  store float 0.000000e+00, ptr %556, align 4, !tbaa !43
  %gep1080.1 = getelementptr float, ptr %112, i64 %.28291082
  %557 = load float, ptr %gep1080.1, align 4, !tbaa !9
  %558 = getelementptr %struct.complex, ptr %gep1087.1, i64 %496
  store float %557, ptr %558, align 4, !tbaa !17
  %559 = getelementptr inbounds i8, ptr %558, i64 4
  store float 0.000000e+00, ptr %559, align 4, !tbaa !43
  %560 = add nuw nsw i64 %.28291082, 2
  %exitcond1209.not.1 = icmp eq i64 %560, %493
  br i1 %exitcond1209.not.1, label %._crit_edge1085, label %scalar.ph1397, !llvm.loop !44

._crit_edge1085:                                  ; preds = %scalar.ph1397.prol.loopexit, %scalar.ph1397, %middle.block1396, %491
  %561 = add nsw i64 %494, %129
  %562 = getelementptr float, ptr %113, i64 %493
  %563 = load float, ptr %562, align 4, !tbaa !9
  %564 = getelementptr inbounds %struct.complex, ptr %66, i64 %561
  store float %563, ptr %564, align 4, !tbaa !17
  %565 = getelementptr inbounds %struct.complex, ptr %66, i64 %561, i32 1
  store float 0.000000e+00, ptr %565, align 4, !tbaa !43
  %566 = load i64, ptr %40, align 8, !tbaa !5
  %567 = icmp eq i64 %566, 0
  br i1 %567, label %568, label %.loopexit926.sink.split

568:                                              ; preds = %._crit_edge1085
  %569 = load float, ptr %35, align 4, !tbaa !9
  %570 = fadd float %.2789, %569
  %571 = add nsw i64 %.0754, 1
  %572 = mul nsw i64 %571, %64
  %573 = add nsw i64 %572, %129
  %574 = getelementptr inbounds %struct.complex, ptr %66, i64 %573
  store float %570, ptr %574, align 4, !tbaa !17
  %575 = getelementptr inbounds %struct.complex, ptr %66, i64 %573, i32 1
  store float 0.000000e+00, ptr %575, align 4, !tbaa !43
  %576 = load i64, ptr %51, align 8, !tbaa !5
  store i64 %576, ptr %28, align 8, !tbaa !5
  %577 = load i64, ptr %50, align 8, !tbaa !5
  %.not8961088 = icmp sgt i64 %577, %576
  br i1 %.not8961088, label %621, label %.lr.ph1091.preheader

.lr.ph1091.preheader:                             ; preds = %568
  %578 = add i64 %576, 1
  %579 = sub i64 %578, %577
  %min.iters.check = icmp ult i64 %579, 4
  br i1 %min.iters.check, label %.lr.ph1091.preheader1504, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph1091.preheader
  %580 = add i64 %.07701159, %577
  %581 = shl i64 %580, 2
  %scevgep1279 = getelementptr i8, ptr %scevgep1278, i64 %581
  %582 = add i64 %.07701159, %576
  %583 = shl i64 %582, 2
  %scevgep1281 = getelementptr i8, ptr %scevgep1280, i64 %583
  %scevgep1283 = getelementptr i8, ptr %scevgep1282, i64 %581
  %scevgep1285 = getelementptr i8, ptr %scevgep1284, i64 %583
  %bound0 = icmp ult ptr %scevgep1279, %scevgep1285
  %bound1 = icmp ult ptr %scevgep1283, %scevgep1281
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph1091.preheader1504, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %579, -4
  %ind.end = add i64 %577, %n.vec
  %broadcast.splatinsert1286 = insertelement <4 x float> poison, float %569, i64 0
  %broadcast.splat1287 = shufflevector <4 x float> %broadcast.splatinsert1286, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = add i64 %577, %index
  %584 = add i64 %132, %offset.idx
  %585 = getelementptr inbounds float, ptr %68, i64 %584
  %wide.load = load <4 x float>, ptr %585, align 4, !tbaa !9, !alias.scope !45, !noalias !48
  %586 = fcmp oge <4 x float> %wide.load, zeroinitializer
  %587 = fneg <4 x float> %wide.load
  %588 = select <4 x i1> %586, <4 x float> %wide.load, <4 x float> %587
  %589 = fmul <4 x float> %broadcast.splat, %588
  %590 = fsub <4 x float> %wide.load, %broadcast.splat1287
  store <4 x float> %590, ptr %585, align 4, !tbaa !9, !alias.scope !45, !noalias !48
  %591 = fcmp oge <4 x float> %590, zeroinitializer
  %592 = fneg <4 x float> %590
  %593 = select <4 x i1> %591, <4 x float> %590, <4 x float> %592
  %594 = fpext <4 x float> %593 to <4 x double>
  %595 = fpext <4 x float> %589 to <4 x double>
  %596 = call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %broadcast.splat1289, <4 x double> %594, <4 x double> %595)
  %597 = fptrunc <4 x double> %596 to <4 x float>
  %598 = getelementptr inbounds float, ptr %59, i64 %584
  %wide.load1290 = load <4 x float>, ptr %598, align 4, !tbaa !9, !alias.scope !48
  %599 = fadd <4 x float> %wide.load1290, %597
  store <4 x float> %599, ptr %598, align 4, !tbaa !9, !alias.scope !48
  %index.next = add nuw i64 %index, 4
  %600 = icmp eq i64 %index.next, %n.vec
  br i1 %600, label %middle.block, label %vector.body, !llvm.loop !50

middle.block:                                     ; preds = %vector.body
  %601 = extractelement <4 x float> %590, i64 3
  %cmp.n = icmp eq i64 %579, %n.vec
  br i1 %cmp.n, label %._crit_edge1092, label %.lr.ph1091.preheader1504

.lr.ph1091.preheader1504:                         ; preds = %middle.block, %vector.memcheck, %.lr.ph1091.preheader
  %.38301089.ph = phi i64 [ %577, %vector.memcheck ], [ %577, %.lr.ph1091.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph1091

.lr.ph1091:                                       ; preds = %.lr.ph1091.preheader1504, %.lr.ph1091
  %.38301089 = phi i64 [ %620, %.lr.ph1091 ], [ %.38301089.ph, %.lr.ph1091.preheader1504 ]
  %602 = add i64 %132, %.38301089
  %603 = getelementptr inbounds float, ptr %68, i64 %602
  %604 = load float, ptr %603, align 4, !tbaa !9
  %605 = fcmp oge float %604, 0.000000e+00
  %606 = fneg float %604
  %607 = select i1 %605, float %604, float %606
  %608 = fmul float %114, %607
  %609 = fsub float %604, %569
  store float %609, ptr %603, align 4, !tbaa !9
  %610 = fcmp oge float %609, 0.000000e+00
  %611 = fneg float %609
  %612 = select i1 %610, float %609, float %611
  %613 = fpext float %612 to double
  %614 = fpext float %608 to double
  %615 = call double @llvm.fmuladd.f64(double %116, double %613, double %614)
  %616 = fptrunc double %615 to float
  %617 = getelementptr inbounds float, ptr %59, i64 %602
  %618 = load float, ptr %617, align 4, !tbaa !9
  %619 = fadd float %618, %616
  store float %619, ptr %617, align 4, !tbaa !9
  %620 = add i64 %.38301089, 1
  %exitcond1210.not = icmp eq i64 %.38301089, %576
  br i1 %exitcond1210.not, label %._crit_edge1092, label %.lr.ph1091, !llvm.loop !51

._crit_edge1092:                                  ; preds = %.lr.ph1091, %middle.block
  %.lcssa1274 = phi float [ %601, %middle.block ], [ %609, %.lr.ph1091 ]
  store float %.lcssa1274, ptr %29, align 4, !tbaa !9
  br label %621

621:                                              ; preds = %._crit_edge1092, %568
  %622 = add nsw i64 %.27801099, 1
  %.idx922 = shl i64 %622, 4
  %623 = getelementptr i8, ptr %234, i64 %.idx922
  %624 = getelementptr i8, ptr %623, i64 -8
  store i64 %577, ptr %624, align 8, !tbaa !5
  store i64 %576, ptr %623, align 8, !tbaa !5
  br label %836

625:                                              ; preds = %457
  %626 = load i64, ptr %34, align 8, !tbaa !5
  %627 = sitofp i64 %626 to float
  %628 = fpext float %627 to double
  %629 = call double @log(double noundef %628) #7
  %630 = fmul double %629, 4.000000e+00
  %631 = fmul double %630, %110
  %632 = fptrunc double %631 to float
  %633 = load i64, ptr %50, align 8, !tbaa !5
  %634 = add nsw i64 %633, %.07701159
  %635 = add nsw i64 %634, -1
  %636 = add nsw i64 %634, -2
  %637 = icmp sgt i64 %634, 2
  %638 = select i1 %637, i64 %636, i64 1
  store i64 %634, ptr %28, align 8, !tbaa !5
  %639 = load i64, ptr %7, align 8, !tbaa !5
  %.905 = call i64 @llvm.smin.i64(i64 %634, i64 %639)
  %640 = getelementptr inbounds float, ptr %68, i64 %635
  %641 = load float, ptr %640, align 4, !tbaa !9
  store float %641, ptr %43, align 4, !tbaa !9
  %642 = load i64, ptr %8, align 8, !tbaa !5
  %.not878 = icmp sgt i64 %634, %642
  br i1 %.not878, label %643, label %.thread

643:                                              ; preds = %625
  %644 = load i64, ptr %9, align 8, !tbaa !5
  %645 = icmp sgt i64 %635, %644
  br i1 %645, label %.thread, label %646

646:                                              ; preds = %643
  %647 = getelementptr inbounds float, ptr %59, i64 %635
  %648 = load float, ptr %647, align 4, !tbaa !9
  %649 = fsub float %641, %648
  %650 = fadd float %641, %648
  %651 = getelementptr inbounds i64, ptr %62, i64 %635
  %652 = load i64, ptr %651, align 8, !tbaa !5
  store i64 %652, ptr %44, align 8, !tbaa !5
  %653 = icmp eq i64 %633, 1
  br i1 %653, label %654, label %665

654:                                              ; preds = %646
  %655 = insertelement <2 x float> poison, float %649, i64 0
  %656 = insertelement <2 x float> %655, float %650, i64 1
  %657 = fcmp oge <2 x float> %656, zeroinitializer
  %658 = fneg <2 x float> %656
  %659 = select <2 x i1> %657, <2 x float> %656, <2 x float> %658
  %660 = extractelement <2 x float> %659, i64 0
  store float %660, ptr %29, align 4, !tbaa !9
  %661 = extractelement <2 x float> %659, i64 1
  %662 = fcmp oge float %660, %661
  %663 = select i1 %662, float %660, float %661
  %664 = fmul float %663, %90
  br label %668

665:                                              ; preds = %646
  %666 = getelementptr inbounds float, ptr %60, i64 %638
  %667 = load float, ptr %666, align 4, !tbaa !9
  br label %668

668:                                              ; preds = %665, %654
  %storemerge = phi float [ %667, %665 ], [ %664, %654 ]
  store float %storemerge, ptr %37, align 4, !tbaa !9
  %669 = load i64, ptr %33, align 8
  %670 = icmp eq i64 %633, %669
  br i1 %670, label %671, label %682

671:                                              ; preds = %668
  %672 = insertelement <2 x float> poison, float %649, i64 0
  %673 = insertelement <2 x float> %672, float %650, i64 1
  %674 = fcmp oge <2 x float> %673, zeroinitializer
  %675 = fneg <2 x float> %673
  %676 = select <2 x i1> %674, <2 x float> %673, <2 x float> %675
  %677 = extractelement <2 x float> %676, i64 0
  store float %677, ptr %29, align 4, !tbaa !9
  %678 = extractelement <2 x float> %676, i64 1
  %679 = fcmp oge float %677, %678
  %680 = select i1 %679, float %677, float %678
  %681 = fmul float %680, %90
  %.phi.trans.insert = getelementptr inbounds float, ptr %60, i64 %635
  %.pre1214 = load float, ptr %.phi.trans.insert, align 4, !tbaa !9
  br label %685

682:                                              ; preds = %668
  %683 = getelementptr inbounds float, ptr %60, i64 %635
  %684 = load float, ptr %683, align 4, !tbaa !9
  br label %685

685:                                              ; preds = %682, %671
  %686 = phi float [ %684, %682 ], [ %.pre1214, %671 ]
  %storemerge879 = phi float [ %684, %682 ], [ %681, %671 ]
  store float %storemerge879, ptr %38, align 4, !tbaa !9
  %687 = fcmp ole float %storemerge, %storemerge879
  %688 = select i1 %687, float %storemerge, float %storemerge879
  %or.cond907 = or i1 %653, %670
  %689 = fmul float %688, %90
  %storemerge880 = select i1 %or.cond907, float 0.000000e+00, float %689
  store float %storemerge880, ptr %49, align 4, !tbaa !9
  %690 = load i64, ptr %34, align 8, !tbaa !5
  %691 = getelementptr inbounds float, ptr %60, i64 %635
  store float %688, ptr %691, align 4, !tbaa !9
  %692 = getelementptr inbounds i64, ptr %69, i64 %635
  %693 = mul nsw i64 %635, %64
  %694 = getelementptr %struct.complex, ptr %212, i64 %693
  %.idx883 = shl i64 %635, 4
  %695 = getelementptr i8, ptr %67, i64 %.idx883
  %696 = getelementptr i8, ptr %695, i64 -8
  %697 = fmul float %688, %632
  br label %.backedge

.backedge:                                        ; preds = %.backedge.backedge, %685
  %.0807 = phi float [ %649, %685 ], [ %.2809, %.backedge.backedge ]
  %.0805 = phi i64 [ 0, %685 ], [ %.0805.be, %.backedge.backedge ]
  %.4799 = phi float [ %.37981097, %685 ], [ %.5800, %.backedge.backedge ]
  %.0783 = phi float [ %650, %685 ], [ %.2785, %.backedge.backedge ]
  %.0773 = phi i64 [ 0, %685 ], [ %.0773.be, %.backedge.backedge ]
  %.0758 = phi i64 [ 0, %685 ], [ %.0758.be, %.backedge.backedge ]
  %.0755 = phi i64 [ 0, %685 ], [ %.1756, %.backedge.backedge ]
  %.0752 = phi i64 [ %690, %685 ], [ %721, %.backedge.backedge ]
  %.4 = phi float [ %.31101, %685 ], [ %.5, %.backedge.backedge ]
  %.0 = phi i64 [ 1, %685 ], [ %723, %.backedge.backedge ]
  %.not881 = icmp eq i64 %.0773, 0
  br i1 %.not881, label %706, label %698

698:                                              ; preds = %.backedge
  %699 = load i64, ptr %692, align 8, !tbaa !5
  store i64 %699, ptr %39, align 8, !tbaa !5
  %700 = load i64, ptr %214, align 8, !tbaa !5
  %701 = add nsw i64 %700, -1
  store i64 %701, ptr %48, align 8, !tbaa !5
  store float %91, ptr %29, align 4, !tbaa !9
  %702 = call i32 @slarrb_(ptr noundef nonnull %34, ptr noundef nonnull %215, ptr noundef %gep1165, ptr noundef nonnull %44, ptr noundef nonnull %44, ptr noundef nonnull @c_b28, ptr noundef nonnull %29, ptr noundef nonnull %48, ptr noundef nonnull %199, ptr noundef nonnull %216, ptr noundef nonnull %217, ptr noundef %108, ptr noundef %109, ptr noundef %5, ptr noundef nonnull %46, ptr noundef nonnull %39, ptr noundef nonnull %40) #7
  %703 = load i64, ptr %40, align 8, !tbaa !5
  %.not882 = icmp eq i64 %703, 0
  br i1 %.not882, label %704, label %.loopexit926.sink.split

704:                                              ; preds = %698
  %705 = load float, ptr %640, align 4, !tbaa !9
  store float %705, ptr %43, align 4, !tbaa !9
  store i64 0, ptr %692, align 8, !tbaa !5
  br label %706

706:                                              ; preds = %704, %.backedge
  %.1759 = phi i64 [ 1, %704 ], [ %.0758, %.backedge ]
  %707 = icmp ne i64 %.1759, 0
  %708 = xor i1 %707, true
  %709 = zext i1 %708 to i64
  store i64 %709, ptr %30, align 8, !tbaa !5
  %710 = call i32 @clar1v_(ptr noundef nonnull %34, ptr noundef nonnull @c__1, ptr noundef nonnull %34, ptr noundef nonnull %43, ptr noundef nonnull %215, ptr noundef nonnull %218, ptr noundef %219, ptr noundef %gep1165, ptr noundef %5, ptr noundef nonnull %49, ptr noundef %694, ptr noundef nonnull %30, ptr noundef nonnull %47, ptr noundef nonnull %36, ptr noundef nonnull %45, ptr noundef nonnull %692, ptr noundef %696, ptr noundef nonnull %53, ptr noundef nonnull %41, ptr noundef nonnull %54, ptr noundef %108) #7
  %711 = icmp eq i64 %.0805, 0
  %712 = load float, ptr %41, align 4
  br i1 %711, label %713, label %715

713:                                              ; preds = %706
  %714 = load float, ptr %43, align 4, !tbaa !9
  br label %719

715:                                              ; preds = %706
  %716 = fcmp olt float %712, %.4
  br i1 %716, label %717, label %719

717:                                              ; preds = %715
  %718 = load float, ptr %43, align 4, !tbaa !9
  br label %719

719:                                              ; preds = %715, %717, %713
  %.5800 = phi float [ %714, %713 ], [ %718, %717 ], [ %.4799, %715 ]
  %.5 = phi float [ %712, %713 ], [ %712, %717 ], [ %.4, %715 ]
  %720 = load i64, ptr %696, align 8, !tbaa !5
  %721 = call i64 @llvm.smin.i64(i64 %.0752, i64 %720)
  store i64 %.0, ptr %28, align 8, !tbaa !5
  %722 = load i64, ptr %695, align 8, !tbaa !5
  %723 = call i64 @llvm.smax.i64(i64 %.0, i64 %722)
  %724 = add nsw i64 %.0805, 1
  %725 = fcmp ogt float %712, %697
  br i1 %725, label %726, label %768

726:                                              ; preds = %719
  %727 = load float, ptr %54, align 4
  %728 = fcmp oge float %727, 0.000000e+00
  %729 = fneg float %727
  %730 = select i1 %728, float %727, float %729
  %731 = fpext float %730 to double
  %732 = load float, ptr %42, align 4, !tbaa !9
  %733 = fpext float %732 to double
  %734 = load float, ptr %43, align 4
  %735 = fcmp oge float %734, 0.000000e+00
  %736 = fneg float %734
  %737 = select i1 %735, float %734, float %736
  %738 = fpext float %737 to double
  %739 = fmul double %733, %738
  %740 = fcmp uge double %739, %731
  %or.cond = or i1 %707, %740
  br i1 %or.cond, label %768, label %741

741:                                              ; preds = %726
  %742 = load i64, ptr %44, align 8, !tbaa !5
  %743 = load i64, ptr %47, align 8, !tbaa !5
  %.not887 = icmp sgt i64 %742, %743
  %744 = select i1 %.not887, float %727, float %729
  %745 = fcmp ult float %744, 0.000000e+00
  br i1 %745, label %755, label %746

746:                                              ; preds = %741
  %747 = fadd float %727, %734
  %748 = fcmp ugt float %747, %.0783
  %749 = fcmp ult float %747, %.0807
  %or.cond909 = select i1 %748, i1 true, i1 %749
  br i1 %or.cond909, label %755, label %750

750:                                              ; preds = %746
  %..0807 = select i1 %.not887, float %734, float %.0807
  %.0783. = select i1 %.not887, float %.0783, float %734
  %751 = fadd float %.0783., %..0807
  %752 = fmul float %751, 5.000000e-01
  store float %752, ptr %640, align 4, !tbaa !9
  store float %747, ptr %43, align 4, !tbaa !9
  %753 = fsub float %.0783., %..0807
  %754 = fmul float %753, 5.000000e-01
  store float %754, ptr %647, align 4, !tbaa !9
  %.pre = fneg float %747
  br label %755

755:                                              ; preds = %741, %746, %750
  %.pre-phi = phi float [ %736, %741 ], [ %736, %746 ], [ %.pre, %750 ]
  %756 = phi float [ %734, %741 ], [ %734, %746 ], [ %747, %750 ]
  %.2809 = phi float [ %.0807, %741 ], [ %.0807, %746 ], [ %..0807, %750 ]
  %.2785 = phi float [ %.0783, %741 ], [ %.0783, %746 ], [ %.0783., %750 ]
  %.1774 = phi i64 [ 1, %741 ], [ 1, %746 ], [ %.0773, %750 ]
  %.1756 = phi i64 [ %.0755, %741 ], [ %.0755, %746 ], [ 1, %750 ]
  %757 = fsub float %.2785, %.2809
  %758 = fpext float %757 to double
  %759 = fcmp oge float %756, 0.000000e+00
  %760 = select i1 %759, float %756, float %.pre-phi
  %761 = fpext float %760 to double
  %762 = fmul double %733, %761
  %763 = fcmp ogt double %762, %758
  br i1 %763, label %.backedge.backedge, label %764

764:                                              ; preds = %755
  %765 = icmp slt i64 %.0805, 9
  br i1 %765, label %.backedge.backedge, label %766

.backedge.backedge:                               ; preds = %764, %755, %766
  %.0805.be = phi i64 [ %724, %764 ], [ %724, %755 ], [ 10, %766 ]
  %.0773.be = phi i64 [ %.1774, %764 ], [ %.1774, %755 ], [ 1, %766 ]
  %.0758.be = phi i64 [ 0, %764 ], [ 1, %755 ], [ 0, %766 ]
  br label %.backedge

766:                                              ; preds = %764
  %767 = icmp eq i64 %724, 10
  br i1 %767, label %.backedge.backedge, label %.loopexit926.sink.split

768:                                              ; preds = %726, %719
  %769 = icmp ne i64 %.0755, 0
  %or.cond3 = and i1 %769, %707
  %770 = fcmp ole float %.5, %712
  %or.cond911.not = select i1 %or.cond3, i1 %770, i1 false
  br i1 %or.cond911.not, label %.critedge, label %772

.critedge:                                        ; preds = %768
  store float %.5800, ptr %43, align 4, !tbaa !9
  store i64 %709, ptr %30, align 8, !tbaa !5
  %771 = call i32 @clar1v_(ptr noundef nonnull %34, ptr noundef nonnull @c__1, ptr noundef nonnull %34, ptr noundef nonnull %43, ptr noundef nonnull %215, ptr noundef nonnull %218, ptr noundef %219, ptr noundef %gep1165, ptr noundef %5, ptr noundef nonnull %49, ptr noundef %694, ptr noundef nonnull %30, ptr noundef nonnull %47, ptr noundef nonnull %36, ptr noundef nonnull %45, ptr noundef nonnull %692, ptr noundef nonnull %696, ptr noundef nonnull %53, ptr noundef nonnull %41, ptr noundef nonnull %54, ptr noundef %108) #7
  %.pre1215 = load i64, ptr %696, align 8, !tbaa !5
  %.pre1216 = load i64, ptr %695, align 8, !tbaa !5
  br label %772

772:                                              ; preds = %768, %.critedge
  %773 = phi i64 [ %722, %768 ], [ %.pre1216, %.critedge ]
  %774 = phi i64 [ %720, %768 ], [ %.pre1215, %.critedge ]
  %775 = load float, ptr %43, align 4, !tbaa !9
  store float %775, ptr %640, align 4, !tbaa !9
  %776 = add i64 %774, %182
  store i64 %776, ptr %696, align 8, !tbaa !5
  %777 = add nsw i64 %773, %182
  store i64 %777, ptr %695, align 8, !tbaa !5
  %778 = add nsw i64 %723, %182
  %779 = icmp slt i64 %721, %774
  br i1 %779, label %.loopexit924.loopexit, label %.loopexit924

.loopexit924.loopexit:                            ; preds = %772
  %780 = shl i64 %634, 3
  %781 = add i64 %780, -16
  %782 = mul i64 %64, %781
  %scevgep1203 = getelementptr i8, ptr %scevgep, i64 %782
  %783 = add i64 %.07751158, %721
  %784 = shl i64 %783, 3
  %scevgep1204 = getelementptr i8, ptr %scevgep1203, i64 %784
  %smax1205 = call i64 @llvm.smax.i64(i64 %776, i64 %783)
  %785 = add i64 %smax1205, 1
  %786 = sub i64 %785, %783
  %787 = shl nuw i64 %786, 3
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep1204, i8 0, i64 %787, i1 false), !tbaa !9
  br label %.loopexit924

.loopexit924:                                     ; preds = %.loopexit924.loopexit, %772
  %788 = icmp sgt i64 %723, %773
  br i1 %788, label %789, label %.loopexit

789:                                              ; preds = %.loopexit924
  %790 = add i64 %773, %.07751158
  %.not8901074 = icmp sgt i64 %790, %778
  br i1 %.not8901074, label %.loopexit, label %.lr.ph1077.preheader

.lr.ph1077.preheader:                             ; preds = %789
  %791 = shl i64 %634, 3
  %792 = add i64 %791, -16
  %793 = mul i64 %64, %792
  %794 = shl i64 %790, 3
  %795 = getelementptr i8, ptr %scevgep1206, i64 %793
  %scevgep1207 = getelementptr i8, ptr %795, i64 %794
  %796 = sub i64 %723, %773
  %797 = shl i64 %796, 3
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep1207, i8 0, i64 %797, i1 false), !tbaa !9
  br label %.loopexit

.thread:                                          ; preds = %643, %625
  %798 = fadd float %.2789, %641
  %799 = getelementptr inbounds float, ptr %58, i64 %635
  store float %798, ptr %799, align 4, !tbaa !9
  br label %834

.loopexit:                                        ; preds = %.lr.ph1077.preheader, %789, %.loopexit924
  %reass.sub1174 = sub i64 %773, %774
  %800 = add i64 %reass.sub1174, 1
  store i64 %800, ptr %28, align 8, !tbaa !5
  %801 = getelementptr %struct.complex, ptr %66, i64 %776
  %802 = getelementptr %struct.complex, ptr %801, i64 %693
  %803 = call i32 @f2c_csscal(ptr noundef nonnull %28, ptr noundef nonnull %53, ptr noundef %802, ptr noundef nonnull @c__1) #7
  %804 = load float, ptr %43, align 4, !tbaa !9
  %805 = fadd float %.2789, %804
  %806 = getelementptr inbounds float, ptr %58, i64 %635
  store float %805, ptr %806, align 4, !tbaa !9
  %807 = icmp sgt i64 %633, 1
  br i1 %807, label %808, label %821

808:                                              ; preds = %.loopexit
  %809 = getelementptr inbounds float, ptr %60, i64 %638
  %810 = load float, ptr %809, align 4, !tbaa !9
  store float %810, ptr %29, align 4, !tbaa !9
  %811 = load float, ptr %647, align 4, !tbaa !9
  %812 = fsub float %805, %811
  %813 = getelementptr inbounds float, ptr %58, i64 %638
  %814 = load float, ptr %813, align 4, !tbaa !9
  %815 = fsub float %812, %814
  %816 = getelementptr inbounds float, ptr %59, i64 %638
  %817 = load float, ptr %816, align 4, !tbaa !9
  %818 = fsub float %815, %817
  %819 = fcmp oge float %810, %818
  %820 = select i1 %819, float %810, float %818
  store float %820, ptr %809, align 4, !tbaa !9
  br label %821

821:                                              ; preds = %808, %.loopexit
  %.not892 = icmp sgt i64 %634, %.0806.lcssa
  br i1 %.not892, label %834, label %822

822:                                              ; preds = %821
  store float %686, ptr %29, align 4, !tbaa !9
  %823 = getelementptr inbounds float, ptr %58, i64 %.905
  %824 = load float, ptr %823, align 4, !tbaa !9
  %825 = getelementptr inbounds float, ptr %59, i64 %.905
  %826 = load float, ptr %825, align 4, !tbaa !9
  %827 = fsub float %824, %826
  %828 = load float, ptr %806, align 4, !tbaa !9
  %829 = fsub float %827, %828
  %830 = load float, ptr %647, align 4, !tbaa !9
  %831 = fsub float %829, %830
  %832 = fcmp oge float %686, %831
  %833 = select i1 %832, float %686, float %831
  store float %833, ptr %691, align 4, !tbaa !9
  br label %834

834:                                              ; preds = %.thread, %821, %822
  %.6918 = phi float [ %.31101, %.thread ], [ %.5, %821 ], [ %.5, %822 ]
  %.6801916 = phi float [ %.37981097, %.thread ], [ %.5800, %821 ], [ %.5800, %822 ]
  %835 = add nsw i64 %.27921098, 1
  br label %836

836:                                              ; preds = %621, %834, %487
  %.7802 = phi float [ %.37981097, %487 ], [ %.37981097, %621 ], [ %.6801916, %834 ]
  %.3793 = phi i64 [ %490, %487 ], [ %.27921098, %621 ], [ %835, %834 ]
  %.3781 = phi i64 [ %.27801099, %487 ], [ %622, %621 ], [ %.27801099, %834 ]
  %.7 = phi float [ %.31101, %487 ], [ %.31101, %621 ], [ %.6918, %834 ]
  %837 = add i64 %.38261095, 1
  store i64 %837, ptr %50, align 8, !tbaa !5
  br label %838

838:                                              ; preds = %._crit_edge1220, %836
  %.pre-phi1222 = phi i64 [ %.pre1221, %._crit_edge1220 ], [ %837, %836 ]
  %839 = phi i64 [ %424, %._crit_edge1220 ], [ %837, %836 ]
  %.8803 = phi float [ %.37981097, %._crit_edge1220 ], [ %.7802, %836 ]
  %.4794 = phi i64 [ %.27921098, %._crit_edge1220 ], [ %.3793, %836 ]
  %.4782 = phi i64 [ %.27801099, %._crit_edge1220 ], [ %.3781, %836 ]
  %.8 = phi float [ %.31101, %._crit_edge1220 ], [ %.7, %836 ]
  %exitcond1211.not = icmp eq i64 %.pre-phi1222, %423
  br i1 %exitcond1211.not, label %._crit_edge1104, label %.lr.ph1103, !llvm.loop !52

._crit_edge1104:                                  ; preds = %838, %.loopexit925
  %.3798.lcssa = phi float [ %.27971118, %.loopexit925 ], [ %.8803, %838 ]
  %.2792.lcssa = phi i64 [ %.17911119, %.loopexit925 ], [ %.4794, %838 ]
  %.2780.lcssa = phi i64 [ %.17791121, %.loopexit925 ], [ %.4782, %838 ]
  %.3.lcssa = phi float [ %.21123, %.loopexit925 ], [ %.8, %838 ]
  %840 = add nuw i64 %.48221116, 1
  %exitcond1212.not = icmp eq i64 %.48221116, %.07781138
  br i1 %exitcond1212.not, label %._crit_edge1126.loopexit, label %235, !llvm.loop !53

._crit_edge1126.loopexit:                         ; preds = %._crit_edge1104
  %.pre1218 = load i64, ptr %33, align 8, !tbaa !5
  br label %._crit_edge1126

._crit_edge1126:                                  ; preds = %._crit_edge1126.loopexit, %230
  %841 = phi i64 [ %227, %230 ], [ %.pre1218, %._crit_edge1126.loopexit ]
  %.2797.lcssa = phi float [ %.17961135, %230 ], [ %.3798.lcssa, %._crit_edge1126.loopexit ]
  %.1791.lcssa = phi i64 [ %.07901136, %230 ], [ %.2792.lcssa, %._crit_edge1126.loopexit ]
  %.1788.lcssa = phi float [ %.07871137, %230 ], [ %.2789, %._crit_edge1126.loopexit ]
  %.1779.lcssa = phi i64 [ 0, %230 ], [ %.2780.lcssa, %._crit_edge1126.loopexit ]
  %.2.lcssa = phi float [ %.11142, %230 ], [ %.3.lcssa, %._crit_edge1126.loopexit ]
  %842 = add nuw nsw i64 %.07601140, 1
  %843 = icmp slt i64 %.1791.lcssa, %841
  br i1 %843, label %226, label %._crit_edge1145

._crit_edge1145:                                  ; preds = %._crit_edge1126, %._crit_edge1053.thread
  %.1796.lcssa = phi float [ %.07951157, %._crit_edge1053.thread ], [ %.2797.lcssa, %._crit_edge1126 ]
  %.1.lcssa = phi float [ %.07501161, %._crit_edge1053.thread ], [ %.2.lcssa, %._crit_edge1126 ]
  %844 = add nuw nsw i64 %.0806.lcssa, 1
  br label %845

845:                                              ; preds = %._crit_edge1036, %146, %186, %._crit_edge1145
  %.9804 = phi float [ %.07951157, %146 ], [ %.07951157, %186 ], [ %.1796.lcssa, %._crit_edge1145 ], [ %.07951157, %._crit_edge1036 ]
  %.1771 = phi i64 [ %147, %146 ], [ %196, %186 ], [ %844, %._crit_edge1145 ], [ %.07701159, %._crit_edge1036 ]
  %.9 = phi float [ %.07501161, %146 ], [ %.07501161, %186 ], [ %.1.lcssa, %._crit_edge1145 ], [ %.07501161, %._crit_edge1036 ]
  %.1776 = add nsw i64 %129, 1
  %846 = add nuw i64 %.08171155, 1
  %exitcond1213.not = icmp eq i64 %.08171155, %101
  br i1 %exitcond1213.not, label %.loopexit926, label %127, !llvm.loop !54

.loopexit926.sink.split:                          ; preds = %226, %330, %._crit_edge1085, %766, %698
  %.sink = phi i64 [ -3, %698 ], [ 5, %766 ], [ -2, %._crit_edge1085 ], [ -1, %330 ], [ -2, %226 ]
  store i64 %.sink, ptr %24, align 8, !tbaa !5
  br label %.loopexit926

.loopexit926:                                     ; preds = %845, %.loopexit926.sink.split, %99
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  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 i32 @claset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @log(double noundef) local_unnamed_addr #4

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x double> @llvm.fmuladd.v4f64(<4 x double>, <4 x double>, <4 x double>) #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 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { 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}
!14 = !{!"llvm.loop.isvectorized", i32 1}
!15 = !{!"llvm.loop.unroll.runtime.disable"}
!16 = distinct !{!16, !12, !15, !14}
!17 = !{!18, !10, i64 0}
!18 = !{!"", !10, i64 0, !10, i64 4}
!19 = distinct !{!19, !12}
!20 = !{!21}
!21 = distinct !{!21, !22}
!22 = distinct !{!22, !"LVerDomain"}
!23 = !{!24}
!24 = distinct !{!24, !22}
!25 = !{!26}
!26 = distinct !{!26, !22}
!27 = !{!28, !21, !24}
!28 = distinct !{!28, !22}
!29 = !{!28}
!30 = !{!21, !24}
!31 = distinct !{!31, !12, !14, !15}
!32 = distinct !{!32, !12, !14}
!33 = distinct !{!33, !12, !14, !15}
!34 = distinct !{!34, !35}
!35 = !{!"llvm.loop.unroll.disable"}
!36 = distinct !{!36, !12, !14}
!37 = !{!38}
!38 = distinct !{!38, !39}
!39 = distinct !{!39, !"LVerDomain"}
!40 = !{!41}
!41 = distinct !{!41, !39}
!42 = distinct !{!42, !12, !14, !15}
!43 = !{!18, !10, i64 4}
!44 = distinct !{!44, !12, !14}
!45 = !{!46}
!46 = distinct !{!46, !47}
!47 = distinct !{!47, !"LVerDomain"}
!48 = !{!49}
!49 = distinct !{!49, !47}
!50 = distinct !{!50, !12, !14, !15}
!51 = distinct !{!51, !12, !14}
!52 = distinct !{!52, !12}
!53 = distinct !{!53, !12}
!54 = distinct !{!54, !12}


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