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

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

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

196:                                              ; preds = %204, %25
  %197 = load i64, ptr %63, align 8, !tbaa !9
  %198 = load i64, ptr %54, align 8, !tbaa !9
  %199 = icmp sle i64 %197, %198
  br i1 %199, label %200, label %207

200:                                              ; preds = %196
  %201 = load ptr, ptr %49, align 8, !tbaa !5
  %202 = load i64, ptr %63, align 8, !tbaa !9
  %203 = getelementptr inbounds float, ptr %201, i64 %202
  store float 0.000000e+00, ptr %203, align 4, !tbaa !11
  br label %204

204:                                              ; preds = %200
  %205 = load i64, ptr %63, align 8, !tbaa !9
  %206 = add nsw i64 %205, 1
  store i64 %206, ptr %63, align 8, !tbaa !9
  br label %196, !llvm.loop !13

207:                                              ; preds = %196
  store i64 0, ptr %96, align 8, !tbaa !9
  %208 = load ptr, ptr %27, align 8, !tbaa !5
  %209 = load i64, ptr %208, align 8, !tbaa !9
  store i64 %209, ptr %103, align 8, !tbaa !9
  %210 = load ptr, ptr %27, align 8, !tbaa !5
  %211 = load i64, ptr %210, align 8, !tbaa !9
  %212 = shl i64 %211, 1
  store i64 %212, ptr %104, align 8, !tbaa !9
  %213 = load ptr, ptr %27, align 8, !tbaa !5
  %214 = load i64, ptr %213, align 8, !tbaa !9
  %215 = mul nsw i64 %214, 3
  %216 = add nsw i64 %215, 1
  store i64 %216, ptr %123, align 8, !tbaa !9
  %217 = load ptr, ptr %27, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = mul nsw i64 %218, 7
  store i64 %219, ptr %68, align 8, !tbaa !9
  %220 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %220, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %221

221:                                              ; preds = %229, %207
  %222 = load i64, ptr %63, align 8, !tbaa !9
  %223 = load i64, ptr %54, align 8, !tbaa !9
  %224 = icmp sle i64 %222, %223
  br i1 %224, label %225, label %232

225:                                              ; preds = %221
  %226 = load ptr, ptr %50, align 8, !tbaa !5
  %227 = load i64, ptr %63, align 8, !tbaa !9
  %228 = getelementptr inbounds i64, ptr %226, i64 %227
  store i64 0, ptr %228, align 8, !tbaa !9
  br label %229

229:                                              ; preds = %225
  %230 = load i64, ptr %63, align 8, !tbaa !9
  %231 = add nsw i64 %230, 1
  store i64 %231, ptr %63, align 8, !tbaa !9
  br label %221, !llvm.loop !15

232:                                              ; preds = %221
  store i64 1, ptr %139, align 8, !tbaa !9
  %233 = load ptr, ptr %35, align 8, !tbaa !5
  %234 = load i64, ptr %233, align 8, !tbaa !9
  %235 = icmp sgt i64 %234, 1
  br i1 %235, label %236, label %240

236:                                              ; preds = %232
  %237 = load ptr, ptr %35, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = sub nsw i64 %238, 1
  store i64 %239, ptr %139, align 8, !tbaa !9
  br label %240

240:                                              ; preds = %236, %232
  %241 = load ptr, ptr %34, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  store i64 %242, ptr %141, align 8, !tbaa !9
  %243 = load ptr, ptr %36, align 8, !tbaa !5
  %244 = load i64, ptr %243, align 8, !tbaa !9
  %245 = load ptr, ptr %34, align 8, !tbaa !5
  %246 = load i64, ptr %245, align 8, !tbaa !9
  %247 = icmp slt i64 %244, %246
  br i1 %247, label %248, label %252

248:                                              ; preds = %240
  %249 = load ptr, ptr %36, align 8, !tbaa !5
  %250 = load i64, ptr %249, align 8, !tbaa !9
  %251 = add nsw i64 %250, 1
  store i64 %251, ptr %141, align 8, !tbaa !9
  br label %252

252:                                              ; preds = %248, %240
  %253 = load i64, ptr %141, align 8, !tbaa !9
  %254 = load i64, ptr %139, align 8, !tbaa !9
  %255 = sub nsw i64 %253, %254
  %256 = add nsw i64 %255, 1
  store i64 %256, ptr %142, align 8, !tbaa !9
  %257 = load ptr, ptr %27, align 8, !tbaa !5
  %258 = load ptr, ptr %46, align 8, !tbaa !5
  %259 = load i64, ptr %139, align 8, !tbaa !9
  %260 = load i64, ptr %52, align 8, !tbaa !9
  %261 = mul nsw i64 %259, %260
  %262 = add nsw i64 %261, 1
  %263 = getelementptr inbounds float, ptr %258, i64 %262
  %264 = load ptr, ptr %47, align 8, !tbaa !5
  %265 = call i32 @slaset_(ptr noundef @.str, ptr noundef %257, ptr noundef %142, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %263, ptr noundef %264)
  %266 = call double @slamch_(ptr noundef @.str.1)
  %267 = fptrunc double %266 to float
  store float %267, ptr %75, align 4, !tbaa !11
  %268 = load float, ptr %75, align 4, !tbaa !11
  %269 = fmul float %268, 2.000000e+00
  store float %269, ptr %102, align 4, !tbaa !11
  store i64 1, ptr %145, align 8, !tbaa !9
  %270 = load ptr, ptr %35, align 8, !tbaa !5
  %271 = load i64, ptr %270, align 8, !tbaa !9
  %272 = icmp eq i64 %271, 1
  br i1 %272, label %273, label %280

273:                                              ; preds = %252
  %274 = load ptr, ptr %36, align 8, !tbaa !5
  %275 = load i64, ptr %274, align 8, !tbaa !9
  %276 = load ptr, ptr %34, align 8, !tbaa !5
  %277 = load i64, ptr %276, align 8, !tbaa !9
  %278 = icmp eq i64 %275, %277
  br i1 %278, label %279, label %280

279:                                              ; preds = %273
  br label %287

280:                                              ; preds = %273, %252
  %281 = load float, ptr %75, align 4, !tbaa !11
  %282 = fmul float %281, 4.000000e+00
  %283 = load ptr, ptr %38, align 8, !tbaa !5
  store float %282, ptr %283, align 4, !tbaa !11
  %284 = load float, ptr %75, align 4, !tbaa !11
  %285 = fmul float %284, 4.000000e+00
  %286 = load ptr, ptr %39, align 8, !tbaa !5
  store float %285, ptr %286, align 4, !tbaa !11
  br label %287

287:                                              ; preds = %280, %279
  store i64 0, ptr %84, align 8, !tbaa !9
  store i64 1, ptr %107, align 8, !tbaa !9
  store i64 1, ptr %115, align 8, !tbaa !9
  %288 = load ptr, ptr %43, align 8, !tbaa !5
  %289 = load ptr, ptr %34, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  %291 = getelementptr inbounds i64, ptr %288, i64 %290
  %292 = load i64, ptr %291, align 8, !tbaa !9
  store i64 %292, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %293

293:                                              ; preds = %1985, %287
  %294 = load i64, ptr %82, align 8, !tbaa !9
  %295 = load i64, ptr %54, align 8, !tbaa !9
  %296 = icmp sle i64 %294, %295
  br i1 %296, label %297, label %1988

297:                                              ; preds = %293
  %298 = load ptr, ptr %33, align 8, !tbaa !5
  %299 = load i64, ptr %82, align 8, !tbaa !9
  %300 = getelementptr inbounds i64, ptr %298, i64 %299
  %301 = load i64, ptr %300, align 8, !tbaa !9
  store i64 %301, ptr %81, align 8, !tbaa !9
  %302 = load ptr, ptr %31, align 8, !tbaa !5
  %303 = load i64, ptr %81, align 8, !tbaa !9
  %304 = getelementptr inbounds float, ptr %302, i64 %303
  %305 = load float, ptr %304, align 4, !tbaa !11
  store float %305, ptr %94, align 4, !tbaa !11
  %306 = load i64, ptr %115, align 8, !tbaa !9
  %307 = sub nsw i64 %306, 1
  store i64 %307, ptr %87, align 8, !tbaa !9
  br label %308

308:                                              ; preds = %321, %297
  %309 = load i64, ptr %87, align 8, !tbaa !9
  %310 = load ptr, ptr %34, align 8, !tbaa !5
  %311 = load i64, ptr %310, align 8, !tbaa !9
  %312 = icmp slt i64 %309, %311
  br i1 %312, label %313, label %325

313:                                              ; preds = %308
  %314 = load ptr, ptr %43, align 8, !tbaa !5
  %315 = load i64, ptr %87, align 8, !tbaa !9
  %316 = add nsw i64 %315, 1
  %317 = getelementptr inbounds i64, ptr %314, i64 %316
  %318 = load i64, ptr %317, align 8, !tbaa !9
  %319 = load i64, ptr %82, align 8, !tbaa !9
  %320 = icmp eq i64 %318, %319
  br i1 %320, label %321, label %324

321:                                              ; preds = %313
  %322 = load i64, ptr %87, align 8, !tbaa !9
  %323 = add nsw i64 %322, 1
  store i64 %323, ptr %87, align 8, !tbaa !9
  br label %308

324:                                              ; preds = %313
  br label %325

325:                                              ; preds = %324, %308
  %326 = load i64, ptr %87, align 8, !tbaa !9
  %327 = load i64, ptr %115, align 8, !tbaa !9
  %328 = icmp slt i64 %326, %327
  br i1 %328, label %329, label %332

329:                                              ; preds = %325
  %330 = load i64, ptr %81, align 8, !tbaa !9
  %331 = add nsw i64 %330, 1
  store i64 %331, ptr %107, align 8, !tbaa !9
  br label %1984

332:                                              ; preds = %325
  %333 = load i64, ptr %87, align 8, !tbaa !9
  %334 = load ptr, ptr %35, align 8, !tbaa !5
  %335 = load i64, ptr %334, align 8, !tbaa !9
  %336 = icmp slt i64 %333, %335
  br i1 %336, label %342, label %337

337:                                              ; preds = %332
  %338 = load i64, ptr %115, align 8, !tbaa !9
  %339 = load ptr, ptr %36, align 8, !tbaa !5
  %340 = load i64, ptr %339, align 8, !tbaa !9
  %341 = icmp sgt i64 %338, %340
  br i1 %341, label %342, label %347

342:                                              ; preds = %337, %332
  %343 = load i64, ptr %81, align 8, !tbaa !9
  %344 = add nsw i64 %343, 1
  store i64 %344, ptr %107, align 8, !tbaa !9
  %345 = load i64, ptr %87, align 8, !tbaa !9
  %346 = add nsw i64 %345, 1
  store i64 %346, ptr %115, align 8, !tbaa !9
  br label %1984

347:                                              ; preds = %337
  br label %348

348:                                              ; preds = %347
  %349 = load ptr, ptr %45, align 8, !tbaa !5
  %350 = load i64, ptr %107, align 8, !tbaa !9
  %351 = shl i64 %350, 1
  %352 = sub nsw i64 %351, 1
  %353 = getelementptr inbounds float, ptr %349, i64 %352
  %354 = load float, ptr %353, align 4, !tbaa !11
  store float %354, ptr %70, align 4, !tbaa !11
  %355 = load ptr, ptr %45, align 8, !tbaa !5
  %356 = load i64, ptr %107, align 8, !tbaa !9
  %357 = mul nsw i64 %356, 2
  %358 = getelementptr inbounds float, ptr %355, i64 %357
  %359 = load float, ptr %358, align 4, !tbaa !11
  store float %359, ptr %73, align 4, !tbaa !11
  %360 = load i64, ptr %81, align 8, !tbaa !9
  store i64 %360, ptr %55, align 8, !tbaa !9
  %361 = load i64, ptr %107, align 8, !tbaa !9
  %362 = add nsw i64 %361, 1
  store i64 %362, ptr %63, align 8, !tbaa !9
  br label %363

363:                                              ; preds = %401, %348
  %364 = load i64, ptr %63, align 8, !tbaa !9
  %365 = load i64, ptr %55, align 8, !tbaa !9
  %366 = icmp sle i64 %364, %365
  br i1 %366, label %367, label %404

367:                                              ; preds = %363
  %368 = load ptr, ptr %45, align 8, !tbaa !5
  %369 = load i64, ptr %63, align 8, !tbaa !9
  %370 = shl i64 %369, 1
  %371 = sub nsw i64 %370, 1
  %372 = getelementptr inbounds float, ptr %368, i64 %371
  %373 = load float, ptr %372, align 4, !tbaa !11
  store float %373, ptr %59, align 4, !tbaa !11
  %374 = load float, ptr %59, align 4, !tbaa !11
  %375 = load float, ptr %70, align 4, !tbaa !11
  %376 = fcmp ole float %374, %375
  br i1 %376, label %377, label %379

377:                                              ; preds = %367
  %378 = load float, ptr %59, align 4, !tbaa !11
  br label %381

379:                                              ; preds = %367
  %380 = load float, ptr %70, align 4, !tbaa !11
  br label %381

381:                                              ; preds = %379, %377
  %382 = phi float [ %378, %377 ], [ %380, %379 ]
  %383 = fpext float %382 to double
  %384 = fptrunc double %383 to float
  store float %384, ptr %70, align 4, !tbaa !11
  %385 = load ptr, ptr %45, align 8, !tbaa !5
  %386 = load i64, ptr %63, align 8, !tbaa !9
  %387 = mul nsw i64 %386, 2
  %388 = getelementptr inbounds float, ptr %385, i64 %387
  %389 = load float, ptr %388, align 4, !tbaa !11
  store float %389, ptr %59, align 4, !tbaa !11
  %390 = load float, ptr %59, align 4, !tbaa !11
  %391 = load float, ptr %73, align 4, !tbaa !11
  %392 = fcmp oge float %390, %391
  br i1 %392, label %393, label %395

393:                                              ; preds = %381
  %394 = load float, ptr %59, align 4, !tbaa !11
  br label %397

395:                                              ; preds = %381
  %396 = load float, ptr %73, align 4, !tbaa !11
  br label %397

397:                                              ; preds = %395, %393
  %398 = phi float [ %394, %393 ], [ %396, %395 ]
  %399 = fpext float %398 to double
  %400 = fptrunc double %399 to float
  store float %400, ptr %73, align 4, !tbaa !11
  br label %401

401:                                              ; preds = %397
  %402 = load i64, ptr %63, align 8, !tbaa !9
  %403 = add nsw i64 %402, 1
  store i64 %403, ptr %63, align 8, !tbaa !9
  br label %363, !llvm.loop !16

404:                                              ; preds = %363
  %405 = load float, ptr %73, align 4, !tbaa !11
  %406 = load float, ptr %70, align 4, !tbaa !11
  %407 = fsub float %405, %406
  store float %407, ptr %116, align 4, !tbaa !11
  %408 = load i64, ptr %107, align 8, !tbaa !9
  %409 = sub nsw i64 %408, 1
  store i64 %409, ptr %113, align 8, !tbaa !9
  %410 = load i64, ptr %81, align 8, !tbaa !9
  %411 = load i64, ptr %107, align 8, !tbaa !9
  %412 = sub nsw i64 %410, %411
  %413 = add nsw i64 %412, 1
  store i64 %413, ptr %72, align 8, !tbaa !9
  %414 = load i64, ptr %87, align 8, !tbaa !9
  %415 = load i64, ptr %115, align 8, !tbaa !9
  %416 = sub nsw i64 %414, %415
  %417 = add nsw i64 %416, 1
  store i64 %417, ptr %71, align 8, !tbaa !9
  %418 = load i64, ptr %107, align 8, !tbaa !9
  %419 = load i64, ptr %81, align 8, !tbaa !9
  %420 = icmp eq i64 %418, %419
  br i1 %420, label %421, label %459

421:                                              ; preds = %404
  %422 = load i64, ptr %84, align 8, !tbaa !9
  %423 = add nsw i64 %422, 1
  store i64 %423, ptr %84, align 8, !tbaa !9
  %424 = load ptr, ptr %46, align 8, !tbaa !5
  %425 = load i64, ptr %107, align 8, !tbaa !9
  %426 = load i64, ptr %115, align 8, !tbaa !9
  %427 = load i64, ptr %52, align 8, !tbaa !9
  %428 = mul nsw i64 %426, %427
  %429 = add nsw i64 %425, %428
  %430 = getelementptr inbounds float, ptr %424, i64 %429
  store float 1.000000e+00, ptr %430, align 4, !tbaa !11
  %431 = load i64, ptr %107, align 8, !tbaa !9
  %432 = load ptr, ptr %48, align 8, !tbaa !5
  %433 = load i64, ptr %115, align 8, !tbaa !9
  %434 = shl i64 %433, 1
  %435 = sub nsw i64 %434, 1
  %436 = getelementptr inbounds i64, ptr %432, i64 %435
  store i64 %431, ptr %436, align 8, !tbaa !9
  %437 = load i64, ptr %107, align 8, !tbaa !9
  %438 = load ptr, ptr %48, align 8, !tbaa !5
  %439 = load i64, ptr %115, align 8, !tbaa !9
  %440 = mul nsw i64 %439, 2
  %441 = getelementptr inbounds i64, ptr %438, i64 %440
  store i64 %437, ptr %441, align 8, !tbaa !9
  %442 = load float, ptr %94, align 4, !tbaa !11
  %443 = load ptr, ptr %40, align 8, !tbaa !5
  %444 = load i64, ptr %115, align 8, !tbaa !9
  %445 = getelementptr inbounds float, ptr %443, i64 %444
  %446 = load float, ptr %445, align 4, !tbaa !11
  %447 = fadd float %446, %442
  store float %447, ptr %445, align 4, !tbaa !11
  %448 = load ptr, ptr %40, align 8, !tbaa !5
  %449 = load i64, ptr %115, align 8, !tbaa !9
  %450 = getelementptr inbounds float, ptr %448, i64 %449
  %451 = load float, ptr %450, align 4, !tbaa !11
  %452 = load ptr, ptr %49, align 8, !tbaa !5
  %453 = load i64, ptr %115, align 8, !tbaa !9
  %454 = getelementptr inbounds float, ptr %452, i64 %453
  store float %451, ptr %454, align 4, !tbaa !11
  %455 = load i64, ptr %81, align 8, !tbaa !9
  %456 = add nsw i64 %455, 1
  store i64 %456, ptr %107, align 8, !tbaa !9
  %457 = load i64, ptr %115, align 8, !tbaa !9
  %458 = add nsw i64 %457, 1
  store i64 %458, ptr %115, align 8, !tbaa !9
  br label %1984

459:                                              ; preds = %404
  %460 = load ptr, ptr %40, align 8, !tbaa !5
  %461 = load i64, ptr %115, align 8, !tbaa !9
  %462 = getelementptr inbounds float, ptr %460, i64 %461
  %463 = load ptr, ptr %49, align 8, !tbaa !5
  %464 = load i64, ptr %115, align 8, !tbaa !9
  %465 = getelementptr inbounds float, ptr %463, i64 %464
  %466 = call i32 @f2c_scopy(ptr noundef %71, ptr noundef %462, ptr noundef @c__1, ptr noundef %465, ptr noundef @c__1)
  %467 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %467, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %468

468:                                              ; preds = %482, %459
  %469 = load i64, ptr %63, align 8, !tbaa !9
  %470 = load i64, ptr %55, align 8, !tbaa !9
  %471 = icmp sle i64 %469, %470
  br i1 %471, label %472, label %485

472:                                              ; preds = %468
  %473 = load float, ptr %94, align 4, !tbaa !11
  %474 = load ptr, ptr %40, align 8, !tbaa !5
  %475 = load i64, ptr %115, align 8, !tbaa !9
  %476 = load i64, ptr %63, align 8, !tbaa !9
  %477 = add nsw i64 %475, %476
  %478 = sub nsw i64 %477, 1
  %479 = getelementptr inbounds float, ptr %474, i64 %478
  %480 = load float, ptr %479, align 4, !tbaa !11
  %481 = fadd float %480, %473
  store float %481, ptr %479, align 4, !tbaa !11
  br label %482

482:                                              ; preds = %472
  %483 = load i64, ptr %63, align 8, !tbaa !9
  %484 = add nsw i64 %483, 1
  store i64 %484, ptr %63, align 8, !tbaa !9
  br label %468, !llvm.loop !17

485:                                              ; preds = %468
  store i64 0, ptr %120, align 8, !tbaa !9
  store i64 1, ptr %134, align 8, !tbaa !9
  store i64 1, ptr %100, align 8, !tbaa !9
  %486 = load ptr, ptr %50, align 8, !tbaa !5
  %487 = load i64, ptr %103, align 8, !tbaa !9
  %488 = add nsw i64 %487, 1
  %489 = getelementptr inbounds i64, ptr %486, i64 %488
  store i64 1, ptr %489, align 8, !tbaa !9
  %490 = load i64, ptr %71, align 8, !tbaa !9
  %491 = load ptr, ptr %50, align 8, !tbaa !5
  %492 = load i64, ptr %103, align 8, !tbaa !9
  %493 = add nsw i64 %492, 2
  %494 = getelementptr inbounds i64, ptr %491, i64 %493
  store i64 %490, ptr %494, align 8, !tbaa !9
  store i64 0, ptr %93, align 8, !tbaa !9
  br label %495

495:                                              ; preds = %1976, %485
  %496 = load i64, ptr %93, align 8, !tbaa !9
  %497 = load i64, ptr %71, align 8, !tbaa !9
  %498 = icmp slt i64 %496, %497
  br i1 %498, label %499, label %1979

499:                                              ; preds = %495
  %500 = load i64, ptr %120, align 8, !tbaa !9
  %501 = load ptr, ptr %34, align 8, !tbaa !5
  %502 = load i64, ptr %501, align 8, !tbaa !9
  %503 = icmp sgt i64 %500, %502
  br i1 %503, label %504, label %506

504:                                              ; preds = %499
  %505 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -2, ptr %505, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1989

506:                                              ; preds = %499
  %507 = load i64, ptr %100, align 8, !tbaa !9
  store i64 %507, ptr %114, align 8, !tbaa !9
  store i64 0, ptr %100, align 8, !tbaa !9
  %508 = load i64, ptr %134, align 8, !tbaa !9
  %509 = sub nsw i64 1, %508
  store i64 %509, ptr %134, align 8, !tbaa !9
  %510 = load i64, ptr %134, align 8, !tbaa !9
  %511 = icmp eq i64 %510, 0
  br i1 %511, label %512, label %515

512:                                              ; preds = %506
  %513 = load i64, ptr %103, align 8, !tbaa !9
  store i64 %513, ptr %118, align 8, !tbaa !9
  %514 = load i64, ptr %104, align 8, !tbaa !9
  store i64 %514, ptr %126, align 8, !tbaa !9
  br label %518

515:                                              ; preds = %506
  %516 = load i64, ptr %104, align 8, !tbaa !9
  store i64 %516, ptr %118, align 8, !tbaa !9
  %517 = load i64, ptr %103, align 8, !tbaa !9
  store i64 %517, ptr %126, align 8, !tbaa !9
  br label %518

518:                                              ; preds = %515, %512
  %519 = load i64, ptr %114, align 8, !tbaa !9
  store i64 %519, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %520

520:                                              ; preds = %1973, %518
  %521 = load i64, ptr %63, align 8, !tbaa !9
  %522 = load i64, ptr %55, align 8, !tbaa !9
  %523 = icmp sle i64 %521, %522
  br i1 %523, label %524, label %1976

524:                                              ; preds = %520
  %525 = load i64, ptr %118, align 8, !tbaa !9
  %526 = load i64, ptr %63, align 8, !tbaa !9
  %527 = shl i64 %526, 1
  %528 = add nsw i64 %525, %527
  store i64 %528, ptr %64, align 8, !tbaa !9
  %529 = load ptr, ptr %50, align 8, !tbaa !5
  %530 = load i64, ptr %64, align 8, !tbaa !9
  %531 = sub nsw i64 %530, 1
  %532 = getelementptr inbounds i64, ptr %529, i64 %531
  %533 = load i64, ptr %532, align 8, !tbaa !9
  store i64 %533, ptr %127, align 8, !tbaa !9
  %534 = load ptr, ptr %50, align 8, !tbaa !5
  %535 = load i64, ptr %64, align 8, !tbaa !9
  %536 = getelementptr inbounds i64, ptr %534, i64 %535
  %537 = load i64, ptr %536, align 8, !tbaa !9
  store i64 %537, ptr %130, align 8, !tbaa !9
  %538 = load i64, ptr %120, align 8, !tbaa !9
  %539 = icmp sgt i64 %538, 0
  br i1 %539, label %540, label %629

540:                                              ; preds = %524
  %541 = load ptr, ptr %35, align 8, !tbaa !5
  %542 = load i64, ptr %541, align 8, !tbaa !9
  %543 = icmp eq i64 %542, 1
  br i1 %543, label %544, label %555

544:                                              ; preds = %540
  %545 = load ptr, ptr %36, align 8, !tbaa !5
  %546 = load i64, ptr %545, align 8, !tbaa !9
  %547 = load ptr, ptr %34, align 8, !tbaa !5
  %548 = load i64, ptr %547, align 8, !tbaa !9
  %549 = icmp eq i64 %546, %548
  br i1 %549, label %550, label %555

550:                                              ; preds = %544
  %551 = load i64, ptr %115, align 8, !tbaa !9
  %552 = load i64, ptr %127, align 8, !tbaa !9
  %553 = add nsw i64 %551, %552
  %554 = sub nsw i64 %553, 1
  store i64 %554, ptr %64, align 8, !tbaa !9
  br label %585

555:                                              ; preds = %544, %540
  %556 = load i64, ptr %115, align 8, !tbaa !9
  %557 = load i64, ptr %127, align 8, !tbaa !9
  %558 = add nsw i64 %556, %557
  %559 = sub nsw i64 %558, 1
  %560 = load ptr, ptr %35, align 8, !tbaa !5
  %561 = load i64, ptr %560, align 8, !tbaa !9
  %562 = icmp slt i64 %559, %561
  br i1 %562, label %563, label %567

