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

; 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"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @slarre_(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 float, align 4
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca float, align 4
  %60 = alloca float, align 4
  %61 = alloca i64, align 8
  %62 = alloca float, align 4
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca float, align 4
  %66 = alloca i64, align 8
  %67 = alloca float, align 4
  %68 = alloca float, align 4
  %69 = alloca float, align 4
  %70 = alloca float, align 4
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca float, align 4
  %74 = alloca float, align 4
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca float, align 4
  %78 = alloca i64, align 8
  %79 = alloca float, align 4
  %80 = alloca float, align 4
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca float, align 4
  %85 = alloca [4 x i64], align 16
  %86 = alloca float, align 4
  %87 = alloca float, align 4
  %88 = alloca i64, align 8
  %89 = alloca i64, align 8
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca i64, align 8
  %93 = alloca float, align 4
  %94 = alloca i64, align 8
  %95 = alloca float, align 4
  %96 = alloca float, align 4
  %97 = alloca i64, align 8
  %98 = alloca float, align 4
  %99 = alloca float, align 4
  %100 = alloca float, align 4
  %101 = alloca float, align 4
  %102 = alloca float, align 4
  %103 = 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 4, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %91) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr %98) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #5
  %104 = load ptr, ptr %50, align 8, !tbaa !5
  %105 = getelementptr inbounds i64, ptr %104, i32 -1
  store ptr %105, ptr %50, align 8, !tbaa !5
  %106 = load ptr, ptr %49, align 8, !tbaa !5
  %107 = getelementptr inbounds float, ptr %106, i32 -1
  store ptr %107, ptr %49, align 8, !tbaa !5
  %108 = load ptr, ptr %47, align 8, !tbaa !5
  %109 = getelementptr inbounds float, ptr %108, i32 -1
  store ptr %109, ptr %47, align 8, !tbaa !5
  %110 = load ptr, ptr %46, align 8, !tbaa !5
  %111 = getelementptr inbounds i64, ptr %110, i32 -1
  store ptr %111, ptr %46, align 8, !tbaa !5
  %112 = load ptr, ptr %45, align 8, !tbaa !5
  %113 = getelementptr inbounds i64, ptr %112, i32 -1
  store ptr %113, ptr %45, align 8, !tbaa !5
  %114 = load ptr, ptr %44, align 8, !tbaa !5
  %115 = getelementptr inbounds float, ptr %114, i32 -1
  store ptr %115, ptr %44, align 8, !tbaa !5
  %116 = load ptr, ptr %43, align 8, !tbaa !5
  %117 = getelementptr inbounds float, ptr %116, i32 -1
  store ptr %117, ptr %43, align 8, !tbaa !5
  %118 = load ptr, ptr %42, align 8, !tbaa !5
  %119 = getelementptr inbounds float, ptr %118, i32 -1
  store ptr %119, ptr %42, align 8, !tbaa !5
  %120 = load ptr, ptr %40, align 8, !tbaa !5
  %121 = getelementptr inbounds i64, ptr %120, i32 -1
  store ptr %121, ptr %40, align 8, !tbaa !5
  %122 = load ptr, ptr %35, align 8, !tbaa !5
  %123 = getelementptr inbounds float, ptr %122, i32 -1
  store ptr %123, ptr %35, align 8, !tbaa !5
  %124 = load ptr, ptr %34, align 8, !tbaa !5
  %125 = getelementptr inbounds float, ptr %124, i32 -1
  store ptr %125, ptr %34, align 8, !tbaa !5
  %126 = load ptr, ptr %33, align 8, !tbaa !5
  %127 = getelementptr inbounds float, ptr %126, i32 -1
  store ptr %127, ptr %33, align 8, !tbaa !5
  %128 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 0, ptr %128, align 8, !tbaa !9
  %129 = load ptr, ptr %27, align 8, !tbaa !5
  %130 = call i64 @lsame_(ptr noundef %129, ptr noundef @.str)
  %131 = icmp ne i64 %130, 0
  br i1 %131, label %132, label %133

132:                                              ; preds = %25
  store i64 1, ptr %92, align 8, !tbaa !9
  br label %145

133:                                              ; preds = %25
  %134 = load ptr, ptr %27, align 8, !tbaa !5
  %135 = call i64 @lsame_(ptr noundef %134, ptr noundef @.str.1)
  %136 = icmp ne i64 %135, 0
  br i1 %136, label %137, label %138

137:                                              ; preds = %133
  store i64 3, ptr %92, align 8, !tbaa !9
  br label %144

138:                                              ; preds = %133
  %139 = load ptr, ptr %27, align 8, !tbaa !5
  %140 = call i64 @lsame_(ptr noundef %139, ptr noundef @.str.2)
  %141 = icmp ne i64 %140, 0
  br i1 %141, label %142, label %143

142:                                              ; preds = %138
  store i64 2, ptr %92, align 8, !tbaa !9
  br label %143

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

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

145:                                              ; preds = %144, %132
  %146 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %146, align 8, !tbaa !9
  %147 = call double @slamch_(ptr noundef @.str.3)
  %148 = fptrunc double %147 to float
  store float %148, ptr %95, align 4, !tbaa !11
  %149 = call double @slamch_(ptr noundef @.str.4)
  %150 = fptrunc double %149 to float
  store float %150, ptr %67, align 4, !tbaa !11
  %151 = load float, ptr %67, align 4, !tbaa !11
  %152 = fmul float %151, 1.000000e+02
  store float %152, ptr %70, align 4, !tbaa !11
  %153 = load float, ptr %67, align 4, !tbaa !11
  %154 = fpext float %153 to double
  %155 = call double @sqrt(double noundef %154) #5
  %156 = fmul double %155, 0x3F40624DE0000000
  %157 = fptrunc double %156 to float
  store float %157, ptr %101, align 4, !tbaa !11
  %158 = load ptr, ptr %28, align 8, !tbaa !5
  %159 = load i64, ptr %158, align 8, !tbaa !9
  %160 = icmp eq i64 %159, 1
  br i1 %160, label %161, label %220

161:                                              ; preds = %145
  %162 = load i64, ptr %92, align 8, !tbaa !9
  %163 = icmp eq i64 %162, 1
  br i1 %163, label %192, label %164

164:                                              ; preds = %161
  %165 = load i64, ptr %92, align 8, !tbaa !9
  %166 = icmp eq i64 %165, 3
  br i1 %166, label %167, label %181

167:                                              ; preds = %164
  %168 = load ptr, ptr %33, align 8, !tbaa !5
  %169 = getelementptr inbounds float, ptr %168, i64 1
  %170 = load float, ptr %169, align 4, !tbaa !11
  %171 = load ptr, ptr %29, align 8, !tbaa !5
  %172 = load float, ptr %171, align 4, !tbaa !11
  %173 = fcmp ogt float %170, %172
  br i1 %173, label %174, label %181

174:                                              ; preds = %167
  %175 = load ptr, ptr %33, align 8, !tbaa !5
  %176 = getelementptr inbounds float, ptr %175, i64 1
  %177 = load float, ptr %176, align 4, !tbaa !11
  %178 = load ptr, ptr %30, align 8, !tbaa !5
  %179 = load float, ptr %178, align 4, !tbaa !11
  %180 = fcmp ole float %177, %179
  br i1 %180, label %192, label %181

181:                                              ; preds = %174, %167, %164
  %182 = load i64, ptr %92, align 8, !tbaa !9
  %183 = icmp eq i64 %182, 2
  br i1 %183, label %184, label %217

184:                                              ; preds = %181
  %185 = load ptr, ptr %31, align 8, !tbaa !5
  %186 = load i64, ptr %185, align 8, !tbaa !9
  %187 = icmp eq i64 %186, 1
  br i1 %187, label %188, label %217

188:                                              ; preds = %184
  %189 = load ptr, ptr %32, align 8, !tbaa !5
  %190 = load i64, ptr %189, align 8, !tbaa !9
  %191 = icmp eq i64 %190, 1
  br i1 %191, label %192, label %217

192:                                              ; preds = %188, %174, %161
  %193 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 1, ptr %193, align 8, !tbaa !9
  %194 = load ptr, ptr %33, align 8, !tbaa !5
  %195 = getelementptr inbounds float, ptr %194, i64 1
  %196 = load float, ptr %195, align 4, !tbaa !11
  %197 = load ptr, ptr %42, align 8, !tbaa !5
  %198 = getelementptr inbounds float, ptr %197, i64 1
  store float %196, ptr %198, align 4, !tbaa !11
  %199 = load ptr, ptr %43, align 8, !tbaa !5
  %200 = getelementptr inbounds float, ptr %199, i64 1
  store float 0.000000e+00, ptr %200, align 4, !tbaa !11
  %201 = load ptr, ptr %44, align 8, !tbaa !5
  %202 = getelementptr inbounds float, ptr %201, i64 1
  store float 0.000000e+00, ptr %202, align 4, !tbaa !11
  %203 = load ptr, ptr %45, align 8, !tbaa !5
  %204 = getelementptr inbounds i64, ptr %203, i64 1
  store i64 1, ptr %204, align 8, !tbaa !9
  %205 = load ptr, ptr %46, align 8, !tbaa !5
  %206 = getelementptr inbounds i64, ptr %205, i64 1
  store i64 1, ptr %206, align 8, !tbaa !9
  %207 = load ptr, ptr %33, align 8, !tbaa !5
  %208 = getelementptr inbounds float, ptr %207, i64 1
  %209 = load float, ptr %208, align 4, !tbaa !11
  %210 = load ptr, ptr %47, align 8, !tbaa !5
  %211 = getelementptr inbounds float, ptr %210, i64 1
  store float %209, ptr %211, align 4, !tbaa !11
  %212 = load ptr, ptr %33, align 8, !tbaa !5
  %213 = getelementptr inbounds float, ptr %212, i64 1
  %214 = load float, ptr %213, align 4, !tbaa !11
  %215 = load ptr, ptr %47, align 8, !tbaa !5
  %216 = getelementptr inbounds float, ptr %215, i64 2
  store float %214, ptr %216, align 4, !tbaa !11
  br label %217

217:                                              ; preds = %192, %188, %184, %181
  %218 = load ptr, ptr %34, align 8, !tbaa !5
  %219 = getelementptr inbounds float, ptr %218, i64 1
  store float 0.000000e+00, ptr %219, align 4, !tbaa !11
  store i32 0, ptr %26, align 4
  store i32 1, ptr %103, align 4
  br label %2037

220:                                              ; preds = %145
  %221 = load ptr, ptr %33, align 8, !tbaa !5
  %222 = getelementptr inbounds float, ptr %221, i64 1
  %223 = load float, ptr %222, align 4, !tbaa !11
  store float %223, ptr %62, align 4, !tbaa !11
  %224 = load ptr, ptr %33, align 8, !tbaa !5
  %225 = getelementptr inbounds float, ptr %224, i64 1
  %226 = load float, ptr %225, align 4, !tbaa !11
  store float %226, ptr %65, align 4, !tbaa !11
  store float 0.000000e+00, ptr %77, align 4, !tbaa !11
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  %227 = load ptr, ptr %34, align 8, !tbaa !5
  %228 = load ptr, ptr %28, align 8, !tbaa !5
  %229 = load i64, ptr %228, align 8, !tbaa !9
  %230 = getelementptr inbounds float, ptr %227, i64 %229
  store float 0.000000e+00, ptr %230, align 4, !tbaa !11
  %231 = load ptr, ptr %28, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  store i64 %232, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %233

233:                                              ; preds = %325, %220
  %234 = load i64, ptr %57, align 8, !tbaa !9
  %235 = load i64, ptr %52, align 8, !tbaa !9
  %236 = icmp sle i64 %234, %235
  br i1 %236, label %237, label %328

237:                                              ; preds = %233
  %238 = load ptr, ptr %43, align 8, !tbaa !5
  %239 = load i64, ptr %57, align 8, !tbaa !9
  %240 = getelementptr inbounds float, ptr %238, i64 %239
  store float 0.000000e+00, ptr %240, align 4, !tbaa !11
  %241 = load ptr, ptr %44, align 8, !tbaa !5
  %242 = load i64, ptr %57, align 8, !tbaa !9
  %243 = getelementptr inbounds float, ptr %241, i64 %242
  store float 0.000000e+00, ptr %243, align 4, !tbaa !11
  %244 = load ptr, ptr %34, align 8, !tbaa !5
  %245 = load i64, ptr %57, align 8, !tbaa !9
  %246 = getelementptr inbounds float, ptr %244, i64 %245
  %247 = load float, ptr %246, align 4, !tbaa !11
  store float %247, ptr %54, align 4, !tbaa !11
  %248 = load float, ptr %54, align 4, !tbaa !11
  %249 = fcmp oge float %248, 0.000000e+00
  br i1 %249, label %250, label %252

250:                                              ; preds = %237
  %251 = load float, ptr %54, align 4, !tbaa !11
  br label %255

252:                                              ; preds = %237
  %253 = load float, ptr %54, align 4, !tbaa !11
  %254 = fneg float %253
  br label %255

255:                                              ; preds = %252, %250
  %256 = phi float [ %251, %250 ], [ %254, %252 ]
  %257 = fpext float %256 to double
  %258 = fptrunc double %257 to float
  store float %258, ptr %74, align 4, !tbaa !11
  %259 = load float, ptr %74, align 4, !tbaa !11
  %260 = load float, ptr %80, align 4, !tbaa !11
  %261 = fcmp oge float %259, %260
  br i1 %261, label %262, label %264

262:                                              ; preds = %255
  %263 = load float, ptr %74, align 4, !tbaa !11
  store float %263, ptr %80, align 4, !tbaa !11
  br label %264

264:                                              ; preds = %262, %255
  %265 = load float, ptr %74, align 4, !tbaa !11
  %266 = load float, ptr %77, align 4, !tbaa !11
  %267 = fadd float %265, %266
  store float %267, ptr %73, align 4, !tbaa !11
  %268 = load ptr, ptr %33, align 8, !tbaa !5
  %269 = load i64, ptr %57, align 8, !tbaa !9
  %270 = getelementptr inbounds float, ptr %268, i64 %269
  %271 = load float, ptr %270, align 4, !tbaa !11
  %272 = load float, ptr %73, align 4, !tbaa !11
  %273 = fsub float %271, %272
  %274 = load ptr, ptr %47, align 8, !tbaa !5
  %275 = load i64, ptr %57, align 8, !tbaa !9
  %276 = shl i64 %275, 1
  %277 = sub nsw i64 %276, 1
  %278 = getelementptr inbounds float, ptr %274, i64 %277
  store float %273, ptr %278, align 4, !tbaa !11
  %279 = load float, ptr %62, align 4, !tbaa !11
  store float %279, ptr %54, align 4, !tbaa !11
  %280 = load ptr, ptr %47, align 8, !tbaa !5
  %281 = load i64, ptr %57, align 8, !tbaa !9
  %282 = shl i64 %281, 1
  %283 = sub nsw i64 %282, 1
  %284 = getelementptr inbounds float, ptr %280, i64 %283
  %285 = load float, ptr %284, align 4, !tbaa !11
  store float %285, ptr %55, align 4, !tbaa !11
  %286 = load float, ptr %54, align 4, !tbaa !11
  %287 = load float, ptr %55, align 4, !tbaa !11
  %288 = fcmp ole float %286, %287
  br i1 %288, label %289, label %291

289:                                              ; preds = %264
  %290 = load float, ptr %54, align 4, !tbaa !11
  br label %293

291:                                              ; preds = %264
  %292 = load float, ptr %55, align 4, !tbaa !11
  br label %293

293:                                              ; preds = %291, %289
  %294 = phi float [ %290, %289 ], [ %292, %291 ]
  %295 = fpext float %294 to double
  %296 = fptrunc double %295 to float
  store float %296, ptr %62, align 4, !tbaa !11
  %297 = load ptr, ptr %33, align 8, !tbaa !5
  %298 = load i64, ptr %57, align 8, !tbaa !9
  %299 = getelementptr inbounds float, ptr %297, i64 %298
  %300 = load float, ptr %299, align 4, !tbaa !11
  %301 = load float, ptr %73, align 4, !tbaa !11
  %302 = fadd float %300, %301
  %303 = load ptr, ptr %47, align 8, !tbaa !5
  %304 = load i64, ptr %57, align 8, !tbaa !9
  %305 = mul nsw i64 %304, 2
  %306 = getelementptr inbounds float, ptr %303, i64 %305
  store float %302, ptr %306, align 4, !tbaa !11
  %307 = load float, ptr %65, align 4, !tbaa !11
  store float %307, ptr %54, align 4, !tbaa !11
  %308 = load ptr, ptr %47, align 8, !tbaa !5
  %309 = load i64, ptr %57, align 8, !tbaa !9
  %310 = mul nsw i64 %309, 2
  %311 = getelementptr inbounds float, ptr %308, i64 %310
  %312 = load float, ptr %311, align 4, !tbaa !11
  store float %312, ptr %55, align 4, !tbaa !11
  %313 = load float, ptr %54, align 4, !tbaa !11
  %314 = load float, ptr %55, align 4, !tbaa !11
  %315 = fcmp oge float %313, %314
  br i1 %315, label %316, label %318

316:                                              ; preds = %293
  %317 = load float, ptr %54, align 4, !tbaa !11
  br label %320

318:                                              ; preds = %293
  %319 = load float, ptr %55, align 4, !tbaa !11
  br label %320

320:                                              ; preds = %318, %316
  %321 = phi float [ %317, %316 ], [ %319, %318 ]
  %322 = fpext float %321 to double
  %323 = fptrunc double %322 to float
  store float %323, ptr %65, align 4, !tbaa !11
  %324 = load float, ptr %74, align 4, !tbaa !11
  store float %324, ptr %77, align 4, !tbaa !11
  br label %325

325:                                              ; preds = %320
  %326 = load i64, ptr %57, align 8, !tbaa !9
  %327 = add nsw i64 %326, 1
  store i64 %327, ptr %57, align 8, !tbaa !9
  br label %233, !llvm.loop !13

328:                                              ; preds = %233
  %329 = load float, ptr %80, align 4, !tbaa !11
  store float %329, ptr %56, align 4, !tbaa !11
  store float 1.000000e+00, ptr %54, align 4, !tbaa !11
  %330 = load float, ptr %56, align 4, !tbaa !11
  %331 = load float, ptr %56, align 4, !tbaa !11
  %332 = fmul float %330, %331
  store float %332, ptr %55, align 4, !tbaa !11
  %333 = load float, ptr %95, align 4, !tbaa !11
  %334 = fpext float %333 to double
  %335 = load float, ptr %54, align 4, !tbaa !11
  %336 = load float, ptr %55, align 4, !tbaa !11
  %337 = fcmp oge float %335, %336
  br i1 %337, label %338, label %340

338:                                              ; preds = %328
  %339 = load float, ptr %54, align 4, !tbaa !11
  br label %342

340:                                              ; preds = %328
  %341 = load float, ptr %55, align 4, !tbaa !11
  br label %342

342:                                              ; preds = %340, %338
  %343 = phi float [ %339, %338 ], [ %341, %340 ]
  %344 = fpext float %343 to double
  %345 = fmul double %334, %344
  %346 = fptrunc double %345 to float
  %347 = load ptr, ptr %48, align 8, !tbaa !5
  store float %346, ptr %347, align 4, !tbaa !11
  %348 = load float, ptr %65, align 4, !tbaa !11
  %349 = load float, ptr %62, align 4, !tbaa !11
  %350 = fsub float %348, %349
  store float %350, ptr %96, align 4, !tbaa !11
  %351 = load ptr, ptr %28, align 8, !tbaa !5
  %352 = load ptr, ptr %33, align 8, !tbaa !5
  %353 = getelementptr inbounds float, ptr %352, i64 1
  %354 = load ptr, ptr %34, align 8, !tbaa !5
  %355 = getelementptr inbounds float, ptr %354, i64 1
  %356 = load ptr, ptr %35, align 8, !tbaa !5
  %357 = getelementptr inbounds float, ptr %356, i64 1
  %358 = load ptr, ptr %38, align 8, !tbaa !5
  %359 = load ptr, ptr %39, align 8, !tbaa !5
  %360 = load ptr, ptr %40, align 8, !tbaa !5
  %361 = getelementptr inbounds i64, ptr %360, i64 1
  %362 = call i32 @slarra_(ptr noundef %351, ptr noundef %353, ptr noundef %355, ptr noundef %357, ptr noundef %358, ptr noundef %96, ptr noundef %359, ptr noundef %361, ptr noundef %88)
  store i64 0, ptr %91, align 8, !tbaa !9
  %363 = load i64, ptr %92, align 8, !tbaa !9
  %364 = icmp eq i64 %363, 1
  br i1 %364, label %365, label %369

365:                                              ; preds = %342
  %366 = load i64, ptr %91, align 8, !tbaa !9
  %367 = icmp ne i64 %366, 0
  %368 = xor i1 %367, true
  br label %369

369:                                              ; preds = %365, %342
  %370 = phi i1 [ false, %342 ], [ %368, %365 ]
  %371 = zext i1 %370 to i32
  %372 = sext i32 %371 to i64
  store i64 %372, ptr %97, align 8, !tbaa !9
  %373 = load i64, ptr %92, align 8, !tbaa !9
  %374 = icmp eq i64 %373, 1
  br i1 %374, label %375, label %383

375:                                              ; preds = %369
  %376 = load i64, ptr %91, align 8, !tbaa !9
  %377 = icmp ne i64 %376, 0
  br i1 %377, label %383, label %378

378:                                              ; preds = %375
  %379 = load float, ptr %62, align 4, !tbaa !11
  %380 = load ptr, ptr %29, align 8, !tbaa !5
  store float %379, ptr %380, align 4, !tbaa !11
  %381 = load float, ptr %65, align 4, !tbaa !11
  %382 = load ptr, ptr %30, align 8, !tbaa !5
  store float %381, ptr %382, align 4, !tbaa !11
  br label %447

383:                                              ; preds = %375, %369
  %384 = load ptr, ptr %27, align 8, !tbaa !5
  %385 = load ptr, ptr %28, align 8, !tbaa !5
  %386 = load ptr, ptr %29, align 8, !tbaa !5
  %387 = load ptr, ptr %30, align 8, !tbaa !5
  %388 = load ptr, ptr %31, align 8, !tbaa !5
  %389 = load ptr, ptr %32, align 8, !tbaa !5
  %390 = load ptr, ptr %47, align 8, !tbaa !5
  %391 = getelementptr inbounds float, ptr %390, i64 1
  %392 = load ptr, ptr %33, align 8, !tbaa !5
  %393 = getelementptr inbounds float, ptr %392, i64 1
  %394 = load ptr, ptr %34, align 8, !tbaa !5
  %395 = getelementptr inbounds float, ptr %394, i64 1
  %396 = load ptr, ptr %35, align 8, !tbaa !5
  %397 = getelementptr inbounds float, ptr %396, i64 1
  %398 = load ptr, ptr %48, align 8, !tbaa !5
  %399 = load ptr, ptr %39, align 8, !tbaa !5
  %400 = load ptr, ptr %40, align 8, !tbaa !5
  %401 = getelementptr inbounds i64, ptr %400, i64 1
  %402 = load ptr, ptr %42, align 8, !tbaa !5
  %403 = getelementptr inbounds float, ptr %402, i64 1
  %404 = load ptr, ptr %43, align 8, !tbaa !5
  %405 = getelementptr inbounds float, ptr %404, i64 1
  %406 = load ptr, ptr %29, align 8, !tbaa !5
  %407 = load ptr, ptr %30, align 8, !tbaa !5
  %408 = load ptr, ptr %45, align 8, !tbaa !5
  %409 = getelementptr inbounds i64, ptr %408, i64 1
  %410 = load ptr, ptr %46, align 8, !tbaa !5
  %411 = getelementptr inbounds i64, ptr %410, i64 1
  %412 = load ptr, ptr %49, align 8, !tbaa !5
  %413 = getelementptr inbounds float, ptr %412, i64 1
  %414 = load ptr, ptr %50, align 8, !tbaa !5
  %415 = getelementptr inbounds i64, ptr %414, i64 1
  %416 = call i32 @slarrd_(ptr noundef %384, ptr noundef @.str.5, ptr noundef %385, ptr noundef %386, ptr noundef %387, ptr noundef %388, ptr noundef %389, ptr noundef %391, ptr noundef %101, ptr noundef %393, ptr noundef %395, ptr noundef %397, ptr noundef %398, ptr noundef %399, ptr noundef %401, ptr noundef %64, ptr noundef %403, ptr noundef %405, ptr noundef %406, ptr noundef %407, ptr noundef %409, ptr noundef %411, ptr noundef %413, ptr noundef %415, ptr noundef %88)
  %417 = load i64, ptr %88, align 8, !tbaa !9
  %418 = icmp ne i64 %417, 0
  br i1 %418, label %419, label %421

419:                                              ; preds = %383
  %420 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -1, ptr %420, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %103, align 4
  br label %2037

421:                                              ; preds = %383
  %422 = load ptr, ptr %28, align 8, !tbaa !5
  %423 = load i64, ptr %422, align 8, !tbaa !9
  store i64 %423, ptr %52, align 8, !tbaa !9
  %424 = load i64, ptr %64, align 8, !tbaa !9
  %425 = add nsw i64 %424, 1
  store i64 %425, ptr %57, align 8, !tbaa !9
  br label %426

426:                                              ; preds = %443, %421
  %427 = load i64, ptr %57, align 8, !tbaa !9
  %428 = load i64, ptr %52, align 8, !tbaa !9
  %429 = icmp sle i64 %427, %428
  br i1 %429, label %430, label %446

430:                                              ; preds = %426
  %431 = load ptr, ptr %42, align 8, !tbaa !5
  %432 = load i64, ptr %57, align 8, !tbaa !9
  %433 = getelementptr inbounds float, ptr %431, i64 %432
  store float 0.000000e+00, ptr %433, align 4, !tbaa !11
  %434 = load ptr, ptr %43, align 8, !tbaa !5
  %435 = load i64, ptr %57, align 8, !tbaa !9
  %436 = getelementptr inbounds float, ptr %434, i64 %435
  store float 0.000000e+00, ptr %436, align 4, !tbaa !11
  %437 = load ptr, ptr %45, align 8, !tbaa !5
  %438 = load i64, ptr %57, align 8, !tbaa !9
  %439 = getelementptr inbounds i64, ptr %437, i64 %438
  store i64 0, ptr %439, align 8, !tbaa !9
  %440 = load ptr, ptr %46, align 8, !tbaa !5
  %441 = load i64, ptr %57, align 8, !tbaa !9
  %442 = getelementptr inbounds i64, ptr %440, i64 %441
  store i64 0, ptr %442, align 8, !tbaa !9
  br label %443

443:                                              ; preds = %430
  %444 = load i64, ptr %57, align 8, !tbaa !9
  %445 = add nsw i64 %444, 1
  store i64 %445, ptr %57, align 8, !tbaa !9
  br label %426, !llvm.loop !15

446:                                              ; preds = %426
  br label %447

447:                                              ; preds = %446, %378
  store i64 1, ptr %90, align 8, !tbaa !9
  store i64 1, ptr %94, align 8, !tbaa !9
  %448 = load ptr, ptr %39, align 8, !tbaa !5
  %449 = load i64, ptr %448, align 8, !tbaa !9
  store i64 %449, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %76, align 8, !tbaa !9
  br label %450

450:                                              ; preds = %2033, %447
  %451 = load i64, ptr %76, align 8, !tbaa !9
  %452 = load i64, ptr %52, align 8, !tbaa !9
  %453 = icmp sle i64 %451, %452
  br i1 %453, label %454, label %2036

454:                                              ; preds = %450
  %455 = load ptr, ptr %40, align 8, !tbaa !5
  %456 = load i64, ptr %76, align 8, !tbaa !9
  %457 = getelementptr inbounds i64, ptr %455, i64 %456
  %458 = load i64, ptr %457, align 8, !tbaa !9
  store i64 %458, ptr %75, align 8, !tbaa !9
  %459 = load i64, ptr %75, align 8, !tbaa !9
  %460 = load i64, ptr %90, align 8, !tbaa !9
  %461 = sub nsw i64 %459, %460
  %462 = add nsw i64 %461, 1
  store i64 %462, ptr %63, align 8, !tbaa !9
  %463 = load i64, ptr %63, align 8, !tbaa !9
  %464 = icmp eq i64 %463, 1
  br i1 %464, label %465, label %534

465:                                              ; preds = %454
  %466 = load i64, ptr %92, align 8, !tbaa !9
  %467 = icmp eq i64 %466, 1
  br i1 %467, label %497, label %468

468:                                              ; preds = %465
  %469 = load i64, ptr %92, align 8, !tbaa !9
  %470 = icmp eq i64 %469, 3
  br i1 %470, label %471, label %487

471:                                              ; preds = %468
  %472 = load ptr, ptr %33, align 8, !tbaa !5
  %473 = load i64, ptr %90, align 8, !tbaa !9
  %474 = getelementptr inbounds float, ptr %472, i64 %473
  %475 = load float, ptr %474, align 4, !tbaa !11
  %476 = load ptr, ptr %29, align 8, !tbaa !5
  %477 = load float, ptr %476, align 4, !tbaa !11
  %478 = fcmp ogt float %475, %477
  br i1 %478, label %479, label %487

479:                                              ; preds = %471
  %480 = load ptr, ptr %33, align 8, !tbaa !5
  %481 = load i64, ptr %90, align 8, !tbaa !9
  %482 = getelementptr inbounds float, ptr %480, i64 %481
  %483 = load float, ptr %482, align 4, !tbaa !11
  %484 = load ptr, ptr %30, align 8, !tbaa !5
  %485 = load float, ptr %484, align 4, !tbaa !11
  %486 = fcmp ole float %483, %485
  br i1 %486, label %497, label %487

487:                                              ; preds = %479, %471, %468
  %488 = load i64, ptr %92, align 8, !tbaa !9
  %489 = icmp eq i64 %488, 2
  br i1 %489, label %490, label %528

490:                                              ; preds = %487
  %491 = load ptr, ptr %45, align 8, !tbaa !5
  %492 = load i64, ptr %94, align 8, !tbaa !9
  %493 = getelementptr inbounds i64, ptr %491, i64 %492
  %494 = load i64, ptr %493, align 8, !tbaa !9
  %495 = load i64, ptr %76, align 8, !tbaa !9
  %496 = icmp eq i64 %494, %495
  br i1 %496, label %497, label %528

497:                                              ; preds = %490, %479, %465
  %498 = load ptr, ptr %41, align 8, !tbaa !5
  %499 = load i64, ptr %498, align 8, !tbaa !9
  %500 = add nsw i64 %499, 1
  store i64 %500, ptr %498, align 8, !tbaa !9
  %501 = load ptr, ptr %33, align 8, !tbaa !5
  %502 = load i64, ptr %90, align 8, !tbaa !9
  %503 = getelementptr inbounds float, ptr %501, i64 %502
  %504 = load float, ptr %503, align 4, !tbaa !11
  %505 = load ptr, ptr %42, align 8, !tbaa !5
  %506 = load ptr, ptr %41, align 8, !tbaa !5
  %507 = load i64, ptr %506, align 8, !tbaa !9
  %508 = getelementptr inbounds float, ptr %505, i64 %507
  store float %504, ptr %508, align 4, !tbaa !11
  %509 = load ptr, ptr %43, align 8, !tbaa !5
  %510 = load ptr, ptr %41, align 8, !tbaa !5
  %511 = load i64, ptr %510, align 8, !tbaa !9
  %512 = getelementptr inbounds float, ptr %509, i64 %511
  store float 0.000000e+00, ptr %512, align 4, !tbaa !11
  %513 = load ptr, ptr %44, align 8, !tbaa !5
  %514 = load ptr, ptr %41, align 8, !tbaa !5
  %515 = load i64, ptr %514, align 8, !tbaa !9
  %516 = getelementptr inbounds float, ptr %513, i64 %515
  store float 0.000000e+00, ptr %516, align 4, !tbaa !11
  %517 = load i64, ptr %76, align 8, !tbaa !9
  %518 = load ptr, ptr %45, align 8, !tbaa !5
  %519 = load ptr, ptr %41, align 8, !tbaa !5
  %520 = load i64, ptr %519, align 8, !tbaa !9
  %521 = getelementptr inbounds i64, ptr %518, i64 %520
  store i64 %517, ptr %521, align 8, !tbaa !9
  %522 = load ptr, ptr %46, align 8, !tbaa !5
  %523 = load ptr, ptr %41, align 8, !tbaa !5
  %524 = load i64, ptr %523, align 8, !tbaa !9
  %525 = getelementptr inbounds i64, ptr %522, i64 %524
  store i64 1, ptr %525, align 8, !tbaa !9
  %526 = load i64, ptr %94, align 8, !tbaa !9
  %527 = add nsw i64 %526, 1
  store i64 %527, ptr %94, align 8, !tbaa !9
  br label %528