563:                                              ; preds = %555
  %564 = load ptr, ptr %35, align 8, !tbaa !5
  %565 = load i64, ptr %564, align 8, !tbaa !9
  %566 = sub nsw i64 %565, 1
  store i64 %566, ptr %64, align 8, !tbaa !9
  br label %584

567:                                              ; preds = %555
  %568 = load i64, ptr %115, align 8, !tbaa !9
  %569 = load i64, ptr %127, align 8, !tbaa !9
  %570 = add nsw i64 %568, %569
  %571 = sub nsw i64 %570, 1
  %572 = load ptr, ptr %36, align 8, !tbaa !5
  %573 = load i64, ptr %572, align 8, !tbaa !9
  %574 = icmp sgt i64 %571, %573
  br i1 %574, label %575, label %578

575:                                              ; preds = %567
  %576 = load ptr, ptr %36, align 8, !tbaa !5
  %577 = load i64, ptr %576, align 8, !tbaa !9
  store i64 %577, ptr %64, align 8, !tbaa !9
  br label %583

578:                                              ; preds = %567
  %579 = load i64, ptr %115, align 8, !tbaa !9
  %580 = load i64, ptr %127, align 8, !tbaa !9
  %581 = add nsw i64 %579, %580
  %582 = sub nsw i64 %581, 1
  store i64 %582, ptr %64, align 8, !tbaa !9
  br label %583

583:                                              ; preds = %578, %575
  br label %584

584:                                              ; preds = %583, %563
  br label %585

585:                                              ; preds = %584, %550
  %586 = load ptr, ptr %46, align 8, !tbaa !5
  %587 = load i64, ptr %107, align 8, !tbaa !9
  %588 = load i64, ptr %64, align 8, !tbaa !9
  %589 = load i64, ptr %52, align 8, !tbaa !9
  %590 = mul nsw i64 %588, %589
  %591 = add nsw i64 %587, %590
  %592 = getelementptr inbounds float, ptr %586, i64 %591
  %593 = load ptr, ptr %30, align 8, !tbaa !5
  %594 = load i64, ptr %107, align 8, !tbaa !9
  %595 = getelementptr inbounds float, ptr %593, i64 %594
  %596 = call i32 @f2c_scopy(ptr noundef %72, ptr noundef %592, ptr noundef @c__1, ptr noundef %595, ptr noundef @c__1)
  %597 = load i64, ptr %72, align 8, !tbaa !9
  %598 = sub nsw i64 %597, 1
  store i64 %598, ptr %56, align 8, !tbaa !9
  %599 = load ptr, ptr %46, align 8, !tbaa !5
  %600 = load i64, ptr %107, align 8, !tbaa !9
  %601 = load i64, ptr %64, align 8, !tbaa !9
  %602 = add nsw i64 %601, 1
  %603 = load i64, ptr %52, align 8, !tbaa !9
  %604 = mul nsw i64 %602, %603
  %605 = add nsw i64 %600, %604
  %606 = getelementptr inbounds float, ptr %599, i64 %605
  %607 = load ptr, ptr %31, align 8, !tbaa !5
  %608 = load i64, ptr %107, align 8, !tbaa !9
  %609 = getelementptr inbounds float, ptr %607, i64 %608
  %610 = call i32 @f2c_scopy(ptr noundef %56, ptr noundef %606, ptr noundef @c__1, ptr noundef %609, ptr noundef @c__1)
  %611 = load ptr, ptr %46, align 8, !tbaa !5
  %612 = load i64, ptr %81, align 8, !tbaa !9
  %613 = load i64, ptr %64, align 8, !tbaa !9
  %614 = add nsw i64 %613, 1
  %615 = load i64, ptr %52, align 8, !tbaa !9
  %616 = mul nsw i64 %614, %615
  %617 = add nsw i64 %612, %616
  %618 = getelementptr inbounds float, ptr %611, i64 %617
  %619 = load float, ptr %618, align 4, !tbaa !11
  store float %619, ptr %94, align 4, !tbaa !11
  %620 = load ptr, ptr %46, align 8, !tbaa !5
  %621 = load i64, ptr %107, align 8, !tbaa !9
  %622 = load i64, ptr %64, align 8, !tbaa !9
  %623 = load i64, ptr %52, align 8, !tbaa !9
  %624 = mul nsw i64 %622, %623
  %625 = add nsw i64 %621, %624
  %626 = getelementptr inbounds float, ptr %620, i64 %625
  %627 = load ptr, ptr %47, align 8, !tbaa !5
  %628 = call i32 @slaset_(ptr noundef @.str, ptr noundef %72, ptr noundef @c__2, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %626, ptr noundef %627)
  br label %629

629:                                              ; preds = %585, %524
  %630 = load i64, ptr %81, align 8, !tbaa !9
  %631 = sub nsw i64 %630, 1
  store i64 %631, ptr %56, align 8, !tbaa !9
  %632 = load i64, ptr %107, align 8, !tbaa !9
  store i64 %632, ptr %64, align 8, !tbaa !9
  br label %633

633:                                              ; preds = %666, %629
  %634 = load i64, ptr %64, align 8, !tbaa !9
  %635 = load i64, ptr %56, align 8, !tbaa !9
  %636 = icmp sle i64 %634, %635
  br i1 %636, label %637, label %669

637:                                              ; preds = %633
  %638 = load ptr, ptr %30, align 8, !tbaa !5
  %639 = load i64, ptr %64, align 8, !tbaa !9
  %640 = getelementptr inbounds float, ptr %638, i64 %639
  %641 = load float, ptr %640, align 4, !tbaa !11
  %642 = load ptr, ptr %31, align 8, !tbaa !5
  %643 = load i64, ptr %64, align 8, !tbaa !9
  %644 = getelementptr inbounds float, ptr %642, i64 %643
  %645 = load float, ptr %644, align 4, !tbaa !11
  %646 = fmul float %641, %645
  store float %646, ptr %78, align 4, !tbaa !11
  %647 = load float, ptr %78, align 4, !tbaa !11
  %648 = load ptr, ptr %49, align 8, !tbaa !5
  %649 = load i64, ptr %91, align 8, !tbaa !9
  %650 = sub nsw i64 %649, 1
  %651 = load i64, ptr %64, align 8, !tbaa !9
  %652 = add nsw i64 %650, %651
  %653 = getelementptr inbounds float, ptr %648, i64 %652
  store float %647, ptr %653, align 4, !tbaa !11
  %654 = load float, ptr %78, align 4, !tbaa !11
  %655 = load ptr, ptr %31, align 8, !tbaa !5
  %656 = load i64, ptr %64, align 8, !tbaa !9
  %657 = getelementptr inbounds float, ptr %655, i64 %656
  %658 = load float, ptr %657, align 4, !tbaa !11
  %659 = fmul float %654, %658
  %660 = load ptr, ptr %49, align 8, !tbaa !5
  %661 = load i64, ptr %110, align 8, !tbaa !9
  %662 = sub nsw i64 %661, 1
  %663 = load i64, ptr %64, align 8, !tbaa !9
  %664 = add nsw i64 %662, %663
  %665 = getelementptr inbounds float, ptr %660, i64 %664
  store float %659, ptr %665, align 4, !tbaa !11
  br label %666

666:                                              ; preds = %637
  %667 = load i64, ptr %64, align 8, !tbaa !9
  %668 = add nsw i64 %667, 1
  store i64 %668, ptr %64, align 8, !tbaa !9
  br label %633, !llvm.loop !18

669:                                              ; preds = %633
  %670 = load i64, ptr %120, align 8, !tbaa !9
  %671 = icmp sgt i64 %670, 0
  br i1 %671, label %672, label %871

672:                                              ; preds = %669
  %673 = load ptr, ptr %44, align 8, !tbaa !5
  %674 = load i64, ptr %115, align 8, !tbaa !9
  %675 = sub nsw i64 %674, 1
  %676 = load i64, ptr %127, align 8, !tbaa !9
  %677 = add nsw i64 %675, %676
  %678 = getelementptr inbounds i64, ptr %673, i64 %677
  %679 = load i64, ptr %678, align 8, !tbaa !9
  store i64 %679, ptr %66, align 8, !tbaa !9
  %680 = load ptr, ptr %44, align 8, !tbaa !5
  %681 = load i64, ptr %115, align 8, !tbaa !9
  %682 = sub nsw i64 %681, 1
  %683 = load i64, ptr %130, align 8, !tbaa !9
  %684 = add nsw i64 %682, %683
  %685 = getelementptr inbounds i64, ptr %680, i64 %684
  %686 = load i64, ptr %685, align 8, !tbaa !9
  store i64 %686, ptr %67, align 8, !tbaa !9
  %687 = load ptr, ptr %44, align 8, !tbaa !5
  %688 = load i64, ptr %115, align 8, !tbaa !9
  %689 = getelementptr inbounds i64, ptr %687, i64 %688
  %690 = load i64, ptr %689, align 8, !tbaa !9
  %691 = sub nsw i64 %690, 1
  store i64 %691, ptr %124, align 8, !tbaa !9
  %692 = load ptr, ptr %30, align 8, !tbaa !5
  %693 = load i64, ptr %107, align 8, !tbaa !9
  %694 = getelementptr inbounds float, ptr %692, i64 %693
  %695 = load ptr, ptr %49, align 8, !tbaa !5
  %696 = load i64, ptr %110, align 8, !tbaa !9
  %697 = load i64, ptr %107, align 8, !tbaa !9
  %698 = add nsw i64 %696, %697
  %699 = sub nsw i64 %698, 1
  %700 = getelementptr inbounds float, ptr %695, i64 %699
  %701 = load ptr, ptr %38, align 8, !tbaa !5
  %702 = load ptr, ptr %39, align 8, !tbaa !5
  %703 = load ptr, ptr %49, align 8, !tbaa !5
  %704 = load i64, ptr %115, align 8, !tbaa !9
  %705 = getelementptr inbounds float, ptr %703, i64 %704
  %706 = load ptr, ptr %42, align 8, !tbaa !5
  %707 = load i64, ptr %115, align 8, !tbaa !9
  %708 = getelementptr inbounds float, ptr %706, i64 %707
  %709 = load ptr, ptr %41, align 8, !tbaa !5
  %710 = load i64, ptr %115, align 8, !tbaa !9
  %711 = getelementptr inbounds float, ptr %709, i64 %710
  %712 = load ptr, ptr %49, align 8, !tbaa !5
  %713 = load i64, ptr %128, align 8, !tbaa !9
  %714 = getelementptr inbounds float, ptr %712, i64 %713
  %715 = load ptr, ptr %50, align 8, !tbaa !5
  %716 = load i64, ptr %123, align 8, !tbaa !9
  %717 = getelementptr inbounds i64, ptr %715, i64 %716
  %718 = load ptr, ptr %32, align 8, !tbaa !5
  %719 = call i32 @slarrb_(ptr noundef %72, ptr noundef %694, ptr noundef %700, ptr noundef %66, ptr noundef %67, ptr noundef %701, ptr noundef %702, ptr noundef %124, ptr noundef %705, ptr noundef %708, ptr noundef %711, ptr noundef %714, ptr noundef %717, ptr noundef %718, ptr noundef %116, ptr noundef %72, ptr noundef %95)
  %720 = load i64, ptr %95, align 8, !tbaa !9
  %721 = icmp ne i64 %720, 0
  br i1 %721, label %722, label %724

722:                                              ; preds = %672
  %723 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -1, ptr %723, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1989

724:                                              ; preds = %672
  %725 = load i64, ptr %127, align 8, !tbaa !9
  %726 = icmp sgt i64 %725, 1
  br i1 %726, label %727, label %783

727:                                              ; preds = %724
  %728 = load ptr, ptr %42, align 8, !tbaa !5
  %729 = load i64, ptr %115, align 8, !tbaa !9
  %730 = load i64, ptr %127, align 8, !tbaa !9
  %731 = add nsw i64 %729, %730
  %732 = sub nsw i64 %731, 2
  %733 = getelementptr inbounds float, ptr %728, i64 %732
  %734 = load float, ptr %733, align 4, !tbaa !11
  store float %734, ptr %59, align 4, !tbaa !11
  %735 = load ptr, ptr %40, align 8, !tbaa !5
  %736 = load i64, ptr %115, align 8, !tbaa !9
  %737 = load i64, ptr %127, align 8, !tbaa !9
  %738 = add nsw i64 %736, %737
  %739 = sub nsw i64 %738, 1
  %740 = getelementptr inbounds float, ptr %735, i64 %739
  %741 = load float, ptr %740, align 4, !tbaa !11
  %742 = load ptr, ptr %41, align 8, !tbaa !5
  %743 = load i64, ptr %115, align 8, !tbaa !9
  %744 = load i64, ptr %127, align 8, !tbaa !9
  %745 = add nsw i64 %743, %744
  %746 = sub nsw i64 %745, 1
  %747 = getelementptr inbounds float, ptr %742, i64 %746
  %748 = load float, ptr %747, align 4, !tbaa !11
  %749 = fsub float %741, %748
  %750 = load ptr, ptr %40, align 8, !tbaa !5
  %751 = load i64, ptr %115, align 8, !tbaa !9
  %752 = load i64, ptr %127, align 8, !tbaa !9
  %753 = add nsw i64 %751, %752
  %754 = sub nsw i64 %753, 2
  %755 = getelementptr inbounds float, ptr %750, i64 %754
  %756 = load float, ptr %755, align 4, !tbaa !11
  %757 = fsub float %749, %756
  %758 = load ptr, ptr %41, align 8, !tbaa !5
  %759 = load i64, ptr %115, align 8, !tbaa !9
  %760 = load i64, ptr %127, align 8, !tbaa !9
  %761 = add nsw i64 %759, %760
  %762 = sub nsw i64 %761, 2
  %763 = getelementptr inbounds float, ptr %758, i64 %762
  %764 = load float, ptr %763, align 4, !tbaa !11
  %765 = fsub float %757, %764
  store float %765, ptr %60, align 4, !tbaa !11
  %766 = load float, ptr %59, align 4, !tbaa !11
  %767 = load float, ptr %60, align 4, !tbaa !11
  %768 = fcmp oge float %766, %767
  br i1 %768, label %769, label %771

769:                                              ; preds = %727
  %770 = load float, ptr %59, align 4, !tbaa !11
  br label %773

771:                                              ; preds = %727
  %772 = load float, ptr %60, align 4, !tbaa !11
  br label %773

773:                                              ; preds = %771, %769
  %774 = phi float [ %770, %769 ], [ %772, %771 ]
  %775 = fpext float %774 to double
  %776 = fptrunc double %775 to float
  %777 = load ptr, ptr %42, align 8, !tbaa !5
  %778 = load i64, ptr %115, align 8, !tbaa !9
  %779 = load i64, ptr %127, align 8, !tbaa !9
  %780 = add nsw i64 %778, %779
  %781 = sub nsw i64 %780, 2
  %782 = getelementptr inbounds float, ptr %777, i64 %781
  store float %776, ptr %782, align 4, !tbaa !11
  br label %783

783:                                              ; preds = %773, %724
  %784 = load i64, ptr %115, align 8, !tbaa !9
  %785 = load i64, ptr %130, align 8, !tbaa !9
  %786 = add nsw i64 %784, %785
  %787 = sub nsw i64 %786, 1
  %788 = load i64, ptr %87, align 8, !tbaa !9
  %789 = icmp slt i64 %787, %788
  br i1 %789, label %790, label %844

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

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

832:                                              ; preds = %790
  %833 = load float, ptr %60, 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
  %838 = load ptr, ptr %42, align 8, !tbaa !5
  %839 = load i64, ptr %115, align 8, !tbaa !9
  %840 = load i64, ptr %130, align 8, !tbaa !9
  %841 = add nsw i64 %839, %840
  %842 = sub nsw i64 %841, 1
  %843 = getelementptr inbounds float, ptr %838, i64 %842
  store float %837, ptr %843, align 4, !tbaa !11
  br label %844

844:                                              ; preds = %834, %783
  %845 = load i64, ptr %130, align 8, !tbaa !9
  store i64 %845, ptr %56, align 8, !tbaa !9
  %846 = load i64, ptr %127, align 8, !tbaa !9
  store i64 %846, ptr %64, align 8, !tbaa !9
  br label %847

847:                                              ; preds = %867, %844
  %848 = load i64, ptr %64, align 8, !tbaa !9
  %849 = load i64, ptr %56, align 8, !tbaa !9
  %850 = icmp sle i64 %848, %849
  br i1 %850, label %851, label %870

851:                                              ; preds = %847
  %852 = load ptr, ptr %49, align 8, !tbaa !5
  %853 = load i64, ptr %115, align 8, !tbaa !9
  %854 = load i64, ptr %64, align 8, !tbaa !9
  %855 = add nsw i64 %853, %854
  %856 = sub nsw i64 %855, 1
  %857 = getelementptr inbounds float, ptr %852, i64 %856
  %858 = load float, ptr %857, align 4, !tbaa !11
  %859 = load float, ptr %94, align 4, !tbaa !11
  %860 = fadd float %858, %859
  %861 = load ptr, ptr %40, align 8, !tbaa !5
  %862 = load i64, ptr %115, align 8, !tbaa !9
  %863 = load i64, ptr %64, align 8, !tbaa !9
  %864 = add nsw i64 %862, %863
  %865 = sub nsw i64 %864, 1
  %866 = getelementptr inbounds float, ptr %861, i64 %865
  store float %860, ptr %866, align 4, !tbaa !11
  br label %867

867:                                              ; preds = %851
  %868 = load i64, ptr %64, align 8, !tbaa !9
  %869 = add nsw i64 %868, 1
  store i64 %869, ptr %64, align 8, !tbaa !9
  br label %847, !llvm.loop !19

870:                                              ; preds = %847
  br label %871

871:                                              ; preds = %870, %669
  %872 = load i64, ptr %127, align 8, !tbaa !9
  store i64 %872, ptr %132, align 8, !tbaa !9
  %873 = load i64, ptr %130, align 8, !tbaa !9
  store i64 %873, ptr %56, align 8, !tbaa !9
  %874 = load i64, ptr %127, align 8, !tbaa !9
  store i64 %874, ptr %64, align 8, !tbaa !9
  br label %875

875:                                              ; preds = %1969, %871
  %876 = load i64, ptr %64, align 8, !tbaa !9
  %877 = load i64, ptr %56, align 8, !tbaa !9
  %878 = icmp sle i64 %876, %877
  br i1 %878, label %879, label %1972

879:                                              ; preds = %875
  %880 = load i64, ptr %64, align 8, !tbaa !9
  %881 = load i64, ptr %130, align 8, !tbaa !9
  %882 = icmp eq i64 %880, %881
  br i1 %882, label %883, label %885

883:                                              ; preds = %879
  %884 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %884, ptr %137, align 8, !tbaa !9
  br label %920

885:                                              ; preds = %879
  %886 = load ptr, ptr %42, align 8, !tbaa !5
  %887 = load i64, ptr %115, align 8, !tbaa !9
  %888 = load i64, ptr %64, align 8, !tbaa !9
  %889 = add nsw i64 %887, %888
  %890 = sub nsw i64 %889, 1
  %891 = getelementptr inbounds float, ptr %886, i64 %890
  %892 = load float, ptr %891, align 4, !tbaa !11
  %893 = fpext float %892 to double
  %894 = load ptr, ptr %37, align 8, !tbaa !5
  %895 = load float, ptr %894, align 4, !tbaa !11
  %896 = fpext float %895 to double
  %897 = load ptr, ptr %49, align 8, !tbaa !5
  %898 = load i64, ptr %115, align 8, !tbaa !9
  %899 = load i64, ptr %64, align 8, !tbaa !9
  %900 = add nsw i64 %898, %899
  %901 = sub nsw i64 %900, 1
  %902 = getelementptr inbounds float, ptr %897, i64 %901
  %903 = load float, ptr %902, align 4, !tbaa !11
  store float %903, ptr %59, align 4, !tbaa !11
  %904 = load float, ptr %59, align 4, !tbaa !11
  %905 = fcmp oge float %904, 0.000000e+00
  br i1 %905, label %906, label %908

906:                                              ; preds = %885
  %907 = load float, ptr %59, align 4, !tbaa !11
  br label %911

908:                                              ; preds = %885
  %909 = load float, ptr %59, align 4, !tbaa !11
  %910 = fneg float %909
  br label %911

911:                                              ; preds = %908, %906
  %912 = phi float [ %907, %906 ], [ %910, %908 ]
  %913 = fpext float %912 to double
  %914 = fmul double %896, %913
  %915 = fcmp oge double %893, %914
  br i1 %915, label %916, label %918

916:                                              ; preds = %911
  %917 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %917, ptr %137, align 8, !tbaa !9
  br label %919

918:                                              ; preds = %911
  br label %1968

919:                                              ; preds = %916
  br label %920

920:                                              ; preds = %919, %883
  %921 = load i64, ptr %137, align 8, !tbaa !9
  %922 = load i64, ptr %132, align 8, !tbaa !9
  %923 = sub nsw i64 %921, %922
  %924 = add nsw i64 %923, 1
  store i64 %924, ptr %140, align 8, !tbaa !9
  %925 = load ptr, ptr %35, align 8, !tbaa !5
  %926 = load i64, ptr %925, align 8, !tbaa !9
  %927 = icmp eq i64 %926, 1
  br i1 %927, label %928, label %939

928:                                              ; preds = %920
  %929 = load ptr, ptr %36, align 8, !tbaa !5
  %930 = load i64, ptr %929, align 8, !tbaa !9
  %931 = load ptr, ptr %34, align 8, !tbaa !5
  %932 = load i64, ptr %931, align 8, !tbaa !9
  %933 = icmp eq i64 %930, %932
  br i1 %933, label %934, label %939

934:                                              ; preds = %928
  %935 = load i64, ptr %115, align 8, !tbaa !9
  %936 = load i64, ptr %132, align 8, !tbaa !9
  %937 = add nsw i64 %935, %936
  %938 = sub nsw i64 %937, 1
  store i64 %938, ptr %133, align 8, !tbaa !9
  br label %969

939:                                              ; preds = %928, %920
  %940 = load i64, ptr %115, align 8, !tbaa !9
  %941 = load i64, ptr %132, align 8, !tbaa !9
  %942 = add nsw i64 %940, %941
  %943 = sub nsw i64 %942, 1
  %944 = load ptr, ptr %35, align 8, !tbaa !5
  %945 = load i64, ptr %944, align 8, !tbaa !9
  %946 = icmp slt i64 %943, %945
  br i1 %946, label %947, label %951

947:                                              ; preds = %939
  %948 = load ptr, ptr %35, align 8, !tbaa !5
  %949 = load i64, ptr %948, align 8, !tbaa !9
  %950 = sub nsw i64 %949, 1
  store i64 %950, ptr %133, align 8, !tbaa !9
  br label %968

951:                                              ; preds = %939
  %952 = load i64, ptr %115, align 8, !tbaa !9
  %953 = load i64, ptr %132, align 8, !tbaa !9
  %954 = add nsw i64 %952, %953
  %955 = sub nsw i64 %954, 1
  %956 = load ptr, ptr %36, align 8, !tbaa !5
  %957 = load i64, ptr %956, align 8, !tbaa !9
  %958 = icmp sgt i64 %955, %957
  br i1 %958, label %959, label %962

959:                                              ; preds = %951
  %960 = load ptr, ptr %36, align 8, !tbaa !5
  %961 = load i64, ptr %960, align 8, !tbaa !9
  store i64 %961, ptr %133, align 8, !tbaa !9
  br label %967

962:                                              ; preds = %951
  %963 = load i64, ptr %115, align 8, !tbaa !9
  %964 = load i64, ptr %132, align 8, !tbaa !9
  %965 = add nsw i64 %963, %964
  %966 = sub nsw i64 %965, 1
  store i64 %966, ptr %133, align 8, !tbaa !9
  br label %967

967:                                              ; preds = %962, %959
  br label %968

968:                                              ; preds = %967, %947
  br label %969

969:                                              ; preds = %968, %934
  %970 = load i64, ptr %140, align 8, !tbaa !9
  %971 = icmp sgt i64 %970, 1
  br i1 %971, label %972, label %1245

972:                                              ; preds = %969
  %973 = load i64, ptr %132, align 8, !tbaa !9
  %974 = icmp eq i64 %973, 1
  br i1 %974, label %975, label %999

975:                                              ; preds = %972
  store float 0.000000e+00, ptr %59, align 4, !tbaa !11
  %976 = load ptr, ptr %40, align 8, !tbaa !5
  %977 = load i64, ptr %115, align 8, !tbaa !9
  %978 = getelementptr inbounds float, ptr %976, i64 %977
  %979 = load float, ptr %978, align 4, !tbaa !11
  %980 = load ptr, ptr %41, align 8, !tbaa !5
  %981 = load i64, ptr %115, align 8, !tbaa !9
  %982 = getelementptr inbounds float, ptr %980, i64 %981
  %983 = load float, ptr %982, align 4, !tbaa !11
  %984 = fsub float %979, %983
  %985 = load ptr, ptr %28, align 8, !tbaa !5
  %986 = load float, ptr %985, align 4, !tbaa !11
  %987 = fsub float %984, %986
  store float %987, ptr %60, align 4, !tbaa !11
  %988 = load float, ptr %59, align 4, !tbaa !11
  %989 = load float, ptr %60, align 4, !tbaa !11
  %990 = fcmp oge float %988, %989
  br i1 %990, label %991, label %993

991:                                              ; preds = %975
  %992 = load float, ptr %59, align 4, !tbaa !11
  br label %995

993:                                              ; preds = %975
  %994 = load float, ptr %60, align 4, !tbaa !11
  br label %995

995:                                              ; preds = %993, %991
  %996 = phi float [ %992, %991 ], [ %994, %993 ]
  %997 = fpext float %996 to double
  %998 = fptrunc double %997 to float
  store float %998, ptr %83, align 4, !tbaa !11
  br label %1007

999:                                              ; preds = %972
  %1000 = load ptr, ptr %42, align 8, !tbaa !5
  %1001 = load i64, ptr %115, align 8, !tbaa !9
  %1002 = load i64, ptr %132, align 8, !tbaa !9
  %1003 = add nsw i64 %1001, %1002
  %1004 = sub nsw i64 %1003, 2
  %1005 = getelementptr inbounds float, ptr %1000, i64 %1004
  %1006 = load float, ptr %1005, align 4, !tbaa !11
  store float %1006, ptr %83, align 4, !tbaa !11
  br label %1007

1007:                                             ; preds = %999, %995
  %1008 = load ptr, ptr %42, align 8, !tbaa !5
  %1009 = load i64, ptr %115, align 8, !tbaa !9
  %1010 = load i64, ptr %137, align 8, !tbaa !9
  %1011 = add nsw i64 %1009, %1010
  %1012 = sub nsw i64 %1011, 1
  %1013 = getelementptr inbounds float, ptr %1008, i64 %1012
  %1014 = load float, ptr %1013, align 4, !tbaa !11
  store float %1014, ptr %85, align 4, !tbaa !11
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %1015

1015:                                             ; preds = %1069, %1007
  %1016 = load i64, ptr %65, align 8, !tbaa !9
  %1017 = icmp sle i64 %1016, 2
  br i1 %1017, label %1018, label %1072

1018:                                             ; preds = %1015
  %1019 = load i64, ptr %65, align 8, !tbaa !9
  %1020 = icmp eq i64 %1019, 1
  br i1 %1020, label %1021, label %1029

1021:                                             ; preds = %1018
  %1022 = load ptr, ptr %44, align 8, !tbaa !5
  %1023 = load i64, ptr %115, align 8, !tbaa !9
  %1024 = sub nsw i64 %1023, 1
  %1025 = load i64, ptr %132, align 8, !tbaa !9
  %1026 = add nsw i64 %1024, %1025
  %1027 = getelementptr inbounds i64, ptr %1022, i64 %1026
  %1028 = load i64, ptr %1027, align 8, !tbaa !9
  store i64 %1028, ptr %66, align 8, !tbaa !9
  br label %1037

1029:                                             ; preds = %1018
  %1030 = load ptr, ptr %44, align 8, !tbaa !5
  %1031 = load i64, ptr %115, align 8, !tbaa !9
  %1032 = sub nsw i64 %1031, 1
  %1033 = load i64, ptr %137, align 8, !tbaa !9
  %1034 = add nsw i64 %1032, %1033
  %1035 = getelementptr inbounds i64, ptr %1030, i64 %1034
  %1036 = load i64, ptr %1035, align 8, !tbaa !9
  store i64 %1036, ptr %66, align 8, !tbaa !9
  br label %1037

1037:                                             ; preds = %1029, %1021
  %1038 = load ptr, ptr %44, align 8, !tbaa !5
  %1039 = load i64, ptr %115, align 8, !tbaa !9
  %1040 = getelementptr inbounds i64, ptr %1038, i64 %1039
  %1041 = load i64, ptr %1040, align 8, !tbaa !9
  %1042 = sub nsw i64 %1041, 1
  store i64 %1042, ptr %124, align 8, !tbaa !9
  %1043 = load ptr, ptr %30, align 8, !tbaa !5
  %1044 = load i64, ptr %107, align 8, !tbaa !9
  %1045 = getelementptr inbounds float, ptr %1043, i64 %1044
  %1046 = load ptr, ptr %49, align 8, !tbaa !5
  %1047 = load i64, ptr %110, align 8, !tbaa !9
  %1048 = load i64, ptr %107, align 8, !tbaa !9
  %1049 = add nsw i64 %1047, %1048
  %1050 = sub nsw i64 %1049, 1
  %1051 = getelementptr inbounds float, ptr %1046, i64 %1050
  %1052 = load ptr, ptr %49, align 8, !tbaa !5
  %1053 = load i64, ptr %115, align 8, !tbaa !9
  %1054 = getelementptr inbounds float, ptr %1052, i64 %1053
  %1055 = load ptr, ptr %42, align 8, !tbaa !5
  %1056 = load i64, ptr %115, align 8, !tbaa !9
  %1057 = getelementptr inbounds float, ptr %1055, i64 %1056
  %1058 = load ptr, ptr %41, align 8, !tbaa !5
  %1059 = load i64, ptr %115, align 8, !tbaa !9
  %1060 = getelementptr inbounds float, ptr %1058, i64 %1059
  %1061 = load ptr, ptr %49, align 8, !tbaa !5
  %1062 = load i64, ptr %128, align 8, !tbaa !9
  %1063 = getelementptr inbounds float, ptr %1061, i64 %1062
  %1064 = load ptr, ptr %50, align 8, !tbaa !5
  %1065 = load i64, ptr %123, align 8, !tbaa !9
  %1066 = getelementptr inbounds i64, ptr %1064, i64 %1065
  %1067 = load ptr, ptr %32, align 8, !tbaa !5
  %1068 = call i32 @slarrb_(ptr noundef %72, ptr noundef %1045, ptr noundef %1051, ptr noundef %66, ptr noundef %66, ptr noundef %102, ptr noundef %102, ptr noundef %124, ptr noundef %1054, ptr noundef %1057, ptr noundef %1060, ptr noundef %1063, ptr noundef %1066, ptr noundef %1067, ptr noundef %116, ptr noundef %72, ptr noundef %95)
  br label %1069

1069:                                             ; preds = %1037
  %1070 = load i64, ptr %65, align 8, !tbaa !9
  %1071 = add nsw i64 %1070, 1
  store i64 %1071, ptr %65, align 8, !tbaa !9
  br label %1015, !llvm.loop !20

1072:                                             ; preds = %1015
  %1073 = load i64, ptr %115, align 8, !tbaa !9
  %1074 = load i64, ptr %137, align 8, !tbaa !9
  %1075 = add nsw i64 %1073, %1074
  %1076 = sub nsw i64 %1075, 1
  %1077 = load ptr, ptr %35, align 8, !tbaa !5
  %1078 = load i64, ptr %1077, align 8, !tbaa !9
  %1079 = icmp slt i64 %1076, %1078
  br i1 %1079, label %1088, label %1080

1080:                                             ; preds = %1072
  %1081 = load i64, ptr %115, align 8, !tbaa !9
  %1082 = load i64, ptr %132, align 8, !tbaa !9
  %1083 = add nsw i64 %1081, %1082
  %1084 = sub nsw i64 %1083, 1
  %1085 = load ptr, ptr %36, align 8, !tbaa !5
  %1086 = load i64, ptr %1085, align 8, !tbaa !9
  %1087 = icmp sgt i64 %1084, %1086
  br i1 %1087, label %1088, label %1095

1088:                                             ; preds = %1080, %1072
  %1089 = load i64, ptr %93, align 8, !tbaa !9
  %1090 = load i64, ptr %137, align 8, !tbaa !9
  %1091 = add nsw i64 %1089, %1090
  %1092 = load i64, ptr %132, align 8, !tbaa !9
  %1093 = sub nsw i64 %1091, %1092
  %1094 = add nsw i64 %1093, 1
  store i64 %1094, ptr %93, align 8, !tbaa !9
  br label %1965

1095:                                             ; preds = %1080
  %1096 = load ptr, ptr %30, align 8, !tbaa !5
  %1097 = load i64, ptr %107, align 8, !tbaa !9
  %1098 = getelementptr inbounds float, ptr %1096, i64 %1097
  %1099 = load ptr, ptr %31, align 8, !tbaa !5
  %1100 = load i64, ptr %107, align 8, !tbaa !9
  %1101 = getelementptr inbounds float, ptr %1099, i64 %1100
  %1102 = load ptr, ptr %49, align 8, !tbaa !5
  %1103 = load i64, ptr %91, align 8, !tbaa !9
  %1104 = load i64, ptr %107, align 8, !tbaa !9
  %1105 = add nsw i64 %1103, %1104
  %1106 = sub nsw i64 %1105, 1
  %1107 = getelementptr inbounds float, ptr %1102, i64 %1106
  %1108 = load ptr, ptr %49, align 8, !tbaa !5
  %1109 = load i64, ptr %115, align 8, !tbaa !9
  %1110 = getelementptr inbounds float, ptr %1108, i64 %1109
  %1111 = load ptr, ptr %42, align 8, !tbaa !5
  %1112 = load i64, ptr %115, align 8, !tbaa !9
  %1113 = getelementptr inbounds float, ptr %1111, i64 %1112
  %1114 = load ptr, ptr %41, align 8, !tbaa !5
  %1115 = load i64, ptr %115, align 8, !tbaa !9
  %1116 = getelementptr inbounds float, ptr %1114, i64 %1115
  %1117 = load ptr, ptr %32, align 8, !tbaa !5
  %1118 = load ptr, ptr %46, align 8, !tbaa !5
  %1119 = load i64, ptr %107, align 8, !tbaa !9
  %1120 = load i64, ptr %133, align 8, !tbaa !9
  %1121 = load i64, ptr %52, align 8, !tbaa !9
  %1122 = mul nsw i64 %1120, %1121
  %1123 = add nsw i64 %1119, %1122
  %1124 = getelementptr inbounds float, ptr %1118, i64 %1123
  %1125 = load ptr, ptr %46, align 8, !tbaa !5
  %1126 = load i64, ptr %107, align 8, !tbaa !9
  %1127 = load i64, ptr %133, align 8, !tbaa !9
  %1128 = add nsw i64 %1127, 1
  %1129 = load i64, ptr %52, align 8, !tbaa !9
  %1130 = mul nsw i64 %1128, %1129
  %1131 = add nsw i64 %1126, %1130
  %1132 = getelementptr inbounds float, ptr %1125, i64 %1131
  %1133 = load ptr, ptr %49, align 8, !tbaa !5
  %1134 = load i64, ptr %128, align 8, !tbaa !9
  %1135 = getelementptr inbounds float, ptr %1133, i64 %1134
  %1136 = call i32 @slarrf_(ptr noundef %72, ptr noundef %1098, ptr noundef %1101, ptr noundef %1107, ptr noundef %132, ptr noundef %137, ptr noundef %1110, ptr noundef %1113, ptr noundef %1116, ptr noundef %116, ptr noundef %83, ptr noundef %85, ptr noundef %1117, ptr noundef %76, ptr noundef %1124, ptr noundef %1132, ptr noundef %1135, ptr noundef %95)
  %1137 = load i64, ptr %95, align 8, !tbaa !9
  %1138 = icmp eq i64 %1137, 0
  br i1 %1138, label %1139, label %1242

1139:                                             ; preds = %1095
  %1140 = load float, ptr %94, align 4, !tbaa !11
  %1141 = load float, ptr %76, align 4, !tbaa !11
  %1142 = fadd float %1140, %1141
  store float %1142, ptr %121, align 4, !tbaa !11
  %1143 = load float, ptr %121, align 4, !tbaa !11
  %1144 = load ptr, ptr %46, align 8, !tbaa !5
  %1145 = load i64, ptr %81, align 8, !tbaa !9
  %1146 = load i64, ptr %133, align 8, !tbaa !9
  %1147 = add nsw i64 %1146, 1
  %1148 = load i64, ptr %52, align 8, !tbaa !9
  %1149 = mul nsw i64 %1147, %1148
  %1150 = add nsw i64 %1145, %1149
  %1151 = getelementptr inbounds float, ptr %1144, i64 %1150
  store float %1143, ptr %1151, align 4, !tbaa !11
  %1152 = load i64, ptr %137, align 8, !tbaa !9
  store i64 %1152, ptr %57, align 8, !tbaa !9
  %1153 = load i64, ptr %132, align 8, !tbaa !9
  store i64 %1153, ptr %65, align 8, !tbaa !9
  br label %1154

1154:                                             ; preds = %1223, %1139
  %1155 = load i64, ptr %65, align 8, !tbaa !9
  %1156 = load i64, ptr %57, align 8, !tbaa !9
  %1157 = icmp sle i64 %1155, %1156
  br i1 %1157, label %1158, label %1226

1158:                                             ; preds = %1154
  %1159 = load float, ptr %75, align 4, !tbaa !11
  %1160 = fmul float %1159, 3.000000e+00
  %1161 = fpext float %1160 to double
  %1162 = load ptr, ptr %49, align 8, !tbaa !5
  %1163 = load i64, ptr %115, align 8, !tbaa !9
  %1164 = load i64, ptr %65, align 8, !tbaa !9
  %1165 = add nsw i64 %1163, %1164
  %1166 = sub nsw i64 %1165, 1
  %1167 = getelementptr inbounds float, ptr %1162, i64 %1166
  %1168 = load float, ptr %1167, align 4, !tbaa !11
  store float %1168, ptr %59, align 4, !tbaa !11
  %1169 = load float, ptr %59, align 4, !tbaa !11
  %1170 = fcmp oge float %1169, 0.000000e+00
  br i1 %1170, label %1171, label %1173

1171:                                             ; preds = %1158
  %1172 = load float, ptr %59, align 4, !tbaa !11
  br label %1176

1173:                                             ; preds = %1158
  %1174 = load float, ptr %59, align 4, !tbaa !11
  %1175 = fneg float %1174
  br label %1176

1176:                                             ; preds = %1173, %1171
  %1177 = phi float [ %1172, %1171 ], [ %1175, %1173 ]
  %1178 = fpext float %1177 to double
  %1179 = fmul double %1161, %1178
  %1180 = fptrunc double %1179 to float
  store float %1180, ptr %92, align 4, !tbaa !11
  %1181 = load float, ptr %76, align 4, !tbaa !11
  %1182 = load ptr, ptr %49, align 8, !tbaa !5
  %1183 = load i64, ptr %115, align 8, !tbaa !9
  %1184 = load i64, ptr %65, align 8, !tbaa !9
  %1185 = add nsw i64 %1183, %1184
  %1186 = sub nsw i64 %1185, 1
  %1187 = getelementptr inbounds float, ptr %1182, i64 %1186
  %1188 = load float, ptr %1187, align 4, !tbaa !11
  %1189 = fsub float %1188, %1181
  store float %1189, ptr %1187, align 4, !tbaa !11
  %1190 = load float, ptr %75, align 4, !tbaa !11
  %1191 = fmul float %1190, 4.000000e+00
  %1192 = fpext float %1191 to double
  %1193 = load ptr, ptr %49, align 8, !tbaa !5
  %1194 = load i64, ptr %115, align 8, !tbaa !9
  %1195 = load i64, ptr %65, align 8, !tbaa !9
  %1196 = add nsw i64 %1194, %1195
  %1197 = sub nsw i64 %1196, 1
  %1198 = getelementptr inbounds float, ptr %1193, i64 %1197
  %1199 = load float, ptr %1198, align 4, !tbaa !11
  store float %1199, ptr %59, align 4, !tbaa !11
  %1200 = load float, ptr %59, align 4, !tbaa !11
  %1201 = fcmp oge float %1200, 0.000000e+00
  br i1 %1201, label %1202, label %1204

1202:                                             ; preds = %1176
  %1203 = load float, ptr %59, align 4, !tbaa !11
  br label %1207

1204:                                             ; preds = %1176
  %1205 = load float, ptr %59, align 4, !tbaa !11
  %1206 = fneg float %1205
  br label %1207

1207:                                             ; preds = %1204, %1202
  %1208 = phi float [ %1203, %1202 ], [ %1206, %1204 ]
  %1209 = fpext float %1208 to double
  %1210 = load float, ptr %92, align 4, !tbaa !11
  %1211 = fpext float %1210 to double
  %1212 = call double @llvm.fmuladd.f64(double %1192, double %1209, double %1211)
  %1213 = fptrunc double %1212 to float
  store float %1213, ptr %92, align 4, !tbaa !11
  %1214 = load float, ptr %92, align 4, !tbaa !11
  %1215 = load ptr, ptr %41, align 8, !tbaa !5
  %1216 = load i64, ptr %115, align 8, !tbaa !9
  %1217 = load i64, ptr %65, align 8, !tbaa !9
  %1218 = add nsw i64 %1216, %1217
  %1219 = sub nsw i64 %1218, 1
  %1220 = getelementptr inbounds float, ptr %1215, i64 %1219
  %1221 = load float, ptr %1220, align 4, !tbaa !11
  %1222 = fadd float %1221, %1214
  store float %1222, ptr %1220, align 4, !tbaa !11
  br label %1223

1223:                                             ; preds = %1207
  %1224 = load i64, ptr %65, align 8, !tbaa !9
  %1225 = add nsw i64 %1224, 1
  store i64 %1225, ptr %65, align 8, !tbaa !9
  br label %1154, !llvm.loop !21

1226:                                             ; preds = %1154
  %1227 = load i64, ptr %100, align 8, !tbaa !9
  %1228 = add nsw i64 %1227, 1
  store i64 %1228, ptr %100, align 8, !tbaa !9
  %1229 = load i64, ptr %126, align 8, !tbaa !9
  %1230 = load i64, ptr %100, align 8, !tbaa !9
  %1231 = shl i64 %1230, 1
  %1232 = add nsw i64 %1229, %1231
  store i64 %1232, ptr %65, align 8, !tbaa !9
  %1233 = load i64, ptr %132, align 8, !tbaa !9
  %1234 = load ptr, ptr %50, align 8, !tbaa !5
  %1235 = load i64, ptr %65, align 8, !tbaa !9
  %1236 = sub nsw i64 %1235, 1
  %1237 = getelementptr inbounds i64, ptr %1234, i64 %1236
  store i64 %1233, ptr %1237, align 8, !tbaa !9
  %1238 = load i64, ptr %137, align 8, !tbaa !9
  %1239 = load ptr, ptr %50, align 8, !tbaa !5
  %1240 = load i64, ptr %65, align 8, !tbaa !9
  %1241 = getelementptr inbounds i64, ptr %1239, i64 %1240
  store i64 %1238, ptr %1241, align 8, !tbaa !9
  br label %1244

1242:                                             ; preds = %1095
  %1243 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -2, ptr %1243, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1989

1244:                                             ; preds = %1226
  br label %1964

1245:                                             ; preds = %969
  store i64 0, ptr %88, align 8, !tbaa !9
  %1246 = load i64, ptr %72, align 8, !tbaa !9
  %1247 = sitofp i64 %1246 to float
  %1248 = fpext float %1247 to double
  %1249 = call double @log(double noundef %1248) #5
  %1250 = fmul double %1249, 4.000000e+00
  %1251 = load float, ptr %75, align 4, !tbaa !11
  %1252 = fpext float %1251 to double
  %1253 = fmul double %1250, %1252
  %1254 = fptrunc double %1253 to float
  store float %1254, ptr %77, align 4, !tbaa !11
  %1255 = load i64, ptr %132, align 8, !tbaa !9
  store i64 %1255, ptr %65, align 8, !tbaa !9
  %1256 = load i64, ptr %115, align 8, !tbaa !9
  %1257 = load i64, ptr %65, align 8, !tbaa !9
  %1258 = add nsw i64 %1256, %1257
  %1259 = sub nsw i64 %1258, 1
  store i64 %1259, ptr %129, align 8, !tbaa !9
  %1260 = load i64, ptr %129, align 8, !tbaa !9
  %1261 = sub nsw i64 %1260, 1
  store i64 %1261, ptr %57, align 8, !tbaa !9
  %1262 = load i64, ptr %57, align 8, !tbaa !9
  %1263 = icmp sge i64 %1262, 1
  br i1 %1263, label %1264, label %1266

1264:                                             ; preds = %1245
  %1265 = load i64, ptr %57, align 8, !tbaa !9
  br label %1267

1266:                                             ; preds = %1245
  br label %1267

1267:                                             ; preds = %1266, %1264
  %1268 = phi i64 [ %1265, %1264 ], [ 1, %1266 ]
  store i64 %1268, ptr %135, align 8, !tbaa !9
  %1269 = load i64, ptr %129, align 8, !tbaa !9
  %1270 = add nsw i64 %1269, 1
  store i64 %1270, ptr %57, align 8, !tbaa !9
  %1271 = load i64, ptr %57, align 8, !tbaa !9
  %1272 = load ptr, ptr %34, align 8, !tbaa !5
  %1273 = load i64, ptr %1272, align 8, !tbaa !9
  %1274 = icmp sle i64 %1271, %1273
  br i1 %1274, label %1275, label %1277

1275:                                             ; preds = %1267
  %1276 = load i64, ptr %57, align 8, !tbaa !9
  br label %1280

1277:                                             ; preds = %1267
  %1278 = load ptr, ptr %34, align 8, !tbaa !5
  %1279 = load i64, ptr %1278, align 8, !tbaa !9
  br label %1280

1280:                                             ; preds = %1277, %1275
  %1281 = phi i64 [ %1276, %1275 ], [ %1279, %1277 ]
  store i64 %1281, ptr %138, align 8, !tbaa !9
  %1282 = load ptr, ptr %49, align 8, !tbaa !5
  %1283 = load i64, ptr %129, align 8, !tbaa !9
  %1284 = getelementptr inbounds float, ptr %1282, i64 %1283
  %1285 = load float, ptr %1284, align 4, !tbaa !11
  store float %1285, ptr %106, align 4, !tbaa !11
  %1286 = load i64, ptr %84, align 8, !tbaa !9
  %1287 = add nsw i64 %1286, 1
  store i64 %1287, ptr %84, align 8, !tbaa !9
  %1288 = load i64, ptr %129, align 8, !tbaa !9
  %1289 = load ptr, ptr %35, align 8, !tbaa !5
  %1290 = load i64, ptr %1289, align 8, !tbaa !9
  %1291 = icmp slt i64 %1288, %1290
  br i1 %1291, label %1297, label %1292

1292:                                             ; preds = %1280
  %1293 = load i64, ptr %129, align 8, !tbaa !9
  %1294 = load ptr, ptr %36, align 8, !tbaa !5
  %1295 = load i64, ptr %1294, align 8, !tbaa !9
  %1296 = icmp sgt i64 %1293, %1295
  br i1 %1296, label %1297, label %1298

1297:                                             ; preds = %1292, %1280
  store i64 1, ptr %98, align 8, !tbaa !9
  br label %1871

1298:                                             ; preds = %1292
  store i64 0, ptr %98, align 8, !tbaa !9
  br label %1299

1299:                                             ; preds = %1298
  %1300 = load ptr, ptr %49, align 8, !tbaa !5
  %1301 = load i64, ptr %129, align 8, !tbaa !9
  %1302 = getelementptr inbounds float, ptr %1300, i64 %1301
  %1303 = load float, ptr %1302, align 4, !tbaa !11
  %1304 = load ptr, ptr %41, align 8, !tbaa !5
  %1305 = load i64, ptr %129, align 8, !tbaa !9
  %1306 = getelementptr inbounds float, ptr %1304, i64 %1305
  %1307 = load float, ptr %1306, align 4, !tbaa !11
  %1308 = fsub float %1303, %1307
  store float %1308, ptr %86, align 4, !tbaa !11
  %1309 = load ptr, ptr %49, align 8, !tbaa !5
  %1310 = load i64, ptr %129, align 8, !tbaa !9
  %1311 = getelementptr inbounds float, ptr %1309, i64 %1310
  %1312 = load float, ptr %1311, align 4, !tbaa !11
  %1313 = load ptr, ptr %41, align 8, !tbaa !5
  %1314 = load i64, ptr %129, align 8, !tbaa !9
  %1315 = getelementptr inbounds float, ptr %1313, i64 %1314
  %1316 = load float, ptr %1315, align 4, !tbaa !11
  %1317 = fadd float %1312, %1316
  store float %1317, ptr %99, align 4, !tbaa !11
  %1318 = load ptr, ptr %44, align 8, !tbaa !5
  %1319 = load i64, ptr %129, align 8, !tbaa !9
  %1320 = getelementptr inbounds i64, ptr %1318, i64 %1319
  %1321 = load i64, ptr %1320, align 8, !tbaa !9
  store i64 %1321, ptr %108, align 8, !tbaa !9
  %1322 = load i64, ptr %65, align 8, !tbaa !9
  %1323 = icmp eq i64 %1322, 1
  br i1 %1323, label %1324, label %1361

1324:                                             ; preds = %1299
  %1325 = load float, ptr %86, align 4, !tbaa !11
  %1326 = fcmp oge float %1325, 0.000000e+00
  br i1 %1326, label %1327, label %1329

1327:                                             ; preds = %1324
  %1328 = load float, ptr %86, align 4, !tbaa !11
  br label %1332

1329:                                             ; preds = %1324
  %1330 = load float, ptr %86, align 4, !tbaa !11
  %1331 = fneg float %1330
  br label %1332

1332:                                             ; preds = %1329, %1327
  %1333 = phi float [ %1328, %1327 ], [ %1331, %1329 ]
  %1334 = fpext float %1333 to double
  %1335 = fptrunc double %1334 to float
  store float %1335, ptr %59, align 4, !tbaa !11
  %1336 = load float, ptr %99, align 4, !tbaa !11
  %1337 = fcmp oge float %1336, 0.000000e+00
  br i1 %1337, label %1338, label %1340

1338:                                             ; preds = %1332
  %1339 = load float, ptr %99, align 4, !tbaa !11
  br label %1343

1340:                                             ; preds = %1332
  %1341 = load float, ptr %99, align 4, !tbaa !11
  %1342 = fneg float %1341
  br label %1343

1343:                                             ; preds = %1340, %1338
  %1344 = phi float [ %1339, %1338 ], [ %1342, %1340 ]
  %1345 = fpext float %1344 to double
  %1346 = fptrunc double %1345 to float
  store float %1346, ptr %60, align 4, !tbaa !11
  %1347 = load float, ptr %75, align 4, !tbaa !11
  %1348 = fpext float %1347 to double
  %1349 = load float, ptr %59, align 4, !tbaa !11
  %1350 = load float, ptr %60, align 4, !tbaa !11
  %1351 = fcmp oge float %1349, %1350
  br i1 %1351, label %1352, label %1354

1352:                                             ; preds = %1343
  %1353 = load float, ptr %59, align 4, !tbaa !11
  br label %1356

1354:                                             ; preds = %1343
  %1355 = load float, ptr %60, align 4, !tbaa !11
  br label %1356

1356:                                             ; preds = %1354, %1352
  %1357 = phi float [ %1353, %1352 ], [ %1355, %1354 ]
  %1358 = fpext float %1357 to double
  %1359 = fmul double %1348, %1358
  %1360 = fptrunc double %1359 to float
  store float %1360, ptr %83, align 4, !tbaa !11
  br label %1366