528:                                              ; preds = %497, %490, %487
  %529 = load ptr, ptr %34, align 8, !tbaa !5
  %530 = load i64, ptr %75, align 8, !tbaa !9
  %531 = getelementptr inbounds float, ptr %529, i64 %530
  store float 0.000000e+00, ptr %531, align 4, !tbaa !11
  %532 = load i64, ptr %75, align 8, !tbaa !9
  %533 = add nsw i64 %532, 1
  store i64 %533, ptr %90, align 8, !tbaa !9
  br label %2032

534:                                              ; preds = %454
  %535 = load ptr, ptr %34, align 8, !tbaa !5
  %536 = load i64, ptr %75, align 8, !tbaa !9
  %537 = getelementptr inbounds float, ptr %535, i64 %536
  store float 0.000000e+00, ptr %537, align 4, !tbaa !11
  %538 = load ptr, ptr %33, align 8, !tbaa !5
  %539 = load i64, ptr %90, align 8, !tbaa !9
  %540 = getelementptr inbounds float, ptr %538, i64 %539
  %541 = load float, ptr %540, align 4, !tbaa !11
  store float %541, ptr %62, align 4, !tbaa !11
  %542 = load ptr, ptr %33, align 8, !tbaa !5
  %543 = load i64, ptr %90, align 8, !tbaa !9
  %544 = getelementptr inbounds float, ptr %542, i64 %543
  %545 = load float, ptr %544, align 4, !tbaa !11
  store float %545, ptr %65, align 4, !tbaa !11
  %546 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %546, ptr %53, align 8, !tbaa !9
  %547 = load i64, ptr %90, align 8, !tbaa !9
  store i64 %547, ptr %57, align 8, !tbaa !9
  br label %548

548:                                              ; preds = %586, %534
  %549 = load i64, ptr %57, align 8, !tbaa !9
  %550 = load i64, ptr %53, align 8, !tbaa !9
  %551 = icmp sle i64 %549, %550
  br i1 %551, label %552, label %589

552:                                              ; preds = %548
  %553 = load ptr, ptr %47, align 8, !tbaa !5
  %554 = load i64, ptr %57, align 8, !tbaa !9
  %555 = shl i64 %554, 1
  %556 = sub nsw i64 %555, 1
  %557 = getelementptr inbounds float, ptr %553, i64 %556
  %558 = load float, ptr %557, align 4, !tbaa !11
  store float %558, ptr %54, align 4, !tbaa !11
  %559 = load float, ptr %54, align 4, !tbaa !11
  %560 = load float, ptr %62, align 4, !tbaa !11
  %561 = fcmp ole float %559, %560
  br i1 %561, label %562, label %564

562:                                              ; preds = %552
  %563 = load float, ptr %54, align 4, !tbaa !11
  br label %566

564:                                              ; preds = %552
  %565 = load float, ptr %62, align 4, !tbaa !11
  br label %566

566:                                              ; preds = %564, %562
  %567 = phi float [ %563, %562 ], [ %565, %564 ]
  %568 = fpext float %567 to double
  %569 = fptrunc double %568 to float
  store float %569, ptr %62, align 4, !tbaa !11
  %570 = load ptr, ptr %47, align 8, !tbaa !5
  %571 = load i64, ptr %57, align 8, !tbaa !9
  %572 = mul nsw i64 %571, 2
  %573 = getelementptr inbounds float, ptr %570, i64 %572
  %574 = load float, ptr %573, align 4, !tbaa !11
  store float %574, ptr %54, align 4, !tbaa !11
  %575 = load float, ptr %54, align 4, !tbaa !11
  %576 = load float, ptr %65, align 4, !tbaa !11
  %577 = fcmp oge float %575, %576
  br i1 %577, label %578, label %580

578:                                              ; preds = %566
  %579 = load float, ptr %54, align 4, !tbaa !11
  br label %582

580:                                              ; preds = %566
  %581 = load float, ptr %65, align 4, !tbaa !11
  br label %582

582:                                              ; preds = %580, %578
  %583 = phi float [ %579, %578 ], [ %581, %580 ]
  %584 = fpext float %583 to double
  %585 = fptrunc double %584 to float
  store float %585, ptr %65, align 4, !tbaa !11
  br label %586

586:                                              ; preds = %582
  %587 = load i64, ptr %57, align 8, !tbaa !9
  %588 = add nsw i64 %587, 1
  store i64 %588, ptr %57, align 8, !tbaa !9
  br label %548, !llvm.loop !16

589:                                              ; preds = %548
  %590 = load float, ptr %65, align 4, !tbaa !11
  %591 = load float, ptr %62, align 4, !tbaa !11
  %592 = fsub float %590, %591
  store float %592, ptr %96, align 4, !tbaa !11
  %593 = load i64, ptr %92, align 8, !tbaa !9
  %594 = icmp eq i64 %593, 1
  br i1 %594, label %595, label %598

595:                                              ; preds = %589
  %596 = load i64, ptr %91, align 8, !tbaa !9
  %597 = icmp ne i64 %596, 0
  br i1 %597, label %598, label %733

598:                                              ; preds = %595, %589
  store i64 0, ptr %61, align 8, !tbaa !9
  %599 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %599, ptr %53, align 8, !tbaa !9
  %600 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %600, ptr %57, align 8, !tbaa !9
  br label %601

601:                                              ; preds = %617, %598
  %602 = load i64, ptr %57, align 8, !tbaa !9
  %603 = load i64, ptr %53, align 8, !tbaa !9
  %604 = icmp sle i64 %602, %603
  br i1 %604, label %605, label %620

605:                                              ; preds = %601
  %606 = load ptr, ptr %45, align 8, !tbaa !5
  %607 = load i64, ptr %57, align 8, !tbaa !9
  %608 = getelementptr inbounds i64, ptr %606, i64 %607
  %609 = load i64, ptr %608, align 8, !tbaa !9
  %610 = load i64, ptr %76, align 8, !tbaa !9
  %611 = icmp eq i64 %609, %610
  br i1 %611, label %612, label %615

612:                                              ; preds = %605
  %613 = load i64, ptr %61, align 8, !tbaa !9
  %614 = add nsw i64 %613, 1
  store i64 %614, ptr %61, align 8, !tbaa !9
  br label %616

615:                                              ; preds = %605
  br label %621

616:                                              ; preds = %612
  br label %617

617:                                              ; preds = %616
  %618 = load i64, ptr %57, align 8, !tbaa !9
  %619 = add nsw i64 %618, 1
  store i64 %619, ptr %57, align 8, !tbaa !9
  br label %601, !llvm.loop !17

620:                                              ; preds = %601
  br label %621

621:                                              ; preds = %620, %615
  %622 = load i64, ptr %61, align 8, !tbaa !9
  %623 = icmp eq i64 %622, 0
  br i1 %623, label %624, label %630

624:                                              ; preds = %621
  %625 = load ptr, ptr %34, align 8, !tbaa !5
  %626 = load i64, ptr %75, align 8, !tbaa !9
  %627 = getelementptr inbounds float, ptr %625, i64 %626
  store float 0.000000e+00, ptr %627, align 4, !tbaa !11
  %628 = load i64, ptr %75, align 8, !tbaa !9
  %629 = add nsw i64 %628, 1
  store i64 %629, ptr %90, align 8, !tbaa !9
  br label %2032

630:                                              ; preds = %621
  %631 = load i64, ptr %61, align 8, !tbaa !9
  %632 = sitofp i64 %631 to float
  %633 = load i64, ptr %63, align 8, !tbaa !9
  %634 = sitofp i64 %633 to float
  %635 = fmul float %634, 5.000000e-01
  %636 = fcmp ogt float %632, %635
  br i1 %636, label %637, label %641

637:                                              ; preds = %630
  %638 = load i64, ptr %91, align 8, !tbaa !9
  %639 = icmp ne i64 %638, 0
  %640 = xor i1 %639, true
  br label %641

641:                                              ; preds = %637, %630
  %642 = phi i1 [ false, %630 ], [ %640, %637 ]
  %643 = zext i1 %642 to i32
  %644 = sext i32 %643 to i64
  store i64 %644, ptr %97, align 8, !tbaa !9
  %645 = load i64, ptr %94, align 8, !tbaa !9
  %646 = load i64, ptr %61, align 8, !tbaa !9
  %647 = add nsw i64 %645, %646
  %648 = sub nsw i64 %647, 1
  store i64 %648, ptr %81, align 8, !tbaa !9
  store float 0.000000e+00, ptr %87, align 4, !tbaa !11
  %649 = load i64, ptr %81, align 8, !tbaa !9
  %650 = sub nsw i64 %649, 1
  store i64 %650, ptr %53, align 8, !tbaa !9
  %651 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %651, ptr %57, align 8, !tbaa !9
  br label %652

652:                                              ; preds = %692, %641
  %653 = load i64, ptr %57, align 8, !tbaa !9
  %654 = load i64, ptr %53, align 8, !tbaa !9
  %655 = icmp sle i64 %653, %654
  br i1 %655, label %656, label %695

656:                                              ; preds = %652
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  %657 = load ptr, ptr %42, align 8, !tbaa !5
  %658 = load i64, ptr %57, align 8, !tbaa !9
  %659 = add nsw i64 %658, 1
  %660 = getelementptr inbounds float, ptr %657, i64 %659
  %661 = load float, ptr %660, align 4, !tbaa !11
  %662 = load ptr, ptr %43, align 8, !tbaa !5
  %663 = load i64, ptr %57, align 8, !tbaa !9
  %664 = add nsw i64 %663, 1
  %665 = getelementptr inbounds float, ptr %662, i64 %664
  %666 = load float, ptr %665, align 4, !tbaa !11
  %667 = fsub float %661, %666
  %668 = load ptr, ptr %42, align 8, !tbaa !5
  %669 = load i64, ptr %57, align 8, !tbaa !9
  %670 = getelementptr inbounds float, ptr %668, i64 %669
  %671 = load float, ptr %670, align 4, !tbaa !11
  %672 = load ptr, ptr %43, align 8, !tbaa !5
  %673 = load i64, ptr %57, align 8, !tbaa !9
  %674 = getelementptr inbounds float, ptr %672, i64 %673
  %675 = load float, ptr %674, align 4, !tbaa !11
  %676 = fadd float %671, %675
  %677 = fsub float %667, %676
  store float %677, ptr %55, align 4, !tbaa !11
  %678 = load float, ptr %54, align 4, !tbaa !11
  %679 = load float, ptr %55, align 4, !tbaa !11
  %680 = fcmp oge float %678, %679
  br i1 %680, label %681, label %683

681:                                              ; preds = %656
  %682 = load float, ptr %54, align 4, !tbaa !11
  br label %685

683:                                              ; preds = %656
  %684 = load float, ptr %55, align 4, !tbaa !11
  br label %685

685:                                              ; preds = %683, %681
  %686 = phi float [ %682, %681 ], [ %684, %683 ]
  %687 = fpext float %686 to double
  %688 = fptrunc double %687 to float
  %689 = load ptr, ptr %44, align 8, !tbaa !5
  %690 = load i64, ptr %57, align 8, !tbaa !9
  %691 = getelementptr inbounds float, ptr %689, i64 %690
  store float %688, ptr %691, align 4, !tbaa !11
  br label %692

692:                                              ; preds = %685
  %693 = load i64, ptr %57, align 8, !tbaa !9
  %694 = add nsw i64 %693, 1
  store i64 %694, ptr %57, align 8, !tbaa !9
  br label %652, !llvm.loop !18

695:                                              ; preds = %652
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  %696 = load ptr, ptr %30, align 8, !tbaa !5
  %697 = load float, ptr %696, align 4, !tbaa !11
  %698 = load float, ptr %87, align 4, !tbaa !11
  %699 = fsub float %697, %698
  %700 = load ptr, ptr %42, align 8, !tbaa !5
  %701 = load i64, ptr %81, align 8, !tbaa !9
  %702 = getelementptr inbounds float, ptr %700, i64 %701
  %703 = load float, ptr %702, align 4, !tbaa !11
  %704 = load ptr, ptr %43, align 8, !tbaa !5
  %705 = load i64, ptr %81, align 8, !tbaa !9
  %706 = getelementptr inbounds float, ptr %704, i64 %705
  %707 = load float, ptr %706, align 4, !tbaa !11
  %708 = fadd float %703, %707
  %709 = fsub float %699, %708
  store float %709, ptr %55, align 4, !tbaa !11
  %710 = load float, ptr %54, align 4, !tbaa !11
  %711 = load float, ptr %55, align 4, !tbaa !11
  %712 = fcmp oge float %710, %711
  br i1 %712, label %713, label %715

713:                                              ; preds = %695
  %714 = load float, ptr %54, align 4, !tbaa !11
  br label %717

715:                                              ; preds = %695
  %716 = load float, ptr %55, align 4, !tbaa !11
  br label %717

717:                                              ; preds = %715, %713
  %718 = phi float [ %714, %713 ], [ %716, %715 ]
  %719 = fpext float %718 to double
  %720 = fptrunc double %719 to float
  %721 = load ptr, ptr %44, align 8, !tbaa !5
  %722 = load i64, ptr %81, align 8, !tbaa !9
  %723 = getelementptr inbounds float, ptr %721, i64 %722
  store float %720, ptr %723, align 4, !tbaa !11
  %724 = load ptr, ptr %46, align 8, !tbaa !5
  %725 = load i64, ptr %94, align 8, !tbaa !9
  %726 = getelementptr inbounds i64, ptr %724, i64 %725
  %727 = load i64, ptr %726, align 8, !tbaa !9
  store i64 %727, ptr %78, align 8, !tbaa !9
  %728 = load ptr, ptr %46, align 8, !tbaa !5
  %729 = load i64, ptr %81, align 8, !tbaa !9
  %730 = getelementptr inbounds i64, ptr %728, i64 %729
  %731 = load i64, ptr %730, align 8, !tbaa !9
  store i64 %731, ptr %83, align 8, !tbaa !9
  br label %732

732:                                              ; preds = %717
  br label %733

733:                                              ; preds = %732, %595
  %734 = load i64, ptr %92, align 8, !tbaa !9
  %735 = icmp eq i64 %734, 1
  br i1 %735, label %736, label %739

736:                                              ; preds = %733
  %737 = load i64, ptr %91, align 8, !tbaa !9
  %738 = icmp ne i64 %737, 0
  br i1 %738, label %739, label %742

739:                                              ; preds = %736, %733
  %740 = load i64, ptr %97, align 8, !tbaa !9
  %741 = icmp ne i64 %740, 0
  br i1 %741, label %742, label %841

742:                                              ; preds = %739, %736
  %743 = load ptr, ptr %33, align 8, !tbaa !5
  %744 = load i64, ptr %90, align 8, !tbaa !9
  %745 = getelementptr inbounds float, ptr %743, i64 %744
  %746 = load ptr, ptr %35, align 8, !tbaa !5
  %747 = load i64, ptr %90, align 8, !tbaa !9
  %748 = getelementptr inbounds float, ptr %746, i64 %747
  %749 = load ptr, ptr %48, align 8, !tbaa !5
  %750 = call i32 @slarrk_(ptr noundef %63, ptr noundef @c__1, ptr noundef %62, ptr noundef %65, ptr noundef %745, ptr noundef %748, ptr noundef %749, ptr noundef %70, ptr noundef %69, ptr noundef %73, ptr noundef %88)
  %751 = load i64, ptr %88, align 8, !tbaa !9
  %752 = icmp ne i64 %751, 0
  br i1 %752, label %753, label %755

753:                                              ; preds = %742
  %754 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -1, ptr %754, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %103, align 4
  br label %2037

755:                                              ; preds = %742
  %756 = load float, ptr %62, align 4, !tbaa !11
  store float %756, ptr %55, align 4, !tbaa !11
  %757 = load float, ptr %69, align 4, !tbaa !11
  %758 = load float, ptr %73, align 4, !tbaa !11
  %759 = fsub float %757, %758
  %760 = fpext float %759 to double
  %761 = load float, ptr %67, align 4, !tbaa !11
  %762 = fmul float %761, 1.000000e+02
  %763 = fpext float %762 to double
  %764 = load float, ptr %69, align 4, !tbaa !11
  %765 = load float, ptr %73, align 4, !tbaa !11
  %766 = fsub float %764, %765
  store float %766, ptr %54, align 4, !tbaa !11
  %767 = load float, ptr %54, align 4, !tbaa !11
  %768 = fcmp oge float %767, 0.000000e+00
  br i1 %768, label %769, label %771

769:                                              ; preds = %755
  %770 = load float, ptr %54, align 4, !tbaa !11
  br label %774

771:                                              ; preds = %755
  %772 = load float, ptr %54, align 4, !tbaa !11
  %773 = fneg float %772
  br label %774

774:                                              ; preds = %771, %769
  %775 = phi float [ %770, %769 ], [ %773, %771 ]
  %776 = fpext float %775 to double
  %777 = fneg double %763
  %778 = call double @llvm.fmuladd.f64(double %777, double %776, double %760)
  %779 = fptrunc double %778 to float
  store float %779, ptr %56, align 4, !tbaa !11
  %780 = load float, ptr %55, align 4, !tbaa !11
  %781 = load float, ptr %56, align 4, !tbaa !11
  %782 = fcmp oge float %780, %781
  br i1 %782, label %783, label %785

783:                                              ; preds = %774
  %784 = load float, ptr %55, align 4, !tbaa !11
  br label %787

785:                                              ; preds = %774
  %786 = load float, ptr %56, align 4, !tbaa !11
  br label %787

787:                                              ; preds = %785, %783
  %788 = phi float [ %784, %783 ], [ %786, %785 ]
  %789 = fpext float %788 to double
  %790 = fptrunc double %789 to float
  store float %790, ptr %99, align 4, !tbaa !11
  %791 = load ptr, ptr %33, align 8, !tbaa !5
  %792 = load i64, ptr %90, align 8, !tbaa !9
  %793 = getelementptr inbounds float, ptr %791, i64 %792
  %794 = load ptr, ptr %35, align 8, !tbaa !5
  %795 = load i64, ptr %90, align 8, !tbaa !9
  %796 = getelementptr inbounds float, ptr %794, i64 %795
  %797 = load ptr, ptr %48, align 8, !tbaa !5
  %798 = call i32 @slarrk_(ptr noundef %63, ptr noundef %63, ptr noundef %62, ptr noundef %65, ptr noundef %793, ptr noundef %796, ptr noundef %797, ptr noundef %70, ptr noundef %69, ptr noundef %73, ptr noundef %88)
  %799 = load i64, ptr %88, align 8, !tbaa !9
  %800 = icmp ne i64 %799, 0
  br i1 %800, label %801, label %803

801:                                              ; preds = %787
  %802 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -1, ptr %802, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %103, align 4
  br label %2037

803:                                              ; preds = %787
  %804 = load float, ptr %65, align 4, !tbaa !11
  store float %804, ptr %55, align 4, !tbaa !11
  %805 = load float, ptr %69, align 4, !tbaa !11
  %806 = load float, ptr %73, align 4, !tbaa !11
  %807 = fadd float %805, %806
  %808 = fpext float %807 to double
  %809 = load float, ptr %67, align 4, !tbaa !11
  %810 = fmul float %809, 1.000000e+02
  %811 = fpext float %810 to double
  %812 = load float, ptr %69, align 4, !tbaa !11
  %813 = load float, ptr %73, align 4, !tbaa !11
  %814 = fadd float %812, %813
  store float %814, ptr %54, align 4, !tbaa !11
  %815 = load float, ptr %54, align 4, !tbaa !11
  %816 = fcmp oge float %815, 0.000000e+00
  br i1 %816, label %817, label %819

817:                                              ; preds = %803
  %818 = load float, ptr %54, align 4, !tbaa !11
  br label %822

819:                                              ; preds = %803
  %820 = load float, ptr %54, align 4, !tbaa !11
  %821 = fneg float %820
  br label %822

822:                                              ; preds = %819, %817
  %823 = phi float [ %818, %817 ], [ %821, %819 ]
  %824 = fpext float %823 to double
  %825 = call double @llvm.fmuladd.f64(double %811, double %824, double %808)
  %826 = fptrunc double %825 to float
  store float %826, ptr %56, align 4, !tbaa !11
  %827 = load float, ptr %55, align 4, !tbaa !11
  %828 = load float, ptr %56, align 4, !tbaa !11
  %829 = fcmp ole float %827, %828
  br i1 %829, label %830, label %832

830:                                              ; preds = %822
  %831 = load float, ptr %55, align 4, !tbaa !11
  br label %834

832:                                              ; preds = %822
  %833 = load float, ptr %56, align 4, !tbaa !11
  br label %834

834:                                              ; preds = %832, %830
  %835 = phi float [ %831, %830 ], [ %833, %832 ]
  %836 = fpext float %835 to double
  %837 = fptrunc double %836 to float
  store float %837, ptr %100, align 4, !tbaa !11
  %838 = load float, ptr %100, align 4, !tbaa !11
  %839 = load float, ptr %99, align 4, !tbaa !11
  %840 = fsub float %838, %839
  store float %840, ptr %96, align 4, !tbaa !11
  br label %935

841:                                              ; preds = %739
  %842 = load float, ptr %62, align 4, !tbaa !11
  store float %842, ptr %55, align 4, !tbaa !11
  %843 = load ptr, ptr %42, align 8, !tbaa !5
  %844 = load i64, ptr %94, align 8, !tbaa !9
  %845 = getelementptr inbounds float, ptr %843, i64 %844
  %846 = load float, ptr %845, align 4, !tbaa !11
  %847 = load ptr, ptr %43, align 8, !tbaa !5
  %848 = load i64, ptr %94, align 8, !tbaa !9
  %849 = getelementptr inbounds float, ptr %847, i64 %848
  %850 = load float, ptr %849, align 4, !tbaa !11
  %851 = fsub float %846, %850
  %852 = fpext float %851 to double
  %853 = load float, ptr %67, align 4, !tbaa !11
  %854 = fmul float %853, 1.000000e+02
  %855 = fpext float %854 to double
  %856 = load ptr, ptr %42, align 8, !tbaa !5
  %857 = load i64, ptr %94, align 8, !tbaa !9
  %858 = getelementptr inbounds float, ptr %856, i64 %857
  %859 = load float, ptr %858, align 4, !tbaa !11
  %860 = load ptr, ptr %43, align 8, !tbaa !5
  %861 = load i64, ptr %94, align 8, !tbaa !9
  %862 = getelementptr inbounds float, ptr %860, i64 %861
  %863 = load float, ptr %862, align 4, !tbaa !11
  %864 = fsub float %859, %863
  store float %864, ptr %54, align 4, !tbaa !11
  %865 = load float, ptr %54, align 4, !tbaa !11
  %866 = fcmp oge float %865, 0.000000e+00
  br i1 %866, label %867, label %869

867:                                              ; preds = %841
  %868 = load float, ptr %54, align 4, !tbaa !11
  br label %872

869:                                              ; preds = %841
  %870 = load float, ptr %54, align 4, !tbaa !11
  %871 = fneg float %870
  br label %872

872:                                              ; preds = %869, %867
  %873 = phi float [ %868, %867 ], [ %871, %869 ]
  %874 = fpext float %873 to double
  %875 = fneg double %855
  %876 = call double @llvm.fmuladd.f64(double %875, double %874, double %852)
  %877 = fptrunc double %876 to float
  store float %877, ptr %56, align 4, !tbaa !11
  %878 = load float, ptr %55, align 4, !tbaa !11
  %879 = load float, ptr %56, align 4, !tbaa !11
  %880 = fcmp oge float %878, %879
  br i1 %880, label %881, label %883

881:                                              ; preds = %872
  %882 = load float, ptr %55, align 4, !tbaa !11
  br label %885

883:                                              ; preds = %872
  %884 = load float, ptr %56, align 4, !tbaa !11
  br label %885

885:                                              ; preds = %883, %881
  %886 = phi float [ %882, %881 ], [ %884, %883 ]
  %887 = fpext float %886 to double
  %888 = fptrunc double %887 to float
  store float %888, ptr %99, align 4, !tbaa !11
  %889 = load float, ptr %65, align 4, !tbaa !11
  store float %889, ptr %55, align 4, !tbaa !11
  %890 = load ptr, ptr %42, align 8, !tbaa !5
  %891 = load i64, ptr %81, align 8, !tbaa !9
  %892 = getelementptr inbounds float, ptr %890, i64 %891
  %893 = load float, ptr %892, align 4, !tbaa !11
  %894 = load ptr, ptr %43, align 8, !tbaa !5
  %895 = load i64, ptr %81, align 8, !tbaa !9
  %896 = getelementptr inbounds float, ptr %894, i64 %895
  %897 = load float, ptr %896, align 4, !tbaa !11
  %898 = fadd float %893, %897
  %899 = fpext float %898 to double
  %900 = load float, ptr %67, align 4, !tbaa !11
  %901 = fmul float %900, 1.000000e+02
  %902 = fpext float %901 to double
  %903 = load ptr, ptr %42, align 8, !tbaa !5
  %904 = load i64, ptr %81, align 8, !tbaa !9
  %905 = getelementptr inbounds float, ptr %903, i64 %904
  %906 = load float, ptr %905, align 4, !tbaa !11
  %907 = load ptr, ptr %43, align 8, !tbaa !5
  %908 = load i64, ptr %81, align 8, !tbaa !9
  %909 = getelementptr inbounds float, ptr %907, i64 %908
  %910 = load float, ptr %909, align 4, !tbaa !11
  %911 = fadd float %906, %910
  store float %911, ptr %54, align 4, !tbaa !11
  %912 = load float, ptr %54, align 4, !tbaa !11
  %913 = fcmp oge float %912, 0.000000e+00
  br i1 %913, label %914, label %916

914:                                              ; preds = %885
  %915 = load float, ptr %54, align 4, !tbaa !11
  br label %919

916:                                              ; preds = %885
  %917 = load float, ptr %54, align 4, !tbaa !11
  %918 = fneg float %917
  br label %919

919:                                              ; preds = %916, %914
  %920 = phi float [ %915, %914 ], [ %918, %916 ]
  %921 = fpext float %920 to double
  %922 = call double @llvm.fmuladd.f64(double %902, double %921, double %899)
  %923 = fptrunc double %922 to float
  store float %923, ptr %56, align 4, !tbaa !11
  %924 = load float, ptr %55, align 4, !tbaa !11
  %925 = load float, ptr %56, align 4, !tbaa !11
  %926 = fcmp ole float %924, %925
  br i1 %926, label %927, label %929

927:                                              ; preds = %919
  %928 = load float, ptr %55, align 4, !tbaa !11
  br label %931

929:                                              ; preds = %919
  %930 = load float, ptr %56, align 4, !tbaa !11
  br label %931

931:                                              ; preds = %929, %927
  %932 = phi float [ %928, %927 ], [ %930, %929 ]
  %933 = fpext float %932 to double
  %934 = fptrunc double %933 to float
  store float %934, ptr %100, align 4, !tbaa !11
  br label %935

935:                                              ; preds = %931, %834
  %936 = load i64, ptr %92, align 8, !tbaa !9
  %937 = icmp eq i64 %936, 1
  br i1 %937, label %938, label %955

938:                                              ; preds = %935
  %939 = load i64, ptr %91, align 8, !tbaa !9
  %940 = icmp ne i64 %939, 0
  br i1 %940, label %955, label %941

941:                                              ; preds = %938
  store i64 1, ptr %97, align 8, !tbaa !9
  store i64 1, ptr %78, align 8, !tbaa !9
  %942 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %942, ptr %83, align 8, !tbaa !9
  %943 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %943, ptr %61, align 8, !tbaa !9
  %944 = load i64, ptr %94, align 8, !tbaa !9
  %945 = load i64, ptr %61, align 8, !tbaa !9
  %946 = add nsw i64 %944, %945
  %947 = sub nsw i64 %946, 1
  store i64 %947, ptr %81, align 8, !tbaa !9
  %948 = load float, ptr %99, align 4, !tbaa !11
  %949 = load float, ptr %96, align 4, !tbaa !11
  %950 = call float @llvm.fmuladd.f32(float %949, float 2.500000e-01, float %948)
  store float %950, ptr %59, align 4, !tbaa !11
  %951 = load float, ptr %100, align 4, !tbaa !11
  %952 = load float, ptr %96, align 4, !tbaa !11
  %953 = fneg float %952
  %954 = call float @llvm.fmuladd.f32(float %953, float 2.500000e-01, float %951)
  store float %954, ptr %60, align 4, !tbaa !11
  br label %1028

955:                                              ; preds = %938, %935
  %956 = load i64, ptr %97, align 8, !tbaa !9
  %957 = icmp ne i64 %956, 0
  br i1 %957, label %958, label %966

958:                                              ; preds = %955
  %959 = load float, ptr %99, align 4, !tbaa !11
  %960 = load float, ptr %96, align 4, !tbaa !11
  %961 = call float @llvm.fmuladd.f32(float %960, float 2.500000e-01, float %959)
  store float %961, ptr %59, align 4, !tbaa !11
  %962 = load float, ptr %100, align 4, !tbaa !11
  %963 = load float, ptr %96, align 4, !tbaa !11
  %964 = fneg float %963
  %965 = call float @llvm.fmuladd.f32(float %964, float 2.500000e-01, float %962)
  store float %965, ptr %60, align 4, !tbaa !11
  br label %1027

966:                                              ; preds = %955
  %967 = load float, ptr %100, align 4, !tbaa !11
  %968 = load ptr, ptr %30, align 8, !tbaa !5
  %969 = load float, ptr %968, align 4, !tbaa !11
  %970 = fcmp ole float %967, %969
  br i1 %970, label %971, label %973

971:                                              ; preds = %966
  %972 = load float, ptr %100, align 4, !tbaa !11
  br label %976

973:                                              ; preds = %966
  %974 = load ptr, ptr %30, align 8, !tbaa !5
  %975 = load float, ptr %974, align 4, !tbaa !11
  br label %976

976:                                              ; preds = %973, %971
  %977 = phi float [ %972, %971 ], [ %975, %973 ]
  %978 = fpext float %977 to double
  %979 = load float, ptr %99, align 4, !tbaa !11
  %980 = load ptr, ptr %29, align 8, !tbaa !5
  %981 = load float, ptr %980, align 4, !tbaa !11
  %982 = fcmp oge float %979, %981
  br i1 %982, label %983, label %985

983:                                              ; preds = %976
  %984 = load float, ptr %99, align 4, !tbaa !11
  br label %988

985:                                              ; preds = %976
  %986 = load ptr, ptr %29, align 8, !tbaa !5
  %987 = load float, ptr %986, align 4, !tbaa !11
  br label %988

988:                                              ; preds = %985, %983
  %989 = phi float [ %984, %983 ], [ %987, %985 ]
  %990 = fpext float %989 to double
  %991 = fsub double %978, %990
  %992 = fptrunc double %991 to float
  store float %992, ptr %69, align 4, !tbaa !11
  %993 = load float, ptr %99, align 4, !tbaa !11
  %994 = load ptr, ptr %29, align 8, !tbaa !5
  %995 = load float, ptr %994, align 4, !tbaa !11
  %996 = fcmp oge float %993, %995
  br i1 %996, label %997, label %999

997:                                              ; preds = %988
  %998 = load float, ptr %99, align 4, !tbaa !11
  br label %1002

999:                                              ; preds = %988
  %1000 = load ptr, ptr %29, align 8, !tbaa !5
  %1001 = load float, ptr %1000, align 4, !tbaa !11
  br label %1002

1002:                                             ; preds = %999, %997
  %1003 = phi float [ %998, %997 ], [ %1001, %999 ]
  %1004 = fpext float %1003 to double
  %1005 = load float, ptr %69, align 4, !tbaa !11
  %1006 = fmul float %1005, 2.500000e-01
  %1007 = fpext float %1006 to double
  %1008 = fadd double %1004, %1007
  %1009 = fptrunc double %1008 to float
  store float %1009, ptr %59, align 4, !tbaa !11
  %1010 = load float, ptr %100, align 4, !tbaa !11
  %1011 = load ptr, ptr %30, align 8, !tbaa !5
  %1012 = load float, ptr %1011, align 4, !tbaa !11
  %1013 = fcmp ole float %1010, %1012
  br i1 %1013, label %1014, label %1016

1014:                                             ; preds = %1002
  %1015 = load float, ptr %100, align 4, !tbaa !11
  br label %1019

1016:                                             ; preds = %1002
  %1017 = load ptr, ptr %30, align 8, !tbaa !5
  %1018 = load float, ptr %1017, align 4, !tbaa !11
  br label %1019