1361:                                             ; preds = %1299
  %1362 = load ptr, ptr %42, align 8, !tbaa !5
  %1363 = load i64, ptr %135, align 8, !tbaa !9
  %1364 = getelementptr inbounds float, ptr %1362, i64 %1363
  %1365 = load float, ptr %1364, align 4, !tbaa !11
  store float %1365, ptr %83, align 4, !tbaa !11
  br label %1366

1366:                                             ; preds = %1361, %1356
  %1367 = load i64, ptr %65, align 8, !tbaa !9
  %1368 = load i64, ptr %71, align 8, !tbaa !9
  %1369 = icmp eq i64 %1367, %1368
  br i1 %1369, label %1370, label %1407

1370:                                             ; preds = %1366
  %1371 = load float, ptr %86, align 4, !tbaa !11
  %1372 = fcmp oge float %1371, 0.000000e+00
  br i1 %1372, label %1373, label %1375

1373:                                             ; preds = %1370
  %1374 = load float, ptr %86, align 4, !tbaa !11
  br label %1378

1375:                                             ; preds = %1370
  %1376 = load float, ptr %86, align 4, !tbaa !11
  %1377 = fneg float %1376
  br label %1378

1378:                                             ; preds = %1375, %1373
  %1379 = phi float [ %1374, %1373 ], [ %1377, %1375 ]
  %1380 = fpext float %1379 to double
  %1381 = fptrunc double %1380 to float
  store float %1381, ptr %59, align 4, !tbaa !11
  %1382 = load float, ptr %99, align 4, !tbaa !11
  %1383 = fcmp oge float %1382, 0.000000e+00
  br i1 %1383, label %1384, label %1386

1384:                                             ; preds = %1378
  %1385 = load float, ptr %99, align 4, !tbaa !11
  br label %1389

1386:                                             ; preds = %1378
  %1387 = load float, ptr %99, align 4, !tbaa !11
  %1388 = fneg float %1387
  br label %1389

1389:                                             ; preds = %1386, %1384
  %1390 = phi float [ %1385, %1384 ], [ %1388, %1386 ]
  %1391 = fpext float %1390 to double
  %1392 = fptrunc double %1391 to float
  store float %1392, ptr %60, align 4, !tbaa !11
  %1393 = load float, ptr %75, align 4, !tbaa !11
  %1394 = fpext float %1393 to double
  %1395 = load float, ptr %59, align 4, !tbaa !11
  %1396 = load float, ptr %60, align 4, !tbaa !11
  %1397 = fcmp oge float %1395, %1396
  br i1 %1397, label %1398, label %1400

1398:                                             ; preds = %1389
  %1399 = load float, ptr %59, align 4, !tbaa !11
  br label %1402

1400:                                             ; preds = %1389
  %1401 = load float, ptr %60, align 4, !tbaa !11
  br label %1402

1402:                                             ; preds = %1400, %1398
  %1403 = phi float [ %1399, %1398 ], [ %1401, %1400 ]
  %1404 = fpext float %1403 to double
  %1405 = fmul double %1394, %1404
  %1406 = fptrunc double %1405 to float
  store float %1406, ptr %85, align 4, !tbaa !11
  br label %1412

1407:                                             ; preds = %1366
  %1408 = load ptr, ptr %42, align 8, !tbaa !5
  %1409 = load i64, ptr %129, align 8, !tbaa !9
  %1410 = getelementptr inbounds float, ptr %1408, i64 %1409
  %1411 = load float, ptr %1410, align 4, !tbaa !11
  store float %1411, ptr %85, align 4, !tbaa !11
  br label %1412

1412:                                             ; preds = %1407, %1402
  %1413 = load float, ptr %83, align 4, !tbaa !11
  %1414 = load float, ptr %85, align 4, !tbaa !11
  %1415 = fcmp ole float %1413, %1414
  br i1 %1415, label %1416, label %1418

1416:                                             ; preds = %1412
  %1417 = load float, ptr %83, align 4, !tbaa !11
  br label %1420

1418:                                             ; preds = %1412
  %1419 = load float, ptr %85, align 4, !tbaa !11
  br label %1420

1420:                                             ; preds = %1418, %1416
  %1421 = phi float [ %1417, %1416 ], [ %1419, %1418 ]
  %1422 = fpext float %1421 to double
  %1423 = fptrunc double %1422 to float
  store float %1423, ptr %74, align 4, !tbaa !11
  %1424 = load i64, ptr %65, align 8, !tbaa !9
  %1425 = icmp eq i64 %1424, 1
  br i1 %1425, label %1430, label %1426

1426:                                             ; preds = %1420
  %1427 = load i64, ptr %65, align 8, !tbaa !9
  %1428 = load i64, ptr %71, align 8, !tbaa !9
  %1429 = icmp eq i64 %1427, %1428
  br i1 %1429, label %1430, label %1431

1430:                                             ; preds = %1426, %1420
  store float 0.000000e+00, ptr %125, align 4, !tbaa !11
  br label %1435

1431:                                             ; preds = %1426
  %1432 = load float, ptr %74, align 4, !tbaa !11
  %1433 = load float, ptr %75, align 4, !tbaa !11
  %1434 = fmul float %1432, %1433
  store float %1434, ptr %125, align 4, !tbaa !11
  br label %1435

1435:                                             ; preds = %1431, %1430
  %1436 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %1436, ptr %136, align 8, !tbaa !9
  store i64 1, ptr %146, align 8, !tbaa !9
  %1437 = load ptr, ptr %42, align 8, !tbaa !5
  %1438 = load i64, ptr %129, align 8, !tbaa !9
  %1439 = getelementptr inbounds float, ptr %1437, i64 %1438
  %1440 = load float, ptr %1439, align 4, !tbaa !11
  store float %1440, ptr %119, align 4, !tbaa !11
  %1441 = load float, ptr %74, align 4, !tbaa !11
  %1442 = load ptr, ptr %42, align 8, !tbaa !5
  %1443 = load i64, ptr %129, align 8, !tbaa !9
  %1444 = getelementptr inbounds float, ptr %1442, i64 %1443
  store float %1441, ptr %1444, align 4, !tbaa !11
  store i64 0, ptr %122, align 8, !tbaa !9
  store i64 0, ptr %131, align 8, !tbaa !9
  %1445 = load i64, ptr %145, align 8, !tbaa !9
  %1446 = icmp ne i64 %1445, 0
  %1447 = xor i1 %1446, true
  %1448 = zext i1 %1447 to i32
  %1449 = sext i32 %1448 to i64
  store i64 %1449, ptr %109, align 8, !tbaa !9
  br label %1450

1450:                                             ; preds = %1709, %1705, %1701, %1435
  %1451 = load i64, ptr %109, align 8, !tbaa !9
  %1452 = icmp ne i64 %1451, 0
  br i1 %1452, label %1453, label %1507

1453:                                             ; preds = %1450
  store i64 1, ptr %122, align 8, !tbaa !9
  %1454 = load ptr, ptr %50, align 8, !tbaa !5
  %1455 = load i64, ptr %96, align 8, !tbaa !9
  %1456 = load i64, ptr %129, align 8, !tbaa !9
  %1457 = add nsw i64 %1455, %1456
  %1458 = getelementptr inbounds i64, ptr %1454, i64 %1457
  %1459 = load i64, ptr %1458, align 8, !tbaa !9
  store i64 %1459, ptr %90, align 8, !tbaa !9
  %1460 = load ptr, ptr %44, align 8, !tbaa !5
  %1461 = load i64, ptr %115, align 8, !tbaa !9
  %1462 = getelementptr inbounds i64, ptr %1460, i64 %1461
  %1463 = load i64, ptr %1462, align 8, !tbaa !9
  %1464 = sub nsw i64 %1463, 1
  store i64 %1464, ptr %124, align 8, !tbaa !9
  %1465 = load float, ptr %75, align 4, !tbaa !11
  %1466 = fmul float %1465, 2.000000e+00
  store float %1466, ptr %59, align 4, !tbaa !11
  %1467 = load ptr, ptr %30, align 8, !tbaa !5
  %1468 = load i64, ptr %107, align 8, !tbaa !9
  %1469 = getelementptr inbounds float, ptr %1467, i64 %1468
  %1470 = load ptr, ptr %49, align 8, !tbaa !5
  %1471 = load i64, ptr %110, align 8, !tbaa !9
  %1472 = load i64, ptr %107, align 8, !tbaa !9
  %1473 = add nsw i64 %1471, %1472
  %1474 = sub nsw i64 %1473, 1
  %1475 = getelementptr inbounds float, ptr %1470, i64 %1474
  %1476 = load ptr, ptr %49, align 8, !tbaa !5
  %1477 = load i64, ptr %115, align 8, !tbaa !9
  %1478 = getelementptr inbounds float, ptr %1476, i64 %1477
  %1479 = load ptr, ptr %42, align 8, !tbaa !5
  %1480 = load i64, ptr %115, align 8, !tbaa !9
  %1481 = getelementptr inbounds float, ptr %1479, i64 %1480
  %1482 = load ptr, ptr %41, align 8, !tbaa !5
  %1483 = load i64, ptr %115, align 8, !tbaa !9
  %1484 = getelementptr inbounds float, ptr %1482, i64 %1483
  %1485 = load ptr, ptr %49, align 8, !tbaa !5
  %1486 = load i64, ptr %128, align 8, !tbaa !9
  %1487 = getelementptr inbounds float, ptr %1485, i64 %1486
  %1488 = load ptr, ptr %50, align 8, !tbaa !5
  %1489 = load i64, ptr %123, align 8, !tbaa !9
  %1490 = getelementptr inbounds i64, ptr %1488, i64 %1489
  %1491 = load ptr, ptr %32, align 8, !tbaa !5
  %1492 = call i32 @slarrb_(ptr noundef %72, ptr noundef %1469, ptr noundef %1475, ptr noundef %108, ptr noundef %108, ptr noundef @c_b5, ptr noundef %59, ptr noundef %124, ptr noundef %1478, ptr noundef %1481, ptr noundef %1484, ptr noundef %1487, ptr noundef %1490, ptr noundef %1491, ptr noundef %116, ptr noundef %90, ptr noundef %95)
  %1493 = load i64, ptr %95, align 8, !tbaa !9
  %1494 = icmp ne i64 %1493, 0
  br i1 %1494, label %1495, label %1497

1495:                                             ; preds = %1453
  %1496 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -3, ptr %1496, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1989

1497:                                             ; preds = %1453
  %1498 = load ptr, ptr %49, align 8, !tbaa !5
  %1499 = load i64, ptr %129, align 8, !tbaa !9
  %1500 = getelementptr inbounds float, ptr %1498, i64 %1499
  %1501 = load float, ptr %1500, align 4, !tbaa !11
  store float %1501, ptr %106, align 4, !tbaa !11
  %1502 = load ptr, ptr %50, align 8, !tbaa !5
  %1503 = load i64, ptr %96, align 8, !tbaa !9
  %1504 = load i64, ptr %129, align 8, !tbaa !9
  %1505 = add nsw i64 %1503, %1504
  %1506 = getelementptr inbounds i64, ptr %1502, i64 %1505
  store i64 0, ptr %1506, align 8, !tbaa !9
  br label %1507

1507:                                             ; preds = %1497, %1450
  %1508 = load i64, ptr %122, align 8, !tbaa !9
  %1509 = icmp ne i64 %1508, 0
  %1510 = xor i1 %1509, true
  %1511 = zext i1 %1510 to i32
  %1512 = sext i32 %1511 to i64
  store i64 %1512, ptr %61, align 8, !tbaa !9
  %1513 = load ptr, ptr %30, align 8, !tbaa !5
  %1514 = load i64, ptr %107, align 8, !tbaa !9
  %1515 = getelementptr inbounds float, ptr %1513, i64 %1514
  %1516 = load ptr, ptr %31, align 8, !tbaa !5
  %1517 = load i64, ptr %107, align 8, !tbaa !9
  %1518 = getelementptr inbounds float, ptr %1516, i64 %1517
  %1519 = load ptr, ptr %49, align 8, !tbaa !5
  %1520 = load i64, ptr %91, align 8, !tbaa !9
  %1521 = load i64, ptr %107, align 8, !tbaa !9
  %1522 = add nsw i64 %1520, %1521
  %1523 = sub nsw i64 %1522, 1
  %1524 = getelementptr inbounds float, ptr %1519, i64 %1523
  %1525 = load ptr, ptr %49, align 8, !tbaa !5
  %1526 = load i64, ptr %110, align 8, !tbaa !9
  %1527 = load i64, ptr %107, align 8, !tbaa !9
  %1528 = add nsw i64 %1526, %1527
  %1529 = sub nsw i64 %1528, 1
  %1530 = getelementptr inbounds float, ptr %1525, i64 %1529
  %1531 = load ptr, ptr %32, align 8, !tbaa !5
  %1532 = load ptr, ptr %46, align 8, !tbaa !5
  %1533 = load i64, ptr %107, align 8, !tbaa !9
  %1534 = load i64, ptr %129, align 8, !tbaa !9
  %1535 = load i64, ptr %52, align 8, !tbaa !9
  %1536 = mul nsw i64 %1534, %1535
  %1537 = add nsw i64 %1533, %1536
  %1538 = getelementptr inbounds float, ptr %1532, i64 %1537
  %1539 = load ptr, ptr %50, align 8, !tbaa !5
  %1540 = load i64, ptr %96, align 8, !tbaa !9
  %1541 = load i64, ptr %129, align 8, !tbaa !9
  %1542 = add nsw i64 %1540, %1541
  %1543 = getelementptr inbounds i64, ptr %1539, i64 %1542
  %1544 = load ptr, ptr %48, align 8, !tbaa !5
  %1545 = load i64, ptr %129, align 8, !tbaa !9
  %1546 = shl i64 %1545, 1
  %1547 = sub nsw i64 %1546, 1
  %1548 = getelementptr inbounds i64, ptr %1544, i64 %1547
  %1549 = load ptr, ptr %49, align 8, !tbaa !5
  %1550 = load i64, ptr %128, align 8, !tbaa !9
  %1551 = getelementptr inbounds float, ptr %1549, i64 %1550
  %1552 = call i32 @slar1v_(ptr noundef %72, ptr noundef @c__1, ptr noundef %72, ptr noundef %106, ptr noundef %1515, ptr noundef %1518, ptr noundef %1524, ptr noundef %1530, ptr noundef %1531, ptr noundef %125, ptr noundef %1538, ptr noundef %61, ptr noundef %117, ptr noundef %80, ptr noundef %112, ptr noundef %1543, ptr noundef %1548, ptr noundef %144, ptr noundef %97, ptr noundef %147, ptr noundef %1551)
  %1553 = load i64, ptr %88, align 8, !tbaa !9
  %1554 = icmp eq i64 %1553, 0
  br i1 %1554, label %1555, label %1558

1555:                                             ; preds = %1507
  %1556 = load float, ptr %97, align 4, !tbaa !11
  store float %1556, ptr %143, align 4, !tbaa !11
  %1557 = load float, ptr %106, align 4, !tbaa !11
  store float %1557, ptr %89, align 4, !tbaa !11
  br label %1566

1558:                                             ; preds = %1507
  %1559 = load float, ptr %97, align 4, !tbaa !11
  %1560 = load float, ptr %143, align 4, !tbaa !11
  %1561 = fcmp olt float %1559, %1560
  br i1 %1561, label %1562, label %1565

1562:                                             ; preds = %1558
  %1563 = load float, ptr %97, align 4, !tbaa !11
  store float %1563, ptr %143, align 4, !tbaa !11
  %1564 = load float, ptr %106, align 4, !tbaa !11
  store float %1564, ptr %89, align 4, !tbaa !11
  br label %1565

1565:                                             ; preds = %1562, %1558
  br label %1566

1566:                                             ; preds = %1565, %1555
  %1567 = load i64, ptr %136, align 8, !tbaa !9
  store i64 %1567, ptr %57, align 8, !tbaa !9
  %1568 = load ptr, ptr %48, align 8, !tbaa !5
  %1569 = load i64, ptr %129, align 8, !tbaa !9
  %1570 = shl i64 %1569, 1
  %1571 = sub nsw i64 %1570, 1
  %1572 = getelementptr inbounds i64, ptr %1568, i64 %1571
  %1573 = load i64, ptr %1572, align 8, !tbaa !9
  store i64 %1573, ptr %58, align 8, !tbaa !9
  %1574 = load i64, ptr %57, align 8, !tbaa !9
  %1575 = load i64, ptr %58, align 8, !tbaa !9
  %1576 = icmp sle i64 %1574, %1575
  br i1 %1576, label %1577, label %1579

1577:                                             ; preds = %1566
  %1578 = load i64, ptr %57, align 8, !tbaa !9
  br label %1581

1579:                                             ; preds = %1566
  %1580 = load i64, ptr %58, align 8, !tbaa !9
  br label %1581

1581:                                             ; preds = %1579, %1577
  %1582 = phi i64 [ %1578, %1577 ], [ %1580, %1579 ]
  store i64 %1582, ptr %136, align 8, !tbaa !9
  %1583 = load i64, ptr %146, align 8, !tbaa !9
  store i64 %1583, ptr %57, align 8, !tbaa !9
  %1584 = load ptr, ptr %48, align 8, !tbaa !5
  %1585 = load i64, ptr %129, align 8, !tbaa !9
  %1586 = mul nsw i64 %1585, 2
  %1587 = getelementptr inbounds i64, ptr %1584, i64 %1586
  %1588 = load i64, ptr %1587, align 8, !tbaa !9
  store i64 %1588, ptr %58, align 8, !tbaa !9
  %1589 = load i64, ptr %57, align 8, !tbaa !9
  %1590 = load i64, ptr %58, align 8, !tbaa !9
  %1591 = icmp sge i64 %1589, %1590
  br i1 %1591, label %1592, label %1594

1592:                                             ; preds = %1581
  %1593 = load i64, ptr %57, align 8, !tbaa !9
  br label %1596

1594:                                             ; preds = %1581
  %1595 = load i64, ptr %58, align 8, !tbaa !9
  br label %1596

1596:                                             ; preds = %1594, %1592
  %1597 = phi i64 [ %1593, %1592 ], [ %1595, %1594 ]
  store i64 %1597, ptr %146, align 8, !tbaa !9
  %1598 = load i64, ptr %88, align 8, !tbaa !9
  %1599 = add nsw i64 %1598, 1
  store i64 %1599, ptr %88, align 8, !tbaa !9
  %1600 = load float, ptr %97, align 4, !tbaa !11
  %1601 = load float, ptr %77, align 4, !tbaa !11
  %1602 = load float, ptr %74, align 4, !tbaa !11
  %1603 = fmul float %1601, %1602
  %1604 = fcmp ogt float %1600, %1603
  br i1 %1604, label %1605, label %1712

1605:                                             ; preds = %1596
  %1606 = load float, ptr %147, align 4, !tbaa !11
  %1607 = fcmp oge float %1606, 0.000000e+00
  br i1 %1607, label %1608, label %1610

1608:                                             ; preds = %1605
  %1609 = load float, ptr %147, align 4, !tbaa !11
  br label %1613

1610:                                             ; preds = %1605
  %1611 = load float, ptr %147, align 4, !tbaa !11
  %1612 = fneg float %1611
  br label %1613

1613:                                             ; preds = %1610, %1608
  %1614 = phi float [ %1609, %1608 ], [ %1612, %1610 ]
  %1615 = fpext float %1614 to double
  %1616 = load float, ptr %102, align 4, !tbaa !11
  %1617 = fpext float %1616 to double
  %1618 = load float, ptr %106, align 4, !tbaa !11
  %1619 = fcmp oge float %1618, 0.000000e+00
  br i1 %1619, label %1620, label %1622

1620:                                             ; preds = %1613
  %1621 = load float, ptr %106, align 4, !tbaa !11
  br label %1625

1622:                                             ; preds = %1613
  %1623 = load float, ptr %106, align 4, !tbaa !11
  %1624 = fneg float %1623
  br label %1625

1625:                                             ; preds = %1622, %1620
  %1626 = phi float [ %1621, %1620 ], [ %1624, %1622 ]
  %1627 = fpext float %1626 to double
  %1628 = fmul double %1617, %1627
  %1629 = fcmp ogt double %1615, %1628
  br i1 %1629, label %1630, label %1712

1630:                                             ; preds = %1625
  %1631 = load i64, ptr %122, align 8, !tbaa !9
  %1632 = icmp ne i64 %1631, 0
  br i1 %1632, label %1712, label %1633

1633:                                             ; preds = %1630
  %1634 = load i64, ptr %108, align 8, !tbaa !9
  %1635 = load i64, ptr %117, align 8, !tbaa !9
  %1636 = icmp sle i64 %1634, %1635
  br i1 %1636, label %1637, label %1638

1637:                                             ; preds = %1633
  store float -1.000000e+00, ptr %111, align 4, !tbaa !11
  br label %1639

1638:                                             ; preds = %1633
  store float 1.000000e+00, ptr %111, align 4, !tbaa !11
  br label %1639

1639:                                             ; preds = %1638, %1637
  %1640 = load float, ptr %147, align 4, !tbaa !11
  %1641 = load float, ptr %111, align 4, !tbaa !11
  %1642 = fmul float %1640, %1641
  %1643 = fcmp oge float %1642, 0.000000e+00
  br i1 %1643, label %1644, label %1681

1644:                                             ; preds = %1639
  %1645 = load float, ptr %106, align 4, !tbaa !11
  %1646 = load float, ptr %147, align 4, !tbaa !11
  %1647 = fadd float %1645, %1646
  %1648 = load float, ptr %99, align 4, !tbaa !11
  %1649 = fcmp ole float %1647, %1648
  br i1 %1649, label %1650, label %1681

1650:                                             ; preds = %1644
  %1651 = load float, ptr %106, align 4, !tbaa !11
  %1652 = load float, ptr %147, align 4, !tbaa !11
  %1653 = fadd float %1651, %1652
  %1654 = load float, ptr %86, align 4, !tbaa !11
  %1655 = fcmp oge float %1653, %1654
  br i1 %1655, label %1656, label %1681

1656:                                             ; preds = %1650
  store i64 1, ptr %131, align 8, !tbaa !9
  %1657 = load float, ptr %111, align 4, !tbaa !11
  %1658 = fcmp oeq float %1657, 1.000000e+00
  br i1 %1658, label %1659, label %1661

1659:                                             ; preds = %1656
  %1660 = load float, ptr %106, align 4, !tbaa !11
  store float %1660, ptr %86, align 4, !tbaa !11
  br label %1663

1661:                                             ; preds = %1656
  %1662 = load float, ptr %106, align 4, !tbaa !11
  store float %1662, ptr %99, align 4, !tbaa !11
  br label %1663

1663:                                             ; preds = %1661, %1659
  %1664 = load float, ptr %99, align 4, !tbaa !11
  %1665 = load float, ptr %86, align 4, !tbaa !11
  %1666 = fadd float %1664, %1665
  %1667 = fmul float %1666, 5.000000e-01
  %1668 = load ptr, ptr %49, align 8, !tbaa !5
  %1669 = load i64, ptr %129, align 8, !tbaa !9
  %1670 = getelementptr inbounds float, ptr %1668, i64 %1669
  store float %1667, ptr %1670, align 4, !tbaa !11
  %1671 = load float, ptr %147, align 4, !tbaa !11
  %1672 = load float, ptr %106, align 4, !tbaa !11
  %1673 = fadd float %1672, %1671
  store float %1673, ptr %106, align 4, !tbaa !11
  %1674 = load float, ptr %99, align 4, !tbaa !11
  %1675 = load float, ptr %86, align 4, !tbaa !11
  %1676 = fsub float %1674, %1675
  %1677 = fmul float %1676, 5.000000e-01
  %1678 = load ptr, ptr %41, align 8, !tbaa !5
  %1679 = load i64, ptr %129, align 8, !tbaa !9
  %1680 = getelementptr inbounds float, ptr %1678, i64 %1679
  store float %1677, ptr %1680, align 4, !tbaa !11
  br label %1682

1681:                                             ; preds = %1650, %1644, %1639
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %1682

1682:                                             ; preds = %1681, %1663
  %1683 = load float, ptr %99, align 4, !tbaa !11
  %1684 = load float, ptr %86, align 4, !tbaa !11
  %1685 = fsub float %1683, %1684
  %1686 = fpext float %1685 to double
  %1687 = load float, ptr %102, align 4, !tbaa !11
  %1688 = fpext float %1687 to double
  %1689 = load float, ptr %106, align 4, !tbaa !11
  %1690 = fcmp oge float %1689, 0.000000e+00
  br i1 %1690, label %1691, label %1693

1691:                                             ; preds = %1682
  %1692 = load float, ptr %106, align 4, !tbaa !11
  br label %1696

1693:                                             ; preds = %1682
  %1694 = load float, ptr %106, align 4, !tbaa !11
  %1695 = fneg float %1694
  br label %1696

1696:                                             ; preds = %1693, %1691
  %1697 = phi float [ %1692, %1691 ], [ %1695, %1693 ]
  %1698 = fpext float %1697 to double
  %1699 = fmul double %1688, %1698
  %1700 = fcmp olt double %1686, %1699
  br i1 %1700, label %1701, label %1702

1701:                                             ; preds = %1696
  store i64 1, ptr %122, align 8, !tbaa !9
  br label %1450

1702:                                             ; preds = %1696
  %1703 = load i64, ptr %88, align 8, !tbaa !9
  %1704 = icmp slt i64 %1703, 10
  br i1 %1704, label %1705, label %1706

1705:                                             ; preds = %1702
  br label %1450

1706:                                             ; preds = %1702
  %1707 = load i64, ptr %88, align 8, !tbaa !9
  %1708 = icmp eq i64 %1707, 10
  br i1 %1708, label %1709, label %1710

1709:                                             ; preds = %1706
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %1450

1710:                                             ; preds = %1706
  %1711 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 5, ptr %1711, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1989

1712:                                             ; preds = %1630, %1625, %1596
  store i64 0, ptr %105, align 8, !tbaa !9
  %1713 = load i64, ptr %131, align 8, !tbaa !9
  %1714 = icmp ne i64 %1713, 0
  br i1 %1714, label %1715, label %1724

1715:                                             ; preds = %1712
  %1716 = load i64, ptr %122, align 8, !tbaa !9
  %1717 = icmp ne i64 %1716, 0
  br i1 %1717, label %1718, label %1724

1718:                                             ; preds = %1715
  %1719 = load float, ptr %143, align 4, !tbaa !11
  %1720 = load float, ptr %97, align 4, !tbaa !11
  %1721 = fcmp ole float %1719, %1720
  br i1 %1721, label %1722, label %1724

1722:                                             ; preds = %1718
  %1723 = load float, ptr %89, align 4, !tbaa !11
  store float %1723, ptr %106, align 4, !tbaa !11
  store i64 1, ptr %105, align 8, !tbaa !9
  br label %1724

1724:                                             ; preds = %1722, %1718, %1715, %1712
  %1725 = load i64, ptr %105, align 8, !tbaa !9
  %1726 = icmp ne i64 %1725, 0
  br i1 %1726, label %1727, label %1773

1727:                                             ; preds = %1724
  %1728 = load i64, ptr %122, align 8, !tbaa !9
  %1729 = icmp ne i64 %1728, 0
  %1730 = xor i1 %1729, true
  %1731 = zext i1 %1730 to i32
  %1732 = sext i32 %1731 to i64
  store i64 %1732, ptr %61, align 8, !tbaa !9
  %1733 = load ptr, ptr %30, align 8, !tbaa !5
  %1734 = load i64, ptr %107, align 8, !tbaa !9
  %1735 = getelementptr inbounds float, ptr %1733, i64 %1734
  %1736 = load ptr, ptr %31, align 8, !tbaa !5
  %1737 = load i64, ptr %107, align 8, !tbaa !9
  %1738 = getelementptr inbounds float, ptr %1736, i64 %1737
  %1739 = load ptr, ptr %49, align 8, !tbaa !5
  %1740 = load i64, ptr %91, align 8, !tbaa !9
  %1741 = load i64, ptr %107, align 8, !tbaa !9
  %1742 = add nsw i64 %1740, %1741
  %1743 = sub nsw i64 %1742, 1
  %1744 = getelementptr inbounds float, ptr %1739, i64 %1743
  %1745 = load ptr, ptr %49, align 8, !tbaa !5
  %1746 = load i64, ptr %110, align 8, !tbaa !9
  %1747 = load i64, ptr %107, align 8, !tbaa !9
  %1748 = add nsw i64 %1746, %1747
  %1749 = sub nsw i64 %1748, 1
  %1750 = getelementptr inbounds float, ptr %1745, i64 %1749
  %1751 = load ptr, ptr %32, align 8, !tbaa !5
  %1752 = load ptr, ptr %46, align 8, !tbaa !5
  %1753 = load i64, ptr %107, align 8, !tbaa !9
  %1754 = load i64, ptr %129, align 8, !tbaa !9
  %1755 = load i64, ptr %52, align 8, !tbaa !9
  %1756 = mul nsw i64 %1754, %1755
  %1757 = add nsw i64 %1753, %1756
  %1758 = getelementptr inbounds float, ptr %1752, i64 %1757
  %1759 = load ptr, ptr %50, align 8, !tbaa !5
  %1760 = load i64, ptr %96, align 8, !tbaa !9
  %1761 = load i64, ptr %129, align 8, !tbaa !9
  %1762 = add nsw i64 %1760, %1761
  %1763 = getelementptr inbounds i64, ptr %1759, i64 %1762
  %1764 = load ptr, ptr %48, align 8, !tbaa !5
  %1765 = load i64, ptr %129, align 8, !tbaa !9
  %1766 = shl i64 %1765, 1
  %1767 = sub nsw i64 %1766, 1
  %1768 = getelementptr inbounds i64, ptr %1764, i64 %1767
  %1769 = load ptr, ptr %49, align 8, !tbaa !5
  %1770 = load i64, ptr %128, align 8, !tbaa !9
  %1771 = getelementptr inbounds float, ptr %1769, i64 %1770
  %1772 = call i32 @slar1v_(ptr noundef %72, ptr noundef @c__1, ptr noundef %72, ptr noundef %106, ptr noundef %1735, ptr noundef %1738, ptr noundef %1744, ptr noundef %1750, ptr noundef %1751, ptr noundef %125, ptr noundef %1758, ptr noundef %61, ptr noundef %117, ptr noundef %80, ptr noundef %112, ptr noundef %1763, ptr noundef %1768, ptr noundef %144, ptr noundef %97, ptr noundef %147, ptr noundef %1771)
  br label %1773

1773:                                             ; preds = %1727, %1724
  %1774 = load float, ptr %106, align 4, !tbaa !11
  %1775 = load ptr, ptr %49, align 8, !tbaa !5
  %1776 = load i64, ptr %129, align 8, !tbaa !9
  %1777 = getelementptr inbounds float, ptr %1775, i64 %1776
  store float %1774, ptr %1777, align 4, !tbaa !11
  br label %1778

1778:                                             ; preds = %1773
  %1779 = load i64, ptr %113, align 8, !tbaa !9
  %1780 = load ptr, ptr %48, align 8, !tbaa !5
  %1781 = load i64, ptr %129, align 8, !tbaa !9
  %1782 = shl i64 %1781, 1
  %1783 = sub nsw i64 %1782, 1
  %1784 = getelementptr inbounds i64, ptr %1780, i64 %1783
  %1785 = load i64, ptr %1784, align 8, !tbaa !9
  %1786 = add nsw i64 %1785, %1779
  store i64 %1786, ptr %1784, align 8, !tbaa !9
  %1787 = load i64, ptr %113, align 8, !tbaa !9
  %1788 = load ptr, ptr %48, align 8, !tbaa !5
  %1789 = load i64, ptr %129, align 8, !tbaa !9
  %1790 = mul nsw i64 %1789, 2
  %1791 = getelementptr inbounds i64, ptr %1788, i64 %1790
  %1792 = load i64, ptr %1791, align 8, !tbaa !9
  %1793 = add nsw i64 %1792, %1787
  store i64 %1793, ptr %1791, align 8, !tbaa !9
  %1794 = load ptr, ptr %48, align 8, !tbaa !5
  %1795 = load i64, ptr %129, align 8, !tbaa !9
  %1796 = shl i64 %1795, 1
  %1797 = sub nsw i64 %1796, 1
  %1798 = getelementptr inbounds i64, ptr %1794, i64 %1797
  %1799 = load i64, ptr %1798, align 8, !tbaa !9
  store i64 %1799, ptr %101, align 8, !tbaa !9
  %1800 = load ptr, ptr %48, align 8, !tbaa !5
  %1801 = load i64, ptr %129, align 8, !tbaa !9
  %1802 = mul nsw i64 %1801, 2
  %1803 = getelementptr inbounds i64, ptr %1800, i64 %1802
  %1804 = load i64, ptr %1803, align 8, !tbaa !9
  store i64 %1804, ptr %79, align 8, !tbaa !9
  %1805 = load i64, ptr %113, align 8, !tbaa !9
  %1806 = load i64, ptr %136, align 8, !tbaa !9
  %1807 = add nsw i64 %1806, %1805
  store i64 %1807, ptr %136, align 8, !tbaa !9
  %1808 = load i64, ptr %113, align 8, !tbaa !9
  %1809 = load i64, ptr %146, align 8, !tbaa !9
  %1810 = add nsw i64 %1809, %1808
  store i64 %1810, ptr %146, align 8, !tbaa !9
  %1811 = load i64, ptr %136, align 8, !tbaa !9
  %1812 = load i64, ptr %101, align 8, !tbaa !9
  %1813 = icmp slt i64 %1811, %1812
  br i1 %1813, label %1814, label %1834

1814:                                             ; preds = %1778
  %1815 = load i64, ptr %101, align 8, !tbaa !9
  %1816 = sub nsw i64 %1815, 1
  store i64 %1816, ptr %57, align 8, !tbaa !9
  %1817 = load i64, ptr %136, align 8, !tbaa !9
  store i64 %1817, ptr %69, align 8, !tbaa !9
  br label %1818

1818:                                             ; preds = %1830, %1814
  %1819 = load i64, ptr %69, align 8, !tbaa !9
  %1820 = load i64, ptr %57, align 8, !tbaa !9
  %1821 = icmp sle i64 %1819, %1820
  br i1 %1821, label %1822, label %1833

1822:                                             ; preds = %1818
  %1823 = load ptr, ptr %46, align 8, !tbaa !5
  %1824 = load i64, ptr %69, align 8, !tbaa !9
  %1825 = load i64, ptr %129, align 8, !tbaa !9
  %1826 = load i64, ptr %52, align 8, !tbaa !9
  %1827 = mul nsw i64 %1825, %1826
  %1828 = add nsw i64 %1824, %1827
  %1829 = getelementptr inbounds float, ptr %1823, i64 %1828
  store float 0.000000e+00, ptr %1829, align 4, !tbaa !11
  br label %1830

1830:                                             ; preds = %1822
  %1831 = load i64, ptr %69, align 8, !tbaa !9
  %1832 = add nsw i64 %1831, 1
  store i64 %1832, ptr %69, align 8, !tbaa !9
  br label %1818, !llvm.loop !22

1833:                                             ; preds = %1818
  br label %1834

1834:                                             ; preds = %1833, %1778
  %1835 = load i64, ptr %146, align 8, !tbaa !9
  %1836 = load i64, ptr %79, align 8, !tbaa !9
  %1837 = icmp sgt i64 %1835, %1836
  br i1 %1837, label %1838, label %1858

1838:                                             ; preds = %1834
  %1839 = load i64, ptr %146, align 8, !tbaa !9
  store i64 %1839, ptr %57, align 8, !tbaa !9
  %1840 = load i64, ptr %79, align 8, !tbaa !9
  %1841 = add nsw i64 %1840, 1
  store i64 %1841, ptr %69, align 8, !tbaa !9
  br label %1842

1842:                                             ; preds = %1854, %1838
  %1843 = load i64, ptr %69, align 8, !tbaa !9
  %1844 = load i64, ptr %57, align 8, !tbaa !9
  %1845 = icmp sle i64 %1843, %1844
  br i1 %1845, label %1846, label %1857

1846:                                             ; preds = %1842
  %1847 = load ptr, ptr %46, align 8, !tbaa !5
  %1848 = load i64, ptr %69, align 8, !tbaa !9
  %1849 = load i64, ptr %129, align 8, !tbaa !9
  %1850 = load i64, ptr %52, align 8, !tbaa !9
  %1851 = mul nsw i64 %1849, %1850
  %1852 = add nsw i64 %1848, %1851
  %1853 = getelementptr inbounds float, ptr %1847, i64 %1852
  store float 0.000000e+00, ptr %1853, align 4, !tbaa !11
  br label %1854

1854:                                             ; preds = %1846
  %1855 = load i64, ptr %69, align 8, !tbaa !9
  %1856 = add nsw i64 %1855, 1
  store i64 %1856, ptr %69, align 8, !tbaa !9
  br label %1842, !llvm.loop !23

1857:                                             ; preds = %1842
  br label %1858

1858:                                             ; preds = %1857, %1834
  %1859 = load i64, ptr %79, align 8, !tbaa !9
  %1860 = load i64, ptr %101, align 8, !tbaa !9
  %1861 = sub nsw i64 %1859, %1860
  %1862 = add nsw i64 %1861, 1
  store i64 %1862, ptr %57, align 8, !tbaa !9
  %1863 = load ptr, ptr %46, align 8, !tbaa !5
  %1864 = load i64, ptr %101, align 8, !tbaa !9
  %1865 = load i64, ptr %129, align 8, !tbaa !9
  %1866 = load i64, ptr %52, align 8, !tbaa !9
  %1867 = mul nsw i64 %1865, %1866
  %1868 = add nsw i64 %1864, %1867
  %1869 = getelementptr inbounds float, ptr %1863, i64 %1868
  %1870 = call i32 @f2c_sscal(ptr noundef %57, ptr noundef %144, ptr noundef %1869, ptr noundef @c__1)
  br label %1871

1871:                                             ; preds = %1858, %1297
  %1872 = load float, ptr %106, align 4, !tbaa !11
  %1873 = load float, ptr %94, align 4, !tbaa !11
  %1874 = fadd float %1872, %1873
  %1875 = load ptr, ptr %40, align 8, !tbaa !5
  %1876 = load i64, ptr %129, align 8, !tbaa !9
  %1877 = getelementptr inbounds float, ptr %1875, i64 %1876
  store float %1874, ptr %1877, align 4, !tbaa !11
  %1878 = load i64, ptr %98, align 8, !tbaa !9
  %1879 = icmp ne i64 %1878, 0
  br i1 %1879, label %1961, label %1880

1880:                                             ; preds = %1871
  %1881 = load i64, ptr %65, align 8, !tbaa !9
  %1882 = icmp sgt i64 %1881, 1
  br i1 %1882, label %1883, label %1921

1883:                                             ; preds = %1880
  %1884 = load ptr, ptr %42, align 8, !tbaa !5
  %1885 = load i64, ptr %135, align 8, !tbaa !9
  %1886 = getelementptr inbounds float, ptr %1884, i64 %1885
  %1887 = load float, ptr %1886, align 4, !tbaa !11
  store float %1887, ptr %59, align 4, !tbaa !11
  %1888 = load ptr, ptr %40, align 8, !tbaa !5
  %1889 = load i64, ptr %129, align 8, !tbaa !9
  %1890 = getelementptr inbounds float, ptr %1888, i64 %1889
  %1891 = load float, ptr %1890, align 4, !tbaa !11
  %1892 = load ptr, ptr %41, align 8, !tbaa !5
  %1893 = load i64, ptr %129, align 8, !tbaa !9
  %1894 = getelementptr inbounds float, ptr %1892, i64 %1893
  %1895 = load float, ptr %1894, align 4, !tbaa !11
  %1896 = fsub float %1891, %1895
  %1897 = load ptr, ptr %40, align 8, !tbaa !5
  %1898 = load i64, ptr %135, align 8, !tbaa !9
  %1899 = getelementptr inbounds float, ptr %1897, i64 %1898
  %1900 = load float, ptr %1899, align 4, !tbaa !11
  %1901 = fsub float %1896, %1900
  %1902 = load ptr, ptr %41, align 8, !tbaa !5
  %1903 = load i64, ptr %135, align 8, !tbaa !9
  %1904 = getelementptr inbounds float, ptr %1902, i64 %1903
  %1905 = load float, ptr %1904, align 4, !tbaa !11
  %1906 = fsub float %1901, %1905
  store float %1906, ptr %60, align 4, !tbaa !11
  %1907 = load float, ptr %59, align 4, !tbaa !11
  %1908 = load float, ptr %60, align 4, !tbaa !11
  %1909 = fcmp oge float %1907, %1908
  br i1 %1909, label %1910, label %1912

1910:                                             ; preds = %1883
  %1911 = load float, ptr %59, align 4, !tbaa !11
  br label %1914

1912:                                             ; preds = %1883
  %1913 = load float, ptr %60, align 4, !tbaa !11
  br label %1914

1914:                                             ; preds = %1912, %1910
  %1915 = phi float [ %1911, %1910 ], [ %1913, %1912 ]
  %1916 = fpext float %1915 to double
  %1917 = fptrunc double %1916 to float
  %1918 = load ptr, ptr %42, align 8, !tbaa !5
  %1919 = load i64, ptr %135, align 8, !tbaa !9
  %1920 = getelementptr inbounds float, ptr %1918, i64 %1919
  store float %1917, ptr %1920, align 4, !tbaa !11
  br label %1921

1921:                                             ; preds = %1914, %1880
  %1922 = load i64, ptr %129, align 8, !tbaa !9
  %1923 = load i64, ptr %87, align 8, !tbaa !9
  %1924 = icmp slt i64 %1922, %1923
  br i1 %1924, label %1925, label %1960

1925:                                             ; preds = %1921
  %1926 = load float, ptr %119, align 4, !tbaa !11
  store float %1926, ptr %59, align 4, !tbaa !11
  %1927 = load ptr, ptr %40, align 8, !tbaa !5
  %1928 = load i64, ptr %138, align 8, !tbaa !9
  %1929 = getelementptr inbounds float, ptr %1927, i64 %1928
  %1930 = load float, ptr %1929, align 4, !tbaa !11
  %1931 = load ptr, ptr %41, align 8, !tbaa !5
  %1932 = load i64, ptr %138, align 8, !tbaa !9
  %1933 = getelementptr inbounds float, ptr %1931, i64 %1932
  %1934 = load float, ptr %1933, align 4, !tbaa !11
  %1935 = fsub float %1930, %1934
  %1936 = load ptr, ptr %40, align 8, !tbaa !5
  %1937 = load i64, ptr %129, align 8, !tbaa !9
  %1938 = getelementptr inbounds float, ptr %1936, i64 %1937
  %1939 = load float, ptr %1938, align 4, !tbaa !11
  %1940 = fsub float %1935, %1939
  %1941 = load ptr, ptr %41, align 8, !tbaa !5
  %1942 = load i64, ptr %129, align 8, !tbaa !9
  %1943 = getelementptr inbounds float, ptr %1941, i64 %1942
  %1944 = load float, ptr %1943, align 4, !tbaa !11
  %1945 = fsub float %1940, %1944
  store float %1945, ptr %60, align 4, !tbaa !11
  %1946 = load float, ptr %59, align 4, !tbaa !11
  %1947 = load float, ptr %60, align 4, !tbaa !11
  %1948 = fcmp oge float %1946, %1947
  br i1 %1948, label %1949, label %1951

1949:                                             ; preds = %1925
  %1950 = load float, ptr %59, align 4, !tbaa !11
  br label %1953

1951:                                             ; preds = %1925
  %1952 = load float, ptr %60, align 4, !tbaa !11
  br label %1953

1953:                                             ; preds = %1951, %1949
  %1954 = phi float [ %1950, %1949 ], [ %1952, %1951 ]
  %1955 = fpext float %1954 to double
  %1956 = fptrunc double %1955 to float
  %1957 = load ptr, ptr %42, align 8, !tbaa !5
  %1958 = load i64, ptr %129, align 8, !tbaa !9
  %1959 = getelementptr inbounds float, ptr %1957, i64 %1958
  store float %1956, ptr %1959, align 4, !tbaa !11
  br label %1960

1960:                                             ; preds = %1953, %1921
  br label %1961

1961:                                             ; preds = %1960, %1871
  %1962 = load i64, ptr %93, align 8, !tbaa !9
  %1963 = add nsw i64 %1962, 1
  store i64 %1963, ptr %93, align 8, !tbaa !9
  br label %1964

1964:                                             ; preds = %1961, %1244
  br label %1965

1965:                                             ; preds = %1964, %1088
  %1966 = load i64, ptr %64, align 8, !tbaa !9
  %1967 = add nsw i64 %1966, 1
  store i64 %1967, ptr %132, align 8, !tbaa !9
  br label %1968

1968:                                             ; preds = %1965, %918
  br label %1969

1969:                                             ; preds = %1968
  %1970 = load i64, ptr %64, align 8, !tbaa !9
  %1971 = add nsw i64 %1970, 1
  store i64 %1971, ptr %64, align 8, !tbaa !9
  br label %875, !llvm.loop !24

1972:                                             ; preds = %875
  br label %1973

1973:                                             ; preds = %1972
  %1974 = load i64, ptr %63, align 8, !tbaa !9
  %1975 = add nsw i64 %1974, 1
  store i64 %1975, ptr %63, align 8, !tbaa !9
  br label %520, !llvm.loop !25

1976:                                             ; preds = %520
  %1977 = load i64, ptr %120, align 8, !tbaa !9
  %1978 = add nsw i64 %1977, 1
  store i64 %1978, ptr %120, align 8, !tbaa !9
  br label %495

1979:                                             ; preds = %495
  %1980 = load i64, ptr %81, align 8, !tbaa !9
  %1981 = add nsw i64 %1980, 1
  store i64 %1981, ptr %107, align 8, !tbaa !9
  %1982 = load i64, ptr %87, align 8, !tbaa !9
  %1983 = add nsw i64 %1982, 1
  store i64 %1983, ptr %115, align 8, !tbaa !9
  br label %1984

1984:                                             ; preds = %1979, %421, %342, %329
  br label %1985

1985:                                             ; preds = %1984
  %1986 = load i64, ptr %82, align 8, !tbaa !9
  %1987 = add nsw i64 %1986, 1
  store i64 %1987, ptr %82, align 8, !tbaa !9
  br label %293, !llvm.loop !26

1988:                                             ; preds = %293
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1989

1989:                                             ; preds = %1988, %1710, %1495, %1242, %722, %504
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 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 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 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 8, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  %1990 = load i32, ptr %26, align 4
  ret i32 %1990
}

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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


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

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

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

._crit_edge960:                                   ; preds = %25, %.lr.ph959.preheader
  %78 = load i64, ptr %8, align 8, !tbaa !5
  %79 = icmp sgt i64 %78, 1
  %80 = add nsw i64 %78, -1
  %spec.select = select i1 %79, i64 %80, i64 1
  %81 = load i64, ptr %7, align 8, !tbaa !5
  %82 = load i64, ptr %9, align 8, !tbaa !5
  %83 = icmp slt i64 %82, %81
  %84 = add nsw i64 %82, 1
  %.0684 = select i1 %83, i64 %84, i64 %81
  %reass.sub = sub i64 %.0684, %spec.select
  %85 = add i64 %reass.sub, 1
  store i64 %85, ptr %53, align 8, !tbaa !5
  %86 = mul nsw i64 %spec.select, %65
  %87 = getelementptr float, ptr %67, i64 %86
  %88 = getelementptr i8, ptr %87, i64 4
  %89 = call i32 @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %0, ptr noundef nonnull %53, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef %88, ptr noundef nonnull %20) #7
  %90 = call double @slamch_(ptr noundef nonnull @.str.1) #7
  %91 = fptrunc double %90 to float
  %92 = fmul float %91, 2.000000e+00
  store float %92, ptr %43, align 4, !tbaa !9
  %93 = load i64, ptr %8, align 8, !tbaa !5
  %94 = icmp eq i64 %93, 1
  %.pre.pre = load i64, ptr %7, align 8, !tbaa !5
  br i1 %94, label %95, label %98

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

98:                                               ; preds = %95, %._crit_edge960
  %99 = fmul float %91, 4.000000e+00
  store float %99, ptr %11, align 4, !tbaa !9
  store float %99, ptr %12, align 4, !tbaa !9
  br label %100

100:                                              ; preds = %95, %98
  %101 = getelementptr inbounds i64, ptr %62, i64 %.pre.pre
  %102 = load i64, ptr %101, align 8, !tbaa !5
  %invariant.gep1063 = getelementptr i8, ptr %15, i64 -12
  %.not7941065 = icmp slt i64 %102, 1
  br i1 %.not7941065, label %.loopexit854, label %.lr.ph1074

.lr.ph1074:                                       ; preds = %100
  %103 = getelementptr i64, ptr %23, i64 %71
  %104 = getelementptr i64, ptr %70, i64 %71
  %105 = getelementptr i8, ptr %104, i64 16
  %106 = getelementptr float, ptr %69, i64 %71
  %107 = getelementptr float, ptr %69, i64 %72
  %108 = getelementptr float, ptr %22, i64 %72
  %invariant.gep1075 = getelementptr i8, ptr %108, i64 -4
  %109 = getelementptr float, ptr %22, i64 %73
  %110 = getelementptr i64, ptr %23, i64 %73
  %111 = fpext float %91 to double
  %112 = fmul float %91, 3.000000e+00
  %113 = fmul float %91, 4.000000e+00
  %114 = fpext float %113 to double
  %scevgep = getelementptr i8, ptr %19, i64 -8
  %scevgep1115 = getelementptr i8, ptr %19, i64 -4
  %scevgep1172 = getelementptr i8, ptr %22, i64 -8
  %scevgep1174 = getelementptr i8, ptr %22, i64 -4
  %scevgep1176 = getelementptr i8, ptr %14, i64 -8
  %scevgep1178 = getelementptr i8, ptr %14, i64 -4
  %115 = sub i64 %27, %26
  %116 = shl i64 %71, 2
  %117 = getelementptr i8, ptr %22, i64 %116
  %scevgep1204 = getelementptr i8, ptr %117, i64 -4
  %scevgep1206 = getelementptr i8, ptr %22, i64 -4
  %118 = shl i64 %71, 3
  %119 = add i64 %118, -4
  %scevgep1208 = getelementptr i8, ptr %22, i64 %119
  %scevgep1210 = getelementptr i8, ptr %22, i64 %119
  %scevgep1212 = getelementptr i8, ptr %3, i64 -4
  %scevgep1214 = getelementptr i8, ptr %3, i64 -4
  %scevgep1216 = getelementptr i8, ptr %4, i64 -4
  %scevgep1218 = getelementptr i8, ptr %4, i64 -4
  %diff.check = icmp ult i64 %115, 32
  %broadcast.splatinsert = insertelement <4 x float> poison, float %112, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert1182 = insertelement <4 x double> poison, double %114, i64 0
  %broadcast.splat1183 = shufflevector <4 x double> %broadcast.splatinsert1182, <4 x double> poison, <4 x i32> zeroinitializer
  br label %120

120:                                              ; preds = %.lr.ph1074, %745
  %.06831072 = phi float [ undef, %.lr.ph1074 ], [ %.9, %745 ]
  %.07041070 = phi i64 [ 1, %.lr.ph1074 ], [ %.1705, %745 ]
  %.07091069 = phi i64 [ 1, %.lr.ph1074 ], [ %.1710, %745 ]
  %.07381068 = phi float [ undef, %.lr.ph1074 ], [ %.9747, %745 ]
  %.07601066 = phi i64 [ 1, %.lr.ph1074 ], [ %746, %745 ]
  %121 = getelementptr inbounds i64, ptr %58, i64 %.07601066
  %122 = load i64, ptr %121, align 8, !tbaa !5
  %123 = getelementptr inbounds float, ptr %57, i64 %122
  %124 = load float, ptr %123, align 4, !tbaa !9
  %125 = add i64 %.07041070, -1
  %126 = load i64, ptr %7, align 8, !tbaa !5
  %.not = icmp sgt i64 %.07041070, %126
  br i1 %.not, label %._crit_edge964, label %.lr.ph963

.lr.ph963:                                        ; preds = %120, %130
  %.0749961 = phi i64 [ %131, %130 ], [ %125, %120 ]
  %127 = getelementptr i64, ptr %16, i64 %.0749961
  %128 = load i64, ptr %127, align 8, !tbaa !5
  %129 = icmp eq i64 %128, %.07601066
  br i1 %129, label %130, label %._crit_edge964