1019:                                             ; preds = %1016, %1014
  %1020 = phi float [ %1015, %1014 ], [ %1018, %1016 ]
  %1021 = fpext float %1020 to double
  %1022 = load float, ptr %69, align 4, !tbaa !11
  %1023 = fmul float %1022, 2.500000e-01
  %1024 = fpext float %1023 to double
  %1025 = fsub double %1021, %1024
  %1026 = fptrunc double %1025 to float
  store float %1026, ptr %60, align 4, !tbaa !11
  br label %1027

1027:                                             ; preds = %1019, %958
  br label %1028

1028:                                             ; preds = %1027, %941
  %1029 = load i64, ptr %61, align 8, !tbaa !9
  %1030 = icmp sgt i64 %1029, 1
  br i1 %1030, label %1031, label %1040

1031:                                             ; preds = %1028
  %1032 = load ptr, ptr %33, align 8, !tbaa !5
  %1033 = load i64, ptr %90, align 8, !tbaa !9
  %1034 = getelementptr inbounds float, ptr %1032, i64 %1033
  %1035 = load ptr, ptr %34, align 8, !tbaa !5
  %1036 = load i64, ptr %90, align 8, !tbaa !9
  %1037 = getelementptr inbounds float, ptr %1035, i64 %1036
  %1038 = load ptr, ptr %48, align 8, !tbaa !5
  %1039 = call i32 @slarrc_(ptr noundef @.str.6, ptr noundef %63, ptr noundef %59, ptr noundef %60, ptr noundef %1034, ptr noundef %1037, ptr noundef %1038, ptr noundef %66, ptr noundef %71, ptr noundef %72, ptr noundef %88)
  br label %1040

1040:                                             ; preds = %1031, %1028
  %1041 = load i64, ptr %61, align 8, !tbaa !9
  %1042 = icmp eq i64 %1041, 1
  br i1 %1042, label %1043, label %1045

1043:                                             ; preds = %1040
  %1044 = load float, ptr %62, align 4, !tbaa !11
  store float %1044, ptr %87, align 4, !tbaa !11
  store float 1.000000e+00, ptr %93, align 4, !tbaa !11
  br label %1132

1045:                                             ; preds = %1040
  %1046 = load i64, ptr %71, align 8, !tbaa !9
  %1047 = load i64, ptr %78, align 8, !tbaa !9
  %1048 = sub nsw i64 %1046, %1047
  %1049 = load i64, ptr %83, align 8, !tbaa !9
  %1050 = load i64, ptr %72, align 8, !tbaa !9
  %1051 = sub nsw i64 %1049, %1050
  %1052 = icmp sge i64 %1048, %1051
  br i1 %1052, label %1053, label %1092

1053:                                             ; preds = %1045
  %1054 = load i64, ptr %92, align 8, !tbaa !9
  %1055 = icmp eq i64 %1054, 1
  br i1 %1055, label %1056, label %1071

1056:                                             ; preds = %1053
  %1057 = load i64, ptr %91, align 8, !tbaa !9
  %1058 = icmp ne i64 %1057, 0
  br i1 %1058, label %1071, label %1059

1059:                                             ; preds = %1056
  %1060 = load float, ptr %99, align 4, !tbaa !11
  %1061 = load float, ptr %62, align 4, !tbaa !11
  %1062 = fcmp oge float %1060, %1061
  br i1 %1062, label %1063, label %1065

1063:                                             ; preds = %1059
  %1064 = load float, ptr %99, align 4, !tbaa !11
  br label %1067

1065:                                             ; preds = %1059
  %1066 = load float, ptr %62, align 4, !tbaa !11
  br label %1067

1067:                                             ; preds = %1065, %1063
  %1068 = phi float [ %1064, %1063 ], [ %1066, %1065 ]
  %1069 = fpext float %1068 to double
  %1070 = fptrunc double %1069 to float
  store float %1070, ptr %87, align 4, !tbaa !11
  br label %1091

1071:                                             ; preds = %1056, %1053
  %1072 = load i64, ptr %97, align 8, !tbaa !9
  %1073 = icmp ne i64 %1072, 0
  br i1 %1073, label %1074, label %1076

1074:                                             ; preds = %1071
  %1075 = load float, ptr %99, align 4, !tbaa !11
  store float %1075, ptr %87, align 4, !tbaa !11
  br label %1090

1076:                                             ; preds = %1071
  %1077 = load float, ptr %99, align 4, !tbaa !11
  %1078 = load ptr, ptr %29, align 8, !tbaa !5
  %1079 = load float, ptr %1078, align 4, !tbaa !11
  %1080 = fcmp oge float %1077, %1079
  br i1 %1080, label %1081, label %1083

1081:                                             ; preds = %1076
  %1082 = load float, ptr %99, align 4, !tbaa !11
  br label %1086

1083:                                             ; preds = %1076
  %1084 = load ptr, ptr %29, align 8, !tbaa !5
  %1085 = load float, ptr %1084, align 4, !tbaa !11
  br label %1086

1086:                                             ; preds = %1083, %1081
  %1087 = phi float [ %1082, %1081 ], [ %1085, %1083 ]
  %1088 = fpext float %1087 to double
  %1089 = fptrunc double %1088 to float
  store float %1089, ptr %87, align 4, !tbaa !11
  br label %1090

1090:                                             ; preds = %1086, %1074
  br label %1091

1091:                                             ; preds = %1090, %1067
  store float 1.000000e+00, ptr %93, align 4, !tbaa !11
  br label %1131

1092:                                             ; preds = %1045
  %1093 = load i64, ptr %92, align 8, !tbaa !9
  %1094 = icmp eq i64 %1093, 1
  br i1 %1094, label %1095, label %1110

1095:                                             ; preds = %1092
  %1096 = load i64, ptr %91, align 8, !tbaa !9
  %1097 = icmp ne i64 %1096, 0
  br i1 %1097, label %1110, label %1098

1098:                                             ; preds = %1095
  %1099 = load float, ptr %100, align 4, !tbaa !11
  %1100 = load float, ptr %65, align 4, !tbaa !11
  %1101 = fcmp ole float %1099, %1100
  br i1 %1101, label %1102, label %1104

1102:                                             ; preds = %1098
  %1103 = load float, ptr %100, align 4, !tbaa !11
  br label %1106

1104:                                             ; preds = %1098
  %1105 = load float, ptr %65, align 4, !tbaa !11
  br label %1106

1106:                                             ; preds = %1104, %1102
  %1107 = phi float [ %1103, %1102 ], [ %1105, %1104 ]
  %1108 = fpext float %1107 to double
  %1109 = fptrunc double %1108 to float
  store float %1109, ptr %87, align 4, !tbaa !11
  br label %1130

1110:                                             ; preds = %1095, %1092
  %1111 = load i64, ptr %97, align 8, !tbaa !9
  %1112 = icmp ne i64 %1111, 0
  br i1 %1112, label %1113, label %1115

1113:                                             ; preds = %1110
  %1114 = load float, ptr %100, align 4, !tbaa !11
  store float %1114, ptr %87, align 4, !tbaa !11
  br label %1129

1115:                                             ; preds = %1110
  %1116 = load float, ptr %100, align 4, !tbaa !11
  %1117 = load ptr, ptr %30, align 8, !tbaa !5
  %1118 = load float, ptr %1117, align 4, !tbaa !11
  %1119 = fcmp ole float %1116, %1118
  br i1 %1119, label %1120, label %1122

1120:                                             ; preds = %1115
  %1121 = load float, ptr %100, align 4, !tbaa !11
  br label %1125

1122:                                             ; preds = %1115
  %1123 = load ptr, ptr %30, align 8, !tbaa !5
  %1124 = load float, ptr %1123, align 4, !tbaa !11
  br label %1125

1125:                                             ; preds = %1122, %1120
  %1126 = phi float [ %1121, %1120 ], [ %1124, %1122 ]
  %1127 = fpext float %1126 to double
  %1128 = fptrunc double %1127 to float
  store float %1128, ptr %87, align 4, !tbaa !11
  br label %1129

1129:                                             ; preds = %1125, %1113
  br label %1130

1130:                                             ; preds = %1129, %1106
  store float -1.000000e+00, ptr %93, align 4, !tbaa !11
  br label %1131

1131:                                             ; preds = %1130, %1091
  br label %1132

1132:                                             ; preds = %1131, %1043
  %1133 = load i64, ptr %97, align 8, !tbaa !9
  %1134 = icmp ne i64 %1133, 0
  br i1 %1134, label %1135, label %1146

1135:                                             ; preds = %1132
  %1136 = load float, ptr %96, align 4, !tbaa !11
  %1137 = load float, ptr %67, align 4, !tbaa !11
  %1138 = fmul float %1136, %1137
  %1139 = load ptr, ptr %28, align 8, !tbaa !5
  %1140 = load i64, ptr %1139, align 8, !tbaa !9
  %1141 = sitofp i64 %1140 to float
  %1142 = load ptr, ptr %48, align 8, !tbaa !5
  %1143 = load float, ptr %1142, align 4, !tbaa !11
  %1144 = fmul float %1143, 2.000000e+00
  %1145 = call float @llvm.fmuladd.f32(float %1138, float %1141, float %1144)
  store float %1145, ptr %68, align 4, !tbaa !11
  br label %1262

1146:                                             ; preds = %1132
  %1147 = load i64, ptr %61, align 8, !tbaa !9
  %1148 = icmp sgt i64 %1147, 1
  br i1 %1148, label %1149, label %1256

1149:                                             ; preds = %1146
  %1150 = load ptr, ptr %42, align 8, !tbaa !5
  %1151 = load i64, ptr %81, align 8, !tbaa !9
  %1152 = getelementptr inbounds float, ptr %1150, i64 %1151
  %1153 = load float, ptr %1152, align 4, !tbaa !11
  %1154 = load ptr, ptr %43, align 8, !tbaa !5
  %1155 = load i64, ptr %81, align 8, !tbaa !9
  %1156 = getelementptr inbounds float, ptr %1154, i64 %1155
  %1157 = load float, ptr %1156, align 4, !tbaa !11
  %1158 = fadd float %1153, %1157
  %1159 = load ptr, ptr %42, align 8, !tbaa !5
  %1160 = load i64, ptr %94, align 8, !tbaa !9
  %1161 = getelementptr inbounds float, ptr %1159, i64 %1160
  %1162 = load float, ptr %1161, align 4, !tbaa !11
  %1163 = fsub float %1158, %1162
  %1164 = load ptr, ptr %43, align 8, !tbaa !5
  %1165 = load i64, ptr %94, align 8, !tbaa !9
  %1166 = getelementptr inbounds float, ptr %1164, i64 %1165
  %1167 = load float, ptr %1166, align 4, !tbaa !11
  %1168 = fsub float %1163, %1167
  store float %1168, ptr %98, align 4, !tbaa !11
  %1169 = load float, ptr %98, align 4, !tbaa !11
  %1170 = load i64, ptr %81, align 8, !tbaa !9
  %1171 = load i64, ptr %94, align 8, !tbaa !9
  %1172 = sub nsw i64 %1170, %1171
  %1173 = sitofp i64 %1172 to float
  %1174 = fdiv float %1169, %1173
  store float %1174, ptr %54, align 4, !tbaa !11
  %1175 = load float, ptr %54, align 4, !tbaa !11
  %1176 = fcmp oge float %1175, 0.000000e+00
  br i1 %1176, label %1177, label %1179

1177:                                             ; preds = %1149
  %1178 = load float, ptr %54, align 4, !tbaa !11
  br label %1182

1179:                                             ; preds = %1149
  %1180 = load float, ptr %54, align 4, !tbaa !11
  %1181 = fneg float %1180
  br label %1182

1182:                                             ; preds = %1179, %1177
  %1183 = phi float [ %1178, %1177 ], [ %1181, %1179 ]
  %1184 = fpext float %1183 to double
  %1185 = fptrunc double %1184 to float
  store float %1185, ptr %86, align 4, !tbaa !11
  %1186 = load float, ptr %93, align 4, !tbaa !11
  %1187 = fcmp oeq float %1186, 1.000000e+00
  br i1 %1187, label %1188, label %1221

1188:                                             ; preds = %1182
  %1189 = load ptr, ptr %44, align 8, !tbaa !5
  %1190 = load i64, ptr %94, align 8, !tbaa !9
  %1191 = getelementptr inbounds float, ptr %1189, i64 %1190
  %1192 = load float, ptr %1191, align 4, !tbaa !11
  store float %1192, ptr %54, align 4, !tbaa !11
  %1193 = load float, ptr %54, align 4, !tbaa !11
  %1194 = load float, ptr %86, align 4, !tbaa !11
  %1195 = fcmp oge float %1193, %1194
  br i1 %1195, label %1196, label %1198

1196:                                             ; preds = %1188
  %1197 = load float, ptr %54, align 4, !tbaa !11
  br label %1200

1198:                                             ; preds = %1188
  %1199 = load float, ptr %86, align 4, !tbaa !11
  br label %1200

1200:                                             ; preds = %1198, %1196
  %1201 = phi float [ %1197, %1196 ], [ %1199, %1198 ]
  %1202 = fpext float %1201 to double
  %1203 = fmul double %1202, 5.000000e-01
  %1204 = fptrunc double %1203 to float
  store float %1204, ptr %68, align 4, !tbaa !11
  %1205 = load float, ptr %68, align 4, !tbaa !11
  store float %1205, ptr %54, align 4, !tbaa !11
  %1206 = load ptr, ptr %43, align 8, !tbaa !5
  %1207 = load i64, ptr %94, align 8, !tbaa !9
  %1208 = getelementptr inbounds float, ptr %1206, i64 %1207
  %1209 = load float, ptr %1208, align 4, !tbaa !11
  store float %1209, ptr %55, align 4, !tbaa !11
  %1210 = load float, ptr %54, align 4, !tbaa !11
  %1211 = load float, ptr %55, align 4, !tbaa !11
  %1212 = fcmp oge float %1210, %1211
  br i1 %1212, label %1213, label %1215

1213:                                             ; preds = %1200
  %1214 = load float, ptr %54, align 4, !tbaa !11
  br label %1217

1215:                                             ; preds = %1200
  %1216 = load float, ptr %55, align 4, !tbaa !11
  br label %1217

1217:                                             ; preds = %1215, %1213
  %1218 = phi float [ %1214, %1213 ], [ %1216, %1215 ]
  %1219 = fpext float %1218 to double
  %1220 = fptrunc double %1219 to float
  store float %1220, ptr %68, align 4, !tbaa !11
  br label %1255

1221:                                             ; preds = %1182
  %1222 = load ptr, ptr %44, align 8, !tbaa !5
  %1223 = load i64, ptr %81, align 8, !tbaa !9
  %1224 = sub nsw i64 %1223, 1
  %1225 = getelementptr inbounds float, ptr %1222, i64 %1224
  %1226 = load float, ptr %1225, align 4, !tbaa !11
  store float %1226, ptr %54, align 4, !tbaa !11
  %1227 = load float, ptr %54, align 4, !tbaa !11
  %1228 = load float, ptr %86, align 4, !tbaa !11
  %1229 = fcmp oge float %1227, %1228
  br i1 %1229, label %1230, label %1232

1230:                                             ; preds = %1221
  %1231 = load float, ptr %54, align 4, !tbaa !11
  br label %1234

1232:                                             ; preds = %1221
  %1233 = load float, ptr %86, align 4, !tbaa !11
  br label %1234

1234:                                             ; preds = %1232, %1230
  %1235 = phi float [ %1231, %1230 ], [ %1233, %1232 ]
  %1236 = fpext float %1235 to double
  %1237 = fmul double %1236, 5.000000e-01
  %1238 = fptrunc double %1237 to float
  store float %1238, ptr %68, align 4, !tbaa !11
  %1239 = load float, ptr %68, align 4, !tbaa !11
  store float %1239, ptr %54, align 4, !tbaa !11
  %1240 = load ptr, ptr %43, align 8, !tbaa !5
  %1241 = load i64, ptr %81, align 8, !tbaa !9
  %1242 = getelementptr inbounds float, ptr %1240, i64 %1241
  %1243 = load float, ptr %1242, align 4, !tbaa !11
  store float %1243, ptr %55, align 4, !tbaa !11
  %1244 = load float, ptr %54, align 4, !tbaa !11
  %1245 = load float, ptr %55, align 4, !tbaa !11
  %1246 = fcmp oge float %1244, %1245
  br i1 %1246, label %1247, label %1249

1247:                                             ; preds = %1234
  %1248 = load float, ptr %54, align 4, !tbaa !11
  br label %1251

1249:                                             ; preds = %1234
  %1250 = load float, ptr %55, align 4, !tbaa !11
  br label %1251

1251:                                             ; preds = %1249, %1247
  %1252 = phi float [ %1248, %1247 ], [ %1250, %1249 ]
  %1253 = fpext float %1252 to double
  %1254 = fptrunc double %1253 to float
  store float %1254, ptr %68, align 4, !tbaa !11
  br label %1255

1255:                                             ; preds = %1251, %1217
  br label %1261

1256:                                             ; preds = %1146
  %1257 = load ptr, ptr %43, align 8, !tbaa !5
  %1258 = load i64, ptr %94, align 8, !tbaa !9
  %1259 = getelementptr inbounds float, ptr %1257, i64 %1258
  %1260 = load float, ptr %1259, align 4, !tbaa !11
  store float %1260, ptr %68, align 4, !tbaa !11
  br label %1261

1261:                                             ; preds = %1256, %1255
  br label %1262

1262:                                             ; preds = %1261, %1135
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %1263

1263:                                             ; preds = %1460, %1262
  %1264 = load i64, ptr %82, align 8, !tbaa !9
  %1265 = icmp sle i64 %1264, 6
  br i1 %1265, label %1266, label %1463

1266:                                             ; preds = %1263
  %1267 = load ptr, ptr %33, align 8, !tbaa !5
  %1268 = load i64, ptr %90, align 8, !tbaa !9
  %1269 = getelementptr inbounds float, ptr %1267, i64 %1268
  %1270 = load float, ptr %1269, align 4, !tbaa !11
  %1271 = load float, ptr %87, align 4, !tbaa !11
  %1272 = fsub float %1270, %1271
  store float %1272, ptr %102, align 4, !tbaa !11
  %1273 = load float, ptr %102, align 4, !tbaa !11
  %1274 = load ptr, ptr %49, align 8, !tbaa !5
  %1275 = getelementptr inbounds float, ptr %1274, i64 1
  store float %1273, ptr %1275, align 4, !tbaa !11
  %1276 = load ptr, ptr %49, align 8, !tbaa !5
  %1277 = getelementptr inbounds float, ptr %1276, i64 1
  %1278 = load float, ptr %1277, align 4, !tbaa !11
  %1279 = fcmp oge float %1278, 0.000000e+00
  br i1 %1279, label %1280, label %1284

1280:                                             ; preds = %1266
  %1281 = load ptr, ptr %49, align 8, !tbaa !5
  %1282 = getelementptr inbounds float, ptr %1281, i64 1
  %1283 = load float, ptr %1282, align 4, !tbaa !11
  br label %1289

1284:                                             ; preds = %1266
  %1285 = load ptr, ptr %49, align 8, !tbaa !5
  %1286 = getelementptr inbounds float, ptr %1285, i64 1
  %1287 = load float, ptr %1286, align 4, !tbaa !11
  %1288 = fneg float %1287
  br label %1289

1289:                                             ; preds = %1284, %1280
  %1290 = phi float [ %1283, %1280 ], [ %1288, %1284 ]
  %1291 = fpext float %1290 to double
  %1292 = fptrunc double %1291 to float
  store float %1292, ptr %79, align 4, !tbaa !11
  %1293 = load i64, ptr %90, align 8, !tbaa !9
  store i64 %1293, ptr %58, align 8, !tbaa !9
  %1294 = load i64, ptr %63, align 8, !tbaa !9
  %1295 = sub nsw i64 %1294, 1
  store i64 %1295, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1296

1296:                                             ; preds = %1374, %1289
  %1297 = load i64, ptr %57, align 8, !tbaa !9
  %1298 = load i64, ptr %53, align 8, !tbaa !9
  %1299 = icmp sle i64 %1297, %1298
  br i1 %1299, label %1300, label %1377

1300:                                             ; preds = %1296
  %1301 = load ptr, ptr %49, align 8, !tbaa !5
  %1302 = load i64, ptr %57, align 8, !tbaa !9
  %1303 = getelementptr inbounds float, ptr %1301, i64 %1302
  %1304 = load float, ptr %1303, align 4, !tbaa !11
  %1305 = fdiv float 1.000000e+00, %1304
  %1306 = load ptr, ptr %49, align 8, !tbaa !5
  %1307 = load i64, ptr %63, align 8, !tbaa !9
  %1308 = shl i64 %1307, 1
  %1309 = load i64, ptr %57, align 8, !tbaa !9
  %1310 = add nsw i64 %1308, %1309
  %1311 = getelementptr inbounds float, ptr %1306, i64 %1310
  store float %1305, ptr %1311, align 4, !tbaa !11
  %1312 = load ptr, ptr %34, align 8, !tbaa !5
  %1313 = load i64, ptr %58, align 8, !tbaa !9
  %1314 = getelementptr inbounds float, ptr %1312, i64 %1313
  %1315 = load float, ptr %1314, align 4, !tbaa !11
  %1316 = load ptr, ptr %49, align 8, !tbaa !5
  %1317 = load i64, ptr %63, align 8, !tbaa !9
  %1318 = shl i64 %1317, 1
  %1319 = load i64, ptr %57, align 8, !tbaa !9
  %1320 = add nsw i64 %1318, %1319
  %1321 = getelementptr inbounds float, ptr %1316, i64 %1320
  %1322 = load float, ptr %1321, align 4, !tbaa !11
  %1323 = fmul float %1315, %1322
  store float %1323, ptr %69, align 4, !tbaa !11
  %1324 = load float, ptr %69, align 4, !tbaa !11
  %1325 = load ptr, ptr %49, align 8, !tbaa !5
  %1326 = load i64, ptr %63, align 8, !tbaa !9
  %1327 = load i64, ptr %57, align 8, !tbaa !9
  %1328 = add nsw i64 %1326, %1327
  %1329 = getelementptr inbounds float, ptr %1325, i64 %1328
  store float %1324, ptr %1329, align 4, !tbaa !11
  %1330 = load ptr, ptr %33, align 8, !tbaa !5
  %1331 = load i64, ptr %58, align 8, !tbaa !9
  %1332 = add nsw i64 %1331, 1
  %1333 = getelementptr inbounds float, ptr %1330, i64 %1332
  %1334 = load float, ptr %1333, align 4, !tbaa !11
  %1335 = load float, ptr %87, align 4, !tbaa !11
  %1336 = fsub float %1334, %1335
  %1337 = load float, ptr %69, align 4, !tbaa !11
  %1338 = load ptr, ptr %34, align 8, !tbaa !5
  %1339 = load i64, ptr %58, align 8, !tbaa !9
  %1340 = getelementptr inbounds float, ptr %1338, i64 %1339
  %1341 = load float, ptr %1340, align 4, !tbaa !11
  %1342 = fneg float %1337
  %1343 = call float @llvm.fmuladd.f32(float %1342, float %1341, float %1336)
  store float %1343, ptr %102, align 4, !tbaa !11
  %1344 = load float, ptr %102, align 4, !tbaa !11
  %1345 = load ptr, ptr %49, align 8, !tbaa !5
  %1346 = load i64, ptr %57, align 8, !tbaa !9
  %1347 = add nsw i64 %1346, 1
  %1348 = getelementptr inbounds float, ptr %1345, i64 %1347
  store float %1344, ptr %1348, align 4, !tbaa !11
  %1349 = load float, ptr %79, align 4, !tbaa !11
  store float %1349, ptr %54, align 4, !tbaa !11
  %1350 = load float, ptr %102, align 4, !tbaa !11
  %1351 = fcmp oge float %1350, 0.000000e+00
  br i1 %1351, label %1352, label %1354

1352:                                             ; preds = %1300
  %1353 = load float, ptr %102, align 4, !tbaa !11
  br label %1357

1354:                                             ; preds = %1300
  %1355 = load float, ptr %102, align 4, !tbaa !11
  %1356 = fneg float %1355
  br label %1357

1357:                                             ; preds = %1354, %1352
  %1358 = phi float [ %1353, %1352 ], [ %1356, %1354 ]
  %1359 = fpext float %1358 to double
  %1360 = fptrunc double %1359 to float
  store float %1360, ptr %55, align 4, !tbaa !11
  %1361 = load float, ptr %54, align 4, !tbaa !11
  %1362 = load float, ptr %55, align 4, !tbaa !11
  %1363 = fcmp oge float %1361, %1362
  br i1 %1363, label %1364, label %1366

1364:                                             ; preds = %1357
  %1365 = load float, ptr %54, align 4, !tbaa !11
  br label %1368

1366:                                             ; preds = %1357
  %1367 = load float, ptr %55, align 4, !tbaa !11
  br label %1368

1368:                                             ; preds = %1366, %1364
  %1369 = phi float [ %1365, %1364 ], [ %1367, %1366 ]
  %1370 = fpext float %1369 to double
  %1371 = fptrunc double %1370 to float
  store float %1371, ptr %79, align 4, !tbaa !11
  %1372 = load i64, ptr %58, align 8, !tbaa !9
  %1373 = add nsw i64 %1372, 1
  store i64 %1373, ptr %58, align 8, !tbaa !9
  br label %1374

1374:                                             ; preds = %1368
  %1375 = load i64, ptr %57, align 8, !tbaa !9
  %1376 = add nsw i64 %1375, 1
  store i64 %1376, ptr %57, align 8, !tbaa !9
  br label %1296, !llvm.loop !19

1377:                                             ; preds = %1296
  %1378 = load float, ptr %79, align 4, !tbaa !11
  %1379 = load float, ptr %96, align 4, !tbaa !11
  %1380 = fmul float %1379, 6.400000e+01
  %1381 = fcmp ogt float %1378, %1380
  br i1 %1381, label %1382, label %1383

1382:                                             ; preds = %1377
  store i64 1, ptr %89, align 8, !tbaa !9
  br label %1384

1383:                                             ; preds = %1377
  store i64 0, ptr %89, align 8, !tbaa !9
  br label %1384

1384:                                             ; preds = %1383, %1382
  %1385 = load i64, ptr %97, align 8, !tbaa !9
  %1386 = icmp ne i64 %1385, 0
  br i1 %1386, label %1387, label %1411

1387:                                             ; preds = %1384
  %1388 = load i64, ptr %89, align 8, !tbaa !9
  %1389 = icmp ne i64 %1388, 0
  br i1 %1389, label %1411, label %1390

1390:                                             ; preds = %1387
  %1391 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %1391, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1392

1392:                                             ; preds = %1407, %1390
  %1393 = load i64, ptr %57, align 8, !tbaa !9
  %1394 = load i64, ptr %53, align 8, !tbaa !9
  %1395 = icmp sle i64 %1393, %1394
  br i1 %1395, label %1396, label %1410

1396:                                             ; preds = %1392
  %1397 = load float, ptr %93, align 4, !tbaa !11
  %1398 = load ptr, ptr %49, align 8, !tbaa !5
  %1399 = load i64, ptr %57, align 8, !tbaa !9
  %1400 = getelementptr inbounds float, ptr %1398, i64 %1399
  %1401 = load float, ptr %1400, align 4, !tbaa !11
  %1402 = fmul float %1397, %1401
  store float %1402, ptr %69, align 4, !tbaa !11
  %1403 = load float, ptr %69, align 4, !tbaa !11
  %1404 = fcmp olt float %1403, 0.000000e+00
  br i1 %1404, label %1405, label %1406

1405:                                             ; preds = %1396
  store i64 1, ptr %89, align 8, !tbaa !9
  br label %1406

1406:                                             ; preds = %1405, %1396
  br label %1407

1407:                                             ; preds = %1406
  %1408 = load i64, ptr %57, align 8, !tbaa !9
  %1409 = add nsw i64 %1408, 1
  store i64 %1409, ptr %57, align 8, !tbaa !9
  br label %1392, !llvm.loop !20

1410:                                             ; preds = %1392
  br label %1411

1411:                                             ; preds = %1410, %1387, %1384
  %1412 = load i64, ptr %89, align 8, !tbaa !9
  %1413 = icmp ne i64 %1412, 0
  br i1 %1413, label %1414, label %1458

1414:                                             ; preds = %1411
  %1415 = load i64, ptr %82, align 8, !tbaa !9
  %1416 = icmp eq i64 %1415, 5
  br i1 %1416, label %1417, label %1449

1417:                                             ; preds = %1414
  %1418 = load float, ptr %93, align 4, !tbaa !11
  %1419 = fcmp oeq float %1418, 1.000000e+00
  br i1 %1419, label %1420, label %1435

1420:                                             ; preds = %1417
  %1421 = load float, ptr %62, align 4, !tbaa !11
  %1422 = load float, ptr %96, align 4, !tbaa !11
  %1423 = fmul float %1422, 2.000000e+00
  %1424 = load float, ptr %67, align 4, !tbaa !11
  %1425 = fmul float %1423, %1424
  %1426 = load ptr, ptr %28, align 8, !tbaa !5
  %1427 = load i64, ptr %1426, align 8, !tbaa !9
  %1428 = sitofp i64 %1427 to float
  %1429 = fneg float %1425
  %1430 = call float @llvm.fmuladd.f32(float %1429, float %1428, float %1421)
  %1431 = load ptr, ptr %48, align 8, !tbaa !5
  %1432 = load float, ptr %1431, align 4, !tbaa !11
  %1433 = fneg float %1432
  %1434 = call float @llvm.fmuladd.f32(float %1433, float 4.000000e+00, float %1430)
  store float %1434, ptr %87, align 4, !tbaa !11
  br label %1448

1435:                                             ; preds = %1417
  %1436 = load float, ptr %65, align 4, !tbaa !11
  %1437 = load float, ptr %96, align 4, !tbaa !11
  %1438 = fmul float %1437, 2.000000e+00
  %1439 = load float, ptr %67, align 4, !tbaa !11
  %1440 = fmul float %1438, %1439
  %1441 = load ptr, ptr %28, align 8, !tbaa !5
  %1442 = load i64, ptr %1441, align 8, !tbaa !9
  %1443 = sitofp i64 %1442 to float
  %1444 = call float @llvm.fmuladd.f32(float %1440, float %1443, float %1436)
  %1445 = load ptr, ptr %48, align 8, !tbaa !5
  %1446 = load float, ptr %1445, align 4, !tbaa !11
  %1447 = call float @llvm.fmuladd.f32(float %1446, float 4.000000e+00, float %1444)
  store float %1447, ptr %87, align 4, !tbaa !11
  br label %1448

1448:                                             ; preds = %1435, %1420
  br label %1457

1449:                                             ; preds = %1414
  %1450 = load float, ptr %93, align 4, !tbaa !11
  %1451 = load float, ptr %68, align 4, !tbaa !11
  %1452 = load float, ptr %87, align 4, !tbaa !11
  %1453 = fneg float %1450
  %1454 = call float @llvm.fmuladd.f32(float %1453, float %1451, float %1452)
  store float %1454, ptr %87, align 4, !tbaa !11
  %1455 = load float, ptr %68, align 4, !tbaa !11
  %1456 = fmul float %1455, 2.000000e+00
  store float %1456, ptr %68, align 4, !tbaa !11
  br label %1457

1457:                                             ; preds = %1449, %1448
  br label %1459

1458:                                             ; preds = %1411
  br label %1465

1459:                                             ; preds = %1457
  br label %1460

1460:                                             ; preds = %1459
  %1461 = load i64, ptr %82, align 8, !tbaa !9
  %1462 = add nsw i64 %1461, 1
  store i64 %1462, ptr %82, align 8, !tbaa !9
  br label %1263, !llvm.loop !21

1463:                                             ; preds = %1263
  %1464 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 2, ptr %1464, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %103, align 4
  br label %2037

1465:                                             ; preds = %1458
  %1466 = load float, ptr %87, align 4, !tbaa !11
  %1467 = load ptr, ptr %34, align 8, !tbaa !5
  %1468 = load i64, ptr %75, align 8, !tbaa !9
  %1469 = getelementptr inbounds float, ptr %1467, i64 %1468
  store float %1466, ptr %1469, align 4, !tbaa !11
  %1470 = load ptr, ptr %49, align 8, !tbaa !5
  %1471 = getelementptr inbounds float, ptr %1470, i64 1
  %1472 = load ptr, ptr %33, align 8, !tbaa !5
  %1473 = load i64, ptr %90, align 8, !tbaa !9
  %1474 = getelementptr inbounds float, ptr %1472, i64 %1473
  %1475 = call i32 @f2c_scopy(ptr noundef %63, ptr noundef %1471, ptr noundef @c__1, ptr noundef %1474, ptr noundef @c__1)
  %1476 = load i64, ptr %63, align 8, !tbaa !9
  %1477 = sub nsw i64 %1476, 1
  store i64 %1477, ptr %53, align 8, !tbaa !9
  %1478 = load ptr, ptr %49, align 8, !tbaa !5
  %1479 = load i64, ptr %63, align 8, !tbaa !9
  %1480 = add nsw i64 %1479, 1
  %1481 = getelementptr inbounds float, ptr %1478, i64 %1480
  %1482 = load ptr, ptr %34, align 8, !tbaa !5
  %1483 = load i64, ptr %90, align 8, !tbaa !9
  %1484 = getelementptr inbounds float, ptr %1482, i64 %1483
  %1485 = call i32 @f2c_scopy(ptr noundef %53, ptr noundef %1481, ptr noundef @c__1, ptr noundef %1484, ptr noundef @c__1)
  %1486 = load i64, ptr %61, align 8, !tbaa !9
  %1487 = icmp sgt i64 %1486, 1
  br i1 %1487, label %1488, label %1562

1488:                                             ; preds = %1465
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1489

1489:                                             ; preds = %1496, %1488
  %1490 = load i64, ptr %57, align 8, !tbaa !9
  %1491 = icmp sle i64 %1490, 4
  br i1 %1491, label %1492, label %1499

1492:                                             ; preds = %1489
  %1493 = load i64, ptr %57, align 8, !tbaa !9
  %1494 = sub nsw i64 %1493, 1
  %1495 = getelementptr inbounds [4 x i64], ptr %85, i64 0, i64 %1494
  store i64 1, ptr %1495, align 8, !tbaa !9
  br label %1496

1496:                                             ; preds = %1492
  %1497 = load i64, ptr %57, align 8, !tbaa !9
  %1498 = add nsw i64 %1497, 1
  store i64 %1498, ptr %57, align 8, !tbaa !9
  br label %1489, !llvm.loop !22

1499:                                             ; preds = %1489
  %1500 = load i64, ptr %63, align 8, !tbaa !9
  %1501 = shl i64 %1500, 1
  %1502 = sub nsw i64 %1501, 1
  store i64 %1502, ptr %53, align 8, !tbaa !9
  %1503 = getelementptr inbounds [4 x i64], ptr %85, i64 0, i64 0
  %1504 = load ptr, ptr %49, align 8, !tbaa !5
  %1505 = getelementptr inbounds float, ptr %1504, i64 1
  %1506 = call i32 @slarnv_(ptr noundef @c__2, ptr noundef %1503, ptr noundef %53, ptr noundef %1505)
  %1507 = load i64, ptr %63, align 8, !tbaa !9
  %1508 = sub nsw i64 %1507, 1
  store i64 %1508, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1509

1509:                                             ; preds = %1546, %1499
  %1510 = load i64, ptr %57, align 8, !tbaa !9
  %1511 = load i64, ptr %53, align 8, !tbaa !9
  %1512 = icmp sle i64 %1510, %1511
  br i1 %1512, label %1513, label %1549

1513:                                             ; preds = %1509
  %1514 = load float, ptr %67, align 4, !tbaa !11
  %1515 = fmul float %1514, 4.000000e+00
  %1516 = load ptr, ptr %49, align 8, !tbaa !5
  %1517 = load i64, ptr %57, align 8, !tbaa !9
  %1518 = getelementptr inbounds float, ptr %1516, i64 %1517
  %1519 = load float, ptr %1518, align 4, !tbaa !11
  %1520 = call float @llvm.fmuladd.f32(float %1515, float %1519, float 1.000000e+00)
  %1521 = load ptr, ptr %33, align 8, !tbaa !5
  %1522 = load i64, ptr %90, align 8, !tbaa !9
  %1523 = load i64, ptr %57, align 8, !tbaa !9
  %1524 = add nsw i64 %1522, %1523
  %1525 = sub nsw i64 %1524, 1
  %1526 = getelementptr inbounds float, ptr %1521, i64 %1525
  %1527 = load float, ptr %1526, align 4, !tbaa !11
  %1528 = fmul float %1527, %1520
  store float %1528, ptr %1526, align 4, !tbaa !11
  %1529 = load float, ptr %67, align 4, !tbaa !11
  %1530 = fmul float %1529, 4.000000e+00
  %1531 = load ptr, ptr %49, align 8, !tbaa !5
  %1532 = load i64, ptr %63, align 8, !tbaa !9
  %1533 = load i64, ptr %57, align 8, !tbaa !9
  %1534 = add nsw i64 %1532, %1533
  %1535 = getelementptr inbounds float, ptr %1531, i64 %1534
  %1536 = load float, ptr %1535, align 4, !tbaa !11
  %1537 = call float @llvm.fmuladd.f32(float %1530, float %1536, float 1.000000e+00)
  %1538 = load ptr, ptr %34, align 8, !tbaa !5
  %1539 = load i64, ptr %90, align 8, !tbaa !9
  %1540 = load i64, ptr %57, align 8, !tbaa !9
  %1541 = add nsw i64 %1539, %1540
  %1542 = sub nsw i64 %1541, 1
  %1543 = getelementptr inbounds float, ptr %1538, i64 %1542
  %1544 = load float, ptr %1543, align 4, !tbaa !11
  %1545 = fmul float %1544, %1537
  store float %1545, ptr %1543, align 4, !tbaa !11
  br label %1546

1546:                                             ; preds = %1513
  %1547 = load i64, ptr %57, align 8, !tbaa !9
  %1548 = add nsw i64 %1547, 1
  store i64 %1548, ptr %57, align 8, !tbaa !9
  br label %1509, !llvm.loop !23

1549:                                             ; preds = %1509
  %1550 = load float, ptr %67, align 4, !tbaa !11
  %1551 = fmul float %1550, 4.000000e+00
  %1552 = load ptr, ptr %49, align 8, !tbaa !5
  %1553 = load i64, ptr %63, align 8, !tbaa !9
  %1554 = getelementptr inbounds float, ptr %1552, i64 %1553
  %1555 = load float, ptr %1554, align 4, !tbaa !11
  %1556 = call float @llvm.fmuladd.f32(float %1551, float %1555, float 1.000000e+00)
  %1557 = load ptr, ptr %33, align 8, !tbaa !5
  %1558 = load i64, ptr %75, align 8, !tbaa !9
  %1559 = getelementptr inbounds float, ptr %1557, i64 %1558
  %1560 = load float, ptr %1559, align 4, !tbaa !11
  %1561 = fmul float %1560, %1556
  store float %1561, ptr %1559, align 4, !tbaa !11
  br label %1562

1562:                                             ; preds = %1549, %1465
  %1563 = load i64, ptr %97, align 8, !tbaa !9
  %1564 = icmp ne i64 %1563, 0
  br i1 %1564, label %1719, label %1565

1565:                                             ; preds = %1562
  %1566 = load i64, ptr %81, align 8, !tbaa !9
  store i64 %1566, ptr %53, align 8, !tbaa !9
  %1567 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %1567, ptr %58, align 8, !tbaa !9
  br label %1568

1568:                                             ; preds = %1602, %1565
  %1569 = load i64, ptr %58, align 8, !tbaa !9
  %1570 = load i64, ptr %53, align 8, !tbaa !9
  %1571 = icmp sle i64 %1569, %1570
  br i1 %1571, label %1572, label %1605

1572:                                             ; preds = %1568
  %1573 = load float, ptr %87, align 4, !tbaa !11
  %1574 = load ptr, ptr %42, align 8, !tbaa !5
  %1575 = load i64, ptr %58, align 8, !tbaa !9
  %1576 = getelementptr inbounds float, ptr %1574, i64 %1575
  %1577 = load float, ptr %1576, align 4, !tbaa !11
  %1578 = fsub float %1577, %1573
  store float %1578, ptr %1576, align 4, !tbaa !11
  %1579 = load ptr, ptr %42, align 8, !tbaa !5
  %1580 = load i64, ptr %58, align 8, !tbaa !9
  %1581 = getelementptr inbounds float, ptr %1579, i64 %1580
  %1582 = load float, ptr %1581, align 4, !tbaa !11
  store float %1582, ptr %54, align 4, !tbaa !11
  %1583 = load float, ptr %54, align 4, !tbaa !11
  %1584 = fcmp oge float %1583, 0.000000e+00
  br i1 %1584, label %1585, label %1587

1585:                                             ; preds = %1572
  %1586 = load float, ptr %54, align 4, !tbaa !11
  br label %1590

1587:                                             ; preds = %1572
  %1588 = load float, ptr %54, align 4, !tbaa !11
  %1589 = fneg float %1588
  br label %1590

1590:                                             ; preds = %1587, %1585
  %1591 = phi float [ %1586, %1585 ], [ %1589, %1587 ]
  %1592 = fpext float %1591 to double
  %1593 = load float, ptr %67, align 4, !tbaa !11
  %1594 = fpext float %1593 to double
  %1595 = load ptr, ptr %43, align 8, !tbaa !5
  %1596 = load i64, ptr %58, align 8, !tbaa !9
  %1597 = getelementptr inbounds float, ptr %1595, i64 %1596
  %1598 = load float, ptr %1597, align 4, !tbaa !11
  %1599 = fpext float %1598 to double
  %1600 = call double @llvm.fmuladd.f64(double %1592, double %1594, double %1599)
  %1601 = fptrunc double %1600 to float
  store float %1601, ptr %1597, align 4, !tbaa !11
  br label %1602

1602:                                             ; preds = %1590
  %1603 = load i64, ptr %58, align 8, !tbaa !9
  %1604 = add nsw i64 %1603, 1
  store i64 %1604, ptr %58, align 8, !tbaa !9
  br label %1568, !llvm.loop !24

1605:                                             ; preds = %1568
  %1606 = load i64, ptr %75, align 8, !tbaa !9
  %1607 = sub nsw i64 %1606, 1
  store i64 %1607, ptr %53, align 8, !tbaa !9
  %1608 = load i64, ptr %90, align 8, !tbaa !9
  store i64 %1608, ptr %57, align 8, !tbaa !9
  br label %1609

1609:                                             ; preds = %1629, %1605
  %1610 = load i64, ptr %57, align 8, !tbaa !9
  %1611 = load i64, ptr %53, align 8, !tbaa !9
  %1612 = icmp sle i64 %1610, %1611
  br i1 %1612, label %1613, label %1632

1613:                                             ; preds = %1609
  %1614 = load ptr, ptr %34, align 8, !tbaa !5
  %1615 = load i64, ptr %57, align 8, !tbaa !9
  %1616 = getelementptr inbounds float, ptr %1614, i64 %1615
  %1617 = load float, ptr %1616, align 4, !tbaa !11
  store float %1617, ptr %54, align 4, !tbaa !11
  %1618 = load ptr, ptr %33, align 8, !tbaa !5
  %1619 = load i64, ptr %57, align 8, !tbaa !9
  %1620 = getelementptr inbounds float, ptr %1618, i64 %1619
  %1621 = load float, ptr %1620, align 4, !tbaa !11
  %1622 = load float, ptr %54, align 4, !tbaa !11
  %1623 = load float, ptr %54, align 4, !tbaa !11
  %1624 = fmul float %1622, %1623
  %1625 = fmul float %1621, %1624
  %1626 = load ptr, ptr %49, align 8, !tbaa !5
  %1627 = load i64, ptr %57, align 8, !tbaa !9
  %1628 = getelementptr inbounds float, ptr %1626, i64 %1627
  store float %1625, ptr %1628, align 4, !tbaa !11
  br label %1629

1629:                                             ; preds = %1613
  %1630 = load i64, ptr %57, align 8, !tbaa !9
  %1631 = add nsw i64 %1630, 1
  store i64 %1631, ptr %57, align 8, !tbaa !9
  br label %1609, !llvm.loop !25

1632:                                             ; preds = %1609
  %1633 = load i64, ptr %78, align 8, !tbaa !9
  %1634 = sub nsw i64 %1633, 1
  store i64 %1634, ptr %53, align 8, !tbaa !9
  %1635 = load ptr, ptr %33, align 8, !tbaa !5
  %1636 = load i64, ptr %90, align 8, !tbaa !9
  %1637 = getelementptr inbounds float, ptr %1635, i64 %1636
  %1638 = load ptr, ptr %49, align 8, !tbaa !5
  %1639 = load i64, ptr %90, align 8, !tbaa !9
  %1640 = getelementptr inbounds float, ptr %1638, i64 %1639
  %1641 = load ptr, ptr %36, align 8, !tbaa !5
  %1642 = load ptr, ptr %37, align 8, !tbaa !5
  %1643 = load ptr, ptr %42, align 8, !tbaa !5
  %1644 = load i64, ptr %94, align 8, !tbaa !9
  %1645 = getelementptr inbounds float, ptr %1643, i64 %1644
  %1646 = load ptr, ptr %44, align 8, !tbaa !5
  %1647 = load i64, ptr %94, align 8, !tbaa !9
  %1648 = getelementptr inbounds float, ptr %1646, i64 %1647
  %1649 = load ptr, ptr %43, align 8, !tbaa !5
  %1650 = load i64, ptr %94, align 8, !tbaa !9
  %1651 = getelementptr inbounds float, ptr %1649, i64 %1650
  %1652 = load ptr, ptr %49, align 8, !tbaa !5
  %1653 = load ptr, ptr %28, align 8, !tbaa !5
  %1654 = load i64, ptr %1653, align 8, !tbaa !9
  %1655 = shl i64 %1654, 1
  %1656 = add nsw i64 %1655, 1
  %1657 = getelementptr inbounds float, ptr %1652, i64 %1656
  %1658 = load ptr, ptr %50, align 8, !tbaa !5
  %1659 = getelementptr inbounds i64, ptr %1658, i64 1
  %1660 = load ptr, ptr %48, align 8, !tbaa !5
  %1661 = call i32 @slarrb_(ptr noundef %63, ptr noundef %1637, ptr noundef %1640, ptr noundef %78, ptr noundef %83, ptr noundef %1641, ptr noundef %1642, ptr noundef %53, ptr noundef %1645, ptr noundef %1648, ptr noundef %1651, ptr noundef %1657, ptr noundef %1659, ptr noundef %1660, ptr noundef %96, ptr noundef %63, ptr noundef %88)
  %1662 = load i64, ptr %88, align 8, !tbaa !9
  %1663 = icmp ne i64 %1662, 0
  br i1 %1663, label %1664, label %1666

1664:                                             ; preds = %1632
  %1665 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -4, ptr %1665, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %103, align 4
  br label %2037

1666:                                             ; preds = %1632
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  %1667 = load ptr, ptr %30, align 8, !tbaa !5
  %1668 = load float, ptr %1667, align 4, !tbaa !11
  %1669 = load float, ptr %87, align 4, !tbaa !11
  %1670 = fsub float %1668, %1669
  %1671 = load ptr, ptr %42, align 8, !tbaa !5
  %1672 = load i64, ptr %81, align 8, !tbaa !9
  %1673 = getelementptr inbounds float, ptr %1671, i64 %1672
  %1674 = load float, ptr %1673, align 4, !tbaa !11
  %1675 = load ptr, ptr %43, align 8, !tbaa !5
  %1676 = load i64, ptr %81, align 8, !tbaa !9
  %1677 = getelementptr inbounds float, ptr %1675, i64 %1676
  %1678 = load float, ptr %1677, align 4, !tbaa !11
  %1679 = fadd float %1674, %1678
  %1680 = fsub float %1670, %1679
  store float %1680, ptr %55, align 4, !tbaa !11
  %1681 = load float, ptr %54, align 4, !tbaa !11
  %1682 = load float, ptr %55, align 4, !tbaa !11
  %1683 = fcmp oge float %1681, %1682
  br i1 %1683, label %1684, label %1686

1684:                                             ; preds = %1666
  %1685 = load float, ptr %54, align 4, !tbaa !11
  br label %1688

1686:                                             ; preds = %1666
  %1687 = load float, ptr %55, align 4, !tbaa !11
  br label %1688

1688:                                             ; preds = %1686, %1684
  %1689 = phi float [ %1685, %1684 ], [ %1687, %1686 ]
  %1690 = fpext float %1689 to double
  %1691 = fptrunc double %1690 to float
  %1692 = load ptr, ptr %44, align 8, !tbaa !5
  %1693 = load i64, ptr %81, align 8, !tbaa !9
  %1694 = getelementptr inbounds float, ptr %1692, i64 %1693
  store float %1691, ptr %1694, align 4, !tbaa !11
  %1695 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1695, ptr %53, align 8, !tbaa !9
  %1696 = load i64, ptr %78, align 8, !tbaa !9
  store i64 %1696, ptr %57, align 8, !tbaa !9
  br label %1697

1697:                                             ; preds = %1715, %1688
  %1698 = load i64, ptr %57, align 8, !tbaa !9
  %1699 = load i64, ptr %53, align 8, !tbaa !9
  %1700 = icmp sle i64 %1698, %1699
  br i1 %1700, label %1701, label %1718

1701:                                             ; preds = %1697
  %1702 = load ptr, ptr %41, align 8, !tbaa !5
  %1703 = load i64, ptr %1702, align 8, !tbaa !9
  %1704 = add nsw i64 %1703, 1
  store i64 %1704, ptr %1702, align 8, !tbaa !9
  %1705 = load i64, ptr %76, align 8, !tbaa !9
  %1706 = load ptr, ptr %45, align 8, !tbaa !5
  %1707 = load ptr, ptr %41, align 8, !tbaa !5
  %1708 = load i64, ptr %1707, align 8, !tbaa !9
  %1709 = getelementptr inbounds i64, ptr %1706, i64 %1708
  store i64 %1705, ptr %1709, align 8, !tbaa !9
  %1710 = load i64, ptr %57, align 8, !tbaa !9
  %1711 = load ptr, ptr %46, align 8, !tbaa !5
  %1712 = load ptr, ptr %41, align 8, !tbaa !5
  %1713 = load i64, ptr %1712, align 8, !tbaa !9
  %1714 = getelementptr inbounds i64, ptr %1711, i64 %1713
  store i64 %1710, ptr %1714, align 8, !tbaa !9
  br label %1715

1715:                                             ; preds = %1701
  %1716 = load i64, ptr %57, align 8, !tbaa !9
  %1717 = add nsw i64 %1716, 1
  store i64 %1717, ptr %57, align 8, !tbaa !9
  br label %1697, !llvm.loop !26

1718:                                             ; preds = %1697
  br label %2027

1719:                                             ; preds = %1562
  %1720 = load i64, ptr %63, align 8, !tbaa !9
  %1721 = sitofp i64 %1720 to float
  %1722 = fpext float %1721 to double
  %1723 = call double @log(double noundef %1722) #5
  %1724 = fmul double %1723, 4.000000e+00
  %1725 = load float, ptr %67, align 4, !tbaa !11
  %1726 = fpext float %1725 to double
  %1727 = fmul double %1724, %1726
  %1728 = fptrunc double %1727 to float
  store float %1728, ptr %84, align 4, !tbaa !11
  %1729 = load i64, ptr %90, align 8, !tbaa !9
  store i64 %1729, ptr %58, align 8, !tbaa !9
  %1730 = load i64, ptr %63, align 8, !tbaa !9
  %1731 = sub nsw i64 %1730, 1
  store i64 %1731, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1732

1732:                                             ; preds = %1779, %1719
  %1733 = load i64, ptr %57, align 8, !tbaa !9
  %1734 = load i64, ptr %53, align 8, !tbaa !9
  %1735 = icmp sle i64 %1733, %1734
  br i1 %1735, label %1736, label %1782

1736:                                             ; preds = %1732
  %1737 = load ptr, ptr %33, align 8, !tbaa !5
  %1738 = load i64, ptr %58, align 8, !tbaa !9
  %1739 = getelementptr inbounds float, ptr %1737, i64 %1738
  %1740 = load float, ptr %1739, align 4, !tbaa !11
  store float %1740, ptr %54, align 4, !tbaa !11
  %1741 = load float, ptr %54, align 4, !tbaa !11
  %1742 = fcmp oge float %1741, 0.000000e+00
  br i1 %1742, label %1743, label %1745

1743:                                             ; preds = %1736
  %1744 = load float, ptr %54, align 4, !tbaa !11
  br label %1748

1745:                                             ; preds = %1736
  %1746 = load float, ptr %54, align 4, !tbaa !11
  %1747 = fneg float %1746
  br label %1748

1748:                                             ; preds = %1745, %1743
  %1749 = phi float [ %1744, %1743 ], [ %1747, %1745 ]
  %1750 = fpext float %1749 to double
  %1751 = fptrunc double %1750 to float
  %1752 = load ptr, ptr %49, align 8, !tbaa !5
  %1753 = load i64, ptr %57, align 8, !tbaa !9
  %1754 = shl i64 %1753, 1
  %1755 = sub nsw i64 %1754, 1
  %1756 = getelementptr inbounds float, ptr %1752, i64 %1755
  store float %1751, ptr %1756, align 4, !tbaa !11
  %1757 = load ptr, ptr %34, align 8, !tbaa !5
  %1758 = load i64, ptr %58, align 8, !tbaa !9
  %1759 = getelementptr inbounds float, ptr %1757, i64 %1758
  %1760 = load float, ptr %1759, align 4, !tbaa !11
  %1761 = load ptr, ptr %34, align 8, !tbaa !5
  %1762 = load i64, ptr %58, align 8, !tbaa !9
  %1763 = getelementptr inbounds float, ptr %1761, i64 %1762
  %1764 = load float, ptr %1763, align 4, !tbaa !11
  %1765 = fmul float %1760, %1764
  %1766 = load ptr, ptr %49, align 8, !tbaa !5
  %1767 = load i64, ptr %57, align 8, !tbaa !9
  %1768 = shl i64 %1767, 1
  %1769 = sub nsw i64 %1768, 1
  %1770 = getelementptr inbounds float, ptr %1766, i64 %1769
  %1771 = load float, ptr %1770, align 4, !tbaa !11
  %1772 = fmul float %1765, %1771
  %1773 = load ptr, ptr %49, align 8, !tbaa !5
  %1774 = load i64, ptr %57, align 8, !tbaa !9
  %1775 = mul nsw i64 %1774, 2
  %1776 = getelementptr inbounds float, ptr %1773, i64 %1775
  store float %1772, ptr %1776, align 4, !tbaa !11
  %1777 = load i64, ptr %58, align 8, !tbaa !9
  %1778 = add nsw i64 %1777, 1
  store i64 %1778, ptr %58, align 8, !tbaa !9
  br label %1779

1779:                                             ; preds = %1748
  %1780 = load i64, ptr %57, align 8, !tbaa !9
  %1781 = add nsw i64 %1780, 1
  store i64 %1781, ptr %57, align 8, !tbaa !9
  br label %1732, !llvm.loop !27

1782:                                             ; preds = %1732
  %1783 = load ptr, ptr %33, align 8, !tbaa !5
  %1784 = load i64, ptr %75, align 8, !tbaa !9
  %1785 = getelementptr inbounds float, ptr %1783, i64 %1784
  %1786 = load float, ptr %1785, align 4, !tbaa !11
  store float %1786, ptr %54, align 4, !tbaa !11
  %1787 = load float, ptr %54, align 4, !tbaa !11
  %1788 = fcmp oge float %1787, 0.000000e+00
  br i1 %1788, label %1789, label %1791

1789:                                             ; preds = %1782
  %1790 = load float, ptr %54, align 4, !tbaa !11
  br label %1794

1791:                                             ; preds = %1782
  %1792 = load float, ptr %54, align 4, !tbaa !11
  %1793 = fneg float %1792
  br label %1794

1794:                                             ; preds = %1791, %1789
  %1795 = phi float [ %1790, %1789 ], [ %1793, %1791 ]
  %1796 = fpext float %1795 to double
  %1797 = fptrunc double %1796 to float
  %1798 = load ptr, ptr %49, align 8, !tbaa !5
  %1799 = load i64, ptr %63, align 8, !tbaa !9
  %1800 = shl i64 %1799, 1
  %1801 = sub nsw i64 %1800, 1
  %1802 = getelementptr inbounds float, ptr %1798, i64 %1801
  store float %1797, ptr %1802, align 4, !tbaa !11
  %1803 = load ptr, ptr %49, align 8, !tbaa !5
  %1804 = load i64, ptr %63, align 8, !tbaa !9
  %1805 = mul nsw i64 %1804, 2
  %1806 = getelementptr inbounds float, ptr %1803, i64 %1805
  store float 0.000000e+00, ptr %1806, align 4, !tbaa !11
  %1807 = load ptr, ptr %49, align 8, !tbaa !5
  %1808 = getelementptr inbounds float, ptr %1807, i64 1
  %1809 = call i32 @slasq2_(ptr noundef %63, ptr noundef %1808, ptr noundef %88)
  %1810 = load i64, ptr %88, align 8, !tbaa !9
  %1811 = icmp ne i64 %1810, 0
  br i1 %1811, label %1812, label %1814

1812:                                             ; preds = %1794
  %1813 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -5, ptr %1813, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %103, align 4
  br label %2037

1814:                                             ; preds = %1794
  %1815 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %1815, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1816

1816:                                             ; preds = %1829, %1814
  %1817 = load i64, ptr %57, align 8, !tbaa !9
  %1818 = load i64, ptr %53, align 8, !tbaa !9
  %1819 = icmp sle i64 %1817, %1818
  br i1 %1819, label %1820, label %1832

1820:                                             ; preds = %1816
  %1821 = load ptr, ptr %49, align 8, !tbaa !5
  %1822 = load i64, ptr %57, align 8, !tbaa !9
  %1823 = getelementptr inbounds float, ptr %1821, i64 %1822
  %1824 = load float, ptr %1823, align 4, !tbaa !11
  %1825 = fcmp olt float %1824, 0.000000e+00
  br i1 %1825, label %1826, label %1828

1826:                                             ; preds = %1820
  %1827 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -6, ptr %1827, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %103, align 4
  br label %2037

1828:                                             ; preds = %1820
  br label %1829

1829:                                             ; preds = %1828
  %1830 = load i64, ptr %57, align 8, !tbaa !9
  %1831 = add nsw i64 %1830, 1
  store i64 %1831, ptr %57, align 8, !tbaa !9
  br label %1816, !llvm.loop !28

1832:                                             ; preds = %1816
  br label %1833

1833:                                             ; preds = %1832
  %1834 = load float, ptr %93, align 4, !tbaa !11
  %1835 = fcmp ogt float %1834, 0.000000e+00
  br i1 %1835, label %1836, label %1872

1836:                                             ; preds = %1833
  %1837 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1837, ptr %53, align 8, !tbaa !9
  %1838 = load i64, ptr %78, align 8, !tbaa !9
  store i64 %1838, ptr %57, align 8, !tbaa !9
  br label %1839

1839:                                             ; preds = %1868, %1836
  %1840 = load i64, ptr %57, align 8, !tbaa !9
  %1841 = load i64, ptr %53, align 8, !tbaa !9
  %1842 = icmp sle i64 %1840, %1841
  br i1 %1842, label %1843, label %1871

1843:                                             ; preds = %1839
  %1844 = load ptr, ptr %41, align 8, !tbaa !5
  %1845 = load i64, ptr %1844, align 8, !tbaa !9
  %1846 = add nsw i64 %1845, 1
  store i64 %1846, ptr %1844, align 8, !tbaa !9
  %1847 = load ptr, ptr %49, align 8, !tbaa !5
  %1848 = load i64, ptr %63, align 8, !tbaa !9
  %1849 = load i64, ptr %57, align 8, !tbaa !9
  %1850 = sub nsw i64 %1848, %1849
  %1851 = add nsw i64 %1850, 1
  %1852 = getelementptr inbounds float, ptr %1847, i64 %1851
  %1853 = load float, ptr %1852, align 4, !tbaa !11
  %1854 = load ptr, ptr %42, align 8, !tbaa !5
  %1855 = load ptr, ptr %41, align 8, !tbaa !5
  %1856 = load i64, ptr %1855, align 8, !tbaa !9
  %1857 = getelementptr inbounds float, ptr %1854, i64 %1856
  store float %1853, ptr %1857, align 4, !tbaa !11
  %1858 = load i64, ptr %76, align 8, !tbaa !9
  %1859 = load ptr, ptr %45, align 8, !tbaa !5
  %1860 = load ptr, ptr %41, align 8, !tbaa !5
  %1861 = load i64, ptr %1860, align 8, !tbaa !9
  %1862 = getelementptr inbounds i64, ptr %1859, i64 %1861
  store i64 %1858, ptr %1862, align 8, !tbaa !9
  %1863 = load i64, ptr %57, align 8, !tbaa !9
  %1864 = load ptr, ptr %46, align 8, !tbaa !5
  %1865 = load ptr, ptr %41, align 8, !tbaa !5
  %1866 = load i64, ptr %1865, align 8, !tbaa !9
  %1867 = getelementptr inbounds i64, ptr %1864, i64 %1866
  store i64 %1863, ptr %1867, align 8, !tbaa !9
  br label %1868

1868:                                             ; preds = %1843
  %1869 = load i64, ptr %57, align 8, !tbaa !9
  %1870 = add nsw i64 %1869, 1
  store i64 %1870, ptr %57, align 8, !tbaa !9
  br label %1839, !llvm.loop !29

1871:                                             ; preds = %1839
  br label %1906

1872:                                             ; preds = %1833
  %1873 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1873, ptr %53, align 8, !tbaa !9
  %1874 = load i64, ptr %78, align 8, !tbaa !9
  store i64 %1874, ptr %57, align 8, !tbaa !9
  br label %1875

1875:                                             ; preds = %1902, %1872
  %1876 = load i64, ptr %57, align 8, !tbaa !9
  %1877 = load i64, ptr %53, align 8, !tbaa !9
  %1878 = icmp sle i64 %1876, %1877
  br i1 %1878, label %1879, label %1905

1879:                                             ; preds = %1875
  %1880 = load ptr, ptr %41, align 8, !tbaa !5
  %1881 = load i64, ptr %1880, align 8, !tbaa !9
  %1882 = add nsw i64 %1881, 1
  store i64 %1882, ptr %1880, align 8, !tbaa !9
  %1883 = load ptr, ptr %49, align 8, !tbaa !5
  %1884 = load i64, ptr %57, align 8, !tbaa !9
  %1885 = getelementptr inbounds float, ptr %1883, i64 %1884
  %1886 = load float, ptr %1885, align 4, !tbaa !11
  %1887 = fneg float %1886
  %1888 = load ptr, ptr %42, align 8, !tbaa !5
  %1889 = load ptr, ptr %41, align 8, !tbaa !5
  %1890 = load i64, ptr %1889, align 8, !tbaa !9
  %1891 = getelementptr inbounds float, ptr %1888, i64 %1890
  store float %1887, ptr %1891, align 4, !tbaa !11
  %1892 = load i64, ptr %76, align 8, !tbaa !9
  %1893 = load ptr, ptr %45, align 8, !tbaa !5
  %1894 = load ptr, ptr %41, align 8, !tbaa !5
  %1895 = load i64, ptr %1894, align 8, !tbaa !9
  %1896 = getelementptr inbounds i64, ptr %1893, i64 %1895
  store i64 %1892, ptr %1896, align 8, !tbaa !9
  %1897 = load i64, ptr %57, align 8, !tbaa !9
  %1898 = load ptr, ptr %46, align 8, !tbaa !5
  %1899 = load ptr, ptr %41, align 8, !tbaa !5
  %1900 = load i64, ptr %1899, align 8, !tbaa !9
  %1901 = getelementptr inbounds i64, ptr %1898, i64 %1900
  store i64 %1897, ptr %1901, align 8, !tbaa !9
  br label %1902

1902:                                             ; preds = %1879
  %1903 = load i64, ptr %57, align 8, !tbaa !9
  %1904 = add nsw i64 %1903, 1
  store i64 %1904, ptr %57, align 8, !tbaa !9
  br label %1875, !llvm.loop !30

1905:                                             ; preds = %1875
  br label %1906

1906:                                             ; preds = %1905, %1871
  %1907 = load ptr, ptr %41, align 8, !tbaa !5
  %1908 = load i64, ptr %1907, align 8, !tbaa !9
  store i64 %1908, ptr %53, align 8, !tbaa !9
  %1909 = load ptr, ptr %41, align 8, !tbaa !5
  %1910 = load i64, ptr %1909, align 8, !tbaa !9
  %1911 = load i64, ptr %61, align 8, !tbaa !9
  %1912 = sub nsw i64 %1910, %1911
  %1913 = add nsw i64 %1912, 1
  store i64 %1913, ptr %57, align 8, !tbaa !9
  br label %1914