130:                                              ; preds = %.lr.ph963
  %131 = add i64 %.0749961, 1
  %exitcond.not = icmp eq i64 %131, %126
  br i1 %exitcond.not, label %._crit_edge964, label %.lr.ph963

._crit_edge964:                                   ; preds = %130, %.lr.ph963, %120
  %.0749.lcssa = phi i64 [ %125, %120 ], [ %.0749961, %.lr.ph963 ], [ %126, %130 ]
  %132 = icmp slt i64 %.0749.lcssa, %.07041070
  br i1 %132, label %745, label %133

133:                                              ; preds = %._crit_edge964
  %134 = load i64, ptr %8, align 8, !tbaa !5
  %135 = icmp slt i64 %.0749.lcssa, %134
  br i1 %135, label %139, label %136

136:                                              ; preds = %133
  %137 = load i64, ptr %9, align 8, !tbaa !5
  %138 = icmp sgt i64 %.07041070, %137
  br i1 %138, label %139, label %141

139:                                              ; preds = %136, %133
  %140 = add nuw nsw i64 %.0749.lcssa, 1
  br label %745

141:                                              ; preds = %136
  %.idx = shl i64 %.07091069, 3
  %142 = getelementptr i8, ptr %64, i64 %.idx
  %143 = getelementptr i8, ptr %142, i64 -4
  %144 = load float, ptr %143, align 4, !tbaa !9
  %145 = load float, ptr %142, align 4, !tbaa !9
  %.not796.not967 = icmp slt i64 %.07091069, %122
  br i1 %.not796.not967, label %.lr.ph972.preheader, label %173

.lr.ph972.preheader:                              ; preds = %141
  %146 = sub i64 %122, %.07091069
  %.neg = add i64 %.07091069, 1
  %xtraiter = and i64 %146, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph972.prol.loopexit, label %.lr.ph972.prol

.lr.ph972.prol:                                   ; preds = %.lr.ph972.preheader
  %.2731.prol = add nsw i64 %.07091069, 1
  %.idx829.prol = shl i64 %.2731.prol, 3
  %147 = getelementptr i8, ptr %64, i64 %.idx829.prol
  %148 = getelementptr i8, ptr %147, i64 -4
  %149 = load float, ptr %148, align 4, !tbaa !9
  %150 = fcmp ole float %149, %144
  %151 = select i1 %150, float %149, float %144
  %152 = load float, ptr %147, align 4, !tbaa !9
  %153 = fcmp oge float %152, %145
  %154 = select i1 %153, float %152, float %145
  br label %.lr.ph972.prol.loopexit

.lr.ph972.prol.loopexit:                          ; preds = %.lr.ph972.prol, %.lr.ph972.preheader
  %.lcssa1280.unr = phi float [ poison, %.lr.ph972.preheader ], [ %151, %.lr.ph972.prol ]
  %.lcssa1279.unr = phi float [ poison, %.lr.ph972.preheader ], [ %152, %.lr.ph972.prol ]
  %.lcssa.unr = phi float [ poison, %.lr.ph972.preheader ], [ %154, %.lr.ph972.prol ]
  %.2731.in970.unr = phi i64 [ %.07091069, %.lr.ph972.preheader ], [ %.2731.prol, %.lr.ph972.prol ]
  %.0765969.unr = phi float [ %144, %.lr.ph972.preheader ], [ %151, %.lr.ph972.prol ]
  %.0766968.unr = phi float [ %145, %.lr.ph972.preheader ], [ %154, %.lr.ph972.prol ]
  %155 = icmp eq i64 %122, %.neg
  br i1 %155, label %._crit_edge973, label %.lr.ph972

.lr.ph972:                                        ; preds = %.lr.ph972.prol.loopexit, %.lr.ph972
  %.2731.in970 = phi i64 [ %.2731.1, %.lr.ph972 ], [ %.2731.in970.unr, %.lr.ph972.prol.loopexit ]
  %.0765969 = phi float [ %169, %.lr.ph972 ], [ %.0765969.unr, %.lr.ph972.prol.loopexit ]
  %.0766968 = phi float [ %172, %.lr.ph972 ], [ %.0766968.unr, %.lr.ph972.prol.loopexit ]
  %.2731 = shl i64 %.2731.in970, 3
  %156 = getelementptr i8, ptr %64, i64 %.2731
  %157 = getelementptr i8, ptr %156, i64 8
  %158 = getelementptr i8, ptr %156, i64 4
  %159 = load float, ptr %158, align 4, !tbaa !9
  %160 = fcmp ole float %159, %.0765969
  %161 = select i1 %160, float %159, float %.0765969
  %162 = load float, ptr %157, align 4, !tbaa !9
  %163 = fcmp oge float %162, %.0766968
  %164 = select i1 %163, float %162, float %.0766968
  %.2731.1 = add nsw i64 %.2731.in970, 2
  %.idx829.1 = shl i64 %.2731.1, 3
  %165 = getelementptr i8, ptr %64, i64 %.idx829.1
  %166 = getelementptr i8, ptr %165, i64 -4
  %167 = load float, ptr %166, align 4, !tbaa !9
  %168 = fcmp ole float %167, %161
  %169 = select i1 %168, float %167, float %161
  %170 = load float, ptr %165, align 4, !tbaa !9
  %171 = fcmp oge float %170, %164
  %172 = select i1 %171, float %170, float %164
  %exitcond1108.not.1 = icmp eq i64 %.2731.1, %122
  br i1 %exitcond1108.not.1, label %._crit_edge973, label %.lr.ph972, !llvm.loop !11

._crit_edge973:                                   ; preds = %.lr.ph972, %.lr.ph972.prol.loopexit
  %.lcssa1280 = phi float [ %.lcssa1280.unr, %.lr.ph972.prol.loopexit ], [ %169, %.lr.ph972 ]
  %.lcssa1279 = phi float [ %.lcssa1279.unr, %.lr.ph972.prol.loopexit ], [ %170, %.lr.ph972 ]
  %.lcssa = phi float [ %.lcssa.unr, %.lr.ph972.prol.loopexit ], [ %172, %.lr.ph972 ]
  store float %.lcssa1279, ptr %30, align 4, !tbaa !9
  br label %173

173:                                              ; preds = %._crit_edge973, %141
  %.0766.lcssa = phi float [ %.lcssa, %._crit_edge973 ], [ %145, %141 ]
  %.0765.lcssa = phi float [ %.lcssa1280, %._crit_edge973 ], [ %144, %141 ]
  %174 = fsub float %.0766.lcssa, %.0765.lcssa
  store float %174, ptr %47, align 4, !tbaa !9
  %175 = add nsw i64 %.07091069, -1
  %reass.sub1083 = sub i64 %122, %.07091069
  %176 = add i64 %reass.sub1083, 1
  store i64 %176, ptr %35, align 8, !tbaa !5
  %reass.sub1084 = sub i64 %.0749.lcssa, %.07041070
  %177 = add i64 %reass.sub1084, 1
  store i64 %177, ptr %34, align 8, !tbaa !5
  %178 = icmp eq i64 %.07091069, %122
  br i1 %178, label %179, label %190

179:                                              ; preds = %173
  %180 = mul nsw i64 %.07041070, %65
  %181 = getelementptr float, ptr %67, i64 %.07091069
  %182 = getelementptr float, ptr %181, i64 %180
  store float 1.000000e+00, ptr %182, align 4, !tbaa !9
  %.idx827 = shl i64 %.07041070, 4
  %183 = getelementptr i8, ptr %68, i64 %.idx827
  %184 = getelementptr i8, ptr %183, i64 -8
  store i64 %.07091069, ptr %184, align 8, !tbaa !5
  store i64 %.07091069, ptr %183, align 8, !tbaa !5
  %185 = getelementptr inbounds float, ptr %59, i64 %.07041070
  %186 = load float, ptr %185, align 4, !tbaa !9
  %187 = fadd float %124, %186
  store float %187, ptr %185, align 4, !tbaa !9
  %188 = getelementptr inbounds float, ptr %69, i64 %.07041070
  store float %187, ptr %188, align 4, !tbaa !9
  %189 = add nuw nsw i64 %.07041070, 1
  br label %745

190:                                              ; preds = %173
  %191 = getelementptr inbounds float, ptr %59, i64 %.07041070
  %192 = getelementptr inbounds float, ptr %69, i64 %.07041070
  %193 = call i32 @f2c_scopy(ptr noundef nonnull %34, ptr noundef nonnull %191, ptr noundef nonnull @c__1, ptr noundef nonnull %192, ptr noundef nonnull @c__1) #7
  %194 = load i64, ptr %34, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %191, i64 -4
  %.not797977 = icmp slt i64 %194, 1
  br i1 %.not797977, label %._crit_edge981.thread, label %.lr.ph980.preheader

.lr.ph980.preheader:                              ; preds = %190
  %min.iters.check1256 = icmp ult i64 %194, 8
  br i1 %min.iters.check1256, label %.lr.ph980.preheader1278, label %vector.ph1257

.lr.ph980.preheader1278:                          ; preds = %middle.block1254, %.lr.ph980.preheader
  %.3732978.ph = phi i64 [ 1, %.lr.ph980.preheader ], [ %ind.end1260, %middle.block1254 ]
  br label %.lr.ph980

vector.ph1257:                                    ; preds = %.lr.ph980.preheader
  %n.vec1259 = and i64 %194, 9223372036854775800
  %ind.end1260 = or disjoint i64 %n.vec1259, 1
  %broadcast.splatinsert1267 = insertelement <4 x float> poison, float %124, i64 0
  %broadcast.splat1268 = shufflevector <4 x float> %broadcast.splatinsert1267, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1262

vector.body1262:                                  ; preds = %vector.body1262, %vector.ph1257
  %index1263 = phi i64 [ 0, %vector.ph1257 ], [ %index.next1269, %vector.body1262 ]
  %195 = getelementptr float, ptr %191, i64 %index1263
  %196 = getelementptr i8, ptr %195, i64 16
  %wide.load1265 = load <4 x float>, ptr %195, align 4, !tbaa !9
  %wide.load1266 = load <4 x float>, ptr %196, align 4, !tbaa !9
  %197 = fadd <4 x float> %broadcast.splat1268, %wide.load1265
  %198 = fadd <4 x float> %broadcast.splat1268, %wide.load1266
  store <4 x float> %197, ptr %195, align 4, !tbaa !9
  store <4 x float> %198, ptr %196, align 4, !tbaa !9
  %index.next1269 = add nuw i64 %index1263, 8
  %199 = icmp eq i64 %index.next1269, %n.vec1259
  br i1 %199, label %middle.block1254, label %vector.body1262, !llvm.loop !13

middle.block1254:                                 ; preds = %vector.body1262
  %cmp.n1270 = icmp eq i64 %194, %n.vec1259
  br i1 %cmp.n1270, label %._crit_edge981, label %.lr.ph980.preheader1278

._crit_edge981.thread:                            ; preds = %190
  store i64 1, ptr %103, align 8, !tbaa !5
  store i64 %194, ptr %105, align 8, !tbaa !5
  br label %._crit_edge1058

.lr.ph980:                                        ; preds = %.lr.ph980.preheader1278, %.lr.ph980
  %.3732978 = phi i64 [ %202, %.lr.ph980 ], [ %.3732978.ph, %.lr.ph980.preheader1278 ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %.3732978
  %200 = load float, ptr %gep, align 4, !tbaa !9
  %201 = fadd float %124, %200
  store float %201, ptr %gep, align 4, !tbaa !9
  %202 = add nuw i64 %.3732978, 1
  %exitcond1109.not = icmp eq i64 %.3732978, %194
  br i1 %exitcond1109.not, label %._crit_edge981, label %.lr.ph980, !llvm.loop !16

._crit_edge981:                                   ; preds = %.lr.ph980, %middle.block1254
  store i64 1, ptr %103, align 8, !tbaa !5
  store i64 %194, ptr %105, align 8, !tbaa !5
  %203 = getelementptr float, ptr %67, i64 %.07091069
  %204 = getelementptr inbounds float, ptr %56, i64 %.07091069
  %205 = getelementptr inbounds float, ptr %57, i64 %.07091069
  %206 = getelementptr float, ptr %67, i64 %122
  %207 = add nsw i64 %122, -1
  %208 = getelementptr i64, ptr %63, i64 %125
  %209 = getelementptr inbounds i64, ptr %63, i64 %.07041070
  %gep1076 = getelementptr float, ptr %invariant.gep1075, i64 %.07091069
  %210 = getelementptr float, ptr %61, i64 %.07041070
  %211 = getelementptr inbounds float, ptr %60, i64 %.07041070
  %212 = getelementptr float, ptr %106, i64 %.07091069
  %gep1064 = getelementptr float, ptr %invariant.gep1063, i64 %.07041070
  %invariant.gep1026 = getelementptr i8, ptr %210, i64 -4
  %213 = shl i64 %.07091069, 2
  %scevgep1205 = getelementptr i8, ptr %scevgep1204, i64 %213
  %214 = add i64 %71, %122
  %215 = shl i64 %214, 2
  %scevgep1207 = getelementptr i8, ptr %scevgep1206, i64 %215
  %scevgep1209 = getelementptr i8, ptr %scevgep1208, i64 %213
  %216 = shl i64 %122, 2
  %scevgep1211 = getelementptr i8, ptr %scevgep1210, i64 %216
  %scevgep1213 = getelementptr i8, ptr %scevgep1212, i64 %213
  %scevgep1215 = getelementptr i8, ptr %scevgep1214, i64 %216
  %scevgep1217 = getelementptr i8, ptr %scevgep1216, i64 %213
  %scevgep1219 = getelementptr i8, ptr %scevgep1218, i64 %216
  %217 = sub i64 %122, %.07091069
  %min.iters.check1240 = icmp ult i64 %217, 12
  %bound01220 = icmp ult ptr %scevgep1205, %scevgep1211
  %bound11221 = icmp ult ptr %scevgep1209, %scevgep1207
  %found.conflict1222 = and i1 %bound01220, %bound11221
  %bound01223 = icmp ult ptr %scevgep1205, %scevgep1215
  %bound11224 = icmp ult ptr %scevgep1213, %scevgep1207
  %found.conflict1225 = and i1 %bound01223, %bound11224
  %conflict.rdx = or i1 %found.conflict1222, %found.conflict1225
  %bound01226 = icmp ult ptr %scevgep1205, %scevgep1219
  %bound11227 = icmp ult ptr %scevgep1217, %scevgep1207
  %found.conflict1228 = and i1 %bound01226, %bound11227
  %conflict.rdx1229 = or i1 %conflict.rdx, %found.conflict1228
  %bound01230 = icmp ult ptr %scevgep1209, %scevgep1215
  %bound11231 = icmp ult ptr %scevgep1213, %scevgep1211
  %found.conflict1232 = and i1 %bound01230, %bound11231
  %conflict.rdx1233 = or i1 %conflict.rdx1229, %found.conflict1232
  %bound01234 = icmp ult ptr %scevgep1209, %scevgep1219
  %bound11235 = icmp ult ptr %scevgep1217, %scevgep1211
  %found.conflict1236 = and i1 %bound01234, %bound11235
  %conflict.rdx1237 = or i1 %conflict.rdx1233, %found.conflict1236
  %n.vec1243 = and i64 %217, -4
  %ind.end1244 = add i64 %.07091069, %n.vec1243
  %cmp.n1253 = icmp eq i64 %217, %n.vec1243
  br label %218

218:                                              ; preds = %._crit_edge981, %._crit_edge1039
  %219 = phi i64 [ %194, %._crit_edge981 ], [ %741, %._crit_edge1039 ]
  %.11055 = phi float [ %.06831072, %._crit_edge981 ], [ %.2.lcssa, %._crit_edge1039 ]
  %.06871054 = phi i64 [ 1, %._crit_edge981 ], [ %223, %._crit_edge1039 ]
  %.06941053 = phi i64 [ 0, %._crit_edge981 ], [ %742, %._crit_edge1039 ]
  %.07121051 = phi i64 [ 1, %._crit_edge981 ], [ %.1713.lcssa, %._crit_edge1039 ]
  %.07211050 = phi float [ %124, %._crit_edge981 ], [ %.1722.lcssa, %._crit_edge1039 ]
  %.07241049 = phi i64 [ 0, %._crit_edge981 ], [ %.1725.lcssa, %._crit_edge1039 ]
  %.17391048 = phi float [ %.07381068, %._crit_edge981 ], [ %.2740.lcssa, %._crit_edge1039 ]
  %220 = load i64, ptr %7, align 8, !tbaa !5
  %221 = icmp sgt i64 %.06941053, %220
  br i1 %221, label %.loopexit854.sink.split, label %222

222:                                              ; preds = %218
  %223 = sub nuw nsw i64 1, %.06871054
  %.not7981028 = icmp slt i64 %.07121051, 1
  br i1 %.not7981028, label %._crit_edge1039, label %.lr.ph1038

.lr.ph1038:                                       ; preds = %222
  %224 = icmp eq i64 %.06871054, 1
  %.831 = select i1 %224, i64 %72, i64 %71
  %. = select i1 %224, i64 %71, i64 %72
  %225 = getelementptr i64, ptr %70, i64 %.
  %.not799 = icmp eq i64 %.06941053, 0
  %226 = getelementptr i64, ptr %70, i64 %.831
  br label %227

227:                                              ; preds = %.lr.ph1038, %._crit_edge1017
  %.21036 = phi float [ %.11055, %.lr.ph1038 ], [ %.3.lcssa, %._crit_edge1017 ]
  %.17131034 = phi i64 [ 0, %.lr.ph1038 ], [ %.2714.lcssa, %._crit_edge1017 ]
  %.17221033 = phi float [ %.07211050, %.lr.ph1038 ], [ %.2723, %._crit_edge1017 ]
  %.17251032 = phi i64 [ %.07241049, %.lr.ph1038 ], [ %.2726.lcssa, %._crit_edge1017 ]
  %.47331031 = phi i64 [ 1, %.lr.ph1038 ], [ %740, %._crit_edge1017 ]
  %.27401030 = phi float [ %.17391048, %.lr.ph1038 ], [ %.3741.lcssa, %._crit_edge1017 ]
  %.idx848 = shl i64 %.47331031, 4
  %228 = getelementptr i8, ptr %225, i64 %.idx848
  %229 = getelementptr i8, ptr %228, i64 -8
  %230 = load i64, ptr %229, align 8, !tbaa !5
  %231 = load i64, ptr %228, align 8, !tbaa !5
  br i1 %.not799, label %261, label %232

232:                                              ; preds = %227
  %233 = load i64, ptr %8, align 8, !tbaa !5
  %234 = icmp eq i64 %233, 1
  br i1 %234, label %235, label %241

235:                                              ; preds = %232
  %236 = load i64, ptr %9, align 8, !tbaa !5
  %237 = load i64, ptr %7, align 8, !tbaa !5
  %238 = icmp eq i64 %236, %237
  br i1 %238, label %239, label %241

239:                                              ; preds = %235
  %240 = add i64 %125, %230
  br label %248

241:                                              ; preds = %235, %232
  %242 = add nsw i64 %230, %.07041070
  %.not800 = icmp sgt i64 %242, %233
  br i1 %.not800, label %245, label %243

243:                                              ; preds = %241
  %244 = add nsw i64 %233, -1
  br label %248

245:                                              ; preds = %241
  %246 = add nsw i64 %242, -1
  %247 = load i64, ptr %9, align 8, !tbaa !5
  %.832 = call i64 @llvm.smin.i64(i64 %246, i64 %247)
  br label %248

248:                                              ; preds = %245, %243, %239
  %.0734 = phi i64 [ %240, %239 ], [ %244, %243 ], [ %.832, %245 ]
  %249 = mul nsw i64 %.0734, %65
  %250 = getelementptr float, ptr %203, i64 %249
  %251 = call i32 @f2c_scopy(ptr noundef nonnull %35, ptr noundef %250, ptr noundef nonnull @c__1, ptr noundef nonnull %204, ptr noundef nonnull @c__1) #7
  %252 = load i64, ptr %35, align 8, !tbaa !5
  %253 = add nsw i64 %252, -1
  store i64 %253, ptr %28, align 8, !tbaa !5
  %254 = add nsw i64 %.0734, 1
  %255 = mul nsw i64 %254, %65
  %256 = getelementptr float, ptr %203, i64 %255
  %257 = call i32 @f2c_scopy(ptr noundef nonnull %28, ptr noundef %256, ptr noundef nonnull @c__1, ptr noundef nonnull %205, ptr noundef nonnull @c__1) #7
  %258 = getelementptr float, ptr %206, i64 %255
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = call i32 @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull @c__2, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef %250, ptr noundef nonnull %20) #7
  br label %261

261:                                              ; preds = %248, %227
  %.2723 = phi float [ %259, %248 ], [ %.17221033, %227 ]
  store i64 %207, ptr %28, align 8, !tbaa !5
  br i1 %.not796.not967, label %.lr.ph985.preheader, label %._crit_edge986

.lr.ph985.preheader:                              ; preds = %261
  %brmerge = select i1 %min.iters.check1240, i1 true, i1 %conflict.rdx1237
  br i1 %brmerge, label %.lr.ph985.preheader1275, label %vector.body1246

vector.body1246:                                  ; preds = %.lr.ph985.preheader, %vector.body1246
  %index1247 = phi i64 [ %index.next1252, %vector.body1246 ], [ 0, %.lr.ph985.preheader ]
  %offset.idx1248 = add i64 %.07091069, %index1247
  %262 = getelementptr inbounds float, ptr %56, i64 %offset.idx1248
  %wide.load1249 = load <4 x float>, ptr %262, align 4, !tbaa !9, !alias.scope !17
  %263 = getelementptr inbounds float, ptr %57, i64 %offset.idx1248
  %wide.load1250 = load <4 x float>, ptr %263, align 4, !tbaa !9, !alias.scope !20
  %264 = fmul <4 x float> %wide.load1249, %wide.load1250
  %265 = getelementptr float, ptr %106, i64 %offset.idx1248
  store <4 x float> %264, ptr %265, align 4, !tbaa !9, !alias.scope !22, !noalias !24
  %266 = fmul <4 x float> %264, %wide.load1250
  %267 = getelementptr float, ptr %107, i64 %offset.idx1248
  store <4 x float> %266, ptr %267, align 4, !tbaa !9, !alias.scope !26, !noalias !27
  %index.next1252 = add nuw i64 %index1247, 4
  %268 = icmp eq i64 %index.next1252, %n.vec1243
  br i1 %268, label %middle.block1238, label %vector.body1246, !llvm.loop !28

middle.block1238:                                 ; preds = %vector.body1246
  br i1 %cmp.n1253, label %._crit_edge986, label %.lr.ph985.preheader1275

.lr.ph985.preheader1275:                          ; preds = %.lr.ph985.preheader, %middle.block1238
  %.1735983.ph = phi i64 [ %.07091069, %.lr.ph985.preheader ], [ %ind.end1244, %middle.block1238 ]
  %269 = sub i64 %122, %.1735983.ph
  %.neg1298 = add i64 %.1735983.ph, 1
  %xtraiter1294 = and i64 %269, 1
  %lcmp.mod1295.not = icmp eq i64 %xtraiter1294, 0
  br i1 %lcmp.mod1295.not, label %.lr.ph985.prol.loopexit, label %.lr.ph985.prol

.lr.ph985.prol:                                   ; preds = %.lr.ph985.preheader1275
  %270 = getelementptr inbounds float, ptr %56, i64 %.1735983.ph
  %271 = load float, ptr %270, align 4, !tbaa !9
  %272 = getelementptr inbounds float, ptr %57, i64 %.1735983.ph
  %273 = load float, ptr %272, align 4, !tbaa !9
  %274 = fmul float %271, %273
  %275 = getelementptr float, ptr %106, i64 %.1735983.ph
  store float %274, ptr %275, align 4, !tbaa !9
  %276 = load float, ptr %272, align 4, !tbaa !9
  %277 = fmul float %274, %276
  %278 = getelementptr float, ptr %107, i64 %.1735983.ph
  store float %277, ptr %278, align 4, !tbaa !9
  %279 = add nsw i64 %.1735983.ph, 1
  br label %.lr.ph985.prol.loopexit

.lr.ph985.prol.loopexit:                          ; preds = %.lr.ph985.prol, %.lr.ph985.preheader1275
  %.1735983.unr = phi i64 [ %.1735983.ph, %.lr.ph985.preheader1275 ], [ %279, %.lr.ph985.prol ]
  %280 = icmp eq i64 %122, %.neg1298
  br i1 %280, label %._crit_edge986, label %.lr.ph985

.lr.ph985:                                        ; preds = %.lr.ph985.prol.loopexit, %.lr.ph985
  %.1735983 = phi i64 [ %300, %.lr.ph985 ], [ %.1735983.unr, %.lr.ph985.prol.loopexit ]
  %281 = getelementptr inbounds float, ptr %56, i64 %.1735983
  %282 = load float, ptr %281, align 4, !tbaa !9
  %283 = getelementptr inbounds float, ptr %57, i64 %.1735983
  %284 = load float, ptr %283, align 4, !tbaa !9
  %285 = fmul float %282, %284
  %286 = getelementptr float, ptr %106, i64 %.1735983
  store float %285, ptr %286, align 4, !tbaa !9
  %287 = load float, ptr %283, align 4, !tbaa !9
  %288 = fmul float %285, %287
  %289 = getelementptr float, ptr %107, i64 %.1735983
  store float %288, ptr %289, align 4, !tbaa !9
  %290 = add nsw i64 %.1735983, 1
  %291 = getelementptr float, ptr %3, i64 %.1735983
  %292 = load float, ptr %291, align 4, !tbaa !9
  %293 = getelementptr float, ptr %4, i64 %.1735983
  %294 = load float, ptr %293, align 4, !tbaa !9
  %295 = fmul float %292, %294
  %296 = getelementptr float, ptr %106, i64 %290
  store float %295, ptr %296, align 4, !tbaa !9
  %297 = load float, ptr %293, align 4, !tbaa !9
  %298 = fmul float %295, %297
  %299 = getelementptr float, ptr %107, i64 %290
  store float %298, ptr %299, align 4, !tbaa !9
  %300 = add nsw i64 %.1735983, 2
  %exitcond1110.not.1 = icmp eq i64 %300, %122
  br i1 %exitcond1110.not.1, label %._crit_edge986, label %.lr.ph985, !llvm.loop !29

._crit_edge986:                                   ; preds = %.lr.ph985.prol.loopexit, %.lr.ph985, %middle.block1238, %261
  br i1 %.not799, label %.loopexit853, label %301

301:                                              ; preds = %._crit_edge986
  %302 = getelementptr i64, ptr %208, i64 %230
  %303 = load i64, ptr %302, align 8, !tbaa !5
  store i64 %303, ptr %32, align 8, !tbaa !5
  %304 = getelementptr i64, ptr %208, i64 %231
  %305 = load i64, ptr %304, align 8, !tbaa !5
  store i64 %305, ptr %33, align 8, !tbaa !5
  %306 = load i64, ptr %209, align 8, !tbaa !5
  %307 = add nsw i64 %306, -1
  store i64 %307, ptr %49, align 8, !tbaa !5
  %308 = call i32 @slarrb_(ptr noundef nonnull %35, ptr noundef nonnull %204, ptr noundef %gep1076, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %49, ptr noundef nonnull %192, ptr noundef nonnull %210, ptr noundef nonnull %211, ptr noundef %109, ptr noundef %110, ptr noundef %5, ptr noundef nonnull %47, ptr noundef nonnull %35, ptr noundef nonnull %41) #7
  %309 = load i64, ptr %41, align 8, !tbaa !5
  %.not802 = icmp eq i64 %309, 0
  br i1 %.not802, label %310, label %.loopexit854.sink.split

310:                                              ; preds = %301
  %311 = icmp sgt i64 %230, 1
  br i1 %311, label %312, label %331

312:                                              ; preds = %310
  %313 = add nuw nsw i64 %230, %.07041070
  %314 = add nsw i64 %313, -2
  %315 = getelementptr inbounds float, ptr %61, i64 %314
  %316 = load float, ptr %315, align 4, !tbaa !9
  store float %316, ptr %30, align 4, !tbaa !9
  %317 = add nsw i64 %313, -1
  %318 = getelementptr inbounds float, ptr %59, i64 %317
  %319 = load float, ptr %318, align 4, !tbaa !9
  %320 = getelementptr inbounds float, ptr %60, i64 %317
  %321 = load float, ptr %320, align 4, !tbaa !9
  %322 = fsub float %319, %321
  %323 = getelementptr inbounds float, ptr %59, i64 %314
  %324 = load float, ptr %323, align 4, !tbaa !9
  %325 = fsub float %322, %324
  %326 = getelementptr inbounds float, ptr %60, i64 %314
  %327 = load float, ptr %326, align 4, !tbaa !9
  %328 = fsub float %325, %327
  %329 = fcmp oge float %316, %328
  %330 = select i1 %329, float %316, float %328
  store float %330, ptr %315, align 4, !tbaa !9
  br label %331

331:                                              ; preds = %312, %310
  %332 = add nsw i64 %231, %.07041070
  %.not803 = icmp sgt i64 %332, %.0749.lcssa
  br i1 %.not803, label %350, label %333

333:                                              ; preds = %331
  %334 = add nsw i64 %332, -1
  %335 = getelementptr inbounds float, ptr %61, i64 %334
  %336 = load float, ptr %335, align 4, !tbaa !9
  store float %336, ptr %30, align 4, !tbaa !9
  %337 = getelementptr inbounds float, ptr %59, i64 %332
  %338 = load float, ptr %337, align 4, !tbaa !9
  %339 = getelementptr inbounds float, ptr %60, i64 %332
  %340 = load float, ptr %339, align 4, !tbaa !9
  %341 = fsub float %338, %340
  %342 = getelementptr inbounds float, ptr %59, i64 %334
  %343 = load float, ptr %342, align 4, !tbaa !9
  %344 = fsub float %341, %343
  %345 = getelementptr inbounds float, ptr %60, i64 %334
  %346 = load float, ptr %345, align 4, !tbaa !9
  %347 = fsub float %344, %346
  %348 = fcmp oge float %336, %347
  %349 = select i1 %348, float %336, float %347
  store float %349, ptr %335, align 4, !tbaa !9
  br label %350

350:                                              ; preds = %333, %331
  %.not804987 = icmp sgt i64 %230, %231
  br i1 %.not804987, label %.loopexit853, label %.lr.ph990.preheader

.lr.ph990.preheader:                              ; preds = %350
  %351 = add i64 %231, 1
  %352 = sub i64 %351, %230
  %min.iters.check1188 = icmp ult i64 %352, 8
  %or.cond1271 = or i1 %min.iters.check1188, %diff.check
  br i1 %or.cond1271, label %.lr.ph990.preheader1274, label %vector.ph1189

vector.ph1189:                                    ; preds = %.lr.ph990.preheader
  %n.vec1191 = and i64 %352, -8
  %ind.end1192 = add i64 %230, %n.vec1191
  %broadcast.splatinsert1199 = insertelement <4 x float> poison, float %.2723, i64 0
  %broadcast.splat1200 = shufflevector <4 x float> %broadcast.splatinsert1199, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1194

vector.body1194:                                  ; preds = %vector.body1194, %vector.ph1189
  %index1195 = phi i64 [ 0, %vector.ph1189 ], [ %index.next1201, %vector.body1194 ]
  %offset.idx1196 = add i64 %230, %index1195
  %353 = add i64 %125, %offset.idx1196
  %354 = getelementptr inbounds float, ptr %69, i64 %353
  %355 = getelementptr inbounds i8, ptr %354, i64 16
  %wide.load1197 = load <4 x float>, ptr %354, align 4, !tbaa !9
  %wide.load1198 = load <4 x float>, ptr %355, align 4, !tbaa !9
  %356 = fadd <4 x float> %broadcast.splat1200, %wide.load1197
  %357 = fadd <4 x float> %broadcast.splat1200, %wide.load1198
  %358 = getelementptr inbounds float, ptr %59, i64 %353
  %359 = getelementptr inbounds i8, ptr %358, i64 16
  store <4 x float> %356, ptr %358, align 4, !tbaa !9
  store <4 x float> %357, ptr %359, align 4, !tbaa !9
  %index.next1201 = add nuw i64 %index1195, 8
  %360 = icmp eq i64 %index.next1201, %n.vec1191
  br i1 %360, label %middle.block1186, label %vector.body1194, !llvm.loop !30

middle.block1186:                                 ; preds = %vector.body1194
  %cmp.n1202 = icmp eq i64 %352, %n.vec1191
  br i1 %cmp.n1202, label %.loopexit853, label %.lr.ph990.preheader1274

.lr.ph990.preheader1274:                          ; preds = %middle.block1186, %.lr.ph990.preheader
  %.2736988.ph = phi i64 [ %230, %.lr.ph990.preheader ], [ %ind.end1192, %middle.block1186 ]
  %361 = add i64 %231, 1
  %362 = sub i64 %361, %.2736988.ph
  %363 = sub i64 %231, %.2736988.ph
  %xtraiter1296 = and i64 %362, 3
  %lcmp.mod1297.not = icmp eq i64 %xtraiter1296, 0
  br i1 %lcmp.mod1297.not, label %.lr.ph990.prol.loopexit, label %.lr.ph990.prol

.lr.ph990.prol:                                   ; preds = %.lr.ph990.preheader1274, %.lr.ph990.prol
  %.2736988.prol = phi i64 [ %369, %.lr.ph990.prol ], [ %.2736988.ph, %.lr.ph990.preheader1274 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph990.prol ], [ 0, %.lr.ph990.preheader1274 ]
  %364 = add i64 %125, %.2736988.prol
  %365 = getelementptr inbounds float, ptr %69, i64 %364
  %366 = load float, ptr %365, align 4, !tbaa !9
  %367 = fadd float %.2723, %366
  %368 = getelementptr inbounds float, ptr %59, i64 %364
  store float %367, ptr %368, align 4, !tbaa !9
  %369 = add i64 %.2736988.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter1296
  br i1 %prol.iter.cmp.not, label %.lr.ph990.prol.loopexit, label %.lr.ph990.prol, !llvm.loop !31

.lr.ph990.prol.loopexit:                          ; preds = %.lr.ph990.prol, %.lr.ph990.preheader1274
  %.2736988.unr = phi i64 [ %.2736988.ph, %.lr.ph990.preheader1274 ], [ %369, %.lr.ph990.prol ]
  %370 = icmp ult i64 %363, 3
  br i1 %370, label %.loopexit853, label %.lr.ph990

.lr.ph990:                                        ; preds = %.lr.ph990.prol.loopexit, %.lr.ph990
  %.2736988 = phi i64 [ %393, %.lr.ph990 ], [ %.2736988.unr, %.lr.ph990.prol.loopexit ]
  %371 = add i64 %125, %.2736988
  %372 = getelementptr inbounds float, ptr %69, i64 %371
  %373 = load float, ptr %372, align 4, !tbaa !9
  %374 = fadd float %.2723, %373
  %375 = getelementptr inbounds float, ptr %59, i64 %371
  store float %374, ptr %375, align 4, !tbaa !9
  %376 = add i64 %.07041070, %.2736988
  %377 = getelementptr inbounds float, ptr %69, i64 %376
  %378 = load float, ptr %377, align 4, !tbaa !9
  %379 = fadd float %.2723, %378
  %380 = getelementptr inbounds float, ptr %59, i64 %376
  store float %379, ptr %380, align 4, !tbaa !9
  %381 = add i64 %.2736988, 2
  %382 = add i64 %125, %381
  %383 = getelementptr inbounds float, ptr %69, i64 %382
  %384 = load float, ptr %383, align 4, !tbaa !9
  %385 = fadd float %.2723, %384
  %386 = getelementptr inbounds float, ptr %59, i64 %382
  store float %385, ptr %386, align 4, !tbaa !9
  %387 = add i64 %.2736988, 3
  %388 = add i64 %125, %387
  %389 = getelementptr inbounds float, ptr %69, i64 %388
  %390 = load float, ptr %389, align 4, !tbaa !9
  %391 = fadd float %.2723, %390
  %392 = getelementptr inbounds float, ptr %59, i64 %388
  store float %391, ptr %392, align 4, !tbaa !9
  %393 = add i64 %.2736988, 4
  %exitcond1111.not.3 = icmp eq i64 %387, %231
  br i1 %exitcond1111.not.3, label %.loopexit853, label %.lr.ph990, !llvm.loop !33

.loopexit853:                                     ; preds = %.lr.ph990.prol.loopexit, %.lr.ph990, %middle.block1186, %350, %._crit_edge986
  store i64 %230, ptr %51, align 8, !tbaa !5
  store i64 %231, ptr %28, align 8, !tbaa !5
  %.not8051007 = icmp sgt i64 %230, %231
  br i1 %.not8051007, label %._crit_edge1017, label %.lr.ph1016

.lr.ph1016:                                       ; preds = %.loopexit853, %737
  %394 = phi i64 [ %738, %737 ], [ %231, %.loopexit853 ]
  %395 = phi i64 [ %739, %737 ], [ %230, %.loopexit853 ]
  %.31014 = phi float [ %.8, %737 ], [ %.21036, %.loopexit853 ]
  %.27141012 = phi i64 [ %.4716, %737 ], [ %.17131034, %.loopexit853 ]
  %.27261011 = phi i64 [ %.4728, %737 ], [ %.17251032, %.loopexit853 ]
  %.37371010 = phi i64 [ %.pre-phi1129, %737 ], [ %230, %.loopexit853 ]
  %.37411009 = phi float [ %.8746, %737 ], [ %.27401030, %.loopexit853 ]
  %396 = icmp eq i64 %.37371010, %231
  br i1 %396, label %412, label %397

397:                                              ; preds = %.lr.ph1016
  %398 = add i64 %125, %.37371010
  %399 = getelementptr inbounds float, ptr %61, i64 %398
  %400 = load float, ptr %399, align 4, !tbaa !9
  %401 = fpext float %400 to double
  %402 = load float, ptr %10, align 4, !tbaa !9
  %403 = fpext float %402 to double
  %404 = getelementptr inbounds float, ptr %69, i64 %398
  %405 = load float, ptr %404, align 4, !tbaa !9
  store float %405, ptr %30, align 4, !tbaa !9
  %406 = fcmp oge float %405, 0.000000e+00
  %407 = fneg float %405
  %408 = select i1 %406, float %405, float %407
  %409 = fpext float %408 to double
  %410 = fmul double %403, %409
  %411 = fcmp ugt double %410, %401
  br i1 %411, label %._crit_edge1127, label %412

._crit_edge1127:                                  ; preds = %397
  %.pre1128 = add nsw i64 %.37371010, 1
  br label %737

412:                                              ; preds = %397, %.lr.ph1016
  store i64 %.37371010, ptr %52, align 8, !tbaa !5
  %413 = load i64, ptr %8, align 8, !tbaa !5
  %414 = icmp eq i64 %413, 1
  br i1 %414, label %415, label %421

415:                                              ; preds = %412
  %416 = load i64, ptr %9, align 8, !tbaa !5
  %417 = load i64, ptr %7, align 8, !tbaa !5
  %418 = icmp eq i64 %416, %417
  br i1 %418, label %419, label %421

419:                                              ; preds = %415
  %420 = add i64 %125, %395
  br label %428

421:                                              ; preds = %415, %412
  %422 = add nsw i64 %395, %.07041070
  %.not806 = icmp sgt i64 %422, %413
  br i1 %.not806, label %425, label %423

423:                                              ; preds = %421
  %424 = add nsw i64 %413, -1
  br label %428

425:                                              ; preds = %421
  %426 = add nsw i64 %422, -1
  %427 = load i64, ptr %9, align 8, !tbaa !5
  %.833 = call i64 @llvm.smin.i64(i64 %426, i64 %427)
  br label %428

428:                                              ; preds = %425, %423, %419
  %.0688 = phi i64 [ %420, %419 ], [ %424, %423 ], [ %.833, %425 ]
  %429 = icmp sgt i64 %.37371010, %395
  br i1 %429, label %430, label %524

430:                                              ; preds = %428
  %431 = icmp eq i64 %395, 1
  br i1 %431, label %432, label %440

432:                                              ; preds = %430
  store float 0.000000e+00, ptr %30, align 4, !tbaa !9
  %433 = load float, ptr %191, align 4, !tbaa !9
  %434 = load float, ptr %211, align 4, !tbaa !9
  %435 = fsub float %433, %434
  %436 = load float, ptr %1, align 4, !tbaa !9
  %437 = fsub float %435, %436
  %438 = fcmp ole float %437, 0.000000e+00
  %439 = select i1 %438, float 0.000000e+00, float %437
  br label %442

440:                                              ; preds = %430
  %gep1025 = getelementptr float, ptr %gep1064, i64 %395
  %441 = load float, ptr %gep1025, align 4, !tbaa !9
  br label %442

442:                                              ; preds = %440, %432
  %storemerge823 = phi float [ %441, %440 ], [ %439, %432 ]
  store float %storemerge823, ptr %38, align 4, !tbaa !9
  %gep1027 = getelementptr float, ptr %invariant.gep1026, i64 %.37371010
  %443 = load float, ptr %gep1027, align 4, !tbaa !9
  store float %443, ptr %39, align 4, !tbaa !9
  %storemerge826.in = getelementptr i64, ptr %208, i64 %395
  %storemerge826 = load i64, ptr %storemerge826.in, align 8, !tbaa !5
  store i64 %storemerge826, ptr %32, align 8, !tbaa !5
  %444 = load i64, ptr %209, align 8, !tbaa !5
  %445 = add nsw i64 %444, -1
  store i64 %445, ptr %49, align 8, !tbaa !5
  %446 = call i32 @slarrb_(ptr noundef nonnull %35, ptr noundef nonnull %204, ptr noundef %gep1076, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef nonnull %43, ptr noundef nonnull %43, ptr noundef nonnull %49, ptr noundef nonnull %192, ptr noundef nonnull %210, ptr noundef nonnull %211, ptr noundef %109, ptr noundef %110, ptr noundef %5, ptr noundef nonnull %47, ptr noundef nonnull %35, ptr noundef nonnull %41) #7
  %447 = load i64, ptr %52, align 8
  %storemerge826.in.1 = getelementptr i64, ptr %208, i64 %447
  %storemerge826.1 = load i64, ptr %storemerge826.in.1, align 8, !tbaa !5
  store i64 %storemerge826.1, ptr %32, align 8, !tbaa !5
  %448 = load i64, ptr %209, align 8, !tbaa !5
  %449 = add nsw i64 %448, -1
  store i64 %449, ptr %49, align 8, !tbaa !5
  %450 = call i32 @slarrb_(ptr noundef nonnull %35, ptr noundef nonnull %204, ptr noundef %gep1076, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef nonnull %43, ptr noundef nonnull %43, ptr noundef nonnull %49, ptr noundef nonnull %192, ptr noundef nonnull %210, ptr noundef nonnull %211, ptr noundef %109, ptr noundef %110, ptr noundef %5, ptr noundef nonnull %47, ptr noundef nonnull %35, ptr noundef nonnull %41) #7
  %451 = load i64, ptr %52, align 8, !tbaa !5
  %452 = add nsw i64 %451, %.07041070
  %453 = load i64, ptr %8, align 8, !tbaa !5
  %.not824 = icmp sgt i64 %452, %453
  %.pre1124 = load i64, ptr %51, align 8, !tbaa !5
  br i1 %.not824, label %454, label %458

454:                                              ; preds = %442
  %455 = add i64 %125, %.pre1124
  %456 = load i64, ptr %9, align 8, !tbaa !5
  %457 = icmp sgt i64 %455, %456
  br i1 %457, label %458, label %462

458:                                              ; preds = %454, %442
  %459 = add i64 %.27261011, 1
  %460 = add i64 %459, %451
  %461 = sub i64 %460, %.pre1124
  br label %735

462:                                              ; preds = %454
  %463 = mul nsw i64 %.0688, %65
  %464 = getelementptr float, ptr %203, i64 %463
  %465 = add nsw i64 %.0688, 1
  %466 = mul nsw i64 %465, %65
  %467 = getelementptr float, ptr %203, i64 %466
  %468 = call i32 @slarrf_(ptr noundef nonnull %35, ptr noundef nonnull %204, ptr noundef nonnull %205, ptr noundef %212, ptr noundef nonnull %51, ptr noundef nonnull %52, ptr noundef nonnull %192, ptr noundef nonnull %210, ptr noundef nonnull %211, ptr noundef nonnull %47, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %5, ptr noundef nonnull %36, ptr noundef %464, ptr noundef %467, ptr noundef %109, ptr noundef nonnull %41) #7
  %469 = load i64, ptr %41, align 8, !tbaa !5
  %470 = icmp eq i64 %469, 0
  br i1 %470, label %471, label %.loopexit854.sink.split

471:                                              ; preds = %462
  %472 = load float, ptr %36, align 4, !tbaa !9
  %473 = fadd float %.2723, %472
  %474 = getelementptr float, ptr %206, i64 %466
  store float %473, ptr %474, align 4, !tbaa !9
  %475 = load i64, ptr %52, align 8, !tbaa !5
  store i64 %475, ptr %29, align 8, !tbaa !5
  %476 = load i64, ptr %51, align 8, !tbaa !5
  %.not8251001 = icmp sgt i64 %476, %475
  br i1 %.not8251001, label %520, label %.lr.ph1004.preheader

.lr.ph1004.preheader:                             ; preds = %471
  %477 = add i64 %475, 1
  %478 = sub i64 %477, %476
  %min.iters.check = icmp ult i64 %478, 4
  br i1 %min.iters.check, label %.lr.ph1004.preheader1272, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph1004.preheader
  %479 = add i64 %.07041070, %476
  %480 = shl i64 %479, 2
  %scevgep1173 = getelementptr i8, ptr %scevgep1172, i64 %480
  %481 = add i64 %.07041070, %475
  %482 = shl i64 %481, 2
  %scevgep1175 = getelementptr i8, ptr %scevgep1174, i64 %482
  %scevgep1177 = getelementptr i8, ptr %scevgep1176, i64 %480
  %scevgep1179 = getelementptr i8, ptr %scevgep1178, i64 %482
  %bound0 = icmp ult ptr %scevgep1173, %scevgep1179
  %bound1 = icmp ult ptr %scevgep1177, %scevgep1175
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph1004.preheader1272, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %478, -4
  %ind.end = add i64 %476, %n.vec
  %broadcast.splatinsert1180 = insertelement <4 x float> poison, float %472, i64 0
  %broadcast.splat1181 = shufflevector <4 x float> %broadcast.splatinsert1180, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = add i64 %476, %index
  %483 = add i64 %125, %offset.idx
  %484 = getelementptr inbounds float, ptr %69, i64 %483
  %wide.load = load <4 x float>, ptr %484, align 4, !tbaa !9, !alias.scope !34, !noalias !37
  %485 = fcmp oge <4 x float> %wide.load, zeroinitializer
  %486 = fneg <4 x float> %wide.load
  %487 = select <4 x i1> %485, <4 x float> %wide.load, <4 x float> %486
  %488 = fmul <4 x float> %broadcast.splat, %487
  %489 = fsub <4 x float> %wide.load, %broadcast.splat1181
  store <4 x float> %489, ptr %484, align 4, !tbaa !9, !alias.scope !34, !noalias !37
  %490 = fcmp oge <4 x float> %489, zeroinitializer
  %491 = fneg <4 x float> %489
  %492 = select <4 x i1> %490, <4 x float> %489, <4 x float> %491
  %493 = fpext <4 x float> %492 to <4 x double>
  %494 = fpext <4 x float> %488 to <4 x double>
  %495 = call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %broadcast.splat1183, <4 x double> %493, <4 x double> %494)
  %496 = fptrunc <4 x double> %495 to <4 x float>
  %497 = getelementptr inbounds float, ptr %60, i64 %483
  %wide.load1184 = load <4 x float>, ptr %497, align 4, !tbaa !9, !alias.scope !37
  %498 = fadd <4 x float> %wide.load1184, %496
  store <4 x float> %498, ptr %497, align 4, !tbaa !9, !alias.scope !37
  %index.next = add nuw i64 %index, 4
  %499 = icmp eq i64 %index.next, %n.vec
  br i1 %499, label %middle.block, label %vector.body, !llvm.loop !39

middle.block:                                     ; preds = %vector.body
  %500 = extractelement <4 x float> %489, i64 3
  %cmp.n = icmp eq i64 %478, %n.vec
  br i1 %cmp.n, label %._crit_edge1005, label %.lr.ph1004.preheader1272