1914:                                             ; preds = %1940, %1906
  %1915 = load i64, ptr %57, align 8, !tbaa !9
  %1916 = load i64, ptr %53, align 8, !tbaa !9
  %1917 = icmp sle i64 %1915, %1916
  br i1 %1917, label %1918, label %1943

1918:                                             ; preds = %1914
  %1919 = load float, ptr %84, align 4, !tbaa !11
  %1920 = fpext float %1919 to double
  %1921 = load ptr, ptr %42, align 8, !tbaa !5
  %1922 = load i64, ptr %57, align 8, !tbaa !9
  %1923 = getelementptr inbounds float, ptr %1921, i64 %1922
  %1924 = load float, ptr %1923, align 4, !tbaa !11
  store float %1924, ptr %54, align 4, !tbaa !11
  %1925 = load float, ptr %54, align 4, !tbaa !11
  %1926 = fcmp oge float %1925, 0.000000e+00
  br i1 %1926, label %1927, label %1929

1927:                                             ; preds = %1918
  %1928 = load float, ptr %54, align 4, !tbaa !11
  br label %1932

1929:                                             ; preds = %1918
  %1930 = load float, ptr %54, align 4, !tbaa !11
  %1931 = fneg float %1930
  br label %1932

1932:                                             ; preds = %1929, %1927
  %1933 = phi float [ %1928, %1927 ], [ %1931, %1929 ]
  %1934 = fpext float %1933 to double
  %1935 = fmul double %1920, %1934
  %1936 = fptrunc double %1935 to float
  %1937 = load ptr, ptr %43, align 8, !tbaa !5
  %1938 = load i64, ptr %57, align 8, !tbaa !9
  %1939 = getelementptr inbounds float, ptr %1937, i64 %1938
  store float %1936, ptr %1939, align 4, !tbaa !11
  br label %1940

1940:                                             ; preds = %1932
  %1941 = load i64, ptr %57, align 8, !tbaa !9
  %1942 = add nsw i64 %1941, 1
  store i64 %1942, ptr %57, align 8, !tbaa !9
  br label %1914, !llvm.loop !31

1943:                                             ; preds = %1914
  %1944 = load ptr, ptr %41, align 8, !tbaa !5
  %1945 = load i64, ptr %1944, align 8, !tbaa !9
  %1946 = sub nsw i64 %1945, 1
  store i64 %1946, ptr %53, align 8, !tbaa !9
  %1947 = load ptr, ptr %41, align 8, !tbaa !5
  %1948 = load i64, ptr %1947, align 8, !tbaa !9
  %1949 = load i64, ptr %61, align 8, !tbaa !9
  %1950 = sub nsw i64 %1948, %1949
  %1951 = add nsw i64 %1950, 1
  store i64 %1951, ptr %57, align 8, !tbaa !9
  br label %1952

1952:                                             ; preds = %1992, %1943
  %1953 = load i64, ptr %57, align 8, !tbaa !9
  %1954 = load i64, ptr %53, align 8, !tbaa !9
  %1955 = icmp sle i64 %1953, %1954
  br i1 %1955, label %1956, label %1995

1956:                                             ; preds = %1952
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  %1957 = load ptr, ptr %42, align 8, !tbaa !5
  %1958 = load i64, ptr %57, align 8, !tbaa !9
  %1959 = add nsw i64 %1958, 1
  %1960 = getelementptr inbounds float, ptr %1957, i64 %1959
  %1961 = load float, ptr %1960, align 4, !tbaa !11
  %1962 = load ptr, ptr %43, align 8, !tbaa !5
  %1963 = load i64, ptr %57, align 8, !tbaa !9
  %1964 = add nsw i64 %1963, 1
  %1965 = getelementptr inbounds float, ptr %1962, i64 %1964
  %1966 = load float, ptr %1965, align 4, !tbaa !11
  %1967 = fsub float %1961, %1966
  %1968 = load ptr, ptr %42, align 8, !tbaa !5
  %1969 = load i64, ptr %57, align 8, !tbaa !9
  %1970 = getelementptr inbounds float, ptr %1968, i64 %1969
  %1971 = load float, ptr %1970, align 4, !tbaa !11
  %1972 = load ptr, ptr %43, align 8, !tbaa !5
  %1973 = load i64, ptr %57, align 8, !tbaa !9
  %1974 = getelementptr inbounds float, ptr %1972, i64 %1973
  %1975 = load float, ptr %1974, align 4, !tbaa !11
  %1976 = fadd float %1971, %1975
  %1977 = fsub float %1967, %1976
  store float %1977, ptr %55, align 4, !tbaa !11
  %1978 = load float, ptr %54, align 4, !tbaa !11
  %1979 = load float, ptr %55, align 4, !tbaa !11
  %1980 = fcmp oge float %1978, %1979
  br i1 %1980, label %1981, label %1983

1981:                                             ; preds = %1956
  %1982 = load float, ptr %54, align 4, !tbaa !11
  br label %1985

1983:                                             ; preds = %1956
  %1984 = load float, ptr %55, align 4, !tbaa !11
  br label %1985

1985:                                             ; preds = %1983, %1981
  %1986 = phi float [ %1982, %1981 ], [ %1984, %1983 ]
  %1987 = fpext float %1986 to double
  %1988 = fptrunc double %1987 to float
  %1989 = load ptr, ptr %44, align 8, !tbaa !5
  %1990 = load i64, ptr %57, align 8, !tbaa !9
  %1991 = getelementptr inbounds float, ptr %1989, i64 %1990
  store float %1988, ptr %1991, align 4, !tbaa !11
  br label %1992

1992:                                             ; preds = %1985
  %1993 = load i64, ptr %57, align 8, !tbaa !9
  %1994 = add nsw i64 %1993, 1
  store i64 %1994, ptr %57, align 8, !tbaa !9
  br label %1952, !llvm.loop !32

1995:                                             ; preds = %1952
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  %1996 = load ptr, ptr %30, align 8, !tbaa !5
  %1997 = load float, ptr %1996, align 4, !tbaa !11
  %1998 = load float, ptr %87, align 4, !tbaa !11
  %1999 = fsub float %1997, %1998
  %2000 = load ptr, ptr %42, align 8, !tbaa !5
  %2001 = load ptr, ptr %41, align 8, !tbaa !5
  %2002 = load i64, ptr %2001, align 8, !tbaa !9
  %2003 = getelementptr inbounds float, ptr %2000, i64 %2002
  %2004 = load float, ptr %2003, align 4, !tbaa !11
  %2005 = load ptr, ptr %43, align 8, !tbaa !5
  %2006 = load ptr, ptr %41, align 8, !tbaa !5
  %2007 = load i64, ptr %2006, align 8, !tbaa !9
  %2008 = getelementptr inbounds float, ptr %2005, i64 %2007
  %2009 = load float, ptr %2008, align 4, !tbaa !11
  %2010 = fadd float %2004, %2009
  %2011 = fsub float %1999, %2010
  store float %2011, ptr %55, align 4, !tbaa !11
  %2012 = load float, ptr %54, align 4, !tbaa !11
  %2013 = load float, ptr %55, align 4, !tbaa !11
  %2014 = fcmp oge float %2012, %2013
  br i1 %2014, label %2015, label %2017

2015:                                             ; preds = %1995
  %2016 = load float, ptr %54, align 4, !tbaa !11
  br label %2019

2017:                                             ; preds = %1995
  %2018 = load float, ptr %55, align 4, !tbaa !11
  br label %2019

2019:                                             ; preds = %2017, %2015
  %2020 = phi float [ %2016, %2015 ], [ %2018, %2017 ]
  %2021 = fpext float %2020 to double
  %2022 = fptrunc double %2021 to float
  %2023 = load ptr, ptr %44, align 8, !tbaa !5
  %2024 = load ptr, ptr %41, align 8, !tbaa !5
  %2025 = load i64, ptr %2024, align 8, !tbaa !9
  %2026 = getelementptr inbounds float, ptr %2023, i64 %2025
  store float %2022, ptr %2026, align 4, !tbaa !11
  br label %2027

2027:                                             ; preds = %2019, %1718
  %2028 = load i64, ptr %75, align 8, !tbaa !9
  %2029 = add nsw i64 %2028, 1
  store i64 %2029, ptr %90, align 8, !tbaa !9
  %2030 = load i64, ptr %81, align 8, !tbaa !9
  %2031 = add nsw i64 %2030, 1
  store i64 %2031, ptr %94, align 8, !tbaa !9
  br label %2032

2032:                                             ; preds = %2027, %624, %528
  br label %2033

2033:                                             ; preds = %2032
  %2034 = load i64, ptr %76, align 8, !tbaa !9
  %2035 = add nsw i64 %2034, 1
  store i64 %2035, ptr %76, align 8, !tbaa !9
  br label %450, !llvm.loop !33

2036:                                             ; preds = %450
  store i32 0, ptr %26, align 4
  store i32 1, ptr %103, align 4
  br label %2037

2037:                                             ; preds = %2036, %1826, %1812, %1664, %1463, %801, %753, %419, %217
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  %2038 = load i32, ptr %26, align 4
  ret i32 %2038
}

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

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

declare double @slamch_(ptr noundef) #2

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

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

declare i32 @slarrd_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @slarrk_(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) #4

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

declare i32 @slarrc_(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_scopy(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @slarnv_(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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"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 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slarre_(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 nocapture 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 nocapture noundef writeonly %24) local_unnamed_addr #0 {
  %26 = ptrtoint ptr %15 to i64
  %27 = ptrtoint ptr %16 to i64
  %28 = ptrtoint ptr %6 to i64
  %29 = ptrtoint ptr %7 to i64
  %30 = ptrtoint ptr %22 to i64
  %31 = ptrtoint ptr %18 to i64
  %32 = ptrtoint ptr %19 to i64
  %33 = ptrtoint ptr %15 to i64
  %34 = ptrtoint ptr %16 to i64
  %35 = alloca i64, align 8
  %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 i64, align 8
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca float, align 4
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca [4 x i64], align 16
  %51 = alloca i64, align 8
  %52 = alloca float, align 4
  %53 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #6
  %54 = getelementptr inbounds i8, ptr %22, i64 -4
  %55 = getelementptr inbounds i8, ptr %20, i64 -4
  %56 = getelementptr inbounds i8, ptr %19, i64 -8
  %57 = getelementptr inbounds i8, ptr %18, i64 -8
  %58 = getelementptr inbounds i8, ptr %17, i64 -4
  %59 = getelementptr inbounds i8, ptr %16, i64 -4
  %60 = getelementptr inbounds i8, ptr %15, i64 -4
  %61 = getelementptr inbounds i8, ptr %13, i64 -8
  %62 = getelementptr inbounds i8, ptr %8, i64 -4
  %63 = getelementptr inbounds i8, ptr %7, i64 -4
  %64 = getelementptr inbounds i8, ptr %6, i64 -4
  store i64 0, ptr %24, align 8, !tbaa !5
  %65 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %.not = icmp ne i64 %65, 0
  br i1 %.not, label %70, label %66

66:                                               ; preds = %25
  %67 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %.not749 = icmp eq i64 %67, 0
  br i1 %.not749, label %68, label %70

68:                                               ; preds = %66
  %69 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  br label %70

70:                                               ; preds = %68, %66, %25
  %71 = phi i1 [ false, %25 ], [ true, %66 ], [ false, %68 ]
  %72 = phi i1 [ false, %25 ], [ false, %66 ], [ true, %68 ]
  store i64 0, ptr %14, align 8, !tbaa !5
  %73 = tail call double @slamch_(ptr noundef nonnull @.str.3) #6
  %74 = fptrunc double %73 to float
  %75 = tail call double @slamch_(ptr noundef nonnull @.str.4) #6
  %76 = fptrunc double %75 to float
  %77 = fmul float %76, 1.000000e+02
  store float %77, ptr %44, align 4, !tbaa !9
  %78 = fpext float %76 to double
  %79 = tail call double @sqrt(double noundef %78) #6
  %80 = fmul double %79, 0x3F40624DE0000000
  %81 = fptrunc double %80 to float
  store float %81, ptr %53, align 4, !tbaa !9
  %82 = load i64, ptr %1, align 8, !tbaa !5
  %83 = icmp eq i64 %82, 1
  br i1 %83, label %84, label %105

84:                                               ; preds = %70
  br i1 %.not, label %100, label %85

85:                                               ; preds = %84
  br i1 %71, label %86, label %93

86:                                               ; preds = %85
  %87 = load float, ptr %6, align 4, !tbaa !9
  %88 = load float, ptr %2, align 4, !tbaa !9
  %89 = fcmp ogt float %87, %88
  br i1 %89, label %90, label %93

90:                                               ; preds = %86
  %91 = load float, ptr %3, align 4, !tbaa !9
  %92 = fcmp ugt float %87, %91
  br i1 %92, label %93, label %100

93:                                               ; preds = %90, %86, %85
  br i1 %72, label %94, label %104

94:                                               ; preds = %93
  %95 = load i64, ptr %4, align 8, !tbaa !5
  %96 = icmp eq i64 %95, 1
  br i1 %96, label %97, label %104

97:                                               ; preds = %94
  %98 = load i64, ptr %5, align 8, !tbaa !5
  %99 = icmp eq i64 %98, 1
  br i1 %99, label %100, label %104

100:                                              ; preds = %97, %90, %84
  store i64 1, ptr %14, align 8, !tbaa !5
  %101 = load float, ptr %6, align 4, !tbaa !9
  store float %101, ptr %15, align 4, !tbaa !9
  store float 0.000000e+00, ptr %16, align 4, !tbaa !9
  store float 0.000000e+00, ptr %17, align 4, !tbaa !9
  store i64 1, ptr %18, align 8, !tbaa !5
  store i64 1, ptr %19, align 8, !tbaa !5
  %102 = load float, ptr %6, align 4, !tbaa !9
  store float %102, ptr %20, align 4, !tbaa !9
  %103 = getelementptr inbounds i8, ptr %20, i64 4
  store float %102, ptr %103, align 4, !tbaa !9
  br label %104

104:                                              ; preds = %100, %97, %94, %93
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  br label %.loopexit822

105:                                              ; preds = %70
  %106 = load float, ptr %6, align 4, !tbaa !9
  store float %106, ptr %38, align 4, !tbaa !9
  store float %106, ptr %41, align 4, !tbaa !9
  %107 = getelementptr inbounds float, ptr %63, i64 %82
  store float 0.000000e+00, ptr %107, align 4, !tbaa !9
  %.not751826 = icmp slt i64 %82, 1
  br i1 %.not751826, label %130, label %.lr.ph

.lr.ph:                                           ; preds = %105, %.lr.ph
  %.0717829 = phi float [ %.1718, %.lr.ph ], [ 0.000000e+00, %105 ]
  %.0720828 = phi float [ %116, %.lr.ph ], [ 0.000000e+00, %105 ]
  %.0733827 = phi i64 [ %129, %.lr.ph ], [ 1, %105 ]
  %108 = phi float [ %124, %.lr.ph ], [ %106, %105 ]
  %109 = phi float [ %128, %.lr.ph ], [ %106, %105 ]
  %110 = getelementptr inbounds float, ptr %59, i64 %.0733827
  store float 0.000000e+00, ptr %110, align 4, !tbaa !9
  %111 = getelementptr inbounds float, ptr %58, i64 %.0733827
  store float 0.000000e+00, ptr %111, align 4, !tbaa !9
  %112 = getelementptr inbounds float, ptr %63, i64 %.0733827
  %113 = load float, ptr %112, align 4, !tbaa !9
  %114 = fcmp oge float %113, 0.000000e+00
  %115 = fneg float %113
  %116 = select i1 %114, float %113, float %115
  %.inv = fcmp oge float %116, %.0717829
  %.1718 = select i1 %.inv, float %116, float %.0717829
  %117 = fadd float %.0720828, %116
  %118 = getelementptr inbounds float, ptr %64, i64 %.0733827
  %119 = load float, ptr %118, align 4, !tbaa !9
  %120 = fsub float %119, %117
  %.idx788 = shl i64 %.0733827, 3
  %121 = getelementptr i8, ptr %55, i64 %.idx788
  %122 = getelementptr i8, ptr %121, i64 -4
  store float %120, ptr %122, align 4, !tbaa !9
  %123 = fcmp ole float %108, %120
  %124 = select i1 %123, float %108, float %120
  %125 = load float, ptr %118, align 4, !tbaa !9
  %126 = fadd float %117, %125
  store float %126, ptr %121, align 4, !tbaa !9
  %127 = fcmp oge float %109, %126
  %128 = select i1 %127, float %109, float %126
  %129 = add nuw i64 %.0733827, 1
  %exitcond.not = icmp eq i64 %.0733827, %82
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph
  store float %117, ptr %47, align 4, !tbaa !9
  store float %124, ptr %38, align 4, !tbaa !9
  store float %128, ptr %41, align 4, !tbaa !9
  br label %130

130:                                              ; preds = %._crit_edge, %105
  %131 = phi float [ %124, %._crit_edge ], [ %106, %105 ]
  %132 = phi float [ %128, %._crit_edge ], [ %106, %105 ]
  %.0717.lcssa = phi float [ %.1718, %._crit_edge ], [ 0.000000e+00, %105 ]
  %133 = fmul float %.0717.lcssa, %.0717.lcssa
  %134 = fcmp ole float %133, 1.000000e+00
  %135 = select i1 %134, float 1.000000e+00, float %133
  %136 = fmul float %135, %74
  store float %136, ptr %21, align 4, !tbaa !9
  %137 = fsub float %132, %131
  store float %137, ptr %52, align 4, !tbaa !9
  %138 = call i32 @slarra_(ptr noundef nonnull %1, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef %11, ptr noundef nonnull %52, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %51) #6
  %139 = zext i1 %.not to i64
  br i1 %.not, label %140, label %143

140:                                              ; preds = %130
  %141 = load float, ptr %38, align 4, !tbaa !9
  store float %141, ptr %2, align 4, !tbaa !9
  %142 = load float, ptr %41, align 4, !tbaa !9
  store float %142, ptr %3, align 4, !tbaa !9
  br label %.loopexit823

143:                                              ; preds = %130
  %144 = call i32 @slarrd_(ptr noundef %0, ptr noundef nonnull @.str.5, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %20, ptr noundef nonnull %53, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %21, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %40, ptr noundef %15, ptr noundef %16, ptr noundef %2, ptr noundef %3, ptr noundef %18, ptr noundef %19, ptr noundef %22, ptr noundef %23, ptr noundef nonnull %51) #6
  %145 = load i64, ptr %51, align 8, !tbaa !5
  %.not753 = icmp eq i64 %145, 0
  br i1 %.not753, label %147, label %146

146:                                              ; preds = %143
  store i64 -1, ptr %24, align 8, !tbaa !5
  br label %.loopexit822

147:                                              ; preds = %143
  %148 = load i64, ptr %1, align 8, !tbaa !5
  %149 = load i64, ptr %40, align 8, !tbaa !5
  %.not754.not832 = icmp slt i64 %149, %148
  br i1 %.not754.not832, label %.lr.ph835.preheader, label %.loopexit823

.lr.ph835.preheader:                              ; preds = %147
  %150 = sub i64 %148, %149
  %min.iters.check = icmp ult i64 %150, 8
  br i1 %min.iters.check, label %.lr.ph835.preheader1287, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph835.preheader
  %151 = sub i64 %34, %33
  %diff.check = icmp ult i64 %151, 16
  %152 = sub i64 %32, %31
  %diff.check1019 = icmp ult i64 %152, 32
  %conflict.rdx = or i1 %diff.check, %diff.check1019
  br i1 %conflict.rdx, label %.lr.ph835.preheader1287, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %150, -4
  %ind.end = add i64 %149, %n.vec
  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 %149, %index
  %153 = getelementptr float, ptr %15, i64 %offset.idx
  %154 = getelementptr i8, ptr %153, i64 8
  store <2 x float> zeroinitializer, ptr %153, align 4, !tbaa !9
  store <2 x float> zeroinitializer, ptr %154, align 4, !tbaa !9
  %155 = getelementptr float, ptr %16, i64 %offset.idx
  %156 = getelementptr i8, ptr %155, i64 8
  store <2 x float> zeroinitializer, ptr %155, align 4, !tbaa !9
  store <2 x float> zeroinitializer, ptr %156, align 4, !tbaa !9
  %157 = getelementptr i64, ptr %18, i64 %offset.idx
  %158 = getelementptr i8, ptr %157, i64 16
  store <2 x i64> zeroinitializer, ptr %157, align 8, !tbaa !5
  store <2 x i64> zeroinitializer, ptr %158, align 8, !tbaa !5
  %159 = getelementptr i64, ptr %19, i64 %offset.idx
  %160 = getelementptr i8, ptr %159, i64 16
  store <2 x i64> zeroinitializer, ptr %159, align 8, !tbaa !5
  store <2 x i64> zeroinitializer, ptr %160, align 8, !tbaa !5
  %index.next = add nuw i64 %index, 4
  %161 = icmp eq i64 %index.next, %n.vec
  br i1 %161, label %middle.block, label %vector.body, !llvm.loop !13

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %150, %n.vec
  br i1 %cmp.n, label %.loopexit823, label %.lr.ph835.preheader1287

.lr.ph835.preheader1287:                          ; preds = %middle.block, %vector.memcheck, %.lr.ph835.preheader
  %.1734.in833.ph = phi i64 [ %149, %vector.memcheck ], [ %149, %.lr.ph835.preheader ], [ %ind.end, %middle.block ]
  %162 = sub i64 %148, %.1734.in833.ph
  %.neg = add i64 %.1734.in833.ph, 1
  %xtraiter = and i64 %162, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph835.prol.loopexit, label %.lr.ph835.prol

.lr.ph835.prol:                                   ; preds = %.lr.ph835.preheader1287
  %.1734.prol = add nsw i64 %.1734.in833.ph, 1
  %163 = getelementptr float, ptr %15, i64 %.1734.in833.ph
  store float 0.000000e+00, ptr %163, align 4, !tbaa !9
  %164 = getelementptr float, ptr %16, i64 %.1734.in833.ph
  store float 0.000000e+00, ptr %164, align 4, !tbaa !9
  %165 = getelementptr i64, ptr %18, i64 %.1734.in833.ph
  store i64 0, ptr %165, align 8, !tbaa !5
  %166 = getelementptr i64, ptr %19, i64 %.1734.in833.ph
  store i64 0, ptr %166, align 8, !tbaa !5
  br label %.lr.ph835.prol.loopexit

.lr.ph835.prol.loopexit:                          ; preds = %.lr.ph835.prol, %.lr.ph835.preheader1287
  %.1734.in833.unr = phi i64 [ %.1734.in833.ph, %.lr.ph835.preheader1287 ], [ %.1734.prol, %.lr.ph835.prol ]
  %167 = icmp eq i64 %148, %.neg
  br i1 %167, label %.loopexit823, label %.lr.ph835

.lr.ph835:                                        ; preds = %.lr.ph835.prol.loopexit, %.lr.ph835
  %.1734.in833 = phi i64 [ %.1734.1, %.lr.ph835 ], [ %.1734.in833.unr, %.lr.ph835.prol.loopexit ]
  %.1734 = add nsw i64 %.1734.in833, 1
  %168 = getelementptr float, ptr %15, i64 %.1734.in833
  store float 0.000000e+00, ptr %168, align 4, !tbaa !9
  %169 = getelementptr float, ptr %16, i64 %.1734.in833
  store float 0.000000e+00, ptr %169, align 4, !tbaa !9
  %170 = getelementptr i64, ptr %18, i64 %.1734.in833
  store i64 0, ptr %170, align 8, !tbaa !5
  %171 = getelementptr i64, ptr %19, i64 %.1734.in833
  store i64 0, ptr %171, align 8, !tbaa !5
  %.1734.1 = add nsw i64 %.1734.in833, 2
  %172 = getelementptr float, ptr %15, i64 %.1734
  store float 0.000000e+00, ptr %172, align 4, !tbaa !9
  %173 = getelementptr float, ptr %16, i64 %.1734
  store float 0.000000e+00, ptr %173, align 4, !tbaa !9
  %174 = getelementptr i64, ptr %18, i64 %.1734
  store i64 0, ptr %174, align 8, !tbaa !5
  %175 = getelementptr i64, ptr %19, i64 %.1734
  store i64 0, ptr %175, align 8, !tbaa !5
  %exitcond951.not.1 = icmp eq i64 %.1734.1, %148
  br i1 %exitcond951.not.1, label %.loopexit823, label %.lr.ph835, !llvm.loop !16

.loopexit823:                                     ; preds = %.lr.ph835.prol.loopexit, %.lr.ph835, %middle.block, %147, %140
  %176 = load i64, ptr %12, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %17, i64 -8
  %.not755929 = icmp slt i64 %176, 1
  br i1 %.not755929, label %.loopexit822, label %.lr.ph939

.lr.ph939:                                        ; preds = %.loopexit823
  %177 = fpext float %77 to double
  %178 = fneg double %177
  %179 = fmul float %76, 4.000000e+00
  %180 = getelementptr inbounds i8, ptr %50, i64 8
  %181 = getelementptr inbounds i8, ptr %50, i64 16
  %182 = getelementptr inbounds i8, ptr %50, i64 24
  %183 = sub i64 %30, %29
  %184 = sub i64 %30, %28
  %scevgep = getelementptr i8, ptr %15, i64 -4
  %scevgep1043 = getelementptr i8, ptr %16, i64 -4
  %scevgep1065 = getelementptr i8, ptr %17, i64 -4
  %185 = sub i64 %27, %26
  %scevgep1118 = getelementptr i8, ptr %22, i64 4
  %scevgep1123 = getelementptr i8, ptr %22, i64 -8
  %scevgep1125 = getelementptr i8, ptr %6, i64 -4
  %scevgep1127 = getelementptr i8, ptr %6, i64 -8
  %scevgep1129 = getelementptr i8, ptr %7, i64 -4
  %scevgep1131 = getelementptr i8, ptr %7, i64 -8
  %scevgep1159 = getelementptr i8, ptr %6, i64 -4
  %scevgep1161 = getelementptr i8, ptr %6, i64 -8
  %scevgep1163 = getelementptr i8, ptr %7, i64 -4
  %scevgep1165 = getelementptr i8, ptr %7, i64 -8
  %scevgep1168 = getelementptr i8, ptr %22, i64 -4
  %scevgep1227 = getelementptr i8, ptr %17, i64 -4
  %scevgep1229 = getelementptr i8, ptr %17, i64 -8
  %scevgep1231 = getelementptr i8, ptr %15, i64 -4
  %scevgep1233 = getelementptr i8, ptr %15, i64 -4
  %scevgep1235 = getelementptr i8, ptr %16, i64 -4
  %scevgep1237 = getelementptr i8, ptr %16, i64 -4
  %186 = insertelement <2 x double> poison, double %178, i64 0
  %187 = insertelement <2 x double> %186, double %177, i64 1
  %invariant.gep1323 = getelementptr i8, ptr %55, i64 -4
  %invariant.gep1317 = getelementptr i8, ptr %55, i64 -4
  %invariant.gep1319 = getelementptr i8, ptr %55, i64 -4
  %broadcast.splatinsert1201 = insertelement <4 x float> poison, float %179, i64 0
  %broadcast.splat1202 = shufflevector <4 x float> %broadcast.splatinsert1201, <4 x float> poison, <4 x i32> zeroinitializer
  %invariant.gep1321 = getelementptr i8, ptr %54, i64 -4
  %diff.check1100 = icmp ult i64 %185, 32
  %broadcast.splatinsert1059 = insertelement <4 x double> poison, double %78, i64 0
  %broadcast.splat1060 = shufflevector <4 x double> %broadcast.splatinsert1059, <4 x double> poison, <4 x i32> zeroinitializer
  %diff.check1021 = icmp ult i64 %183, 32
  %diff.check1022 = icmp ult i64 %184, 32
  %conflict.rdx1023 = or i1 %diff.check1021, %diff.check1022
  br label %188

188:                                              ; preds = %.lr.ph939, %952
  %.0696937 = phi i64 [ %139, %.lr.ph939 ], [ %.3, %952 ]
  %.0697936 = phi i64 [ 1, %.lr.ph939 ], [ %.2699, %952 ]
  %.0702934 = phi i64 [ 1, %.lr.ph939 ], [ %.1703, %952 ]
  %.0713933 = phi i64 [ undef, %.lr.ph939 ], [ %.3716, %952 ]
  %.0721931 = phi i64 [ 1, %.lr.ph939 ], [ %953, %952 ]
  %.0725930 = phi i64 [ undef, %.lr.ph939 ], [ %.4729, %952 ]
  %189 = getelementptr inbounds i64, ptr %61, i64 %.0721931
  %190 = load i64, ptr %189, align 8, !tbaa !5
  %191 = sub nsw i64 %190, %.0702934
  %192 = add nsw i64 %191, 1
  store i64 %192, ptr %39, align 8, !tbaa !5
  %193 = icmp eq i64 %190, %.0702934
  br i1 %193, label %194, label %223

194:                                              ; preds = %188
  br i1 %.not, label %209, label %195

195:                                              ; preds = %194
  br i1 %71, label %196, label %204

196:                                              ; preds = %195
  %197 = getelementptr inbounds float, ptr %64, i64 %.0702934
  %198 = load float, ptr %197, align 4, !tbaa !9
  %199 = load float, ptr %2, align 4, !tbaa !9
  %200 = fcmp ogt float %198, %199
  br i1 %200, label %201, label %204

201:                                              ; preds = %196
  %202 = load float, ptr %3, align 4, !tbaa !9
  %203 = fcmp ugt float %198, %202
  br i1 %203, label %204, label %209

204:                                              ; preds = %201, %196, %195
  br i1 %72, label %205, label %221

205:                                              ; preds = %204
  %206 = getelementptr inbounds i64, ptr %57, i64 %.0697936
  %207 = load i64, ptr %206, align 8, !tbaa !5
  %208 = icmp eq i64 %207, %.0721931
  br i1 %208, label %209, label %221

209:                                              ; preds = %205, %201, %194
  %210 = load i64, ptr %14, align 8, !tbaa !5
  %211 = add nsw i64 %210, 1
  store i64 %211, ptr %14, align 8, !tbaa !5
  %212 = getelementptr inbounds float, ptr %64, i64 %.0702934
  %213 = load float, ptr %212, align 4, !tbaa !9
  %214 = getelementptr float, ptr %15, i64 %210
  store float %213, ptr %214, align 4, !tbaa !9
  %215 = getelementptr float, ptr %16, i64 %210
  store float 0.000000e+00, ptr %215, align 4, !tbaa !9
  %216 = getelementptr float, ptr %17, i64 %210
  store float 0.000000e+00, ptr %216, align 4, !tbaa !9
  %217 = getelementptr i64, ptr %18, i64 %210
  store i64 %.0721931, ptr %217, align 8, !tbaa !5
  %218 = load i64, ptr %14, align 8, !tbaa !5
  %219 = getelementptr inbounds i64, ptr %56, i64 %218
  store i64 1, ptr %219, align 8, !tbaa !5
  %220 = add nsw i64 %.0697936, 1
  br label %221

221:                                              ; preds = %209, %205, %204
  %.1698 = phi i64 [ %220, %209 ], [ %.0697936, %205 ], [ %.0697936, %204 ]
  %222 = getelementptr inbounds float, ptr %63, i64 %.0702934
  store float 0.000000e+00, ptr %222, align 4, !tbaa !9
  br label %952

223:                                              ; preds = %188
  %224 = getelementptr inbounds float, ptr %63, i64 %190
  store float 0.000000e+00, ptr %224, align 4, !tbaa !9
  %225 = getelementptr inbounds float, ptr %64, i64 %.0702934
  %226 = load float, ptr %225, align 4, !tbaa !9
  store float %226, ptr %38, align 4, !tbaa !9
  store float %226, ptr %41, align 4, !tbaa !9
  store i64 %190, ptr %35, align 8, !tbaa !5
  %.not756838 = icmp sgt i64 %.0702934, %190
  %227 = insertelement <2 x float> poison, float %226, i64 0
  %228 = shufflevector <2 x float> %227, <2 x float> poison, <2 x i32> zeroinitializer
  br i1 %.not756838, label %253, label %.lr.ph841.preheader

.lr.ph841.preheader:                              ; preds = %223
  %229 = add i64 %190, %.0702934
  %230 = and i64 %229, 1
  %lcmp.mod1292.not.not = icmp eq i64 %230, 0
  br i1 %lcmp.mod1292.not.not, label %.lr.ph841.prol, label %.lr.ph841.prol.loopexit

.lr.ph841.prol:                                   ; preds = %.lr.ph841.preheader
  %.idx786.prol = shl i64 %.0702934, 3
  %gep1324 = getelementptr i8, ptr %invariant.gep1323, i64 %.idx786.prol
  %231 = load <2 x float>, ptr %gep1324, align 4, !tbaa !9
  %232 = insertelement <2 x float> %231, float %226, i64 0
  %233 = shufflevector <2 x float> %231, <2 x float> %228, <2 x i32> <i32 0, i32 3>
  %234 = fcmp oge <2 x float> %232, %233
  %235 = select <2 x i1> %234, <2 x float> %231, <2 x float> %228
  %236 = add i64 %.0702934, 1
  br label %.lr.ph841.prol.loopexit

.lr.ph841.prol.loopexit:                          ; preds = %.lr.ph841.prol, %.lr.ph841.preheader
  %.lcssa.unr = phi <2 x float> [ poison, %.lr.ph841.preheader ], [ %235, %.lr.ph841.prol ]
  %.2735839.unr = phi i64 [ %.0702934, %.lr.ph841.preheader ], [ %236, %.lr.ph841.prol ]
  %.unr = phi <2 x float> [ %228, %.lr.ph841.preheader ], [ %235, %.lr.ph841.prol ]
  %237 = icmp eq i64 %190, %.0702934
  br i1 %237, label %._crit_edge842, label %.lr.ph841

.lr.ph841:                                        ; preds = %.lr.ph841.prol.loopexit, %.lr.ph841
  %.2735839 = phi i64 [ %250, %.lr.ph841 ], [ %.2735839.unr, %.lr.ph841.prol.loopexit ]
  %238 = phi <2 x float> [ %249, %.lr.ph841 ], [ %.unr, %.lr.ph841.prol.loopexit ]
  %.idx786 = shl i64 %.2735839, 3
  %gep1318 = getelementptr i8, ptr %invariant.gep1317, i64 %.idx786
  %239 = load <2 x float>, ptr %gep1318, align 4, !tbaa !9
  %240 = shufflevector <2 x float> %238, <2 x float> %239, <2 x i32> <i32 0, i32 3>
  %241 = shufflevector <2 x float> %239, <2 x float> %238, <2 x i32> <i32 0, i32 3>
  %242 = fcmp oge <2 x float> %240, %241
  %243 = select <2 x i1> %242, <2 x float> %239, <2 x float> %238
  %244 = add i64 %.2735839, 1
  %.idx786.1 = shl i64 %244, 3
  %gep1320 = getelementptr i8, ptr %invariant.gep1319, i64 %.idx786.1
  %245 = load <2 x float>, ptr %gep1320, align 4, !tbaa !9
  %246 = shufflevector <2 x float> %243, <2 x float> %245, <2 x i32> <i32 0, i32 3>
  %247 = shufflevector <2 x float> %245, <2 x float> %243, <2 x i32> <i32 0, i32 3>
  %248 = fcmp oge <2 x float> %246, %247
  %249 = select <2 x i1> %248, <2 x float> %245, <2 x float> %243
  %250 = add i64 %.2735839, 2
  %exitcond952.not.1 = icmp eq i64 %244, %190
  br i1 %exitcond952.not.1, label %._crit_edge842, label %.lr.ph841, !llvm.loop !17

._crit_edge842:                                   ; preds = %.lr.ph841, %.lr.ph841.prol.loopexit
  %.lcssa = phi <2 x float> [ %.lcssa.unr, %.lr.ph841.prol.loopexit ], [ %249, %.lr.ph841 ]
  %251 = extractelement <2 x float> %.lcssa, i64 0
  store float %251, ptr %38, align 4, !tbaa !9
  %252 = extractelement <2 x float> %.lcssa, i64 1
  store float %252, ptr %41, align 4, !tbaa !9
  br label %253

253:                                              ; preds = %._crit_edge842, %223
  %254 = phi <2 x float> [ %.lcssa, %._crit_edge842 ], [ %228, %223 ]
  %shift = shufflevector <2 x float> %254, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %255 = fsub <2 x float> %shift, %254
  %256 = extractelement <2 x float> %255, i64 0
  store float %256, ptr %52, align 4, !tbaa !9
  br i1 %.not, label %.thread, label %258

.thread:                                          ; preds = %253
  %257 = icmp ne i64 %.0696937, 0
  br label %332

258:                                              ; preds = %253
  %259 = load i64, ptr %40, align 8, !tbaa !5
  store i64 %259, ptr %35, align 8, !tbaa !5
  %.not757845 = icmp sgt i64 %.0697936, %259
  br i1 %.not757845, label %._crit_edge850.thread, label %.lr.ph849.preheader

.lr.ph849.preheader:                              ; preds = %258
  %260 = add i64 %259, 1
  %261 = sub i64 %260, %.0697936
  br label %.lr.ph849

.lr.ph849:                                        ; preds = %.lr.ph849.preheader, %265
  %.1726847 = phi i64 [ %266, %265 ], [ 0, %.lr.ph849.preheader ]
  %.3736846 = phi i64 [ %267, %265 ], [ %.0697936, %.lr.ph849.preheader ]
  %262 = getelementptr inbounds i64, ptr %57, i64 %.3736846
  %263 = load i64, ptr %262, align 8, !tbaa !5
  %264 = icmp eq i64 %263, %.0721931
  br i1 %264, label %265, label %._crit_edge850

265:                                              ; preds = %.lr.ph849
  %266 = add nuw i64 %.1726847, 1
  %267 = add nsw i64 %.3736846, 1
  %exitcond953.not = icmp eq i64 %266, %261
  br i1 %exitcond953.not, label %._crit_edge850.thread970, label %.lr.ph849, !llvm.loop !18

._crit_edge850:                                   ; preds = %.lr.ph849
  %268 = icmp eq i64 %.1726847, 0
  br i1 %268, label %._crit_edge850.thread, label %._crit_edge850.thread970

._crit_edge850.thread:                            ; preds = %258, %._crit_edge850
  store float 0.000000e+00, ptr %224, align 4, !tbaa !9
  br label %952

._crit_edge850.thread970:                         ; preds = %265, %._crit_edge850
  %.1726.lcssa972 = phi i64 [ %.1726847, %._crit_edge850 ], [ %261, %265 ]
  %269 = uitofp nneg i64 %.1726.lcssa972 to float
  %270 = sitofp i64 %192 to float
  %271 = fmul float %270, 5.000000e-01
  %272 = fcmp olt float %271, %269
  %273 = add nsw i64 %.1726.lcssa972, %.0697936
  %274 = add nsw i64 %273, -1
  %275 = add nsw i64 %273, -2
  store i64 %275, ptr %35, align 8, !tbaa !5
  %.not758854 = icmp sgt i64 %.0697936, %275
  br i1 %.not758854, label %._crit_edge858, label %.lr.ph857.preheader

.lr.ph857.preheader:                              ; preds = %._crit_edge850.thread970
  %276 = add i64 %.0697936, -1
  %277 = add i64 %276, %.1726.lcssa972
  %278 = add i64 %.1726.lcssa972, -1
  %min.iters.check1248 = icmp ult i64 %278, 8
  br i1 %min.iters.check1248, label %.lr.ph857.preheader1275, label %vector.memcheck1226

vector.memcheck1226:                              ; preds = %.lr.ph857.preheader
  %279 = shl i64 %.0697936, 2
  %scevgep1228 = getelementptr i8, ptr %scevgep1227, i64 %279
  %280 = add i64 %.1726.lcssa972, %.0697936
  %281 = shl i64 %280, 2
  %scevgep1230 = getelementptr i8, ptr %scevgep1229, i64 %281
  %scevgep1232 = getelementptr i8, ptr %scevgep1231, i64 %279
  %scevgep1234 = getelementptr i8, ptr %scevgep1233, i64 %281
  %scevgep1236 = getelementptr i8, ptr %scevgep1235, i64 %279
  %scevgep1238 = getelementptr i8, ptr %scevgep1237, i64 %281
  %bound01239 = icmp ult ptr %scevgep1228, %scevgep1234
  %bound11240 = icmp ult ptr %scevgep1232, %scevgep1230
  %found.conflict1241 = and i1 %bound01239, %bound11240
  %bound01242 = icmp ult ptr %scevgep1228, %scevgep1238
  %bound11243 = icmp ult ptr %scevgep1236, %scevgep1230
  %found.conflict1244 = and i1 %bound01242, %bound11243
  %conflict.rdx1245 = or i1 %found.conflict1241, %found.conflict1244
  br i1 %conflict.rdx1245, label %.lr.ph857.preheader1275, label %vector.ph1249

vector.ph1249:                                    ; preds = %vector.memcheck1226
  %n.vec1251 = and i64 %278, -8
  %ind.end1252 = add i64 %.0697936, %n.vec1251
  br label %vector.body1254

vector.body1254:                                  ; preds = %vector.body1254, %vector.ph1249
  %index1255 = phi i64 [ 0, %vector.ph1249 ], [ %index.next1265, %vector.body1254 ]
  %offset.idx1256 = add i64 %.0697936, %index1255
  %282 = getelementptr float, ptr %15, i64 %offset.idx1256
  %283 = getelementptr i8, ptr %282, i64 16
  %wide.load1257 = load <4 x float>, ptr %282, align 4, !tbaa !9, !alias.scope !19
  %wide.load1258 = load <4 x float>, ptr %283, align 4, !tbaa !9, !alias.scope !19
  %284 = getelementptr float, ptr %16, i64 %offset.idx1256
  %285 = getelementptr i8, ptr %284, i64 16
  %wide.load1259 = load <4 x float>, ptr %284, align 4, !tbaa !9, !alias.scope !22
  %wide.load1260 = load <4 x float>, ptr %285, align 4, !tbaa !9, !alias.scope !22
  %286 = fsub <4 x float> %wide.load1257, %wide.load1259
  %287 = fsub <4 x float> %wide.load1258, %wide.load1260
  %288 = getelementptr inbounds float, ptr %60, i64 %offset.idx1256
  %289 = getelementptr inbounds i8, ptr %288, i64 16
  %wide.load1261 = load <4 x float>, ptr %288, align 4, !tbaa !9, !alias.scope !19
  %wide.load1262 = load <4 x float>, ptr %289, align 4, !tbaa !9, !alias.scope !19
  %290 = getelementptr inbounds float, ptr %59, i64 %offset.idx1256
  %291 = getelementptr inbounds i8, ptr %290, i64 16
  %wide.load1263 = load <4 x float>, ptr %290, align 4, !tbaa !9, !alias.scope !22
  %wide.load1264 = load <4 x float>, ptr %291, align 4, !tbaa !9, !alias.scope !22
  %292 = fadd <4 x float> %wide.load1261, %wide.load1263
  %293 = fadd <4 x float> %wide.load1262, %wide.load1264
  %294 = fsub <4 x float> %286, %292
  %295 = fsub <4 x float> %287, %293
  %296 = fcmp ole <4 x float> %294, zeroinitializer
  %297 = fcmp ole <4 x float> %295, zeroinitializer
  %298 = select <4 x i1> %296, <4 x float> zeroinitializer, <4 x float> %294
  %299 = select <4 x i1> %297, <4 x float> zeroinitializer, <4 x float> %295
  %300 = getelementptr inbounds float, ptr %58, i64 %offset.idx1256
  %301 = getelementptr inbounds i8, ptr %300, i64 16
  store <4 x float> %298, ptr %300, align 4, !tbaa !9, !alias.scope !24, !noalias !26
  store <4 x float> %299, ptr %301, align 4, !tbaa !9, !alias.scope !24, !noalias !26
  %index.next1265 = add nuw i64 %index1255, 8
  %302 = icmp eq i64 %index.next1265, %n.vec1251
  br i1 %302, label %middle.block1246, label %vector.body1254, !llvm.loop !27

middle.block1246:                                 ; preds = %vector.body1254
  %cmp.n1266 = icmp eq i64 %278, %n.vec1251
  br i1 %cmp.n1266, label %._crit_edge858, label %.lr.ph857.preheader1275

.lr.ph857.preheader1275:                          ; preds = %middle.block1246, %vector.memcheck1226, %.lr.ph857.preheader
  %.4737855.ph = phi i64 [ %.0697936, %vector.memcheck1226 ], [ %.0697936, %.lr.ph857.preheader ], [ %ind.end1252, %middle.block1246 ]
  br label %.lr.ph857

.lr.ph857:                                        ; preds = %.lr.ph857.preheader1275, %.lr.ph857
  %.4737855 = phi i64 [ %303, %.lr.ph857 ], [ %.4737855.ph, %.lr.ph857.preheader1275 ]
  %303 = add i64 %.4737855, 1
  %304 = getelementptr float, ptr %15, i64 %.4737855
  %305 = load float, ptr %304, align 4, !tbaa !9
  %306 = getelementptr float, ptr %16, i64 %.4737855
  %307 = load float, ptr %306, align 4, !tbaa !9
  %308 = fsub float %305, %307
  %309 = getelementptr inbounds float, ptr %60, i64 %.4737855
  %310 = load float, ptr %309, align 4, !tbaa !9
  %311 = getelementptr inbounds float, ptr %59, i64 %.4737855
  %312 = load float, ptr %311, align 4, !tbaa !9
  %313 = fadd float %310, %312
  %314 = fsub float %308, %313
  %315 = fcmp ole float %314, 0.000000e+00
  %316 = select i1 %315, float 0.000000e+00, float %314
  %317 = getelementptr inbounds float, ptr %58, i64 %.4737855
  store float %316, ptr %317, align 4, !tbaa !9
  %exitcond954.not = icmp eq i64 %303, %277
  br i1 %exitcond954.not, label %._crit_edge858, label %.lr.ph857, !llvm.loop !28

._crit_edge858:                                   ; preds = %.lr.ph857, %middle.block1246, %._crit_edge850.thread970
  %318 = load float, ptr %3, align 4, !tbaa !9
  %319 = getelementptr inbounds float, ptr %60, i64 %274
  %320 = load float, ptr %319, align 4, !tbaa !9
  %321 = getelementptr inbounds float, ptr %59, i64 %274
  %322 = load float, ptr %321, align 4, !tbaa !9
  %323 = fadd float %320, %322
  %324 = fsub float %318, %323
  %325 = fcmp ole float %324, 0.000000e+00
  %326 = select i1 %325, float 0.000000e+00, float %324
  %327 = getelementptr inbounds float, ptr %58, i64 %274
  store float %326, ptr %327, align 4, !tbaa !9
  %328 = getelementptr inbounds i64, ptr %56, i64 %.0697936
  %329 = load i64, ptr %328, align 8, !tbaa !5
  store i64 %329, ptr %48, align 8, !tbaa !5
  %330 = getelementptr inbounds i64, ptr %56, i64 %274
  %331 = load i64, ptr %330, align 8, !tbaa !5
  store i64 %331, ptr %49, align 8, !tbaa !5
  br i1 %272, label %332, label %.thread973

332:                                              ; preds = %.thread, %._crit_edge858
  %333 = phi i1 [ %257, %.thread ], [ true, %._crit_edge858 ]
  %.1714798 = phi i64 [ %.0713933, %.thread ], [ %274, %._crit_edge858 ]
  %.2727796 = phi i64 [ %.0725930, %.thread ], [ %.1726.lcssa972, %._crit_edge858 ]
  %334 = getelementptr inbounds float, ptr %62, i64 %.0702934
  %335 = call i32 @slarrk_(ptr noundef nonnull %39, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef nonnull %41, ptr noundef nonnull %225, ptr noundef nonnull %334, ptr noundef nonnull %21, ptr noundef nonnull %44, ptr noundef nonnull %43, ptr noundef nonnull %47, ptr noundef nonnull %51) #6
  %336 = load i64, ptr %51, align 8, !tbaa !5
  %.not759 = icmp eq i64 %336, 0
  br i1 %.not759, label %338, label %337

337:                                              ; preds = %332
  store i64 -1, ptr %24, align 8, !tbaa !5
  br label %.loopexit822

338:                                              ; preds = %332
  %339 = load float, ptr %38, align 4, !tbaa !9
  %340 = load float, ptr %43, align 4, !tbaa !9
  %341 = load float, ptr %47, align 4, !tbaa !9
  %342 = call i32 @slarrk_(ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef nonnull %38, ptr noundef nonnull %41, ptr noundef nonnull %225, ptr noundef nonnull %334, ptr noundef nonnull %21, ptr noundef nonnull %44, ptr noundef nonnull %43, ptr noundef nonnull %47, ptr noundef nonnull %51) #6
  %343 = load i64, ptr %51, align 8, !tbaa !5
  %.not760 = icmp eq i64 %343, 0
  br i1 %.not760, label %345, label %344

344:                                              ; preds = %338
  store i64 -1, ptr %24, align 8, !tbaa !5
  br label %.loopexit822

345:                                              ; preds = %338
  %346 = fsub float %340, %341
  %347 = load float, ptr %41, align 4, !tbaa !9
  %348 = load float, ptr %43, align 4, !tbaa !9
  %349 = load float, ptr %47, align 4, !tbaa !9
  %350 = fadd float %348, %349
  %351 = insertelement <2 x float> poison, float %346, i64 0
  %352 = insertelement <2 x float> %351, float %350, i64 1
  %353 = fpext <2 x float> %352 to <2 x double>
  %354 = fcmp oge <2 x float> %352, zeroinitializer
  %355 = fneg <2 x float> %352
  %356 = select <2 x i1> %354, <2 x float> %352, <2 x float> %355
  %357 = fpext <2 x float> %356 to <2 x double>
  %358 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %187, <2 x double> %357, <2 x double> %353)
  %359 = fptrunc <2 x double> %358 to <2 x float>
  %360 = insertelement <2 x float> %359, float %347, i64 1
  %361 = insertelement <2 x float> %359, float %339, i64 0
  %362 = fcmp ole <2 x float> %360, %361
  %363 = insertelement <2 x float> poison, float %339, i64 0
  %364 = insertelement <2 x float> %363, float %347, i64 1
  %365 = select <2 x i1> %362, <2 x float> %364, <2 x float> %359
  %366 = extractelement <2 x float> %365, i64 0
  %367 = extractelement <2 x float> %365, i64 1
  %368 = fsub float %367, %366
  store float %368, ptr %52, align 4, !tbaa !9
  br i1 %.not, label %390, label %401

.thread973:                                       ; preds = %._crit_edge858
  %369 = getelementptr inbounds float, ptr %60, i64 %.0697936
  %370 = load float, ptr %369, align 4, !tbaa !9
  %371 = getelementptr inbounds float, ptr %59, i64 %.0697936
  %372 = load float, ptr %371, align 4, !tbaa !9
  %373 = fsub float %370, %372
  %374 = load float, ptr %319, align 4, !tbaa !9
  %375 = load float, ptr %321, align 4, !tbaa !9
  %376 = fadd float %374, %375
  %377 = insertelement <2 x float> poison, float %373, i64 0
  %378 = insertelement <2 x float> %377, float %376, i64 1
  %379 = fpext <2 x float> %378 to <2 x double>
  %380 = fcmp oge <2 x float> %378, zeroinitializer
  %381 = fneg <2 x float> %378
  %382 = select <2 x i1> %380, <2 x float> %378, <2 x float> %381
  %383 = fpext <2 x float> %382 to <2 x double>
  %384 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %187, <2 x double> %383, <2 x double> %379)
  %385 = fptrunc <2 x double> %384 to <2 x float>
  %386 = shufflevector <2 x float> %385, <2 x float> %254, <2 x i32> <i32 0, i32 3>
  %387 = shufflevector <2 x float> %254, <2 x float> %385, <2 x i32> <i32 0, i32 3>
  %388 = fcmp ole <2 x float> %386, %387
  %389 = select <2 x i1> %388, <2 x float> %254, <2 x float> %385
  br i1 %.not, label %390, label %.thread986

390:                                              ; preds = %.thread973, %345
  %391 = phi float [ %256, %.thread973 ], [ %368, %345 ]
  %392 = phi <2 x float> [ %389, %.thread973 ], [ %365, %345 ]
  store i64 1, ptr %48, align 8, !tbaa !5
  %393 = load i64, ptr %39, align 8, !tbaa !5
  store i64 %393, ptr %49, align 8, !tbaa !5
  %394 = add i64 %.0697936, -1
  %395 = add i64 %394, %393
  %396 = extractelement <2 x float> %392, i64 0
  %397 = call float @llvm.fmuladd.f32(float %391, float 2.500000e-01, float %396)
  store float %397, ptr %36, align 4, !tbaa !9
  %398 = fneg float %391
  %399 = extractelement <2 x float> %392, i64 1
  %400 = call float @llvm.fmuladd.f32(float %398, float 2.500000e-01, float %399)
  store float %400, ptr %37, align 4, !tbaa !9
  br label %416

401:                                              ; preds = %345
  br i1 %333, label %402, label %.thread986

402:                                              ; preds = %401
  %403 = call float @llvm.fmuladd.f32(float %368, float 2.500000e-01, float %366)
  store float %403, ptr %36, align 4, !tbaa !9
  %404 = fneg float %368
  %405 = call float @llvm.fmuladd.f32(float %404, float 2.500000e-01, float %367)
  store float %405, ptr %37, align 4, !tbaa !9
  br label %416

.thread986:                                       ; preds = %.thread973, %401
  %.1714797978994 = phi i64 [ %.1714798, %401 ], [ %274, %.thread973 ]
  %.2727795979993 = phi i64 [ %.2727796, %401 ], [ %.1726.lcssa972, %.thread973 ]
  %406 = phi <2 x float> [ %365, %401 ], [ %389, %.thread973 ]
  %407 = load float, ptr %3, align 4, !tbaa !9
  %408 = extractelement <2 x float> %406, i64 1
  %.inv815 = fcmp ole float %408, %407
  %..0 = select i1 %.inv815, float %408, float %407
  %409 = load float, ptr %2, align 4, !tbaa !9
  %410 = extractelement <2 x float> %406, i64 0
  %.inv816 = fcmp oge float %410, %409
  %411 = select i1 %.inv816, float %410, float %409
  %412 = fsub float %..0, %411
  store float %412, ptr %43, align 4, !tbaa !9
  %413 = fmul float %412, 2.500000e-01
  %414 = fadd float %411, %413
  store float %414, ptr %36, align 4, !tbaa !9
  %415 = fsub float %..0, %413
  store float %415, ptr %37, align 4, !tbaa !9
  br label %416

416:                                              ; preds = %402, %.thread986, %390
  %.3728 = phi i64 [ %.2727796, %402 ], [ %.2727795979993, %.thread986 ], [ %393, %390 ]
  %.2715 = phi i64 [ %.1714798, %402 ], [ %.1714797978994, %.thread986 ], [ %395, %390 ]
  %.not762 = phi i1 [ false, %402 ], [ true, %.thread986 ], [ false, %390 ]
  %.2 = phi i64 [ 1, %402 ], [ 0, %.thread986 ], [ 1, %390 ]
  %417 = phi <2 x float> [ %365, %402 ], [ %406, %.thread986 ], [ %392, %390 ]
  %418 = icmp sgt i64 %.3728, 1
  br i1 %418, label %.thread799, label %421

.thread799:                                       ; preds = %416
  %419 = getelementptr inbounds float, ptr %63, i64 %.0702934
  %420 = call i32 @slarrc_(ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %225, ptr noundef nonnull %419, ptr noundef nonnull %21, ptr noundef nonnull %42, ptr noundef nonnull %45, ptr noundef nonnull %46, ptr noundef nonnull %51) #6
  br label %425

421:                                              ; preds = %416
  %422 = icmp eq i64 %.3728, 1
  br i1 %422, label %423, label %425

423:                                              ; preds = %421
  %424 = load float, ptr %38, align 4, !tbaa !9
  br label %452

425:                                              ; preds = %.thread799, %421
  %426 = load i64, ptr %45, align 8, !tbaa !5
  %427 = load i64, ptr %48, align 8, !tbaa !5
  %428 = sub nsw i64 %426, %427
  %429 = load i64, ptr %49, align 8, !tbaa !5
  %430 = load i64, ptr %46, align 8, !tbaa !5
  %431 = sub nsw i64 %429, %430
  %.not761 = icmp slt i64 %428, %431
  br i1 %.not761, label %442, label %432

432:                                              ; preds = %425
  br i1 %.not, label %433, label %438

433:                                              ; preds = %432
  %434 = load float, ptr %38, align 4
  %435 = extractelement <2 x float> %417, i64 0
  %436 = fcmp oge float %435, %434
  %437 = select i1 %436, float %435, float %434
  br label %452

438:                                              ; preds = %432
  %439 = extractelement <2 x float> %417, i64 0
  br i1 %.not762, label %440, label %.thread810

440:                                              ; preds = %438
  %441 = load float, ptr %2, align 4, !tbaa !9
  %.inv817 = fcmp oge float %439, %441
  %..0694 = select i1 %.inv817, float %439, float %441
  br label %.thread800

442:                                              ; preds = %425
  br i1 %.not, label %443, label %448

443:                                              ; preds = %442
  %444 = load float, ptr %41, align 4
  %445 = extractelement <2 x float> %417, i64 1
  %446 = fcmp ole float %445, %444
  %447 = select i1 %446, float %445, float %444
  br label %452

448:                                              ; preds = %442
  %449 = extractelement <2 x float> %417, i64 1
  br i1 %.not762, label %450, label %.thread810

450:                                              ; preds = %448
  %451 = load float, ptr %3, align 4, !tbaa !9
  %.inv818 = fcmp ole float %449, %451
  %..0790 = select i1 %.inv818, float %449, float %451
  br label %.thread800

452:                                              ; preds = %443, %433, %423
  %.2710 = phi float [ %424, %423 ], [ %437, %433 ], [ %447, %443 ]
  %.0700 = phi float [ 1.000000e+00, %423 ], [ 1.000000e+00, %433 ], [ -1.000000e+00, %443 ]
  br i1 %.not762, label %.thread800, label %.thread810

.thread810:                                       ; preds = %438, %448, %452
  %.0700814 = phi float [ %.0700, %452 ], [ -1.000000e+00, %448 ], [ 1.000000e+00, %438 ]
  %.2710813 = phi float [ %.2710, %452 ], [ %449, %448 ], [ %439, %438 ]
  %453 = load float, ptr %52, align 4, !tbaa !9
  %454 = fmul float %453, %76
  %455 = load i64, ptr %1, align 8, !tbaa !5
  %456 = sitofp i64 %455 to float
  %457 = load float, ptr %21, align 4, !tbaa !9
  %458 = fmul float %457, 2.000000e+00
  %459 = call float @llvm.fmuladd.f32(float %454, float %456, float %458)
  br label %497

.thread800:                                       ; preds = %440, %450, %452
  %.0700806 = phi float [ %.0700, %452 ], [ -1.000000e+00, %450 ], [ 1.000000e+00, %440 ]
  %.2710804 = phi float [ %.2710, %452 ], [ %..0790, %450 ], [ %..0694, %440 ]
  br i1 %418, label %460, label %494

460:                                              ; preds = %.thread800
  %461 = getelementptr inbounds float, ptr %60, i64 %.2715
  %462 = load float, ptr %461, align 4, !tbaa !9
  %463 = getelementptr inbounds float, ptr %59, i64 %.2715
  %464 = load float, ptr %463, align 4, !tbaa !9
  %465 = fadd float %462, %464
  %466 = getelementptr inbounds float, ptr %60, i64 %.0697936
  %467 = load float, ptr %466, align 4, !tbaa !9
  %468 = fsub float %465, %467
  %469 = getelementptr inbounds float, ptr %59, i64 %.0697936
  %470 = load float, ptr %469, align 4, !tbaa !9
  %471 = fsub float %468, %470
  %472 = sub nsw i64 %.2715, %.0697936
  %473 = sitofp i64 %472 to float
  %474 = fdiv float %471, %473
  %475 = fcmp oge float %474, 0.000000e+00
  %476 = fneg float %474
  %477 = select i1 %475, float %474, float %476
  %478 = fcmp oeq float %.0700806, 1.000000e+00
  br i1 %478, label %479, label %487

479:                                              ; preds = %460
  %480 = getelementptr inbounds float, ptr %58, i64 %.0697936
  %481 = load float, ptr %480, align 4, !tbaa !9
  %482 = fcmp oge float %481, %477
  %483 = select i1 %482, float %481, float %477
  %484 = fmul float %483, 5.000000e-01
  %485 = fcmp oge float %484, %470
  %486 = select i1 %485, float %484, float %470
  br label %497

487:                                              ; preds = %460
  %gep = getelementptr float, ptr %invariant.gep, i64 %.2715
  %488 = load float, ptr %gep, align 4, !tbaa !9
  %489 = fcmp oge float %488, %477
  %490 = select i1 %489, float %488, float %477
  %491 = fmul float %490, 5.000000e-01
  %492 = fcmp oge float %491, %464
  %493 = select i1 %492, float %491, float %464
  br label %497

494:                                              ; preds = %.thread800
  %495 = getelementptr inbounds float, ptr %59, i64 %.0697936
  %496 = load float, ptr %495, align 4, !tbaa !9
  br label %497

497:                                              ; preds = %494, %487, %479, %.thread810
  %.0700805 = phi float [ %.0700814, %.thread810 ], [ 1.000000e+00, %479 ], [ %.0700806, %487 ], [ %.0700806, %494 ]
  %.2710803 = phi float [ %.2710813, %.thread810 ], [ %.2710804, %479 ], [ %.2710804, %487 ], [ %.2710804, %494 ]
  %.0722 = phi float [ %459, %.thread810 ], [ %486, %479 ], [ %493, %487 ], [ %496, %494 ]
  %498 = load i64, ptr %39, align 8, !tbaa !5
  %.not765.not859 = icmp sgt i64 %498, 1
  %499 = load float, ptr %52, align 4, !tbaa !9
  %500 = fmul float %499, 6.400000e+01
  %.idx784 = shl i64 %498, 3
  %501 = getelementptr i8, ptr %54, i64 %.idx784
  %502 = getelementptr float, ptr %54, i64 %498
  %.not766868 = icmp slt i64 %498, 1
  %503 = fneg float %.0700805
  %504 = fcmp oeq float %.0700805, 1.000000e+00
  %505 = load float, ptr %41, align 4
  %506 = fmul float %499, 2.000000e+00
  %507 = fmul float %506, %76
  %508 = load float, ptr %38, align 4
  %509 = fmul float %499, -2.000000e+00
  %510 = fmul float %509, %76
  %min.iters.check1210 = icmp ult i64 %498, 4
  %n.vec1213 = and i64 %498, 9223372036854775804
  %ind.end1214 = or disjoint i64 %n.vec1213, 1
  %broadcast.splatinsert1222 = insertelement <2 x float> poison, float %.0700805, i64 0
  %broadcast.splat1223 = shufflevector <2 x float> %broadcast.splatinsert1222, <2 x float> poison, <2 x i32> zeroinitializer
  %cmp.n1225 = icmp eq i64 %498, %n.vec1213
  br label %511

511:                                              ; preds = %497, %575
  %.3711879 = phi float [ %.2710803, %497 ], [ %.4, %575 ]
  %.0712878 = phi i64 [ 1, %497 ], [ %576, %575 ]
  %.1723877 = phi float [ %.0722, %497 ], [ %.2724, %575 ]
  %512 = load float, ptr %225, align 4, !tbaa !9
  %513 = fsub float %512, %.3711879
  store float %513, ptr %22, align 4, !tbaa !9
  %514 = fcmp ult float %513, 0.000000e+00
  %515 = fneg float %513
  %516 = select i1 %514, float %515, float %513
  br i1 %.not765.not859, label %.lr.ph864, label %539

.lr.ph864:                                        ; preds = %511, %.lr.ph864
  %.0719862 = phi float [ %538, %.lr.ph864 ], [ %516, %511 ]
  %.0730861 = phi i64 [ %525, %.lr.ph864 ], [ %.0702934, %511 ]
  %.5860 = phi i64 [ %532, %.lr.ph864 ], [ 1, %511 ]
  %517 = getelementptr inbounds float, ptr %54, i64 %.5860
  %518 = load float, ptr %517, align 4, !tbaa !9
  %519 = fdiv float 1.000000e+00, %518
  %520 = getelementptr float, ptr %501, i64 %.5860
  store float %519, ptr %520, align 4, !tbaa !9
  %521 = getelementptr inbounds float, ptr %63, i64 %.0730861
  %522 = load float, ptr %521, align 4, !tbaa !9
  %523 = fmul float %519, %522
  %524 = getelementptr float, ptr %502, i64 %.5860
  store float %523, ptr %524, align 4, !tbaa !9
  %525 = add nsw i64 %.0730861, 1
  %526 = getelementptr float, ptr %6, i64 %.0730861
  %527 = load float, ptr %526, align 4, !tbaa !9
  %528 = fsub float %527, %.3711879
  %529 = load float, ptr %521, align 4, !tbaa !9
  %530 = fneg float %523
  %531 = call float @llvm.fmuladd.f32(float %530, float %529, float %528)
  %532 = add nuw nsw i64 %.5860, 1
  %533 = getelementptr float, ptr %22, i64 %.5860
  store float %531, ptr %533, align 4, !tbaa !9
  %534 = fcmp oge float %531, 0.000000e+00
  %535 = fneg float %531
  %536 = select i1 %534, float %531, float %535
  %537 = fcmp oge float %.0719862, %536
  %538 = select i1 %537, float %.0719862, float %536
  %exitcond955.not = icmp eq i64 %532, %498
  br i1 %exitcond955.not, label %._crit_edge865, label %.lr.ph864, !llvm.loop !29

._crit_edge865:                                   ; preds = %.lr.ph864
  store float %523, ptr %43, align 4, !tbaa !9
  br label %539

539:                                              ; preds = %._crit_edge865, %511
  %.0719.lcssa = phi float [ %538, %._crit_edge865 ], [ %516, %511 ]
  %540 = fcmp ogt float %.0719.lcssa, %500
  %or.cond15 = or i1 %.not762, %540
  %brmerge = or i1 %or.cond15, %.not766868
  %541 = sext i1 %or.cond15 to i64
  %.mux = add nsw i64 %498, %541
  %..mux = zext i1 %540 to i64
  br i1 %brmerge, label %.loopexit, label %.lr.ph872.preheader

.lr.ph872.preheader:                              ; preds = %539
  br i1 %min.iters.check1210, label %.lr.ph872.preheader1268, label %vector.body1216

vector.body1216:                                  ; preds = %.lr.ph872.preheader, %vector.body1216
  %index1217 = phi i64 [ %index.next1224, %vector.body1216 ], [ 0, %.lr.ph872.preheader ]
  %vec.phi = phi <2 x i1> [ %548, %vector.body1216 ], [ zeroinitializer, %.lr.ph872.preheader ]
  %vec.phi1218 = phi <2 x i1> [ %549, %vector.body1216 ], [ zeroinitializer, %.lr.ph872.preheader ]
  %542 = getelementptr float, ptr %22, i64 %index1217
  %543 = getelementptr inbounds i8, ptr %542, i64 8
  %wide.load1220 = load <2 x float>, ptr %542, align 4, !tbaa !9
  %wide.load1221 = load <2 x float>, ptr %543, align 4, !tbaa !9
  %544 = fmul <2 x float> %broadcast.splat1223, %wide.load1220
  %545 = fmul <2 x float> %broadcast.splat1223, %wide.load1221
  %546 = fcmp olt <2 x float> %544, zeroinitializer
  %547 = fcmp olt <2 x float> %545, zeroinitializer
  %548 = or <2 x i1> %vec.phi, %546
  %549 = or <2 x i1> %vec.phi1218, %547
  %index.next1224 = add nuw i64 %index1217, 4
  %550 = icmp eq i64 %index.next1224, %n.vec1213
  br i1 %550, label %middle.block1208, label %vector.body1216, !llvm.loop !30

middle.block1208:                                 ; preds = %vector.body1216
  %551 = extractelement <2 x float> %545, i64 1
  %bin.rdx = or <2 x i1> %549, %548
  %bin.rdx.fr = freeze <2 x i1> %bin.rdx
  %552 = bitcast <2 x i1> %bin.rdx.fr to i2
  %.not1267 = icmp ne i2 %552, 0
  %rdx.select = zext i1 %.not1267 to i64
  br i1 %cmp.n1225, label %..loopexit_crit_edge, label %.lr.ph872.preheader1268

.lr.ph872.preheader1268:                          ; preds = %middle.block1208, %.lr.ph872.preheader
  %.1705870.ph = phi i64 [ 0, %.lr.ph872.preheader ], [ %rdx.select, %middle.block1208 ]
  %.6869.ph = phi i64 [ 1, %.lr.ph872.preheader ], [ %ind.end1214, %middle.block1208 ]
  br label %.lr.ph872

.lr.ph872:                                        ; preds = %.lr.ph872.preheader1268, %.lr.ph872
  %.1705870 = phi i64 [ %.2706, %.lr.ph872 ], [ %.1705870.ph, %.lr.ph872.preheader1268 ]
  %.6869 = phi i64 [ %557, %.lr.ph872 ], [ %.6869.ph, %.lr.ph872.preheader1268 ]
  %553 = getelementptr inbounds float, ptr %54, i64 %.6869
  %554 = load float, ptr %553, align 4, !tbaa !9
  %555 = fmul float %.0700805, %554
  %556 = fcmp olt float %555, 0.000000e+00
  %.2706 = select i1 %556, i64 1, i64 %.1705870
  %557 = add nuw i64 %.6869, 1
  %exitcond956.not = icmp eq i64 %.6869, %498
  br i1 %exitcond956.not, label %..loopexit_crit_edge, label %.lr.ph872, !llvm.loop !31

..loopexit_crit_edge:                             ; preds = %.lr.ph872, %middle.block1208
  %.lcssa1012 = phi float [ %551, %middle.block1208 ], [ %555, %.lr.ph872 ]
  %.2706.lcssa = phi i64 [ %rdx.select, %middle.block1208 ], [ %.2706, %.lr.ph872 ]
  store float %.lcssa1012, ptr %43, align 4, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %539, %..loopexit_crit_edge
  %558 = phi i64 [ %.mux, %539 ], [ %498, %..loopexit_crit_edge ]
  %.3707 = phi i64 [ %..mux, %539 ], [ %.2706.lcssa, %..loopexit_crit_edge ]
  %.not767 = icmp eq i64 %.3707, 0
  br i1 %.not767, label %578, label %559

559:                                              ; preds = %.loopexit
  %560 = icmp eq i64 %.0712878, 5
  br i1 %560, label %561, label %572

561:                                              ; preds = %559
  %562 = load i64, ptr %1, align 8, !tbaa !5
  %563 = sitofp i64 %562 to float
  %564 = load float, ptr %21, align 4, !tbaa !9
  br i1 %504, label %565, label %569

565:                                              ; preds = %561
  %566 = call float @llvm.fmuladd.f32(float %510, float %563, float %508)
  %567 = fneg float %564
  %568 = call float @llvm.fmuladd.f32(float %567, float 4.000000e+00, float %566)
  br label %575

569:                                              ; preds = %561
  %570 = call float @llvm.fmuladd.f32(float %507, float %563, float %505)
  %571 = call float @llvm.fmuladd.f32(float %564, float 4.000000e+00, float %570)
  br label %575

572:                                              ; preds = %559
  %573 = call float @llvm.fmuladd.f32(float %503, float %.1723877, float %.3711879)
  %574 = fmul float %.1723877, 2.000000e+00
  br label %575

575:                                              ; preds = %565, %569, %572
  %.2724 = phi float [ %.1723877, %565 ], [ %.1723877, %569 ], [ %574, %572 ]
  %.4 = phi float [ %568, %565 ], [ %571, %569 ], [ %573, %572 ]
  %576 = add nuw nsw i64 %.0712878, 1
  %exitcond957.not = icmp eq i64 %576, 7
  br i1 %exitcond957.not, label %577, label %511, !llvm.loop !32

577:                                              ; preds = %575
  store i64 2, ptr %24, align 8, !tbaa !5
  br label %.loopexit822

578:                                              ; preds = %.loopexit
  store i64 %558, ptr %35, align 8, !tbaa !5
  store float %.3711879, ptr %224, align 4, !tbaa !9
  %579 = call i32 @f2c_scopy(ptr noundef nonnull %39, ptr noundef nonnull %22, ptr noundef nonnull @c__1, ptr noundef nonnull %225, ptr noundef nonnull @c__1) #6
  %580 = load i64, ptr %39, align 8, !tbaa !5
  %581 = add nsw i64 %580, -1
  store i64 %581, ptr %35, align 8, !tbaa !5
  %582 = getelementptr float, ptr %22, i64 %580
  %583 = getelementptr inbounds float, ptr %63, i64 %.0702934
  %584 = call i32 @f2c_scopy(ptr noundef nonnull %35, ptr noundef %582, ptr noundef nonnull @c__1, ptr noundef nonnull %583, ptr noundef nonnull @c__1) #6
  br i1 %418, label %.preheader.preheader, label %627

.preheader.preheader:                             ; preds = %578
  store i64 1, ptr %50, align 16, !tbaa !5
  store i64 1, ptr %180, align 8, !tbaa !5
  store i64 1, ptr %181, align 16, !tbaa !5
  store i64 1, ptr %182, align 8, !tbaa !5
  %585 = load i64, ptr %39, align 8, !tbaa !5
  %586 = shl i64 %585, 1
  %587 = add nsw i64 %586, -1
  store i64 %587, ptr %35, align 8, !tbaa !5
  %588 = call i32 @slarnv_(ptr noundef nonnull @c__2, ptr noundef nonnull %50, ptr noundef nonnull %35, ptr noundef nonnull %22) #6
  %589 = load i64, ptr %39, align 8, !tbaa !5
  %.not768.not881 = icmp sgt i64 %589, 1
  br i1 %.not768.not881, label %.lr.ph884, label %._crit_edge885

.lr.ph884:                                        ; preds = %.preheader.preheader
  %590 = add nsw i64 %.0702934, -1
  %591 = getelementptr float, ptr %54, i64 %589
  %592 = add nsw i64 %589, -1
  %min.iters.check1191 = icmp ult i64 %589, 9
  br i1 %min.iters.check1191, label %scalar.ph1190.preheader, label %vector.memcheck1158

vector.memcheck1158:                              ; preds = %.lr.ph884
  %593 = shl i64 %.0702934, 2
  %scevgep1160 = getelementptr i8, ptr %scevgep1159, i64 %593
  %594 = shl i64 %589, 2
  %595 = add i64 %593, %594
  %scevgep1162 = getelementptr i8, ptr %scevgep1161, i64 %595
  %scevgep1164 = getelementptr i8, ptr %scevgep1163, i64 %593
  %scevgep1166 = getelementptr i8, ptr %scevgep1165, i64 %595
  %scevgep1167 = getelementptr i8, ptr %22, i64 %594
  %596 = shl i64 %589, 3
  %scevgep1169 = getelementptr i8, ptr %scevgep1168, i64 %596
  %bound01170 = icmp ult ptr %scevgep1160, %scevgep1166
  %bound11171 = icmp ult ptr %scevgep1164, %scevgep1162
  %found.conflict1172 = and i1 %bound01170, %bound11171
  %bound01173 = icmp ult ptr %scevgep1160, %scevgep1169
  %bound11174 = icmp ult ptr %scevgep1167, %scevgep1162
  %found.conflict1175 = and i1 %bound01173, %bound11174
  %conflict.rdx1176 = or i1 %found.conflict1172, %found.conflict1175
  %bound01177 = icmp ult ptr %scevgep1160, %591
  %bound11178 = icmp ugt ptr %scevgep1162, %22
  %found.conflict1179 = and i1 %bound01177, %bound11178
  %conflict.rdx1180 = or i1 %conflict.rdx1176, %found.conflict1179
  %bound01181 = icmp ult ptr %scevgep1164, %scevgep1169
  %bound11182 = icmp ult ptr %scevgep1167, %scevgep1166
  %found.conflict1183 = and i1 %bound01181, %bound11182
  %conflict.rdx1184 = or i1 %conflict.rdx1180, %found.conflict1183
  %bound01185 = icmp ult ptr %scevgep1164, %591
  %bound11186 = icmp ugt ptr %scevgep1166, %22
  %found.conflict1187 = and i1 %bound01185, %bound11186
  %conflict.rdx1188 = or i1 %conflict.rdx1184, %found.conflict1187
  br i1 %conflict.rdx1188, label %scalar.ph1190.preheader, label %vector.ph1192

vector.ph1192:                                    ; preds = %vector.memcheck1158
  %n.vec1194 = and i64 %592, -4
  %ind.end1195 = or disjoint i64 %n.vec1194, 1
  br label %vector.body1197

vector.body1197:                                  ; preds = %vector.body1197, %vector.ph1192
  %index1198 = phi i64 [ 0, %vector.ph1192 ], [ %index.next1206, %vector.body1197 ]
  %offset.idx1199 = or disjoint i64 %index1198, 1
  %597 = getelementptr float, ptr %22, i64 %index1198
  %wide.load1200 = load <4 x float>, ptr %597, align 4, !tbaa !9, !alias.scope !33
  %598 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1202, <4 x float> %wide.load1200, <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>)
  %599 = add i64 %590, %offset.idx1199
  %600 = getelementptr inbounds float, ptr %64, i64 %599
  %wide.load1203 = load <4 x float>, ptr %600, align 4, !tbaa !9, !alias.scope !36, !noalias !38
  %601 = fmul <4 x float> %wide.load1203, %598
  store <4 x float> %601, ptr %600, align 4, !tbaa !9, !alias.scope !36, !noalias !38
  %602 = getelementptr float, ptr %591, i64 %offset.idx1199
  %wide.load1204 = load <4 x float>, ptr %602, align 4, !tbaa !9, !alias.scope !41
  %603 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1202, <4 x float> %wide.load1204, <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>)
  %604 = getelementptr inbounds float, ptr %63, i64 %599
  %wide.load1205 = load <4 x float>, ptr %604, align 4, !tbaa !9, !alias.scope !42, !noalias !43
  %605 = fmul <4 x float> %wide.load1205, %603
  store <4 x float> %605, ptr %604, align 4, !tbaa !9, !alias.scope !42, !noalias !43
  %index.next1206 = add nuw i64 %index1198, 4
  %606 = icmp eq i64 %index.next1206, %n.vec1194
  br i1 %606, label %middle.block1189, label %vector.body1197, !llvm.loop !44