.lr.ph1004.preheader1272:                         ; preds = %middle.block, %vector.memcheck, %.lr.ph1004.preheader
  %.17621002.ph = phi i64 [ %476, %vector.memcheck ], [ %476, %.lr.ph1004.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph1004

.lr.ph1004:                                       ; preds = %.lr.ph1004.preheader1272, %.lr.ph1004
  %.17621002 = phi i64 [ %519, %.lr.ph1004 ], [ %.17621002.ph, %.lr.ph1004.preheader1272 ]
  %501 = add i64 %125, %.17621002
  %502 = getelementptr inbounds float, ptr %69, i64 %501
  %503 = load float, ptr %502, align 4, !tbaa !9
  %504 = fcmp oge float %503, 0.000000e+00
  %505 = fneg float %503
  %506 = select i1 %504, float %503, float %505
  %507 = fmul float %112, %506
  %508 = fsub float %503, %472
  store float %508, ptr %502, align 4, !tbaa !9
  %509 = fcmp oge float %508, 0.000000e+00
  %510 = fneg float %508
  %511 = select i1 %509, float %508, float %510
  %512 = fpext float %511 to double
  %513 = fpext float %507 to double
  %514 = call double @llvm.fmuladd.f64(double %114, double %512, double %513)
  %515 = fptrunc double %514 to float
  %516 = getelementptr inbounds float, ptr %60, i64 %501
  %517 = load float, ptr %516, align 4, !tbaa !9
  %518 = fadd float %517, %515
  store float %518, ptr %516, align 4, !tbaa !9
  %519 = add i64 %.17621002, 1
  %exitcond1118.not = icmp eq i64 %.17621002, %475
  br i1 %exitcond1118.not, label %._crit_edge1005, label %.lr.ph1004, !llvm.loop !40

._crit_edge1005:                                  ; preds = %.lr.ph1004, %middle.block
  %.lcssa1168 = phi float [ %500, %middle.block ], [ %508, %.lr.ph1004 ]
  store float %.lcssa1168, ptr %30, align 4, !tbaa !9
  br label %520

520:                                              ; preds = %._crit_edge1005, %471
  %521 = add nsw i64 %.27141012, 1
  %.idx850 = shl i64 %521, 4
  %522 = getelementptr i8, ptr %226, i64 %.idx850
  %523 = getelementptr i8, ptr %522, i64 -8
  store i64 %476, ptr %523, align 8, !tbaa !5
  store i64 %475, ptr %522, align 8, !tbaa !5
  br label %735

524:                                              ; preds = %428
  %525 = load i64, ptr %35, align 8, !tbaa !5
  %526 = sitofp i64 %525 to float
  %527 = fpext float %526 to double
  %528 = call double @log(double noundef %527) #7
  %529 = fmul double %528, 4.000000e+00
  %530 = fmul double %529, %111
  %531 = fptrunc double %530 to float
  %532 = load i64, ptr %51, align 8, !tbaa !5
  %533 = add nsw i64 %532, %.07041070
  %534 = add nsw i64 %533, -1
  %535 = add nsw i64 %533, -2
  %536 = icmp sgt i64 %533, 2
  %537 = select i1 %536, i64 %535, i64 1
  store i64 %533, ptr %29, align 8, !tbaa !5
  %538 = load i64, ptr %7, align 8, !tbaa !5
  %.834 = call i64 @llvm.smin.i64(i64 %533, i64 %538)
  %539 = getelementptr inbounds float, ptr %69, i64 %534
  %540 = load float, ptr %539, align 4, !tbaa !9
  store float %540, ptr %44, align 4, !tbaa !9
  %541 = load i64, ptr %8, align 8, !tbaa !5
  %.not808 = icmp sgt i64 %533, %541
  br i1 %.not808, label %542, label %.thread

542:                                              ; preds = %524
  %543 = load i64, ptr %9, align 8, !tbaa !5
  %544 = icmp sgt i64 %534, %543
  br i1 %544, label %.thread, label %545

545:                                              ; preds = %542
  %546 = getelementptr inbounds float, ptr %60, i64 %534
  %547 = load float, ptr %546, align 4, !tbaa !9
  %548 = fsub float %540, %547
  %549 = fadd float %540, %547
  %550 = getelementptr inbounds i64, ptr %63, i64 %534
  %551 = load i64, ptr %550, align 8, !tbaa !5
  store i64 %551, ptr %45, align 8, !tbaa !5
  %552 = icmp eq i64 %532, 1
  br i1 %552, label %553, label %564

553:                                              ; preds = %545
  %554 = insertelement <2 x float> poison, float %548, i64 0
  %555 = insertelement <2 x float> %554, float %549, i64 1
  %556 = fcmp oge <2 x float> %555, zeroinitializer
  %557 = fneg <2 x float> %555
  %558 = select <2 x i1> %556, <2 x float> %555, <2 x float> %557
  %559 = extractelement <2 x float> %558, i64 0
  store float %559, ptr %30, align 4, !tbaa !9
  %560 = extractelement <2 x float> %558, i64 1
  %561 = fcmp oge float %559, %560
  %562 = select i1 %561, float %559, float %560
  %563 = fmul float %562, %91
  br label %567

564:                                              ; preds = %545
  %565 = getelementptr inbounds float, ptr %61, i64 %537
  %566 = load float, ptr %565, align 4, !tbaa !9
  br label %567

567:                                              ; preds = %564, %553
  %storemerge = phi float [ %566, %564 ], [ %563, %553 ]
  store float %storemerge, ptr %38, align 4, !tbaa !9
  %568 = load i64, ptr %34, align 8
  %569 = icmp eq i64 %532, %568
  br i1 %569, label %570, label %581

570:                                              ; preds = %567
  %571 = insertelement <2 x float> poison, float %548, i64 0
  %572 = insertelement <2 x float> %571, float %549, i64 1
  %573 = fcmp oge <2 x float> %572, zeroinitializer
  %574 = fneg <2 x float> %572
  %575 = select <2 x i1> %573, <2 x float> %572, <2 x float> %574
  %576 = extractelement <2 x float> %575, i64 0
  store float %576, ptr %30, align 4, !tbaa !9
  %577 = extractelement <2 x float> %575, i64 1
  %578 = fcmp oge float %576, %577
  %579 = select i1 %578, float %576, float %577
  %580 = fmul float %579, %91
  %.phi.trans.insert = getelementptr inbounds float, ptr %61, i64 %534
  %.pre1121 = load float, ptr %.phi.trans.insert, align 4, !tbaa !9
  br label %584

581:                                              ; preds = %567
  %582 = getelementptr inbounds float, ptr %61, i64 %534
  %583 = load float, ptr %582, align 4, !tbaa !9
  br label %584

584:                                              ; preds = %581, %570
  %585 = phi float [ %583, %581 ], [ %.pre1121, %570 ]
  %storemerge809 = phi float [ %583, %581 ], [ %580, %570 ]
  store float %storemerge809, ptr %39, align 4, !tbaa !9
  %586 = fcmp ole float %storemerge, %storemerge809
  %587 = select i1 %586, float %storemerge, float %storemerge809
  %or.cond836 = or i1 %552, %569
  %588 = fmul float %587, %91
  %storemerge810 = select i1 %or.cond836, float 0.000000e+00, float %588
  store float %storemerge810, ptr %50, align 4, !tbaa !9
  %589 = load i64, ptr %35, align 8, !tbaa !5
  %590 = getelementptr inbounds float, ptr %61, i64 %534
  store float %587, ptr %590, align 4, !tbaa !9
  %591 = getelementptr inbounds i64, ptr %70, i64 %534
  %592 = mul nsw i64 %534, %65
  %593 = getelementptr float, ptr %203, i64 %592
  %.idx813 = shl i64 %534, 4
  %594 = getelementptr i8, ptr %68, i64 %.idx813
  %595 = getelementptr i8, ptr %594, i64 -8
  %596 = fmul float %587, %531
  br label %.backedge

.backedge:                                        ; preds = %.backedge.backedge, %584
  %.0750 = phi float [ %548, %584 ], [ %.2752, %.backedge.backedge ]
  %.0748 = phi i64 [ 0, %584 ], [ %.0748.be, %.backedge.backedge ]
  %.4742 = phi float [ %.37411009, %584 ], [ %.5743, %.backedge.backedge ]
  %.0717 = phi float [ %549, %584 ], [ %.2719, %.backedge.backedge ]
  %.0707 = phi i64 [ 0, %584 ], [ %.0707.be, %.backedge.backedge ]
  %.0692 = phi i64 [ 0, %584 ], [ %.0692.be, %.backedge.backedge ]
  %.0689 = phi i64 [ 0, %584 ], [ %.1690, %.backedge.backedge ]
  %.0686 = phi i64 [ %589, %584 ], [ %620, %.backedge.backedge ]
  %.4 = phi float [ %.31014, %584 ], [ %.5, %.backedge.backedge ]
  %.0 = phi i64 [ 1, %584 ], [ %622, %.backedge.backedge ]
  %.not811 = icmp eq i64 %.0707, 0
  br i1 %.not811, label %605, label %597

597:                                              ; preds = %.backedge
  %598 = load i64, ptr %591, align 8, !tbaa !5
  store i64 %598, ptr %40, align 8, !tbaa !5
  %599 = load i64, ptr %209, align 8, !tbaa !5
  %600 = add nsw i64 %599, -1
  store i64 %600, ptr %49, align 8, !tbaa !5
  store float %92, ptr %30, align 4, !tbaa !9
  %601 = call i32 @slarrb_(ptr noundef nonnull %35, ptr noundef nonnull %204, ptr noundef %gep1076, ptr noundef nonnull %45, ptr noundef nonnull %45, ptr noundef nonnull @c_b5, ptr noundef nonnull %30, ptr noundef nonnull %49, ptr noundef nonnull %192, ptr noundef nonnull %210, ptr noundef nonnull %211, ptr noundef %109, ptr noundef %110, ptr noundef %5, ptr noundef nonnull %47, ptr noundef nonnull %40, ptr noundef nonnull %41) #7
  %602 = load i64, ptr %41, align 8, !tbaa !5
  %.not812 = icmp eq i64 %602, 0
  br i1 %.not812, label %603, label %.loopexit854.sink.split

603:                                              ; preds = %597
  %604 = load float, ptr %539, align 4, !tbaa !9
  store float %604, ptr %44, align 4, !tbaa !9
  store i64 0, ptr %591, align 8, !tbaa !5
  br label %605

605:                                              ; preds = %603, %.backedge
  %.1693 = phi i64 [ 1, %603 ], [ %.0692, %.backedge ]
  %606 = icmp ne i64 %.1693, 0
  %607 = xor i1 %606, true
  %608 = zext i1 %607 to i64
  store i64 %608, ptr %31, align 8, !tbaa !5
  %609 = call i32 @slar1v_(ptr noundef nonnull %35, ptr noundef nonnull @c__1, ptr noundef nonnull %35, ptr noundef nonnull %44, ptr noundef nonnull %204, ptr noundef nonnull %205, ptr noundef %212, ptr noundef %gep1076, ptr noundef %5, ptr noundef nonnull %50, ptr noundef %593, ptr noundef nonnull %31, ptr noundef nonnull %48, ptr noundef nonnull %37, ptr noundef nonnull %46, ptr noundef nonnull %591, ptr noundef %595, ptr noundef nonnull %54, ptr noundef nonnull %42, ptr noundef nonnull %55, ptr noundef %109) #7
  %610 = icmp eq i64 %.0748, 0
  %611 = load float, ptr %42, align 4
  br i1 %610, label %612, label %614

612:                                              ; preds = %605
  %613 = load float, ptr %44, align 4, !tbaa !9
  br label %618

614:                                              ; preds = %605
  %615 = fcmp olt float %611, %.4
  br i1 %615, label %616, label %618

616:                                              ; preds = %614
  %617 = load float, ptr %44, align 4, !tbaa !9
  br label %618

618:                                              ; preds = %614, %616, %612
  %.5743 = phi float [ %613, %612 ], [ %617, %616 ], [ %.4742, %614 ]
  %.5 = phi float [ %611, %612 ], [ %611, %616 ], [ %.4, %614 ]
  %619 = load i64, ptr %595, align 8, !tbaa !5
  %620 = call i64 @llvm.smin.i64(i64 %.0686, i64 %619)
  store i64 %.0, ptr %29, align 8, !tbaa !5
  %621 = load i64, ptr %594, align 8, !tbaa !5
  %622 = call i64 @llvm.smax.i64(i64 %.0, i64 %621)
  %623 = add nsw i64 %.0748, 1
  %624 = fcmp ogt float %611, %596
  br i1 %624, label %625, label %667

625:                                              ; preds = %618
  %626 = load float, ptr %55, align 4
  %627 = fcmp oge float %626, 0.000000e+00
  %628 = fneg float %626
  %629 = select i1 %627, float %626, float %628
  %630 = fpext float %629 to double
  %631 = load float, ptr %43, align 4, !tbaa !9
  %632 = fpext float %631 to double
  %633 = load float, ptr %44, align 4
  %634 = fcmp oge float %633, 0.000000e+00
  %635 = fneg float %633
  %636 = select i1 %634, float %633, float %635
  %637 = fpext float %636 to double
  %638 = fmul double %632, %637
  %639 = fcmp uge double %638, %630
  %or.cond = or i1 %606, %639
  br i1 %or.cond, label %667, label %640

640:                                              ; preds = %625
  %641 = load i64, ptr %45, align 8, !tbaa !5
  %642 = load i64, ptr %48, align 8, !tbaa !5
  %.not817 = icmp sgt i64 %641, %642
  %643 = select i1 %.not817, float %626, float %628
  %644 = fcmp ult float %643, 0.000000e+00
  br i1 %644, label %654, label %645

645:                                              ; preds = %640
  %646 = fadd float %626, %633
  %647 = fcmp ugt float %646, %.0717
  %648 = fcmp ult float %646, %.0750
  %or.cond838 = select i1 %647, i1 true, i1 %648
  br i1 %or.cond838, label %654, label %649

649:                                              ; preds = %645
  %..0750 = select i1 %.not817, float %633, float %.0750
  %.0717. = select i1 %.not817, float %.0717, float %633
  %650 = fadd float %.0717., %..0750
  %651 = fmul float %650, 5.000000e-01
  store float %651, ptr %539, align 4, !tbaa !9
  store float %646, ptr %44, align 4, !tbaa !9
  %652 = fsub float %.0717., %..0750
  %653 = fmul float %652, 5.000000e-01
  store float %653, ptr %546, align 4, !tbaa !9
  %.pre = fneg float %646
  br label %654

654:                                              ; preds = %640, %645, %649
  %.pre-phi = phi float [ %635, %640 ], [ %635, %645 ], [ %.pre, %649 ]
  %655 = phi float [ %633, %640 ], [ %633, %645 ], [ %646, %649 ]
  %.2752 = phi float [ %.0750, %640 ], [ %.0750, %645 ], [ %..0750, %649 ]
  %.2719 = phi float [ %.0717, %640 ], [ %.0717, %645 ], [ %.0717., %649 ]
  %.1708 = phi i64 [ 1, %640 ], [ 1, %645 ], [ %.0707, %649 ]
  %.1690 = phi i64 [ %.0689, %640 ], [ %.0689, %645 ], [ 1, %649 ]
  %656 = fsub float %.2719, %.2752
  %657 = fpext float %656 to double
  %658 = fcmp oge float %655, 0.000000e+00
  %659 = select i1 %658, float %655, float %.pre-phi
  %660 = fpext float %659 to double
  %661 = fmul double %632, %660
  %662 = fcmp ogt double %661, %657
  br i1 %662, label %.backedge.backedge, label %663

663:                                              ; preds = %654
  %664 = icmp slt i64 %.0748, 9
  br i1 %664, label %.backedge.backedge, label %665

.backedge.backedge:                               ; preds = %663, %654, %665
  %.0748.be = phi i64 [ %623, %663 ], [ %623, %654 ], [ 10, %665 ]
  %.0707.be = phi i64 [ %.1708, %663 ], [ %.1708, %654 ], [ 1, %665 ]
  %.0692.be = phi i64 [ 0, %663 ], [ 1, %654 ], [ 0, %665 ]
  br label %.backedge

665:                                              ; preds = %663
  %666 = icmp eq i64 %623, 10
  br i1 %666, label %.backedge.backedge, label %.loopexit854.sink.split

667:                                              ; preds = %625, %618
  %668 = icmp ne i64 %.0689, 0
  %or.cond3 = and i1 %668, %606
  %669 = fcmp ole float %.5, %611
  %or.cond840.not = select i1 %or.cond3, i1 %669, i1 false
  br i1 %or.cond840.not, label %.critedge, label %671

.critedge:                                        ; preds = %667
  store float %.5743, ptr %44, align 4, !tbaa !9
  store i64 %608, ptr %31, align 8, !tbaa !5
  %670 = call i32 @slar1v_(ptr noundef nonnull %35, ptr noundef nonnull @c__1, ptr noundef nonnull %35, ptr noundef nonnull %44, ptr noundef nonnull %204, ptr noundef nonnull %205, ptr noundef %212, ptr noundef %gep1076, ptr noundef %5, ptr noundef nonnull %50, ptr noundef %593, ptr noundef nonnull %31, ptr noundef nonnull %48, ptr noundef nonnull %37, ptr noundef nonnull %46, ptr noundef nonnull %591, ptr noundef nonnull %595, ptr noundef nonnull %54, ptr noundef nonnull %42, ptr noundef nonnull %55, ptr noundef %109) #7
  %.pre1122 = load i64, ptr %595, align 8, !tbaa !5
  %.pre1123 = load i64, ptr %594, align 8, !tbaa !5
  br label %671

671:                                              ; preds = %667, %.critedge
  %672 = phi i64 [ %621, %667 ], [ %.pre1123, %.critedge ]
  %673 = phi i64 [ %619, %667 ], [ %.pre1122, %.critedge ]
  %674 = load float, ptr %44, align 4, !tbaa !9
  store float %674, ptr %539, align 4, !tbaa !9
  %675 = add i64 %673, %175
  store i64 %675, ptr %595, align 8, !tbaa !5
  %676 = add nsw i64 %672, %175
  store i64 %676, ptr %594, align 8, !tbaa !5
  %677 = add nsw i64 %622, %175
  %678 = icmp slt i64 %620, %673
  br i1 %678, label %.loopexit852.loopexit, label %.loopexit852

.loopexit852.loopexit:                            ; preds = %671
  %679 = shl i64 %533, 2
  %680 = add i64 %679, -8
  %681 = mul i64 %65, %680
  %scevgep1112 = getelementptr i8, ptr %scevgep, i64 %681
  %682 = add i64 %.07091069, %620
  %683 = shl i64 %682, 2
  %scevgep1113 = getelementptr i8, ptr %scevgep1112, i64 %683
  %smax1114 = call i64 @llvm.smax.i64(i64 %675, i64 %682)
  %684 = add i64 %smax1114, 1
  %685 = sub i64 %684, %682
  %686 = shl nuw i64 %685, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep1113, i8 0, i64 %686, i1 false), !tbaa !9
  br label %.loopexit852

.loopexit852:                                     ; preds = %.loopexit852.loopexit, %671
  %687 = icmp sgt i64 %622, %672
  br i1 %687, label %688, label %.loopexit

688:                                              ; preds = %.loopexit852
  %689 = add i64 %672, %.07091069
  %.not820996 = icmp sgt i64 %689, %677
  br i1 %.not820996, label %.loopexit, label %.lr.ph999.preheader

.lr.ph999.preheader:                              ; preds = %688
  %690 = shl i64 %533, 2
  %691 = add i64 %690, -8
  %692 = mul i64 %65, %691
  %693 = shl i64 %689, 2
  %694 = getelementptr i8, ptr %scevgep1115, i64 %692
  %scevgep1116 = getelementptr i8, ptr %694, i64 %693
  %695 = sub i64 %622, %672
  %696 = shl i64 %695, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep1116, i8 0, i64 %696, i1 false), !tbaa !9
  br label %.loopexit

.thread:                                          ; preds = %542, %524
  %697 = fadd float %.2723, %540
  %698 = getelementptr inbounds float, ptr %59, i64 %534
  store float %697, ptr %698, align 4, !tbaa !9
  br label %733

.loopexit:                                        ; preds = %.lr.ph999.preheader, %688, %.loopexit852
  %reass.sub1085 = sub i64 %672, %673
  %699 = add i64 %reass.sub1085, 1
  store i64 %699, ptr %29, align 8, !tbaa !5
  %700 = getelementptr float, ptr %67, i64 %675
  %701 = getelementptr float, ptr %700, i64 %592
  %702 = call i32 @f2c_sscal(ptr noundef nonnull %29, ptr noundef nonnull %54, ptr noundef %701, ptr noundef nonnull @c__1) #7
  %703 = load float, ptr %44, align 4, !tbaa !9
  %704 = fadd float %.2723, %703
  %705 = getelementptr inbounds float, ptr %59, i64 %534
  store float %704, ptr %705, align 4, !tbaa !9
  %706 = icmp sgt i64 %532, 1
  br i1 %706, label %707, label %720

707:                                              ; preds = %.loopexit
  %708 = getelementptr inbounds float, ptr %61, i64 %537
  %709 = load float, ptr %708, align 4, !tbaa !9
  store float %709, ptr %30, align 4, !tbaa !9
  %710 = load float, ptr %546, align 4, !tbaa !9
  %711 = fsub float %704, %710
  %712 = getelementptr inbounds float, ptr %59, i64 %537
  %713 = load float, ptr %712, align 4, !tbaa !9
  %714 = fsub float %711, %713
  %715 = getelementptr inbounds float, ptr %60, i64 %537
  %716 = load float, ptr %715, align 4, !tbaa !9
  %717 = fsub float %714, %716
  %718 = fcmp oge float %709, %717
  %719 = select i1 %718, float %709, float %717
  store float %719, ptr %708, align 4, !tbaa !9
  br label %720

720:                                              ; preds = %707, %.loopexit
  %.not822 = icmp sgt i64 %533, %.0749.lcssa
  br i1 %.not822, label %733, label %721

721:                                              ; preds = %720
  store float %585, ptr %30, align 4, !tbaa !9
  %722 = getelementptr inbounds float, ptr %59, i64 %.834
  %723 = load float, ptr %722, align 4, !tbaa !9
  %724 = getelementptr inbounds float, ptr %60, i64 %.834
  %725 = load float, ptr %724, align 4, !tbaa !9
  %726 = fsub float %723, %725
  %727 = load float, ptr %705, align 4, !tbaa !9
  %728 = fsub float %726, %727
  %729 = load float, ptr %546, align 4, !tbaa !9
  %730 = fsub float %728, %729
  %731 = fcmp oge float %585, %730
  %732 = select i1 %731, float %585, float %730
  store float %732, ptr %590, align 4, !tbaa !9
  br label %733

733:                                              ; preds = %.thread, %720, %721
  %.6847 = phi float [ %.31014, %.thread ], [ %.5, %720 ], [ %.5, %721 ]
  %.6744845 = phi float [ %.37411009, %.thread ], [ %.5743, %720 ], [ %.5743, %721 ]
  %734 = add nsw i64 %.27261011, 1
  br label %735

735:                                              ; preds = %520, %733, %458
  %.7745 = phi float [ %.37411009, %458 ], [ %.37411009, %520 ], [ %.6744845, %733 ]
  %.3727 = phi i64 [ %461, %458 ], [ %.27261011, %520 ], [ %734, %733 ]
  %.3715 = phi i64 [ %.27141012, %458 ], [ %521, %520 ], [ %.27141012, %733 ]
  %.7 = phi float [ %.31014, %458 ], [ %.31014, %520 ], [ %.6847, %733 ]
  %736 = add nsw i64 %.37371010, 1
  store i64 %736, ptr %51, align 8, !tbaa !5
  %.pre1125 = load i64, ptr %28, align 8, !tbaa !5
  br label %737

737:                                              ; preds = %._crit_edge1127, %735
  %.pre-phi1129 = phi i64 [ %.pre1128, %._crit_edge1127 ], [ %736, %735 ]
  %738 = phi i64 [ %394, %._crit_edge1127 ], [ %.pre1125, %735 ]
  %739 = phi i64 [ %395, %._crit_edge1127 ], [ %736, %735 ]
  %.8746 = phi float [ %.37411009, %._crit_edge1127 ], [ %.7745, %735 ]
  %.4728 = phi i64 [ %.27261011, %._crit_edge1127 ], [ %.3727, %735 ]
  %.4716 = phi i64 [ %.27141012, %._crit_edge1127 ], [ %.3715, %735 ]
  %.8 = phi float [ %.31014, %._crit_edge1127 ], [ %.7, %735 ]
  %.not805.not = icmp slt i64 %.37371010, %738
  br i1 %.not805.not, label %.lr.ph1016, label %._crit_edge1017, !llvm.loop !41

._crit_edge1017:                                  ; preds = %737, %.loopexit853
  %.3741.lcssa = phi float [ %.27401030, %.loopexit853 ], [ %.8746, %737 ]
  %.2726.lcssa = phi i64 [ %.17251032, %.loopexit853 ], [ %.4728, %737 ]
  %.2714.lcssa = phi i64 [ %.17131034, %.loopexit853 ], [ %.4716, %737 ]
  %.3.lcssa = phi float [ %.21036, %.loopexit853 ], [ %.8, %737 ]
  %740 = add nuw i64 %.47331031, 1
  %exitcond1119.not = icmp eq i64 %.47331031, %.07121051
  br i1 %exitcond1119.not, label %._crit_edge1039.loopexit, label %227, !llvm.loop !42

._crit_edge1039.loopexit:                         ; preds = %._crit_edge1017
  %.pre1126 = load i64, ptr %34, align 8, !tbaa !5
  br label %._crit_edge1039

._crit_edge1039:                                  ; preds = %._crit_edge1039.loopexit, %222
  %741 = phi i64 [ %219, %222 ], [ %.pre1126, %._crit_edge1039.loopexit ]
  %.2740.lcssa = phi float [ %.17391048, %222 ], [ %.3741.lcssa, %._crit_edge1039.loopexit ]
  %.1725.lcssa = phi i64 [ %.07241049, %222 ], [ %.2726.lcssa, %._crit_edge1039.loopexit ]
  %.1722.lcssa = phi float [ %.07211050, %222 ], [ %.2723, %._crit_edge1039.loopexit ]
  %.1713.lcssa = phi i64 [ 0, %222 ], [ %.2714.lcssa, %._crit_edge1039.loopexit ]
  %.2.lcssa = phi float [ %.11055, %222 ], [ %.3.lcssa, %._crit_edge1039.loopexit ]
  %742 = add nuw nsw i64 %.06941053, 1
  %743 = icmp slt i64 %.1725.lcssa, %741
  br i1 %743, label %218, label %._crit_edge1058

._crit_edge1058:                                  ; preds = %._crit_edge1039, %._crit_edge981.thread
  %.1739.lcssa = phi float [ %.07381068, %._crit_edge981.thread ], [ %.2740.lcssa, %._crit_edge1039 ]
  %.1.lcssa = phi float [ %.06831072, %._crit_edge981.thread ], [ %.2.lcssa, %._crit_edge1039 ]
  %744 = add nuw nsw i64 %.0749.lcssa, 1
  br label %745

745:                                              ; preds = %._crit_edge964, %139, %179, %._crit_edge1058
  %.9747 = phi float [ %.07381068, %139 ], [ %.07381068, %179 ], [ %.1739.lcssa, %._crit_edge1058 ], [ %.07381068, %._crit_edge964 ]
  %.1705 = phi i64 [ %140, %139 ], [ %189, %179 ], [ %744, %._crit_edge1058 ], [ %.07041070, %._crit_edge964 ]
  %.9 = phi float [ %.06831072, %139 ], [ %.06831072, %179 ], [ %.1.lcssa, %._crit_edge1058 ], [ %.06831072, %._crit_edge964 ]
  %.1710 = add nsw i64 %122, 1
  %746 = add nuw i64 %.07601066, 1
  %exitcond1120.not = icmp eq i64 %.07601066, %102
  br i1 %exitcond1120.not, label %.loopexit854, label %120, !llvm.loop !43

.loopexit854.sink.split:                          ; preds = %218, %301, %462, %665, %597
  %.sink = phi i64 [ -3, %597 ], [ 5, %665 ], [ -2, %462 ], [ -1, %301 ], [ -2, %218 ]
  store i64 %.sink, ptr %24, align 8, !tbaa !5
  br label %.loopexit854

.loopexit854:                                     ; preds = %745, %.loopexit854.sink.split, %100
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  ret i32 0
}

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12, !14, !15}
!14 = !{!"llvm.loop.isvectorized", i32 1}
!15 = !{!"llvm.loop.unroll.runtime.disable"}
!16 = distinct !{!16, !12, !15, !14}
!17 = !{!18}
!18 = distinct !{!18, !19}
!19 = distinct !{!19, !"LVerDomain"}
!20 = !{!21}
!21 = distinct !{!21, !19}
!22 = !{!23}
!23 = distinct !{!23, !19}
!24 = !{!25, !18, !21}
!25 = distinct !{!25, !19}
!26 = !{!25}
!27 = !{!18, !21}
!28 = distinct !{!28, !12, !14, !15}
!29 = distinct !{!29, !12, !14}
!30 = distinct !{!30, !12, !14, !15}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.unroll.disable"}
!33 = distinct !{!33, !12, !14}
!34 = !{!35}
!35 = distinct !{!35, !36}
!36 = distinct !{!36, !"LVerDomain"}
!37 = !{!38}
!38 = distinct !{!38, !36}
!39 = distinct !{!39, !12, !14, !15}
!40 = distinct !{!40, !12, !14}
!41 = distinct !{!41, !12}
!42 = distinct !{!42, !12}
!43 = distinct !{!43, !12}


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