middle.block1189:                                 ; preds = %vector.body1197
  %cmp.n1207 = icmp eq i64 %592, %n.vec1194
  br i1 %cmp.n1207, label %._crit_edge885, label %scalar.ph1190.preheader

scalar.ph1190.preheader:                          ; preds = %middle.block1189, %vector.memcheck1158, %.lr.ph884
  %.8882.ph = phi i64 [ 1, %vector.memcheck1158 ], [ 1, %.lr.ph884 ], [ %ind.end1195, %middle.block1189 ]
  br label %scalar.ph1190

scalar.ph1190:                                    ; preds = %scalar.ph1190.preheader, %scalar.ph1190
  %.8882 = phi i64 [ %620, %scalar.ph1190 ], [ %.8882.ph, %scalar.ph1190.preheader ]
  %607 = getelementptr inbounds float, ptr %54, i64 %.8882
  %608 = load float, ptr %607, align 4, !tbaa !9
  %609 = call float @llvm.fmuladd.f32(float %179, float %608, float 1.000000e+00)
  %610 = add i64 %590, %.8882
  %611 = getelementptr inbounds float, ptr %64, i64 %610
  %612 = load float, ptr %611, align 4, !tbaa !9
  %613 = fmul float %612, %609
  store float %613, ptr %611, align 4, !tbaa !9
  %614 = getelementptr float, ptr %591, i64 %.8882
  %615 = load float, ptr %614, align 4, !tbaa !9
  %616 = call float @llvm.fmuladd.f32(float %179, float %615, float 1.000000e+00)
  %617 = getelementptr inbounds float, ptr %63, i64 %610
  %618 = load float, ptr %617, align 4, !tbaa !9
  %619 = fmul float %618, %616
  store float %619, ptr %617, align 4, !tbaa !9
  %620 = add nuw nsw i64 %.8882, 1
  %exitcond959.not = icmp eq i64 %620, %589
  br i1 %exitcond959.not, label %._crit_edge885, label %scalar.ph1190, !llvm.loop !45

._crit_edge885:                                   ; preds = %scalar.ph1190, %middle.block1189, %.preheader.preheader
  %621 = getelementptr inbounds float, ptr %54, i64 %589
  %622 = load float, ptr %621, align 4, !tbaa !9
  %623 = call float @llvm.fmuladd.f32(float %179, float %622, float 1.000000e+00)
  %624 = getelementptr inbounds float, ptr %64, i64 %190
  %625 = load float, ptr %624, align 4, !tbaa !9
  %626 = fmul float %625, %623
  store float %626, ptr %624, align 4, !tbaa !9
  br label %627

627:                                              ; preds = %._crit_edge885, %578
  br i1 %.not762, label %628, label %740

628:                                              ; preds = %627
  %.not769915 = icmp sgt i64 %.0697936, %.2715
  br i1 %.not769915, label %._crit_edge919, label %.lr.ph918.preheader

.lr.ph918.preheader:                              ; preds = %628
  %629 = add i64 %.2715, 1
  %630 = sub i64 %629, %.0697936
  %min.iters.check1048 = icmp ult i64 %630, 4
  br i1 %min.iters.check1048, label %.lr.ph918.preheader1270, label %vector.memcheck1040

vector.memcheck1040:                              ; preds = %.lr.ph918.preheader
  %631 = shl i64 %.0697936, 2
  %scevgep1041 = getelementptr i8, ptr %scevgep, i64 %631
  %632 = shl i64 %.2715, 2
  %scevgep1042 = getelementptr i8, ptr %15, i64 %632
  %scevgep1044 = getelementptr i8, ptr %scevgep1043, i64 %631
  %scevgep1045 = getelementptr i8, ptr %16, i64 %632
  %bound0 = icmp ult ptr %scevgep1041, %scevgep1045
  %bound1 = icmp ult ptr %scevgep1044, %scevgep1042
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph918.preheader1270, label %vector.ph1049

vector.ph1049:                                    ; preds = %vector.memcheck1040
  %n.vec1051 = and i64 %630, -4
  %ind.end1052 = add i64 %.0697936, %n.vec1051
  %broadcast.splatinsert = insertelement <4 x float> poison, float %.3711879, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1054

vector.body1054:                                  ; preds = %vector.body1054, %vector.ph1049
  %index1055 = phi i64 [ 0, %vector.ph1049 ], [ %index.next1061, %vector.body1054 ]
  %offset.idx1056 = add i64 %.0697936, %index1055
  %633 = getelementptr inbounds float, ptr %60, i64 %offset.idx1056
  %wide.load1057 = load <4 x float>, ptr %633, align 4, !tbaa !9, !alias.scope !46, !noalias !49
  %634 = fsub <4 x float> %wide.load1057, %broadcast.splat
  store <4 x float> %634, ptr %633, align 4, !tbaa !9, !alias.scope !46, !noalias !49
  %635 = fcmp oge <4 x float> %634, zeroinitializer
  %636 = fneg <4 x float> %634
  %637 = select <4 x i1> %635, <4 x float> %634, <4 x float> %636
  %638 = fpext <4 x float> %637 to <4 x double>
  %639 = getelementptr inbounds float, ptr %59, i64 %offset.idx1056
  %wide.load1058 = load <4 x float>, ptr %639, align 4, !tbaa !9, !alias.scope !49
  %640 = fpext <4 x float> %wide.load1058 to <4 x double>
  %641 = call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %638, <4 x double> %broadcast.splat1060, <4 x double> %640)
  %642 = fptrunc <4 x double> %641 to <4 x float>
  store <4 x float> %642, ptr %639, align 4, !tbaa !9, !alias.scope !49
  %index.next1061 = add nuw i64 %index1055, 4
  %643 = icmp eq i64 %index.next1061, %n.vec1051
  br i1 %643, label %middle.block1046, label %vector.body1054, !llvm.loop !51

middle.block1046:                                 ; preds = %vector.body1054
  %cmp.n1062 = icmp eq i64 %630, %n.vec1051
  br i1 %cmp.n1062, label %._crit_edge919, label %.lr.ph918.preheader1270

.lr.ph918.preheader1270:                          ; preds = %middle.block1046, %vector.memcheck1040, %.lr.ph918.preheader
  %.1731916.ph = phi i64 [ %.0697936, %vector.memcheck1040 ], [ %.0697936, %.lr.ph918.preheader ], [ %ind.end1052, %middle.block1046 ]
  br label %.lr.ph918

.lr.ph918:                                        ; preds = %.lr.ph918.preheader1270, %.lr.ph918
  %.1731916 = phi i64 [ %656, %.lr.ph918 ], [ %.1731916.ph, %.lr.ph918.preheader1270 ]
  %644 = getelementptr inbounds float, ptr %60, i64 %.1731916
  %645 = load float, ptr %644, align 4, !tbaa !9
  %646 = fsub float %645, %.3711879
  store float %646, ptr %644, align 4, !tbaa !9
  %647 = fcmp oge float %646, 0.000000e+00
  %648 = fneg float %646
  %649 = select i1 %647, float %646, float %648
  %650 = fpext float %649 to double
  %651 = getelementptr inbounds float, ptr %59, i64 %.1731916
  %652 = load float, ptr %651, align 4, !tbaa !9
  %653 = fpext float %652 to double
  %654 = call double @llvm.fmuladd.f64(double %650, double %78, double %653)
  %655 = fptrunc double %654 to float
  store float %655, ptr %651, align 4, !tbaa !9
  %656 = add i64 %.1731916, 1
  %exitcond965.not = icmp eq i64 %.1731916, %.2715
  br i1 %exitcond965.not, label %._crit_edge919, label %.lr.ph918, !llvm.loop !52

._crit_edge919:                                   ; preds = %.lr.ph918, %middle.block1046, %628
  %.not770.not920 = icmp slt i64 %.0702934, %190
  br i1 %.not770.not920, label %.lr.ph923.preheader, label %._crit_edge924

.lr.ph923.preheader:                              ; preds = %._crit_edge919
  %657 = sub i64 %190, %.0702934
  %min.iters.check1026 = icmp ult i64 %657, 8
  %brmerge1325 = or i1 %min.iters.check1026, %conflict.rdx1023
  br i1 %brmerge1325, label %.lr.ph923.preheader1269, label %vector.ph1027

vector.ph1027:                                    ; preds = %.lr.ph923.preheader
  %n.vec1029 = and i64 %657, -8
  %ind.end1030 = add i64 %.0702934, %n.vec1029
  br label %vector.body1032

vector.body1032:                                  ; preds = %vector.body1032, %vector.ph1027
  %index1033 = phi i64 [ 0, %vector.ph1027 ], [ %index.next1038, %vector.body1032 ]
  %offset.idx1034 = add i64 %.0702934, %index1033
  %658 = getelementptr inbounds float, ptr %63, i64 %offset.idx1034
  %659 = getelementptr inbounds i8, ptr %658, i64 16
  %wide.load = load <4 x float>, ptr %658, align 4, !tbaa !9
  %wide.load1035 = load <4 x float>, ptr %659, align 4, !tbaa !9
  %660 = getelementptr inbounds float, ptr %64, i64 %offset.idx1034
  %661 = getelementptr inbounds i8, ptr %660, i64 16
  %wide.load1036 = load <4 x float>, ptr %660, align 4, !tbaa !9
  %wide.load1037 = load <4 x float>, ptr %661, align 4, !tbaa !9
  %662 = fmul <4 x float> %wide.load, %wide.load
  %663 = fmul <4 x float> %wide.load1035, %wide.load1035
  %664 = fmul <4 x float> %wide.load1036, %662
  %665 = fmul <4 x float> %wide.load1037, %663
  %666 = getelementptr inbounds float, ptr %54, i64 %offset.idx1034
  %667 = getelementptr inbounds i8, ptr %666, i64 16
  store <4 x float> %664, ptr %666, align 4, !tbaa !9
  store <4 x float> %665, ptr %667, align 4, !tbaa !9
  %index.next1038 = add nuw i64 %index1033, 8
  %668 = icmp eq i64 %index.next1038, %n.vec1029
  br i1 %668, label %middle.block1024, label %vector.body1032, !llvm.loop !53

middle.block1024:                                 ; preds = %vector.body1032
  %cmp.n1039 = icmp eq i64 %657, %n.vec1029
  br i1 %cmp.n1039, label %._crit_edge924, label %.lr.ph923.preheader1269

.lr.ph923.preheader1269:                          ; preds = %.lr.ph923.preheader, %middle.block1024
  %.9921.ph = phi i64 [ %.0702934, %.lr.ph923.preheader ], [ %ind.end1030, %middle.block1024 ]
  %669 = sub i64 %190, %.9921.ph
  %.neg1301 = add i64 %.9921.ph, 1
  %xtraiter1297 = and i64 %669, 1
  %lcmp.mod1298.not = icmp eq i64 %xtraiter1297, 0
  br i1 %lcmp.mod1298.not, label %.lr.ph923.prol.loopexit, label %.lr.ph923.prol

.lr.ph923.prol:                                   ; preds = %.lr.ph923.preheader1269
  %670 = getelementptr inbounds float, ptr %63, i64 %.9921.ph
  %671 = load float, ptr %670, align 4, !tbaa !9
  %672 = getelementptr inbounds float, ptr %64, i64 %.9921.ph
  %673 = load float, ptr %672, align 4, !tbaa !9
  %674 = fmul float %671, %671
  %675 = fmul float %673, %674
  %676 = getelementptr inbounds float, ptr %54, i64 %.9921.ph
  store float %675, ptr %676, align 4, !tbaa !9
  %677 = add nsw i64 %.9921.ph, 1
  br label %.lr.ph923.prol.loopexit

.lr.ph923.prol.loopexit:                          ; preds = %.lr.ph923.prol, %.lr.ph923.preheader1269
  %.9921.unr = phi i64 [ %.9921.ph, %.lr.ph923.preheader1269 ], [ %677, %.lr.ph923.prol ]
  %678 = icmp eq i64 %190, %.neg1301
  br i1 %678, label %._crit_edge924, label %.lr.ph923

.lr.ph923:                                        ; preds = %.lr.ph923.prol.loopexit, %.lr.ph923
  %.9921 = phi i64 [ %693, %.lr.ph923 ], [ %.9921.unr, %.lr.ph923.prol.loopexit ]
  %679 = getelementptr inbounds float, ptr %63, i64 %.9921
  %680 = load float, ptr %679, align 4, !tbaa !9
  %681 = getelementptr inbounds float, ptr %64, i64 %.9921
  %682 = load float, ptr %681, align 4, !tbaa !9
  %683 = fmul float %680, %680
  %684 = fmul float %682, %683
  %685 = getelementptr inbounds float, ptr %54, i64 %.9921
  store float %684, ptr %685, align 4, !tbaa !9
  %686 = getelementptr float, ptr %7, i64 %.9921
  %687 = load float, ptr %686, align 4, !tbaa !9
  %688 = getelementptr float, ptr %6, i64 %.9921
  %689 = load float, ptr %688, align 4, !tbaa !9
  %690 = fmul float %687, %687
  %691 = fmul float %689, %690
  %692 = getelementptr float, ptr %22, i64 %.9921
  store float %691, ptr %692, align 4, !tbaa !9
  %693 = add nsw i64 %.9921, 2
  %exitcond966.not.1 = icmp eq i64 %693, %190
  br i1 %exitcond966.not.1, label %._crit_edge924, label %.lr.ph923, !llvm.loop !54

._crit_edge924:                                   ; preds = %.lr.ph923.prol.loopexit, %.lr.ph923, %middle.block1024, %._crit_edge919
  %694 = load i64, ptr %48, align 8, !tbaa !5
  %695 = add nsw i64 %694, -1
  store i64 %695, ptr %35, align 8, !tbaa !5
  %696 = getelementptr inbounds float, ptr %54, i64 %.0702934
  %697 = getelementptr inbounds float, ptr %60, i64 %.0697936
  %698 = getelementptr inbounds float, ptr %58, i64 %.0697936
  %699 = getelementptr inbounds float, ptr %59, i64 %.0697936
  %700 = load i64, ptr %1, align 8, !tbaa !5
  %.idx = shl i64 %700, 3
  %701 = getelementptr i8, ptr %22, i64 %.idx
  %702 = call i32 @slarrb_(ptr noundef nonnull %39, ptr noundef nonnull %225, ptr noundef nonnull %696, ptr noundef nonnull %48, ptr noundef nonnull %49, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %35, ptr noundef nonnull %697, ptr noundef nonnull %698, ptr noundef nonnull %699, ptr noundef %701, ptr noundef %23, ptr noundef nonnull %21, ptr noundef nonnull %52, ptr noundef nonnull %39, ptr noundef nonnull %51) #6
  %703 = load i64, ptr %51, align 8, !tbaa !5
  %.not771 = icmp eq i64 %703, 0
  br i1 %.not771, label %705, label %704

704:                                              ; preds = %._crit_edge924
  store i64 -4, ptr %24, align 8, !tbaa !5
  br label %.loopexit822

705:                                              ; preds = %._crit_edge924
  %706 = load float, ptr %3, align 4, !tbaa !9
  %707 = fsub float %706, %.3711879
  %708 = getelementptr inbounds float, ptr %60, i64 %.2715
  %709 = load float, ptr %708, align 4, !tbaa !9
  %710 = getelementptr inbounds float, ptr %59, i64 %.2715
  %711 = load float, ptr %710, align 4, !tbaa !9
  %712 = fadd float %709, %711
  %713 = fsub float %707, %712
  %714 = fcmp ole float %713, 0.000000e+00
  %715 = select i1 %714, float 0.000000e+00, float %713
  %716 = getelementptr inbounds float, ptr %58, i64 %.2715
  store float %715, ptr %716, align 4, !tbaa !9
  %717 = load i64, ptr %49, align 8, !tbaa !5
  store i64 %717, ptr %35, align 8, !tbaa !5
  %718 = load i64, ptr %48, align 8, !tbaa !5
  %.not772925 = icmp sgt i64 %718, %717
  br i1 %.not772925, label %.loopexit819, label %.lr.ph928.preheader

.lr.ph928.preheader:                              ; preds = %705
  %719 = add i64 %717, %718
  %720 = and i64 %719, 1
  %lcmp.mod1300.not.not = icmp eq i64 %720, 0
  br i1 %lcmp.mod1300.not.not, label %.lr.ph928.prol, label %.lr.ph928.prol.loopexit

.lr.ph928.prol:                                   ; preds = %.lr.ph928.preheader
  %721 = load i64, ptr %14, align 8, !tbaa !5
  %722 = add nsw i64 %721, 1
  store i64 %722, ptr %14, align 8, !tbaa !5
  %723 = getelementptr i64, ptr %18, i64 %721
  store i64 %.0721931, ptr %723, align 8, !tbaa !5
  %724 = load i64, ptr %14, align 8, !tbaa !5
  %725 = getelementptr inbounds i64, ptr %56, i64 %724
  store i64 %718, ptr %725, align 8, !tbaa !5
  %726 = add i64 %718, 1
  br label %.lr.ph928.prol.loopexit

.lr.ph928.prol.loopexit:                          ; preds = %.lr.ph928.prol, %.lr.ph928.preheader
  %.10926.unr = phi i64 [ %718, %.lr.ph928.preheader ], [ %726, %.lr.ph928.prol ]
  %727 = icmp eq i64 %717, %718
  br i1 %727, label %.loopexit819, label %.lr.ph928

.lr.ph928:                                        ; preds = %.lr.ph928.prol.loopexit, %.lr.ph928
  %.10926 = phi i64 [ %739, %.lr.ph928 ], [ %.10926.unr, %.lr.ph928.prol.loopexit ]
  %728 = load i64, ptr %14, align 8, !tbaa !5
  %729 = add nsw i64 %728, 1
  store i64 %729, ptr %14, align 8, !tbaa !5
  %730 = getelementptr i64, ptr %18, i64 %728
  store i64 %.0721931, ptr %730, align 8, !tbaa !5
  %731 = load i64, ptr %14, align 8, !tbaa !5
  %732 = getelementptr inbounds i64, ptr %56, i64 %731
  store i64 %.10926, ptr %732, align 8, !tbaa !5
  %733 = add i64 %.10926, 1
  %734 = load i64, ptr %14, align 8, !tbaa !5
  %735 = add nsw i64 %734, 1
  store i64 %735, ptr %14, align 8, !tbaa !5
  %736 = getelementptr i64, ptr %18, i64 %734
  store i64 %.0721931, ptr %736, align 8, !tbaa !5
  %737 = load i64, ptr %14, align 8, !tbaa !5
  %738 = getelementptr inbounds i64, ptr %56, i64 %737
  store i64 %733, ptr %738, align 8, !tbaa !5
  %739 = add i64 %.10926, 2
  %exitcond967.not.1 = icmp eq i64 %733, %717
  br i1 %exitcond967.not.1, label %.loopexit819, label %.lr.ph928, !llvm.loop !55

740:                                              ; preds = %627
  %741 = load i64, ptr %39, align 8, !tbaa !5
  %742 = sitofp i64 %741 to float
  %743 = fpext float %742 to double
  %744 = call double @log(double noundef %743) #6
  %745 = fmul double %744, 4.000000e+00
  %746 = fmul double %745, %78
  %747 = fptrunc double %746 to float
  %748 = load i64, ptr %39, align 8, !tbaa !5
  %749 = add nsw i64 %748, -1
  store i64 %749, ptr %35, align 8, !tbaa !5
  %.not773.not886 = icmp sgt i64 %748, 1
  br i1 %.not773.not886, label %.lr.ph890.preheader, label %._crit_edge891

.lr.ph890.preheader:                              ; preds = %740
  %750 = add nsw i64 %748, -1
  %min.iters.check1142 = icmp ult i64 %748, 13
  br i1 %min.iters.check1142, label %.lr.ph890.preheader1274, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph890.preheader
  %751 = add nsw i64 %748, -2
  %mul.result = shl i64 %751, 3
  %752 = getelementptr i8, ptr %22, i64 %mul.result
  %753 = icmp ult ptr %752, %22
  %mul.result1120 = shl i64 %751, 3
  %mul.overflow1121 = icmp ugt i64 %751, 2305843009213693951
  %754 = getelementptr i8, ptr %scevgep1118, i64 %mul.result1120
  %755 = icmp ult ptr %754, %scevgep1118
  %756 = or i1 %755, %mul.overflow1121
  %757 = or i1 %753, %756
  br i1 %757, label %.lr.ph890.preheader1274, label %vector.memcheck1122

vector.memcheck1122:                              ; preds = %vector.scevcheck
  %758 = shl i64 %748, 3
  %scevgep1124 = getelementptr i8, ptr %scevgep1123, i64 %758
  %759 = shl i64 %.0702934, 2
  %scevgep1126 = getelementptr i8, ptr %scevgep1125, i64 %759
  %760 = add i64 %.0702934, %748
  %761 = shl i64 %760, 2
  %scevgep1128 = getelementptr i8, ptr %scevgep1127, i64 %761
  %scevgep1130 = getelementptr i8, ptr %scevgep1129, i64 %759
  %scevgep1132 = getelementptr i8, ptr %scevgep1131, i64 %761
  %bound01133 = icmp ugt ptr %scevgep1128, %22
  %bound11134 = icmp ult ptr %scevgep1126, %scevgep1124
  %found.conflict1135 = and i1 %bound01133, %bound11134
  %bound01136 = icmp ugt ptr %scevgep1132, %22
  %bound11137 = icmp ult ptr %scevgep1130, %scevgep1124
  %found.conflict1138 = and i1 %bound01136, %bound11137
  %conflict.rdx1139 = or i1 %found.conflict1135, %found.conflict1138
  br i1 %conflict.rdx1139, label %.lr.ph890.preheader1274, label %vector.ph1143

vector.ph1143:                                    ; preds = %vector.memcheck1122
  %n.vec1145 = and i64 %750, -4
  %ind.end1146 = add i64 %.0702934, %n.vec1145
  %ind.end1148 = or disjoint i64 %n.vec1145, 1
  br label %vector.body1150

vector.body1150:                                  ; preds = %vector.body1150, %vector.ph1143
  %index1151 = phi i64 [ 0, %vector.ph1143 ], [ %index.next1156, %vector.body1150 ]
  %offset.idx1152 = add i64 %.0702934, %index1151
  %762 = getelementptr inbounds float, ptr %64, i64 %offset.idx1152
  %wide.load1154 = load <4 x float>, ptr %762, align 4, !tbaa !9, !alias.scope !56
  %763 = fcmp oge <4 x float> %wide.load1154, zeroinitializer
  %764 = fneg <4 x float> %wide.load1154
  %765 = select <4 x i1> %763, <4 x float> %wide.load1154, <4 x float> %764
  %offset.idx1153 = shl i64 %index1151, 3
  %766 = or disjoint i64 %offset.idx1153, 8
  %767 = getelementptr inbounds float, ptr %63, i64 %offset.idx1152
  %wide.load1155 = load <4 x float>, ptr %767, align 4, !tbaa !9, !alias.scope !59
  %768 = fmul <4 x float> %wide.load1155, %wide.load1155
  %769 = fmul <4 x float> %765, %768
  %gep1322 = getelementptr i8, ptr %invariant.gep1321, i64 %766
  %interleaved.vec = shufflevector <4 x float> %765, <4 x float> %769, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec, ptr %gep1322, align 4, !tbaa !9
  %index.next1156 = add nuw i64 %index1151, 4
  %770 = icmp eq i64 %index.next1156, %n.vec1145
  br i1 %770, label %middle.block1140, label %vector.body1150, !llvm.loop !61

middle.block1140:                                 ; preds = %vector.body1150
  %cmp.n1157 = icmp eq i64 %750, %n.vec1145
  br i1 %cmp.n1157, label %._crit_edge891, label %.lr.ph890.preheader1274

.lr.ph890.preheader1274:                          ; preds = %middle.block1140, %vector.memcheck1122, %vector.scevcheck, %.lr.ph890.preheader
  %.2732888.ph = phi i64 [ %.0702934, %vector.memcheck1122 ], [ %.0702934, %vector.scevcheck ], [ %.0702934, %.lr.ph890.preheader ], [ %ind.end1146, %middle.block1140 ]
  %.11887.ph = phi i64 [ 1, %vector.memcheck1122 ], [ 1, %vector.scevcheck ], [ 1, %.lr.ph890.preheader ], [ %ind.end1148, %middle.block1140 ]
  br label %.lr.ph890

.lr.ph890:                                        ; preds = %.lr.ph890.preheader1274, %.lr.ph890
  %.2732888 = phi i64 [ %782, %.lr.ph890 ], [ %.2732888.ph, %.lr.ph890.preheader1274 ]
  %.11887 = phi i64 [ %783, %.lr.ph890 ], [ %.11887.ph, %.lr.ph890.preheader1274 ]
  %771 = getelementptr inbounds float, ptr %64, i64 %.2732888
  %772 = load float, ptr %771, align 4, !tbaa !9
  %773 = fcmp oge float %772, 0.000000e+00
  %774 = fneg float %772
  %775 = select i1 %773, float %772, float %774
  %.idx782 = shl i64 %.11887, 3
  %776 = getelementptr i8, ptr %54, i64 %.idx782
  %777 = getelementptr i8, ptr %776, i64 -4
  store float %775, ptr %777, align 4, !tbaa !9
  %778 = getelementptr inbounds float, ptr %63, i64 %.2732888
  %779 = load float, ptr %778, align 4, !tbaa !9
  %780 = fmul float %779, %779
  %781 = fmul float %775, %780
  store float %781, ptr %776, align 4, !tbaa !9
  %782 = add nsw i64 %.2732888, 1
  %783 = add nuw nsw i64 %.11887, 1
  %exitcond960.not = icmp eq i64 %783, %748
  br i1 %exitcond960.not, label %._crit_edge891, label %.lr.ph890, !llvm.loop !62

._crit_edge891:                                   ; preds = %.lr.ph890, %middle.block1140, %740
  %784 = getelementptr inbounds float, ptr %64, i64 %190
  %785 = load float, ptr %784, align 4, !tbaa !9
  %786 = fcmp oge float %785, 0.000000e+00
  %787 = fneg float %785
  %788 = select i1 %786, float %785, float %787
  %.idx774 = shl i64 %748, 3
  %789 = getelementptr i8, ptr %54, i64 %.idx774
  %790 = getelementptr i8, ptr %789, i64 -4
  store float %788, ptr %790, align 4, !tbaa !9
  store float 0.000000e+00, ptr %789, align 4, !tbaa !9
  %791 = call i32 @slasq2_(ptr noundef nonnull %39, ptr noundef nonnull %22, ptr noundef nonnull %51) #6
  %792 = load i64, ptr %51, align 8, !tbaa !5
  %.not776 = icmp eq i64 %792, 0
  br i1 %.not776, label %794, label %793

793:                                              ; preds = %._crit_edge891
  store i64 -5, ptr %24, align 8, !tbaa !5
  br label %.loopexit822

794:                                              ; preds = %._crit_edge891
  %795 = load i64, ptr %39, align 8, !tbaa !5
  %.not777892 = icmp slt i64 %795, 1
  br i1 %.not777892, label %._crit_edge896, label %.lr.ph895

796:                                              ; preds = %.lr.ph895
  %797 = add nuw i64 %.12893, 1
  %exitcond961.not = icmp eq i64 %.12893, %795
  br i1 %exitcond961.not, label %._crit_edge896, label %.lr.ph895, !llvm.loop !63

.lr.ph895:                                        ; preds = %794, %796
  %.12893 = phi i64 [ %797, %796 ], [ 1, %794 ]
  %798 = getelementptr inbounds float, ptr %54, i64 %.12893
  %799 = load float, ptr %798, align 4, !tbaa !9
  %800 = fcmp olt float %799, 0.000000e+00
  br i1 %800, label %801, label %796

801:                                              ; preds = %.lr.ph895
  store i64 -6, ptr %24, align 8, !tbaa !5
  br label %.loopexit822

._crit_edge896:                                   ; preds = %796, %794
  %802 = fcmp ogt float %.0700805, 0.000000e+00
  %803 = load i64, ptr %49, align 8, !tbaa !5
  %804 = load i64, ptr %48, align 8, !tbaa !5
  %.not779901 = icmp sgt i64 %804, %803
  br i1 %802, label %805, label %839

805:                                              ; preds = %._crit_edge896
  br i1 %.not779901, label %.loopexit820, label %.lr.ph904.preheader

.lr.ph904.preheader:                              ; preds = %805
  %806 = add i64 %803, %804
  %807 = and i64 %806, 1
  %lcmp.mod1296.not.not = icmp eq i64 %807, 0
  br i1 %lcmp.mod1296.not.not, label %.lr.ph904.prol, label %.lr.ph904.prol.loopexit

.lr.ph904.prol:                                   ; preds = %.lr.ph904.preheader
  %808 = load i64, ptr %14, align 8, !tbaa !5
  %809 = add nsw i64 %808, 1
  store i64 %809, ptr %14, align 8, !tbaa !5
  %810 = sub nsw i64 %795, %804
  %811 = getelementptr float, ptr %22, i64 %810
  %812 = load float, ptr %811, align 4, !tbaa !9
  %813 = getelementptr float, ptr %15, i64 %808
  store float %812, ptr %813, align 4, !tbaa !9
  %814 = getelementptr i64, ptr %18, i64 %808
  store i64 %.0721931, ptr %814, align 8, !tbaa !5
  %815 = load i64, ptr %14, align 8, !tbaa !5
  %816 = getelementptr inbounds i64, ptr %56, i64 %815
  store i64 %804, ptr %816, align 8, !tbaa !5
  %817 = add i64 %804, 1
  br label %.lr.ph904.prol.loopexit

.lr.ph904.prol.loopexit:                          ; preds = %.lr.ph904.prol, %.lr.ph904.preheader
  %.13902.unr = phi i64 [ %804, %.lr.ph904.preheader ], [ %817, %.lr.ph904.prol ]
  %818 = icmp eq i64 %803, %804
  br i1 %818, label %.loopexit820, label %.lr.ph904

.lr.ph904:                                        ; preds = %.lr.ph904.prol.loopexit, %.lr.ph904
  %.13902 = phi i64 [ %838, %.lr.ph904 ], [ %.13902.unr, %.lr.ph904.prol.loopexit ]
  %819 = load i64, ptr %14, align 8, !tbaa !5
  %820 = add nsw i64 %819, 1
  store i64 %820, ptr %14, align 8, !tbaa !5
  %821 = sub nsw i64 %795, %.13902
  %822 = getelementptr float, ptr %22, i64 %821
  %823 = load float, ptr %822, align 4, !tbaa !9
  %824 = getelementptr float, ptr %15, i64 %819
  store float %823, ptr %824, align 4, !tbaa !9
  %825 = getelementptr i64, ptr %18, i64 %819
  store i64 %.0721931, ptr %825, align 8, !tbaa !5
  %826 = load i64, ptr %14, align 8, !tbaa !5
  %827 = getelementptr inbounds i64, ptr %56, i64 %826
  store i64 %.13902, ptr %827, align 8, !tbaa !5
  %828 = add i64 %.13902, 1
  %829 = load i64, ptr %14, align 8, !tbaa !5
  %830 = add nsw i64 %829, 1
  store i64 %830, ptr %14, align 8, !tbaa !5
  %831 = sub nsw i64 %795, %828
  %832 = getelementptr float, ptr %22, i64 %831
  %833 = load float, ptr %832, align 4, !tbaa !9
  %834 = getelementptr float, ptr %15, i64 %829
  store float %833, ptr %834, align 4, !tbaa !9
  %835 = getelementptr i64, ptr %18, i64 %829
  store i64 %.0721931, ptr %835, align 8, !tbaa !5
  %836 = load i64, ptr %14, align 8, !tbaa !5
  %837 = getelementptr inbounds i64, ptr %56, i64 %836
  store i64 %828, ptr %837, align 8, !tbaa !5
  %838 = add i64 %.13902, 2
  %exitcond963.not.1 = icmp eq i64 %828, %803
  br i1 %exitcond963.not.1, label %.loopexit820, label %.lr.ph904, !llvm.loop !64

839:                                              ; preds = %._crit_edge896
  br i1 %.not779901, label %.loopexit820, label %.lr.ph900.preheader

.lr.ph900.preheader:                              ; preds = %839
  %840 = add i64 %803, %804
  %841 = and i64 %840, 1
  %lcmp.mod1294.not.not = icmp eq i64 %841, 0
  br i1 %lcmp.mod1294.not.not, label %.lr.ph900.prol, label %.lr.ph900.prol.loopexit

.lr.ph900.prol:                                   ; preds = %.lr.ph900.preheader
  %842 = load i64, ptr %14, align 8, !tbaa !5
  %843 = add nsw i64 %842, 1
  store i64 %843, ptr %14, align 8, !tbaa !5
  %844 = getelementptr inbounds float, ptr %54, i64 %804
  %845 = load float, ptr %844, align 4, !tbaa !9
  %846 = fneg float %845
  %847 = getelementptr float, ptr %15, i64 %842
  store float %846, ptr %847, align 4, !tbaa !9
  %848 = getelementptr i64, ptr %18, i64 %842
  store i64 %.0721931, ptr %848, align 8, !tbaa !5
  %849 = load i64, ptr %14, align 8, !tbaa !5
  %850 = getelementptr inbounds i64, ptr %56, i64 %849
  store i64 %804, ptr %850, align 8, !tbaa !5
  %851 = add i64 %804, 1
  br label %.lr.ph900.prol.loopexit

.lr.ph900.prol.loopexit:                          ; preds = %.lr.ph900.prol, %.lr.ph900.preheader
  %.14898.unr = phi i64 [ %804, %.lr.ph900.preheader ], [ %851, %.lr.ph900.prol ]
  %852 = icmp eq i64 %803, %804
  br i1 %852, label %.loopexit820, label %.lr.ph900

.lr.ph900:                                        ; preds = %.lr.ph900.prol.loopexit, %.lr.ph900
  %.14898 = phi i64 [ %872, %.lr.ph900 ], [ %.14898.unr, %.lr.ph900.prol.loopexit ]
  %853 = load i64, ptr %14, align 8, !tbaa !5
  %854 = add nsw i64 %853, 1
  store i64 %854, ptr %14, align 8, !tbaa !5
  %855 = getelementptr inbounds float, ptr %54, i64 %.14898
  %856 = load float, ptr %855, align 4, !tbaa !9
  %857 = fneg float %856
  %858 = getelementptr float, ptr %15, i64 %853
  store float %857, ptr %858, align 4, !tbaa !9
  %859 = getelementptr i64, ptr %18, i64 %853
  store i64 %.0721931, ptr %859, align 8, !tbaa !5
  %860 = load i64, ptr %14, align 8, !tbaa !5
  %861 = getelementptr inbounds i64, ptr %56, i64 %860
  store i64 %.14898, ptr %861, align 8, !tbaa !5
  %862 = add i64 %.14898, 1
  %863 = load i64, ptr %14, align 8, !tbaa !5
  %864 = add nsw i64 %863, 1
  store i64 %864, ptr %14, align 8, !tbaa !5
  %865 = getelementptr float, ptr %22, i64 %.14898
  %866 = load float, ptr %865, align 4, !tbaa !9
  %867 = fneg float %866
  %868 = getelementptr float, ptr %15, i64 %863
  store float %867, ptr %868, align 4, !tbaa !9
  %869 = getelementptr i64, ptr %18, i64 %863
  store i64 %.0721931, ptr %869, align 8, !tbaa !5
  %870 = load i64, ptr %14, align 8, !tbaa !5
  %871 = getelementptr inbounds i64, ptr %56, i64 %870
  store i64 %862, ptr %871, align 8, !tbaa !5
  %872 = add i64 %.14898, 2
  %exitcond962.not.1 = icmp eq i64 %862, %803
  br i1 %exitcond962.not.1, label %.loopexit820, label %.lr.ph900, !llvm.loop !65

.loopexit820:                                     ; preds = %.lr.ph900.prol.loopexit, %.lr.ph900, %.lr.ph904.prol.loopexit, %.lr.ph904, %839, %805
  %873 = load i64, ptr %14, align 8, !tbaa !5
  %874 = sub nsw i64 %873, %.3728
  %.not780.not905 = icmp sgt i64 %.3728, 0
  br i1 %.not780.not905, label %.lr.ph908.preheader, label %._crit_edge909

.lr.ph908.preheader:                              ; preds = %.loopexit820
  %875 = add i64 %873, 1
  %876 = sub i64 %875, %.3728
  %smax = call i64 @llvm.smax.i64(i64 %873, i64 %876)
  %877 = add i64 %.3728, %smax
  %878 = sub i64 %877, %873
  %min.iters.check1103 = icmp ult i64 %878, 8
  %or.cond = or i1 %min.iters.check1103, %diff.check1100
  br i1 %or.cond, label %.lr.ph908.preheader1272, label %vector.ph1104

vector.ph1104:                                    ; preds = %.lr.ph908.preheader
  %n.vec1106 = and i64 %878, -8
  %ind.end1107 = add i64 %874, %n.vec1106
  %broadcast.splatinsert1114 = insertelement <4 x float> poison, float %747, i64 0
  %broadcast.splat1115 = shufflevector <4 x float> %broadcast.splatinsert1114, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1109

vector.body1109:                                  ; preds = %vector.body1109, %vector.ph1104
  %index1110 = phi i64 [ 0, %vector.ph1104 ], [ %index.next1116, %vector.body1109 ]
  %offset.idx1111 = add i64 %874, %index1110
  %879 = getelementptr float, ptr %15, i64 %offset.idx1111
  %880 = getelementptr i8, ptr %879, i64 16
  %wide.load1112 = load <4 x float>, ptr %879, align 4, !tbaa !9
  %wide.load1113 = load <4 x float>, ptr %880, align 4, !tbaa !9
  %881 = fcmp oge <4 x float> %wide.load1112, zeroinitializer
  %882 = fcmp oge <4 x float> %wide.load1113, zeroinitializer
  %883 = fneg <4 x float> %wide.load1112
  %884 = fneg <4 x float> %wide.load1113
  %885 = select <4 x i1> %881, <4 x float> %wide.load1112, <4 x float> %883
  %886 = select <4 x i1> %882, <4 x float> %wide.load1113, <4 x float> %884
  %887 = fmul <4 x float> %885, %broadcast.splat1115
  %888 = fmul <4 x float> %886, %broadcast.splat1115
  %889 = getelementptr float, ptr %16, i64 %offset.idx1111
  %890 = getelementptr i8, ptr %889, i64 16
  store <4 x float> %887, ptr %889, align 4, !tbaa !9
  store <4 x float> %888, ptr %890, align 4, !tbaa !9
  %index.next1116 = add nuw i64 %index1110, 8
  %891 = icmp eq i64 %index.next1116, %n.vec1106
  br i1 %891, label %middle.block1101, label %vector.body1109, !llvm.loop !66

middle.block1101:                                 ; preds = %vector.body1109
  %cmp.n1117 = icmp eq i64 %878, %n.vec1106
  br i1 %cmp.n1117, label %._crit_edge909, label %.lr.ph908.preheader1272

.lr.ph908.preheader1272:                          ; preds = %middle.block1101, %.lr.ph908.preheader
  %.15.in906.ph = phi i64 [ %874, %.lr.ph908.preheader ], [ %ind.end1107, %middle.block1101 ]
  br label %.lr.ph908

.lr.ph908:                                        ; preds = %.lr.ph908.preheader1272, %.lr.ph908
  %.15.in906 = phi i64 [ %.15, %.lr.ph908 ], [ %.15.in906.ph, %.lr.ph908.preheader1272 ]
  %.15 = add nsw i64 %.15.in906, 1
  %892 = getelementptr float, ptr %15, i64 %.15.in906
  %893 = load float, ptr %892, align 4, !tbaa !9
  %894 = fcmp oge float %893, 0.000000e+00
  %895 = fneg float %893
  %896 = select i1 %894, float %893, float %895
  %897 = fmul float %896, %747
  %898 = getelementptr float, ptr %16, i64 %.15.in906
  store float %897, ptr %898, align 4, !tbaa !9
  %.not780.not = icmp slt i64 %.15, %873
  br i1 %.not780.not, label %.lr.ph908, label %._crit_edge909, !llvm.loop !67

._crit_edge909:                                   ; preds = %.lr.ph908, %middle.block1101, %.loopexit820
  %899 = add nsw i64 %873, -1
  store i64 %899, ptr %35, align 8, !tbaa !5
  %.not781.not910 = icmp slt i64 %874, %899
  br i1 %.not781.not910, label %.lr.ph913.preheader, label %._crit_edge914

.lr.ph913.preheader:                              ; preds = %._crit_edge909
  %900 = add i64 %.3728, -1
  %min.iters.check1080 = icmp ult i64 %900, 8
  br i1 %min.iters.check1080, label %.lr.ph913.preheader1271, label %vector.memcheck1063

vector.memcheck1063:                              ; preds = %.lr.ph913.preheader
  %901 = shl i64 %873, 2
  %902 = sub i64 %873, %.3728
  %903 = shl i64 %902, 2
  %scevgep1064 = getelementptr i8, ptr %17, i64 %903
  %scevgep1066 = getelementptr i8, ptr %scevgep1065, i64 %901
  %scevgep1067 = getelementptr i8, ptr %15, i64 %903
  %scevgep1068 = getelementptr i8, ptr %15, i64 %901
  %scevgep1069 = getelementptr i8, ptr %16, i64 %903
  %scevgep1070 = getelementptr i8, ptr %16, i64 %901
  %bound01071 = icmp ult ptr %scevgep1064, %scevgep1068
  %bound11072 = icmp ult ptr %scevgep1067, %scevgep1066
  %found.conflict1073 = and i1 %bound01071, %bound11072
  %bound01074 = icmp ult ptr %scevgep1064, %scevgep1070
  %bound11075 = icmp ult ptr %scevgep1069, %scevgep1066
  %found.conflict1076 = and i1 %bound01074, %bound11075
  %conflict.rdx1077 = or i1 %found.conflict1073, %found.conflict1076
  br i1 %conflict.rdx1077, label %.lr.ph913.preheader1271, label %vector.ph1081

vector.ph1081:                                    ; preds = %vector.memcheck1063
  %n.vec1083 = and i64 %900, -8
  %ind.end1084 = add i64 %874, %n.vec1083
  br label %vector.body1086

vector.body1086:                                  ; preds = %vector.body1086, %vector.ph1081
  %index1087 = phi i64 [ 0, %vector.ph1081 ], [ %index.next1097, %vector.body1086 ]
  %offset.idx1088 = add i64 %874, %index1087
  %904 = add nsw i64 %offset.idx1088, 1
  %905 = getelementptr float, ptr %15, i64 %904
  %906 = getelementptr i8, ptr %905, i64 16
  %wide.load1089 = load <4 x float>, ptr %905, align 4, !tbaa !9, !alias.scope !68
  %wide.load1090 = load <4 x float>, ptr %906, align 4, !tbaa !9, !alias.scope !68
  %907 = getelementptr float, ptr %16, i64 %904
  %908 = getelementptr i8, ptr %907, i64 16
  %wide.load1091 = load <4 x float>, ptr %907, align 4, !tbaa !9, !alias.scope !71
  %wide.load1092 = load <4 x float>, ptr %908, align 4, !tbaa !9, !alias.scope !71
  %909 = fsub <4 x float> %wide.load1089, %wide.load1091
  %910 = fsub <4 x float> %wide.load1090, %wide.load1092
  %911 = getelementptr float, ptr %15, i64 %offset.idx1088
  %912 = getelementptr i8, ptr %911, i64 16
  %wide.load1093 = load <4 x float>, ptr %911, align 4, !tbaa !9, !alias.scope !68
  %wide.load1094 = load <4 x float>, ptr %912, align 4, !tbaa !9, !alias.scope !68
  %913 = getelementptr float, ptr %16, i64 %offset.idx1088
  %914 = getelementptr i8, ptr %913, i64 16
  %wide.load1095 = load <4 x float>, ptr %913, align 4, !tbaa !9, !alias.scope !71
  %wide.load1096 = load <4 x float>, ptr %914, align 4, !tbaa !9, !alias.scope !71
  %915 = fadd <4 x float> %wide.load1093, %wide.load1095
  %916 = fadd <4 x float> %wide.load1094, %wide.load1096
  %917 = fsub <4 x float> %909, %915
  %918 = fsub <4 x float> %910, %916
  %919 = fcmp ole <4 x float> %917, zeroinitializer
  %920 = fcmp ole <4 x float> %918, zeroinitializer
  %921 = select <4 x i1> %919, <4 x float> zeroinitializer, <4 x float> %917
  %922 = select <4 x i1> %920, <4 x float> zeroinitializer, <4 x float> %918
  %923 = getelementptr float, ptr %17, i64 %offset.idx1088
  %924 = getelementptr i8, ptr %923, i64 16
  store <4 x float> %921, ptr %923, align 4, !tbaa !9, !alias.scope !73, !noalias !75
  store <4 x float> %922, ptr %924, align 4, !tbaa !9, !alias.scope !73, !noalias !75
  %index.next1097 = add nuw i64 %index1087, 8
  %925 = icmp eq i64 %index.next1097, %n.vec1083
  br i1 %925, label %middle.block1078, label %vector.body1086, !llvm.loop !76

middle.block1078:                                 ; preds = %vector.body1086
  %cmp.n1098 = icmp eq i64 %900, %n.vec1083
  br i1 %cmp.n1098, label %._crit_edge914, label %.lr.ph913.preheader1271

.lr.ph913.preheader1271:                          ; preds = %middle.block1078, %vector.memcheck1063, %.lr.ph913.preheader
  %.16.in911.ph = phi i64 [ %874, %vector.memcheck1063 ], [ %874, %.lr.ph913.preheader ], [ %ind.end1084, %middle.block1078 ]
  br label %.lr.ph913

.lr.ph913:                                        ; preds = %.lr.ph913.preheader1271, %.lr.ph913
  %.16.in911 = phi i64 [ %.16, %.lr.ph913 ], [ %.16.in911.ph, %.lr.ph913.preheader1271 ]
  %.16 = add nsw i64 %.16.in911, 1
  %926 = getelementptr float, ptr %15, i64 %.16
  %927 = load float, ptr %926, align 4, !tbaa !9
  %928 = getelementptr float, ptr %16, i64 %.16
  %929 = load float, ptr %928, align 4, !tbaa !9
  %930 = fsub float %927, %929
  %931 = getelementptr float, ptr %15, i64 %.16.in911
  %932 = load float, ptr %931, align 4, !tbaa !9
  %933 = getelementptr float, ptr %16, i64 %.16.in911
  %934 = load float, ptr %933, align 4, !tbaa !9
  %935 = fadd float %932, %934
  %936 = fsub float %930, %935
  %937 = fcmp ole float %936, 0.000000e+00
  %938 = select i1 %937, float 0.000000e+00, float %936
  %939 = getelementptr float, ptr %17, i64 %.16.in911
  store float %938, ptr %939, align 4, !tbaa !9
  %exitcond964.not = icmp eq i64 %.16, %899
  br i1 %exitcond964.not, label %._crit_edge914, label %.lr.ph913, !llvm.loop !77

._crit_edge914:                                   ; preds = %.lr.ph913, %middle.block1078, %._crit_edge909
  %940 = load float, ptr %3, align 4, !tbaa !9
  %941 = fsub float %940, %.3711879
  %942 = getelementptr inbounds float, ptr %60, i64 %873
  %943 = load float, ptr %942, align 4, !tbaa !9
  %944 = getelementptr inbounds float, ptr %59, i64 %873
  %945 = load float, ptr %944, align 4, !tbaa !9
  %946 = fadd float %943, %945
  %947 = fsub float %941, %946
  %948 = fcmp ole float %947, 0.000000e+00
  %949 = select i1 %948, float 0.000000e+00, float %947
  %950 = getelementptr inbounds float, ptr %58, i64 %873
  store float %949, ptr %950, align 4, !tbaa !9
  br label %.loopexit819

.loopexit819:                                     ; preds = %.lr.ph928.prol.loopexit, %.lr.ph928, %705, %._crit_edge914
  %951 = add nsw i64 %.2715, 1
  br label %952

952:                                              ; preds = %221, %._crit_edge850.thread, %.loopexit819
  %.4729 = phi i64 [ %.0725930, %221 ], [ 0, %._crit_edge850.thread ], [ %.3728, %.loopexit819 ]
  %.3716 = phi i64 [ %.0713933, %221 ], [ %.0713933, %._crit_edge850.thread ], [ %.2715, %.loopexit819 ]
  %.2699 = phi i64 [ %.1698, %221 ], [ %.0697936, %._crit_edge850.thread ], [ %951, %.loopexit819 ]
  %.3 = phi i64 [ %.0696937, %221 ], [ %.0696937, %._crit_edge850.thread ], [ %.2, %.loopexit819 ]
  %.1703 = add nsw i64 %190, 1
  %953 = add nuw i64 %.0721931, 1
  %exitcond968.not = icmp eq i64 %.0721931, %176
  br i1 %exitcond968.not, label %.loopexit822, label %188, !llvm.loop !78

.loopexit822:                                     ; preds = %952, %.loopexit823, %801, %793, %704, %577, %344, %337, %146, %104
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  ret i32 0
}

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @slarrd_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @slarrk_(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) #4

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

declare i32 @slarrc_(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_scopy(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @slarnv_(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

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

declare i32 @slasq2_(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 <4 x double> @llvm.fmuladd.v4f64(<4 x double>, <4 x double>, <4 x double>) #5

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 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 nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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, !14}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = !{!20}
!20 = distinct !{!20, !21}
!21 = distinct !{!21, !"LVerDomain"}
!22 = !{!23}
!23 = distinct !{!23, !21}
!24 = !{!25}
!25 = distinct !{!25, !21}
!26 = !{!20, !23}
!27 = distinct !{!27, !12, !14, !15}
!28 = distinct !{!28, !12, !14}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12, !14, !15}
!31 = distinct !{!31, !12, !15, !14}
!32 = distinct !{!32, !12}
!33 = !{!34}
!34 = distinct !{!34, !35}
!35 = distinct !{!35, !"LVerDomain"}
!36 = !{!37}
!37 = distinct !{!37, !35}
!38 = !{!39, !40, !34}
!39 = distinct !{!39, !35}
!40 = distinct !{!40, !35}
!41 = !{!40}
!42 = !{!39}
!43 = !{!40, !34}
!44 = distinct !{!44, !12, !14, !15}
!45 = distinct !{!45, !12, !14}
!46 = !{!47}
!47 = distinct !{!47, !48}
!48 = distinct !{!48, !"LVerDomain"}
!49 = !{!50}
!50 = distinct !{!50, !48}
!51 = distinct !{!51, !12, !14, !15}
!52 = distinct !{!52, !12, !14}
!53 = distinct !{!53, !12, !14, !15}
!54 = distinct !{!54, !12, !14}
!55 = distinct !{!55, !12}
!56 = !{!57}
!57 = distinct !{!57, !58}
!58 = distinct !{!58, !"LVerDomain"}
!59 = !{!60}
!60 = distinct !{!60, !58}
!61 = distinct !{!61, !12, !14, !15}
!62 = distinct !{!62, !12, !14}
!63 = distinct !{!63, !12}
!64 = distinct !{!64, !12}
!65 = distinct !{!65, !12}
!66 = distinct !{!66, !12, !14, !15}
!67 = distinct !{!67, !12, !14}
!68 = !{!69}
!69 = distinct !{!69, !70}
!70 = distinct !{!70, !"LVerDomain"}
!71 = !{!72}
!72 = distinct !{!72, !70}
!73 = !{!74}
!74 = distinct !{!74, !70}
!75 = !{!69, !72}
!76 = distinct !{!76, !12, !14, !15}
!77 = distinct !{!77, !12, !14}
!78 = distinct !{!78, !12}


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