; LLVM IR from VeloxChem/VeloxChem :: src/pdft_func/PairDensityPBE_C.ll (ZN9pdftpbe_c15compute_exc_vxcEiPKdS1_PdS2_S2_)

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

; Function Attrs: mustprogress nounwind uwtable
define dso_local void @_ZN9pdftpbe_c15compute_exc_vxcEiPKdS1_PdS2_S2_(i32 noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5) #0 {
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca double, align 8
  %80 = alloca double, align 8
  %81 = alloca double, align 8
  %82 = alloca double, align 8
  %83 = alloca double, align 8
  %84 = alloca double, align 8
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca double, align 8
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca double, align 8
  %92 = alloca double, align 8
  %93 = alloca double, align 8
  %94 = alloca double, align 8
  %95 = alloca double, align 8
  %96 = alloca double, align 8
  %97 = alloca double, align 8
  %98 = alloca double, align 8
  %99 = alloca double, align 8
  %100 = alloca double, align 8
  %101 = alloca double, align 8
  %102 = alloca double, align 8
  %103 = alloca double, align 8
  %104 = alloca double, align 8
  %105 = alloca double, align 8
  %106 = alloca double, align 8
  %107 = alloca double, align 8
  %108 = alloca double, align 8
  %109 = alloca double, align 8
  %110 = alloca double, align 8
  %111 = alloca double, align 8
  %112 = alloca double, align 8
  %113 = alloca double, align 8
  %114 = alloca double, align 8
  %115 = alloca double, align 8
  %116 = alloca double, align 8
  %117 = alloca double, align 8
  %118 = alloca double, align 8
  %119 = alloca double, align 8
  %120 = alloca double, align 8
  %121 = alloca double, align 8
  %122 = alloca double, align 8
  %123 = alloca double, align 8
  %124 = alloca double, align 8
  %125 = alloca double, align 8
  %126 = alloca double, align 8
  %127 = alloca double, align 8
  %128 = alloca double, align 8
  %129 = alloca double, align 8
  %130 = alloca double, align 8
  %131 = alloca double, align 8
  %132 = alloca double, align 8
  %133 = alloca double, align 8
  %134 = alloca double, align 8
  %135 = alloca double, align 8
  %136 = alloca double, align 8
  %137 = alloca double, align 8
  %138 = alloca double, align 8
  %139 = alloca double, align 8
  %140 = alloca double, align 8
  %141 = alloca double, align 8
  %142 = alloca double, align 8
  %143 = alloca double, align 8
  store i32 %0, ptr %7, align 4, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !9
  store ptr %2, ptr %9, align 8, !tbaa !9
  store ptr %3, ptr %10, align 8, !tbaa !9
  store ptr %4, ptr %11, align 8, !tbaa !9
  store ptr %5, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  store double 0x3FB114DC32AE4A6A, ptr %13, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  store double 0x3FFB5BD61F5BE5DA, ptr %14, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  %144 = call double @pow(double noundef 0x400921FB54442D18, double noundef 0xBFD5555555555555) #5
  %145 = fmul double 0x3FED12ED0AF1A27F, %144
  store double %145, ptr %15, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  %146 = call double @cbrt(double noundef 2.000000e+00) #6
  %147 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %146, double -2.000000e+00)
  %148 = fdiv double 1.000000e+00, %147
  store double %148, ptr %16, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  %149 = call double @pow(double noundef 0x400921FB54442D18, double noundef 2.000000e+00) #5
  %150 = fdiv double 0x3FD3A37A020B8C22, %149
  store double %150, ptr %17, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  store i32 0, ptr %18, align 4, !tbaa !5
  br label %151

151:                                              ; preds = %1148, %6
  %152 = load i32, ptr %18, align 4, !tbaa !5
  %153 = load i32, ptr %7, align 4, !tbaa !5
  %154 = icmp slt i32 %152, %153
  br i1 %154, label %156, label %155

155:                                              ; preds = %151
  store i32 2, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  br label %1151

156:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  %157 = load ptr, ptr %8, align 8, !tbaa !9
  %158 = load i32, ptr %18, align 4, !tbaa !5
  %159 = mul nsw i32 2, %158
  %160 = add nsw i32 %159, 0
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds double, ptr %157, i64 %161
  %163 = load double, ptr %162, align 8, !tbaa !11
  store double %163, ptr %20, align 8, !tbaa !11
  %164 = load double, ptr %20, align 8, !tbaa !11
  %165 = fcmp olt double %164, 0x3C9CD2B297D889BC
  br i1 %165, label %166, label %201

166:                                              ; preds = %156
  %167 = load ptr, ptr %10, align 8, !tbaa !9
  %168 = load i32, ptr %18, align 4, !tbaa !5
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds double, ptr %167, i64 %169
  store double 0.000000e+00, ptr %170, align 8, !tbaa !11
  %171 = load ptr, ptr %11, align 8, !tbaa !9
  %172 = load i32, ptr %18, align 4, !tbaa !5
  %173 = mul nsw i32 2, %172
  %174 = add nsw i32 %173, 0
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds double, ptr %171, i64 %175
  store double 0.000000e+00, ptr %176, align 8, !tbaa !11
  %177 = load ptr, ptr %11, align 8, !tbaa !9
  %178 = load i32, ptr %18, align 4, !tbaa !5
  %179 = mul nsw i32 2, %178
  %180 = add nsw i32 %179, 1
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds double, ptr %177, i64 %181
  store double 0.000000e+00, ptr %182, align 8, !tbaa !11
  %183 = load ptr, ptr %12, align 8, !tbaa !9
  %184 = load i32, ptr %18, align 4, !tbaa !5
  %185 = mul nsw i32 3, %184
  %186 = add nsw i32 %185, 0
  %187 = sext i32 %186 to i64
  %188 = getelementptr inbounds double, ptr %183, i64 %187
  store double 0.000000e+00, ptr %188, align 8, !tbaa !11
  %189 = load ptr, ptr %12, align 8, !tbaa !9
  %190 = load i32, ptr %18, align 4, !tbaa !5
  %191 = mul nsw i32 3, %190
  %192 = add nsw i32 %191, 1
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds double, ptr %189, i64 %193
  store double 0.000000e+00, ptr %194, align 8, !tbaa !11
  %195 = load ptr, ptr %12, align 8, !tbaa !9
  %196 = load i32, ptr %18, align 4, !tbaa !5
  %197 = mul nsw i32 3, %196
  %198 = add nsw i32 %197, 2
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds double, ptr %195, i64 %199
  store double 0.000000e+00, ptr %200, align 8, !tbaa !11
  store i32 4, ptr %19, align 4
  br label %1145

201:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %202 = load ptr, ptr %8, align 8, !tbaa !9
  %203 = load i32, ptr %18, align 4, !tbaa !5
  %204 = mul nsw i32 2, %203
  %205 = add nsw i32 %204, 1
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds double, ptr %202, i64 %206
  %208 = load double, ptr %207, align 8, !tbaa !11
  store double %208, ptr %21, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %209 = load ptr, ptr %9, align 8, !tbaa !9
  %210 = load i32, ptr %18, align 4, !tbaa !5
  %211 = mul nsw i32 3, %210
  %212 = add nsw i32 %211, 0
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds double, ptr %209, i64 %213
  %215 = load double, ptr %214, align 8, !tbaa !11
  store double %215, ptr %22, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %216 = load double, ptr %21, align 8, !tbaa !11
  %217 = fmul double -2.000000e+00, %216
  %218 = load double, ptr %20, align 8, !tbaa !11
  %219 = call double @pow(double noundef %218, double noundef 2.000000e+00) #5
  %220 = fdiv double %217, %219
  store double %220, ptr %23, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %221 = load double, ptr %20, align 8, !tbaa !11
  %222 = call double @pow(double noundef %221, double noundef 2.000000e+00) #5
  %223 = fdiv double -2.000000e+00, %222
  store double %223, ptr %24, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  %224 = load double, ptr %21, align 8, !tbaa !11
  %225 = fmul double 4.000000e+00, %224
  %226 = load double, ptr %20, align 8, !tbaa !11
  %227 = call double @pow(double noundef %226, double noundef 3.000000e+00) #5
  %228 = fdiv double %225, %227
  store double %228, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %229 = load double, ptr %23, align 8, !tbaa !11
  %230 = call double @pow(double noundef %229, double noundef 2.000000e+00) #5
  store double %230, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  %231 = load double, ptr %23, align 8, !tbaa !11
  %232 = fmul double 2.000000e+00, %231
  store double %232, ptr %27, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  %233 = load double, ptr %24, align 8, !tbaa !11
  %234 = load double, ptr %27, align 8, !tbaa !11
  %235 = fmul double %233, %234
  store double %235, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  %236 = load double, ptr %25, align 8, !tbaa !11
  %237 = load double, ptr %27, align 8, !tbaa !11
  %238 = fmul double %236, %237
  store double %238, ptr %29, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  %239 = load double, ptr %15, align 8, !tbaa !11
  %240 = load double, ptr %20, align 8, !tbaa !11
  %241 = call double @cbrt(double noundef %240) #6
  %242 = fdiv double %239, %241
  store double %242, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  %243 = load double, ptr %15, align 8, !tbaa !11
  %244 = fmul double 0xBFD5555555555555, %243
  %245 = load double, ptr %20, align 8, !tbaa !11
  %246 = call double @pow(double noundef %245, double noundef 0x3FF5555555555555) #5
  %247 = fdiv double %244, %246
  store double %247, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %248 = load double, ptr %30, align 8, !tbaa !11
  %249 = call double @pow(double noundef %248, double noundef 1.500000e+00) #5
  %250 = load double, ptr %30, align 8, !tbaa !11
  %251 = call double @sqrt(double noundef %250) #5
  %252 = fmul double 0x401E61FF2E48E8A7, %251
  %253 = call double @llvm.fmuladd.f64(double 1.638200e+00, double %249, double %252)
  %254 = load double, ptr %30, align 8, !tbaa !11
  %255 = call double @pow(double noundef %254, double noundef 2.000000e+00) #5
  %256 = call double @llvm.fmuladd.f64(double 4.929400e-01, double %255, double %253)
  %257 = load double, ptr %30, align 8, !tbaa !11
  %258 = call double @llvm.fmuladd.f64(double 3.587600e+00, double %257, double %256)
  store double %258, ptr %32, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %259 = load double, ptr %31, align 8, !tbaa !11
  %260 = load double, ptr %30, align 8, !tbaa !11
  %261 = call double @sqrt(double noundef %260) #5
  %262 = load double, ptr %30, align 8, !tbaa !11
  %263 = fmul double 0x3FEF8C5436B8F9B1, %262
  %264 = call double @llvm.fmuladd.f64(double 2.457300e+00, double %261, double %263)
  %265 = fadd double %264, 3.587600e+00
  %266 = load double, ptr %30, align 8, !tbaa !11
  %267 = call double @sqrt(double noundef %266) #5
  %268 = fdiv double 3.797850e+00, %267
  %269 = fadd double %265, %268
  %270 = fmul double %259, %269
  store double %270, ptr %33, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  %271 = load double, ptr %30, align 8, !tbaa !11
  %272 = call double @llvm.fmuladd.f64(double 2.137000e-01, double %271, double 1.000000e+00)
  %273 = fmul double -6.218200e-02, %272
  %274 = load double, ptr %32, align 8, !tbaa !11
  %275 = fdiv double 0x403014F27053A807, %274
  %276 = fadd double 1.000000e+00, %275
  %277 = call double @log(double noundef %276) #5
  %278 = fmul double %273, %277
  store double %278, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  %279 = load double, ptr %33, align 8, !tbaa !11
  %280 = fmul double 0x3FEFFFFFFFFFFFFF, %279
  %281 = load double, ptr %30, align 8, !tbaa !11
  %282 = call double @llvm.fmuladd.f64(double 2.137000e-01, double %281, double 1.000000e+00)
  %283 = fmul double %280, %282
  %284 = load double, ptr %32, align 8, !tbaa !11
  %285 = call double @pow(double noundef %284, double noundef 2.000000e+00) #5
  %286 = load double, ptr %32, align 8, !tbaa !11
  %287 = fdiv double 0x403014F27053A807, %286
  %288 = fadd double 1.000000e+00, %287
  %289 = fmul double %285, %288
  %290 = fdiv double %283, %289
  %291 = load double, ptr %31, align 8, !tbaa !11
  %292 = fmul double 0x3F8B36E48C94CAE9, %291
  %293 = load double, ptr %32, align 8, !tbaa !11
  %294 = fdiv double 0x403014F27053A807, %293
  %295 = fadd double 1.000000e+00, %294
  %296 = call double @log(double noundef %295) #5
  %297 = fneg double %292
  %298 = call double @llvm.fmuladd.f64(double %297, double %296, double %290)
  store double %298, ptr %35, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  %299 = load double, ptr %34, align 8, !tbaa !11
  store double %299, ptr %36, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  %300 = load double, ptr %35, align 8, !tbaa !11
  store double %300, ptr %37, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  %301 = load double, ptr %30, align 8, !tbaa !11
  %302 = call double @pow(double noundef %301, double noundef 1.500000e+00) #5
  %303 = load double, ptr %30, align 8, !tbaa !11
  %304 = call double @sqrt(double noundef %303) #5
  %305 = fmul double 1.411890e+01, %304
  %306 = call double @llvm.fmuladd.f64(double 3.366200e+00, double %302, double %305)
  %307 = load double, ptr %30, align 8, !tbaa !11
  %308 = call double @pow(double noundef %307, double noundef 2.000000e+00) #5
  %309 = call double @llvm.fmuladd.f64(double 6.251700e-01, double %308, double %306)
  %310 = load double, ptr %30, align 8, !tbaa !11
  %311 = call double @llvm.fmuladd.f64(double 6.197700e+00, double %310, double %309)
  store double %311, ptr %38, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  %312 = load double, ptr %31, align 8, !tbaa !11
  %313 = load double, ptr %30, align 8, !tbaa !11
  %314 = call double @sqrt(double noundef %313) #5
  %315 = load double, ptr %30, align 8, !tbaa !11
  %316 = fmul double 1.250340e+00, %315
  %317 = call double @llvm.fmuladd.f64(double 0x4014327BB2FEC56E, double %314, double %316)
  %318 = fadd double %317, 6.197700e+00
  %319 = load double, ptr %30, align 8, !tbaa !11
  %320 = call double @sqrt(double noundef %319) #5
  %321 = fdiv double 7.059450e+00, %320
  %322 = fadd double %318, %321
  %323 = fmul double %312, %322
  store double %323, ptr %39, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  %324 = load double, ptr %30, align 8, !tbaa !11
  %325 = call double @llvm.fmuladd.f64(double 2.054800e-01, double %324, double 1.000000e+00)
  %326 = fmul double -3.109000e-02, %325
  %327 = load double, ptr %38, align 8, !tbaa !11
  %328 = fdiv double 0x40401514569F93F8, %327
  %329 = fadd double 1.000000e+00, %328
  %330 = call double @log(double noundef %329) #5
  %331 = fmul double %326, %330
  store double %331, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  %332 = load double, ptr %39, align 8, !tbaa !11
  %333 = fmul double 1.000000e+00, %332
  %334 = load double, ptr %30, align 8, !tbaa !11
  %335 = call double @llvm.fmuladd.f64(double 2.054800e-01, double %334, double 1.000000e+00)
  %336 = fmul double %333, %335
  %337 = load double, ptr %38, align 8, !tbaa !11
  %338 = call double @pow(double noundef %337, double noundef 2.000000e+00) #5
  %339 = load double, ptr %38, align 8, !tbaa !11
  %340 = fdiv double 0x40401514569F93F8, %339
  %341 = fadd double 1.000000e+00, %340
  %342 = fmul double %338, %341
  %343 = fdiv double %336, %342
  %344 = load double, ptr %31, align 8, !tbaa !11
  %345 = fmul double 0x3F7A2AB1DF7F8FAA, %344
  %346 = load double, ptr %38, align 8, !tbaa !11
  %347 = fdiv double 0x40401514569F93F8, %346
  %348 = fadd double 1.000000e+00, %347
  %349 = call double @log(double noundef %348) #5
  %350 = fneg double %345
  %351 = call double @llvm.fmuladd.f64(double %350, double %349, double %343)
  store double %351, ptr %41, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  %352 = load double, ptr %40, align 8, !tbaa !11
  store double %352, ptr %42, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  %353 = load double, ptr %41, align 8, !tbaa !11
  store double %353, ptr %43, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  %354 = load double, ptr %30, align 8, !tbaa !11
  %355 = call double @pow(double noundef %354, double noundef 1.500000e+00) #5
  %356 = load double, ptr %30, align 8, !tbaa !11
  %357 = call double @sqrt(double noundef %356) #5
  %358 = fmul double 1.035700e+01, %357
  %359 = call double @llvm.fmuladd.f64(double 8.802600e-01, double %355, double %358)
  %360 = load double, ptr %30, align 8, !tbaa !11
  %361 = call double @pow(double noundef %360, double noundef 2.000000e+00) #5
  %362 = call double @llvm.fmuladd.f64(double 4.967100e-01, double %361, double %359)
  %363 = load double, ptr %30, align 8, !tbaa !11
  %364 = call double @llvm.fmuladd.f64(double 3.623100e+00, double %363, double %362)
  store double %364, ptr %44, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  %365 = load double, ptr %31, align 8, !tbaa !11
  %366 = load double, ptr %30, align 8, !tbaa !11
  %367 = call double @sqrt(double noundef %366) #5
  %368 = load double, ptr %30, align 8, !tbaa !11
  %369 = fmul double 0x3FEFCA18BD66277C, %368
  %370 = call double @llvm.fmuladd.f64(double 0x3FF5205143BF7272, double %367, double %369)
  %371 = fadd double %370, 3.623100e+00
  %372 = load double, ptr %30, align 8, !tbaa !11
  %373 = call double @sqrt(double noundef %372) #5
  %374 = fdiv double 5.178500e+00, %373
  %375 = fadd double %371, %374
  %376 = fmul double %365, %375
  store double %376, ptr %45, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  %377 = load double, ptr %30, align 8, !tbaa !11
  %378 = call double @llvm.fmuladd.f64(double 1.112500e-01, double %377, double 1.000000e+00)
  %379 = fmul double -3.377400e-02, %378
  %380 = load double, ptr %44, align 8, !tbaa !11
  %381 = fdiv double 0x403D9BCB8C3DCA5E, %380
  %382 = fadd double 1.000000e+00, %381
  %383 = call double @log(double noundef %382) #5
  %384 = fmul double %379, %383
  store double %384, ptr %46, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  %385 = load double, ptr %45, align 8, !tbaa !11
  %386 = fmul double 1.000000e+00, %385
  %387 = load double, ptr %30, align 8, !tbaa !11
  %388 = call double @llvm.fmuladd.f64(double 1.112500e-01, double %387, double 1.000000e+00)
  %389 = fmul double %386, %388
  %390 = load double, ptr %44, align 8, !tbaa !11
  %391 = call double @pow(double noundef %390, double noundef 2.000000e+00) #5
  %392 = load double, ptr %44, align 8, !tbaa !11
  %393 = fdiv double 0x403D9BCB8C3DCA5E, %392
  %394 = fadd double 1.000000e+00, %393
  %395 = fmul double %391, %394
  %396 = fdiv double %389, %395
  %397 = load double, ptr %31, align 8, !tbaa !11
  %398 = fmul double 0x3F6EC7BFF29EC37A, %397
  %399 = load double, ptr %44, align 8, !tbaa !11
  %400 = fdiv double 0x403D9BCB8C3DCA5E, %399
  %401 = fadd double 1.000000e+00, %400
  %402 = call double @log(double noundef %401) #5
  %403 = fneg double %398
  %404 = call double @llvm.fmuladd.f64(double %403, double %402, double %396)
  store double %404, ptr %47, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  %405 = load double, ptr %46, align 8, !tbaa !11
  store double %405, ptr %48, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  %406 = load double, ptr %47, align 8, !tbaa !11
  store double %406, ptr %49, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  store double 0.000000e+00, ptr %50, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  store double 0.000000e+00, ptr %51, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  store double 0.000000e+00, ptr %52, align 8, !tbaa !11
  %407 = load double, ptr %21, align 8, !tbaa !11
  %408 = fcmp olt double %407, 0xBC9CD2B297D889BC
  br i1 %408, label %409, label %465

409:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  %410 = load double, ptr %21, align 8, !tbaa !11
  %411 = fneg double %410
  %412 = call double @sqrt(double noundef %411) #5
  %413 = fmul double 0x3FF6A09E667F3BCD, %412
  %414 = load double, ptr %20, align 8, !tbaa !11
  %415 = fdiv double %413, %414
  store double %415, ptr %53, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  %416 = load double, ptr %21, align 8, !tbaa !11
  %417 = fneg double %416
  %418 = call double @sqrt(double noundef %417) #5
  %419 = fmul double 0x3FE6A09E667F3BCD, %418
  %420 = load double, ptr %20, align 8, !tbaa !11
  %421 = load double, ptr %21, align 8, !tbaa !11
  %422 = fmul double %420, %421
  %423 = fdiv double %419, %422
  store double %423, ptr %54, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #5
  %424 = load double, ptr %21, align 8, !tbaa !11
  %425 = fneg double %424
  %426 = call double @sqrt(double noundef %425) #5
  %427 = fmul double 0xBFF6A09E667F3BCD, %426
  %428 = load double, ptr %20, align 8, !tbaa !11
  %429 = call double @pow(double noundef %428, double noundef 2.000000e+00) #5
  %430 = fdiv double %427, %429
  store double %430, ptr %55, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #5
  store double 0.000000e+00, ptr %56, align 8, !tbaa !11
  %431 = load double, ptr %53, align 8, !tbaa !11
  %432 = fsub double 1.000000e+00, %431
  %433 = fcmp ogt double %432, 0x3C9CD2B297D889BC
  br i1 %433, label %434, label %450

434:                                              ; preds = %409
  %435 = load double, ptr %53, align 8, !tbaa !11
  %436 = fsub double 1.000000e+00, %435
  %437 = call double @pow(double noundef %436, double noundef 0x3FF5555555555555) #5
  %438 = load double, ptr %53, align 8, !tbaa !11
  %439 = fadd double %438, 1.000000e+00
  %440 = call double @pow(double noundef %439, double noundef 0x3FF5555555555555) #5
  %441 = fadd double %437, %440
  store double %441, ptr %50, align 8, !tbaa !11
  %442 = load double, ptr %53, align 8, !tbaa !11
  %443 = fsub double 1.000000e+00, %442
  %444 = call double @cbrt(double noundef %443) #6
  %445 = load double, ptr %53, align 8, !tbaa !11
  %446 = fadd double %445, 1.000000e+00
  %447 = call double @cbrt(double noundef %446) #6
  %448 = fmul double 0x3FF5555555555555, %447
  %449 = call double @llvm.fmuladd.f64(double 0xBFF5555555555555, double %444, double %448)
  store double %449, ptr %56, align 8, !tbaa !11
  br label %458

450:                                              ; preds = %409
  %451 = load double, ptr %53, align 8, !tbaa !11
  %452 = fadd double %451, 1.000000e+00
  %453 = call double @pow(double noundef %452, double noundef 0x3FF5555555555555) #5
  store double %453, ptr %50, align 8, !tbaa !11
  %454 = load double, ptr %53, align 8, !tbaa !11
  %455 = fadd double %454, 1.000000e+00
  %456 = call double @cbrt(double noundef %455) #6
  %457 = fmul double 0x3FF5555555555555, %456
  store double %457, ptr %56, align 8, !tbaa !11
  br label %458

458:                                              ; preds = %450, %434
  %459 = load double, ptr %56, align 8, !tbaa !11
  %460 = load double, ptr %54, align 8, !tbaa !11
  %461 = fmul double %459, %460
  store double %461, ptr %52, align 8, !tbaa !11
  %462 = load double, ptr %56, align 8, !tbaa !11
  %463 = load double, ptr %55, align 8, !tbaa !11
  %464 = fmul double %462, %463
  store double %464, ptr %51, align 8, !tbaa !11
  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
  br label %552

465:                                              ; preds = %201
  %466 = load double, ptr %21, align 8, !tbaa !11
  %467 = fcmp olt double %466, 0x3C9CD2B297D889BC
  br i1 %467, label %468, label %483

468:                                              ; preds = %465
  %469 = load double, ptr %23, align 8, !tbaa !11
  %470 = call double @pow(double noundef %469, double noundef 2.000000e+00) #5
  %471 = load double, ptr %23, align 8, !tbaa !11
  %472 = fmul double 0x3FDC71C71C71C71C, %471
  %473 = call double @llvm.fmuladd.f64(double 0x3FA511E8D2B3183B, double %470, double %472)
  %474 = fadd double %473, 2.000000e+00
  store double %474, ptr %50, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  %475 = load double, ptr %23, align 8, !tbaa !11
  %476 = call double @llvm.fmuladd.f64(double 0x3FB511E8D2B3183B, double %475, double 0x3FDC71C71C71C71C)
  store double %476, ptr %57, align 8, !tbaa !11
  %477 = load double, ptr %57, align 8, !tbaa !11
  %478 = load double, ptr %24, align 8, !tbaa !11
  %479 = fmul double %477, %478
  store double %479, ptr %52, align 8, !tbaa !11
  %480 = load double, ptr %57, align 8, !tbaa !11
  %481 = load double, ptr %25, align 8, !tbaa !11
  %482 = fmul double %480, %481
  store double %482, ptr %51, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  br label %551

483:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  %484 = load double, ptr %21, align 8, !tbaa !11
  %485 = call double @sqrt(double noundef %484) #5
  %486 = fmul double 0x3FF6A09E667F3BCD, %485
  %487 = load double, ptr %20, align 8, !tbaa !11
  %488 = fdiv double %486, %487
  store double %488, ptr %58, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  %489 = load double, ptr %20, align 8, !tbaa !11
  %490 = load double, ptr %21, align 8, !tbaa !11
  %491 = call double @sqrt(double noundef %490) #5
  %492 = fmul double %489, %491
  %493 = fdiv double 0x3FE6A09E667F3BCD, %492
  store double %493, ptr %59, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #5
  %494 = load double, ptr %21, align 8, !tbaa !11
  %495 = call double @sqrt(double noundef %494) #5
  %496 = fmul double 0xBFF6A09E667F3BCD, %495
  %497 = load double, ptr %20, align 8, !tbaa !11
  %498 = call double @pow(double noundef %497, double noundef 2.000000e+00) #5
  %499 = fdiv double %496, %498
  store double %499, ptr %60, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #5
  %500 = load double, ptr %58, align 8, !tbaa !11
  %501 = call double @atan(double noundef %500) #5
  %502 = fmul double 0x3FF5555555555555, %501
  store double %502, ptr %61, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #5
  %503 = load double, ptr %58, align 8, !tbaa !11
  %504 = call double @pow(double noundef %503, double noundef 2.000000e+00) #5
  %505 = fadd double %504, 1.000000e+00
  %506 = fdiv double 0x3FF5555555555555, %505
  store double %506, ptr %62, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  %507 = load double, ptr %59, align 8, !tbaa !11
  %508 = load double, ptr %62, align 8, !tbaa !11
  %509 = fmul double %507, %508
  store double %509, ptr %63, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  %510 = load double, ptr %60, align 8, !tbaa !11
  %511 = load double, ptr %62, align 8, !tbaa !11
  %512 = fmul double %510, %511
  store double %512, ptr %64, align 8, !tbaa !11
  %513 = load double, ptr %58, align 8, !tbaa !11
  %514 = call double @pow(double noundef %513, double noundef 2.000000e+00) #5
  %515 = fadd double %514, 1.000000e+00
  %516 = call double @pow(double noundef %515, double noundef 0x3FE5555555555555) #5
  %517 = fmul double 2.000000e+00, %516
  %518 = load double, ptr %61, align 8, !tbaa !11
  %519 = call double @cos(double noundef %518) #5
  %520 = fmul double %517, %519
  store double %520, ptr %50, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  %521 = load double, ptr %58, align 8, !tbaa !11
  %522 = call double @pow(double noundef %521, double noundef 2.000000e+00) #5
  %523 = fadd double %522, 1.000000e+00
  %524 = call double @pow(double noundef %523, double noundef 0x3FE5555555555555) #5
  %525 = fmul double -2.000000e+00, %524
  %526 = load double, ptr %61, align 8, !tbaa !11
  %527 = call double @sin(double noundef %526) #5
  %528 = fmul double %525, %527
  store double %528, ptr %65, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  %529 = load double, ptr %58, align 8, !tbaa !11
  %530 = fmul double 0x4005555555555555, %529
  %531 = load double, ptr %61, align 8, !tbaa !11
  %532 = call double @cos(double noundef %531) #5
  %533 = fmul double %530, %532
  %534 = load double, ptr %58, align 8, !tbaa !11
  %535 = call double @pow(double noundef %534, double noundef 2.000000e+00) #5
  %536 = fadd double %535, 1.000000e+00
  %537 = call double @cbrt(double noundef %536) #6
  %538 = fdiv double %533, %537
  store double %538, ptr %66, align 8, !tbaa !11
  %539 = load double, ptr %59, align 8, !tbaa !11
  %540 = load double, ptr %66, align 8, !tbaa !11
  %541 = load double, ptr %65, align 8, !tbaa !11
  %542 = load double, ptr %63, align 8, !tbaa !11
  %543 = fmul double %541, %542
  %544 = call double @llvm.fmuladd.f64(double %539, double %540, double %543)
  store double %544, ptr %52, align 8, !tbaa !11
  %545 = load double, ptr %60, align 8, !tbaa !11
  %546 = load double, ptr %66, align 8, !tbaa !11
  %547 = load double, ptr %65, align 8, !tbaa !11
  %548 = load double, ptr %64, align 8, !tbaa !11
  %549 = fmul double %547, %548
  %550 = call double @llvm.fmuladd.f64(double %545, double %546, double %549)
  store double %550, ptr %51, align 8, !tbaa !11
  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 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  br label %551

551:                                              ; preds = %483, %468
  br label %552

552:                                              ; preds = %551, %458
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  %553 = load double, ptr %16, align 8, !tbaa !11
  %554 = load double, ptr %26, align 8, !tbaa !11
  %555 = fmul double %553, %554
  %556 = load double, ptr %50, align 8, !tbaa !11
  %557 = fsub double %556, 2.000000e+00
  %558 = fmul double %555, %557
  %559 = load double, ptr %36, align 8, !tbaa !11
  %560 = fneg double %559
  %561 = load double, ptr %42, align 8, !tbaa !11
  %562 = fadd double %560, %561
  %563 = load double, ptr %48, align 8, !tbaa !11
  %564 = load double, ptr %14, align 8, !tbaa !11
  %565 = fdiv double %563, %564
  %566 = fadd double %562, %565
  %567 = load double, ptr %16, align 8, !tbaa !11
  %568 = load double, ptr %48, align 8, !tbaa !11
  %569 = fmul double %567, %568
  %570 = load double, ptr %50, align 8, !tbaa !11
  %571 = fsub double %570, 2.000000e+00
  %572 = fmul double %569, %571
  %573 = load double, ptr %14, align 8, !tbaa !11
  %574 = fdiv double %572, %573
  %575 = fneg double %574
  %576 = call double @llvm.fmuladd.f64(double %558, double %566, double %575)
  %577 = load double, ptr %36, align 8, !tbaa !11
  %578 = fadd double %576, %577
  store double %578, ptr %67, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  %579 = load double, ptr %16, align 8, !tbaa !11
  %580 = load double, ptr %50, align 8, !tbaa !11
  %581 = fsub double %580, 2.000000e+00
  %582 = fmul double %579, %581
  %583 = load double, ptr %36, align 8, !tbaa !11
  %584 = fneg double %583
  %585 = load double, ptr %42, align 8, !tbaa !11
  %586 = fadd double %584, %585
  %587 = load double, ptr %48, align 8, !tbaa !11
  %588 = load double, ptr %14, align 8, !tbaa !11
  %589 = fdiv double %587, %588
  %590 = fadd double %586, %589
  %591 = fmul double %582, %590
  store double %591, ptr %68, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  %592 = load double, ptr %16, align 8, !tbaa !11
  %593 = load double, ptr %26, align 8, !tbaa !11
  %594 = fmul double %592, %593
  %595 = load double, ptr %36, align 8, !tbaa !11
  %596 = fneg double %595
  %597 = load double, ptr %42, align 8, !tbaa !11
  %598 = fadd double %596, %597
  %599 = load double, ptr %48, align 8, !tbaa !11
  %600 = load double, ptr %14, align 8, !tbaa !11
  %601 = fdiv double %599, %600
  %602 = fadd double %598, %601
  %603 = load double, ptr %16, align 8, !tbaa !11
  %604 = load double, ptr %48, align 8, !tbaa !11
  %605 = fmul double %603, %604
  %606 = load double, ptr %14, align 8, !tbaa !11
  %607 = fdiv double %605, %606
  %608 = fneg double %607
  %609 = call double @llvm.fmuladd.f64(double %594, double %602, double %608)
  store double %609, ptr %69, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  %610 = load double, ptr %69, align 8, !tbaa !11
  %611 = load double, ptr %52, align 8, !tbaa !11
  %612 = load double, ptr %68, align 8, !tbaa !11
  %613 = load double, ptr %28, align 8, !tbaa !11
  %614 = fmul double %612, %613
  %615 = call double @llvm.fmuladd.f64(double %610, double %611, double %614)
  store double %615, ptr %70, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  %616 = load double, ptr %69, align 8, !tbaa !11
  %617 = load double, ptr %51, align 8, !tbaa !11
  %618 = load double, ptr %68, align 8, !tbaa !11
  %619 = load double, ptr %29, align 8, !tbaa !11
  %620 = fmul double %618, %619
  %621 = call double @llvm.fmuladd.f64(double %616, double %617, double %620)
  %622 = load double, ptr %37, align 8, !tbaa !11
  %623 = load double, ptr %16, align 8, !tbaa !11
  %624 = fneg double %623
  %625 = load double, ptr %26, align 8, !tbaa !11
  %626 = fmul double %624, %625
  %627 = load double, ptr %50, align 8, !tbaa !11
  %628 = fsub double %627, 2.000000e+00
  %629 = call double @llvm.fmuladd.f64(double %626, double %628, double 1.000000e+00)
  %630 = call double @llvm.fmuladd.f64(double %622, double %629, double %621)
  %631 = load double, ptr %43, align 8, !tbaa !11
  %632 = load double, ptr %16, align 8, !tbaa !11
  %633 = fmul double %631, %632
  %634 = load double, ptr %26, align 8, !tbaa !11
  %635 = fmul double %633, %634
  %636 = load double, ptr %50, align 8, !tbaa !11
  %637 = fsub double %636, 2.000000e+00
  %638 = call double @llvm.fmuladd.f64(double %635, double %637, double %630)
  %639 = load double, ptr %49, align 8, !tbaa !11
  %640 = load double, ptr %16, align 8, !tbaa !11
  %641 = load double, ptr %26, align 8, !tbaa !11
  %642 = fmul double %640, %641
  %643 = load double, ptr %50, align 8, !tbaa !11
  %644 = fsub double %643, 2.000000e+00
  %645 = fmul double %642, %644
  %646 = load double, ptr %14, align 8, !tbaa !11
  %647 = fdiv double %645, %646
  %648 = load double, ptr %16, align 8, !tbaa !11
  %649 = load double, ptr %50, align 8, !tbaa !11
  %650 = fsub double %649, 2.000000e+00
  %651 = fmul double %648, %650
  %652 = load double, ptr %14, align 8, !tbaa !11
  %653 = fdiv double %651, %652
  %654 = fsub double %647, %653
  %655 = call double @llvm.fmuladd.f64(double %639, double %654, double %638)
  store double %655, ptr %71, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  %656 = load double, ptr %67, align 8, !tbaa !11
  store double %656, ptr %72, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  store double 1.000000e+00, ptr %73, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #5
  %657 = load double, ptr %73, align 8, !tbaa !11
  %658 = load double, ptr %70, align 8, !tbaa !11
  %659 = fmul double %657, %658
  store double %659, ptr %74, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  %660 = load double, ptr %73, align 8, !tbaa !11
  %661 = load double, ptr %71, align 8, !tbaa !11
  %662 = fmul double %660, %661
  store double %662, ptr %75, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  store double 0.000000e+00, ptr %76, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  store double 0.000000e+00, ptr %77, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #5
  store double 0.000000e+00, ptr %78, align 8, !tbaa !11
  %663 = load double, ptr %21, align 8, !tbaa !11
  %664 = fcmp olt double %663, 0xBC9CD2B297D889BC
  br i1 %664, label %665, label %722

665:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  %666 = load double, ptr %21, align 8, !tbaa !11
  %667 = fneg double %666
  %668 = call double @sqrt(double noundef %667) #5
  %669 = fmul double 0x3FF6A09E667F3BCD, %668
  %670 = load double, ptr %20, align 8, !tbaa !11
  %671 = fdiv double %669, %670
  store double %671, ptr %79, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  %672 = load double, ptr %21, align 8, !tbaa !11
  %673 = fneg double %672
  %674 = call double @sqrt(double noundef %673) #5
  %675 = fmul double 0x3FE6A09E667F3BCD, %674
  %676 = load double, ptr %20, align 8, !tbaa !11
  %677 = load double, ptr %21, align 8, !tbaa !11
  %678 = fmul double %676, %677
  %679 = fdiv double %675, %678
  store double %679, ptr %80, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  %680 = load double, ptr %21, align 8, !tbaa !11
  %681 = fneg double %680
  %682 = call double @sqrt(double noundef %681) #5
  %683 = fmul double 0xBFF6A09E667F3BCD, %682
  %684 = load double, ptr %20, align 8, !tbaa !11
  %685 = call double @pow(double noundef %684, double noundef 2.000000e+00) #5
  %686 = fdiv double %683, %685
  store double %686, ptr %81, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  store double 0.000000e+00, ptr %82, align 8, !tbaa !11
  %687 = load double, ptr %79, align 8, !tbaa !11
  %688 = fsub double 1.000000e+00, %687
  %689 = fcmp ogt double %688, 0x3C9CD2B297D889BC
  br i1 %689, label %690, label %707

690:                                              ; preds = %665
  %691 = load double, ptr %79, align 8, !tbaa !11
  %692 = fsub double 1.000000e+00, %691
  %693 = call double @pow(double noundef %692, double noundef 0x3FE5555555555555) #5
  %694 = load double, ptr %79, align 8, !tbaa !11
  %695 = fadd double %694, 1.000000e+00
  %696 = call double @pow(double noundef %695, double noundef 0x3FE5555555555555) #5
  %697 = fadd double %693, %696
  store double %697, ptr %76, align 8, !tbaa !11
  %698 = load double, ptr %79, align 8, !tbaa !11
  %699 = fadd double %698, 1.000000e+00
  %700 = call double @cbrt(double noundef %699) #6
  %701 = fdiv double 0x3FE5555555555555, %700
  %702 = load double, ptr %79, align 8, !tbaa !11
  %703 = fsub double 1.000000e+00, %702
  %704 = call double @cbrt(double noundef %703) #6
  %705 = fdiv double 0x3FE5555555555555, %704
  %706 = fsub double %701, %705
  store double %706, ptr %82, align 8, !tbaa !11
  br label %715

707:                                              ; preds = %665
  %708 = load double, ptr %79, align 8, !tbaa !11
  %709 = fadd double %708, 1.000000e+00
  %710 = call double @pow(double noundef %709, double noundef 0x3FE5555555555555) #5
  store double %710, ptr %76, align 8, !tbaa !11
  %711 = load double, ptr %79, align 8, !tbaa !11
  %712 = fadd double %711, 1.000000e+00
  %713 = call double @cbrt(double noundef %712) #6
  %714 = fdiv double 0x3FE5555555555555, %713
  store double %714, ptr %82, align 8, !tbaa !11
  br label %715

715:                                              ; preds = %707, %690
  %716 = load double, ptr %82, align 8, !tbaa !11
  %717 = load double, ptr %80, align 8, !tbaa !11
  %718 = fmul double %716, %717
  store double %718, ptr %78, align 8, !tbaa !11
  %719 = load double, ptr %82, align 8, !tbaa !11
  %720 = load double, ptr %81, align 8, !tbaa !11
  %721 = fmul double %719, %720
  store double %721, ptr %77, align 8, !tbaa !11
  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 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  br label %810

722:                                              ; preds = %552
  %723 = load double, ptr %21, align 8, !tbaa !11
  %724 = fcmp olt double %723, 0x3C9CD2B297D889BC
  br i1 %724, label %725, label %741

725:                                              ; preds = %722
  %726 = load double, ptr %23, align 8, !tbaa !11
  %727 = call double @pow(double noundef %726, double noundef 2.000000e+00) #5
  %728 = load double, ptr %23, align 8, !tbaa !11
  %729 = fmul double 0x3FCC71C71C71C71C, %728
  %730 = fneg double %729
  %731 = call double @llvm.fmuladd.f64(double 0xBFAD7F7926FABB86, double %727, double %730)
  %732 = fadd double %731, 2.000000e+00
  store double %732, ptr %76, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  %733 = load double, ptr %23, align 8, !tbaa !11
  %734 = call double @llvm.fmuladd.f64(double 0xBFBD7F7926FABB86, double %733, double 0xBFCC71C71C71C71C)
  store double %734, ptr %83, align 8, !tbaa !11
  %735 = load double, ptr %83, align 8, !tbaa !11
  %736 = load double, ptr %24, align 8, !tbaa !11
  %737 = fmul double %735, %736
  store double %737, ptr %78, align 8, !tbaa !11
  %738 = load double, ptr %83, align 8, !tbaa !11
  %739 = load double, ptr %25, align 8, !tbaa !11
  %740 = fmul double %738, %739
  store double %740, ptr %77, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  br label %809

741:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  %742 = load double, ptr %21, align 8, !tbaa !11
  %743 = call double @sqrt(double noundef %742) #5
  %744 = fmul double 0x3FF6A09E667F3BCD, %743
  %745 = load double, ptr %20, align 8, !tbaa !11
  %746 = fdiv double %744, %745
  store double %746, ptr %84, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #5
  %747 = load double, ptr %20, align 8, !tbaa !11
  %748 = load double, ptr %21, align 8, !tbaa !11
  %749 = call double @sqrt(double noundef %748) #5
  %750 = fmul double %747, %749
  %751 = fdiv double 0x3FE6A09E667F3BCD, %750
  store double %751, ptr %85, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  %752 = load double, ptr %21, align 8, !tbaa !11
  %753 = call double @sqrt(double noundef %752) #5
  %754 = fmul double 0xBFF6A09E667F3BCD, %753
  %755 = load double, ptr %20, align 8, !tbaa !11
  %756 = call double @pow(double noundef %755, double noundef 2.000000e+00) #5
  %757 = fdiv double %754, %756
  store double %757, ptr %86, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #5
  %758 = load double, ptr %84, align 8, !tbaa !11
  %759 = call double @atan(double noundef %758) #5
  %760 = fmul double 0x3FE5555555555555, %759
  store double %760, ptr %87, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #5
  %761 = load double, ptr %84, align 8, !tbaa !11
  %762 = call double @pow(double noundef %761, double noundef 2.000000e+00) #5
  %763 = fadd double %762, 1.000000e+00
  %764 = fdiv double 0x3FE5555555555555, %763
  store double %764, ptr %88, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #5
  %765 = load double, ptr %85, align 8, !tbaa !11
  %766 = load double, ptr %88, align 8, !tbaa !11
  %767 = fmul double %765, %766
  store double %767, ptr %89, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #5
  %768 = load double, ptr %86, align 8, !tbaa !11
  %769 = load double, ptr %88, align 8, !tbaa !11
  %770 = fmul double %768, %769
  store double %770, ptr %90, align 8, !tbaa !11
  %771 = load double, ptr %84, align 8, !tbaa !11
  %772 = call double @pow(double noundef %771, double noundef 2.000000e+00) #5
  %773 = fadd double %772, 1.000000e+00
  %774 = call double @cbrt(double noundef %773) #6
  %775 = fmul double 2.000000e+00, %774
  %776 = load double, ptr %87, align 8, !tbaa !11
  %777 = call double @cos(double noundef %776) #5
  %778 = fmul double %775, %777
  store double %778, ptr %76, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #5
  %779 = load double, ptr %84, align 8, !tbaa !11
  %780 = call double @pow(double noundef %779, double noundef 2.000000e+00) #5
  %781 = fadd double %780, 1.000000e+00
  %782 = call double @cbrt(double noundef %781) #6
  %783 = fmul double -2.000000e+00, %782
  %784 = load double, ptr %87, align 8, !tbaa !11
  %785 = call double @sin(double noundef %784) #5
  %786 = fmul double %783, %785
  store double %786, ptr %91, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  %787 = load double, ptr %84, align 8, !tbaa !11
  %788 = fmul double 0x3FF5555555555555, %787
  %789 = load double, ptr %87, align 8, !tbaa !11
  %790 = call double @cos(double noundef %789) #5
  %791 = fmul double %788, %790
  %792 = load double, ptr %84, align 8, !tbaa !11
  %793 = call double @pow(double noundef %792, double noundef 2.000000e+00) #5
  %794 = fadd double %793, 1.000000e+00
  %795 = call double @pow(double noundef %794, double noundef 0x3FE5555555555555) #5
  %796 = fdiv double %791, %795
  store double %796, ptr %92, align 8, !tbaa !11
  %797 = load double, ptr %85, align 8, !tbaa !11
  %798 = load double, ptr %92, align 8, !tbaa !11
  %799 = load double, ptr %91, align 8, !tbaa !11
  %800 = load double, ptr %89, align 8, !tbaa !11
  %801 = fmul double %799, %800
  %802 = call double @llvm.fmuladd.f64(double %797, double %798, double %801)
  store double %802, ptr %78, align 8, !tbaa !11
  %803 = load double, ptr %86, align 8, !tbaa !11
  %804 = load double, ptr %92, align 8, !tbaa !11
  %805 = load double, ptr %91, align 8, !tbaa !11
  %806 = load double, ptr %90, align 8, !tbaa !11
  %807 = fmul double %805, %806
  %808 = call double @llvm.fmuladd.f64(double %803, double %804, double %807)
  store double %808, ptr %77, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  br label %809

809:                                              ; preds = %741, %725
  br label %810

810:                                              ; preds = %809, %715
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #5
  %811 = load double, ptr %76, align 8, !tbaa !11
  %812 = fmul double 5.000000e-01, %811
  store double %812, ptr %93, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  store double 5.000000e-01, ptr %94, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  %813 = load double, ptr %78, align 8, !tbaa !11
  %814 = load double, ptr %94, align 8, !tbaa !11
  %815 = fmul double %813, %814
  store double %815, ptr %95, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #5
  %816 = load double, ptr %77, align 8, !tbaa !11
  %817 = load double, ptr %94, align 8, !tbaa !11
  %818 = fmul double %816, %817
  store double %818, ptr %96, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #5
  %819 = load double, ptr %93, align 8, !tbaa !11
  %820 = call double @pow(double noundef %819, double noundef 3.000000e+00) #5
  store double %820, ptr %97, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #5
  %821 = load double, ptr %93, align 8, !tbaa !11
  %822 = call double @pow(double noundef %821, double noundef 2.000000e+00) #5
  %823 = fmul double 3.000000e+00, %822
  store double %823, ptr %98, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #5
  %824 = load double, ptr %98, align 8, !tbaa !11
  %825 = load double, ptr %95, align 8, !tbaa !11
  %826 = fmul double %824, %825
  store double %826, ptr %99, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #5
  %827 = load double, ptr %98, align 8, !tbaa !11
  %828 = load double, ptr %96, align 8, !tbaa !11
  %829 = fmul double %827, %828
  store double %829, ptr %100, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #5
  %830 = load double, ptr %67, align 8, !tbaa !11
  %831 = fneg double %830
  %832 = load double, ptr %17, align 8, !tbaa !11
  %833 = load double, ptr %97, align 8, !tbaa !11
  %834 = fmul double %832, %833
  %835 = fdiv double %831, %834
  %836 = call double @exp(double noundef %835) #5
  %837 = fadd double -1.000000e+00, %836
  store double %837, ptr %101, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #5
  %838 = load double, ptr %67, align 8, !tbaa !11
  %839 = fneg double %838
  %840 = load double, ptr %17, align 8, !tbaa !11
  %841 = load double, ptr %97, align 8, !tbaa !11
  %842 = fmul double %840, %841
  %843 = fdiv double %839, %842
  %844 = call double @exp(double noundef %843) #5
  %845 = fneg double %844
  %846 = load double, ptr %17, align 8, !tbaa !11
  %847 = load double, ptr %97, align 8, !tbaa !11
  %848 = fmul double %846, %847
  %849 = fdiv double %845, %848
  store double %849, ptr %102, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #5
  %850 = load double, ptr %67, align 8, !tbaa !11
  %851 = load double, ptr %67, align 8, !tbaa !11
  %852 = fneg double %851
  %853 = load double, ptr %17, align 8, !tbaa !11
  %854 = load double, ptr %97, align 8, !tbaa !11
  %855 = fmul double %853, %854
  %856 = fdiv double %852, %855
  %857 = call double @exp(double noundef %856) #5
  %858 = fmul double %850, %857
  %859 = load double, ptr %17, align 8, !tbaa !11
  %860 = load double, ptr %97, align 8, !tbaa !11
  %861 = call double @pow(double noundef %860, double noundef 2.000000e+00) #5
  %862 = fmul double %859, %861
  %863 = fdiv double %858, %862
  store double %863, ptr %103, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #5
  %864 = load double, ptr %102, align 8, !tbaa !11
  %865 = load double, ptr %70, align 8, !tbaa !11
  %866 = load double, ptr %103, align 8, !tbaa !11
  %867 = load double, ptr %99, align 8, !tbaa !11
  %868 = fmul double %866, %867
  %869 = call double @llvm.fmuladd.f64(double %864, double %865, double %868)
  store double %869, ptr %104, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #5
  %870 = load double, ptr %102, align 8, !tbaa !11
  %871 = load double, ptr %71, align 8, !tbaa !11
  %872 = load double, ptr %103, align 8, !tbaa !11
  %873 = load double, ptr %100, align 8, !tbaa !11
  %874 = fmul double %872, %873
  %875 = call double @llvm.fmuladd.f64(double %870, double %871, double %874)
  store double %875, ptr %105, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #5
  %876 = load double, ptr %13, align 8, !tbaa !11
  %877 = load double, ptr %101, align 8, !tbaa !11
  %878 = load double, ptr %17, align 8, !tbaa !11
  %879 = fmul double %877, %878
  %880 = fdiv double %876, %879
  store double %880, ptr %106, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #5
  %881 = load double, ptr %13, align 8, !tbaa !11
  %882 = fneg double %881
  %883 = load double, ptr %101, align 8, !tbaa !11
  %884 = call double @pow(double noundef %883, double noundef 2.000000e+00) #5
  %885 = load double, ptr %17, align 8, !tbaa !11
  %886 = fmul double %884, %885
  %887 = fdiv double %882, %886
  store double %887, ptr %107, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #5
  %888 = load double, ptr %107, align 8, !tbaa !11
  %889 = load double, ptr %104, align 8, !tbaa !11
  %890 = fmul double %888, %889
  store double %890, ptr %108, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #5
  %891 = load double, ptr %107, align 8, !tbaa !11
  %892 = load double, ptr %105, align 8, !tbaa !11
  %893 = fmul double %891, %892
  store double %893, ptr %109, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #5
  %894 = load double, ptr %20, align 8, !tbaa !11
  %895 = call double @pow(double noundef %894, double noundef 0xBFF5555555555555) #5
  %896 = load double, ptr %22, align 8, !tbaa !11
  %897 = call double @sqrt(double noundef %896) #5
  %898 = fmul double %895, %897
  store double %898, ptr %110, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #5
  %899 = load double, ptr %20, align 8, !tbaa !11
  %900 = call double @pow(double noundef %899, double noundef 0xBFF5555555555555) #5
  %901 = fmul double 5.000000e-01, %900
  %902 = load double, ptr %22, align 8, !tbaa !11
  %903 = call double @sqrt(double noundef %902) #5
  %904 = fdiv double %901, %903
  store double %904, ptr %111, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #5
  %905 = load double, ptr %20, align 8, !tbaa !11
  %906 = call double @pow(double noundef %905, double noundef 0xC002AAAAAAAAAAAA) #5
  %907 = fmul double 0xBFF5555555555555, %906
  %908 = load double, ptr %22, align 8, !tbaa !11
  %909 = call double @sqrt(double noundef %908) #5
  %910 = fmul double %907, %909
  store double %910, ptr %112, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #5
  %911 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %912 = fmul double 1.250000e-01, %911
  %913 = load double, ptr %110, align 8, !tbaa !11
  %914 = fmul double %912, %913
  %915 = load double, ptr %93, align 8, !tbaa !11
  %916 = load double, ptr %30, align 8, !tbaa !11
  %917 = call double @sqrt(double noundef %916) #5
  %918 = fmul double %915, %917
  %919 = fdiv double %914, %918
  store double %919, ptr %113, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #5
  %920 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %921 = fmul double -1.250000e-01, %920
  %922 = load double, ptr %110, align 8, !tbaa !11
  %923 = fmul double %921, %922
  %924 = load double, ptr %93, align 8, !tbaa !11
  %925 = call double @pow(double noundef %924, double noundef 2.000000e+00) #5
  %926 = load double, ptr %30, align 8, !tbaa !11
  %927 = call double @sqrt(double noundef %926) #5
  %928 = fmul double %925, %927
  %929 = fdiv double %923, %928
  store double %929, ptr %114, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #5
  %930 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %931 = fmul double 1.250000e-01, %930
  %932 = load double, ptr %93, align 8, !tbaa !11
  %933 = load double, ptr %30, align 8, !tbaa !11
  %934 = call double @sqrt(double noundef %933) #5
  %935 = fmul double %932, %934
  %936 = fdiv double %931, %935
  store double %936, ptr %115, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #5
  %937 = load double, ptr %95, align 8, !tbaa !11
  %938 = load double, ptr %114, align 8, !tbaa !11
  %939 = fmul double %937, %938
  store double %939, ptr %116, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #5
  %940 = load double, ptr %115, align 8, !tbaa !11
  %941 = load double, ptr %111, align 8, !tbaa !11
  %942 = fmul double %940, %941
  store double %942, ptr %117, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #5
  %943 = load double, ptr %96, align 8, !tbaa !11
  %944 = load double, ptr %114, align 8, !tbaa !11
  %945 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %946 = fmul double 6.250000e-02, %945
  %947 = load double, ptr %31, align 8, !tbaa !11
  %948 = fmul double %946, %947
  %949 = load double, ptr %110, align 8, !tbaa !11
  %950 = fmul double %948, %949
  %951 = load double, ptr %93, align 8, !tbaa !11
  %952 = load double, ptr %30, align 8, !tbaa !11
  %953 = call double @pow(double noundef %952, double noundef 1.500000e+00) #5
  %954 = fmul double %951, %953
  %955 = fdiv double %950, %954
  %956 = fneg double %955
  %957 = call double @llvm.fmuladd.f64(double %943, double %944, double %956)
  %958 = load double, ptr %115, align 8, !tbaa !11
  %959 = load double, ptr %112, align 8, !tbaa !11
  %960 = call double @llvm.fmuladd.f64(double %958, double %959, double %957)
  store double %960, ptr %118, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #5
  %961 = load double, ptr %106, align 8, !tbaa !11
  %962 = load double, ptr %113, align 8, !tbaa !11
  %963 = call double @pow(double noundef %962, double noundef 4.000000e+00) #5
  %964 = load double, ptr %113, align 8, !tbaa !11
  %965 = call double @pow(double noundef %964, double noundef 2.000000e+00) #5
  %966 = call double @llvm.fmuladd.f64(double %961, double %963, double %965)
  store double %966, ptr %119, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #5
  %967 = load double, ptr %106, align 8, !tbaa !11
  %968 = fmul double 4.000000e+00, %967
  %969 = load double, ptr %113, align 8, !tbaa !11
  %970 = call double @pow(double noundef %969, double noundef 3.000000e+00) #5
  %971 = load double, ptr %113, align 8, !tbaa !11
  %972 = fmul double 2.000000e+00, %971
  %973 = call double @llvm.fmuladd.f64(double %968, double %970, double %972)
  store double %973, ptr %120, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #5
  %974 = load double, ptr %113, align 8, !tbaa !11
  %975 = call double @pow(double noundef %974, double noundef 4.000000e+00) #5
  store double %975, ptr %121, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #5
  %976 = load double, ptr %108, align 8, !tbaa !11
  %977 = load double, ptr %121, align 8, !tbaa !11
  %978 = load double, ptr %120, align 8, !tbaa !11
  %979 = load double, ptr %116, align 8, !tbaa !11
  %980 = fmul double %978, %979
  %981 = call double @llvm.fmuladd.f64(double %976, double %977, double %980)
  store double %981, ptr %122, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #5
  %982 = load double, ptr %120, align 8, !tbaa !11
  %983 = load double, ptr %117, align 8, !tbaa !11
  %984 = fmul double %982, %983
  store double %984, ptr %123, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #5
  %985 = load double, ptr %109, align 8, !tbaa !11
  %986 = load double, ptr %121, align 8, !tbaa !11
  %987 = load double, ptr %120, align 8, !tbaa !11
  %988 = load double, ptr %118, align 8, !tbaa !11
  %989 = fmul double %987, %988
  %990 = call double @llvm.fmuladd.f64(double %985, double %986, double %989)
  store double %990, ptr %124, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #5
  %991 = load double, ptr %119, align 8, !tbaa !11
  %992 = load double, ptr %13, align 8, !tbaa !11
  %993 = fmul double %991, %992
  %994 = load double, ptr %17, align 8, !tbaa !11
  %995 = load double, ptr %106, align 8, !tbaa !11
  %996 = load double, ptr %119, align 8, !tbaa !11
  %997 = call double @llvm.fmuladd.f64(double %995, double %996, double 1.000000e+00)
  %998 = fmul double %994, %997
  %999 = fdiv double %993, %998
  store double %999, ptr %125, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #5
  %1000 = load double, ptr %119, align 8, !tbaa !11
  %1001 = call double @pow(double noundef %1000, double noundef 2.000000e+00) #5
  %1002 = fneg double %1001
  %1003 = load double, ptr %13, align 8, !tbaa !11
  %1004 = fmul double %1002, %1003
  %1005 = load double, ptr %17, align 8, !tbaa !11
  %1006 = load double, ptr %106, align 8, !tbaa !11
  %1007 = load double, ptr %119, align 8, !tbaa !11
  %1008 = call double @llvm.fmuladd.f64(double %1006, double %1007, double 1.000000e+00)
  %1009 = call double @pow(double noundef %1008, double noundef 2.000000e+00) #5
  %1010 = fmul double %1005, %1009
  %1011 = fdiv double %1004, %1010
  store double %1011, ptr %126, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #5
  %1012 = load double, ptr %106, align 8, !tbaa !11
  %1013 = fneg double %1012
  %1014 = load double, ptr %119, align 8, !tbaa !11
  %1015 = fmul double %1013, %1014
  %1016 = load double, ptr %13, align 8, !tbaa !11
  %1017 = fmul double %1015, %1016
  %1018 = load double, ptr %17, align 8, !tbaa !11
  %1019 = load double, ptr %106, align 8, !tbaa !11
  %1020 = load double, ptr %119, align 8, !tbaa !11
  %1021 = call double @llvm.fmuladd.f64(double %1019, double %1020, double 1.000000e+00)
  %1022 = call double @pow(double noundef %1021, double noundef 2.000000e+00) #5
  %1023 = fmul double %1018, %1022
  %1024 = fdiv double %1017, %1023
  %1025 = load double, ptr %13, align 8, !tbaa !11
  %1026 = load double, ptr %17, align 8, !tbaa !11
  %1027 = load double, ptr %106, align 8, !tbaa !11
  %1028 = load double, ptr %119, align 8, !tbaa !11
  %1029 = call double @llvm.fmuladd.f64(double %1027, double %1028, double 1.000000e+00)
  %1030 = fmul double %1026, %1029
  %1031 = fdiv double %1025, %1030
  %1032 = fadd double %1024, %1031
  store double %1032, ptr %127, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #5
  %1033 = load double, ptr %108, align 8, !tbaa !11
  %1034 = load double, ptr %126, align 8, !tbaa !11
  %1035 = load double, ptr %122, align 8, !tbaa !11
  %1036 = load double, ptr %127, align 8, !tbaa !11
  %1037 = fmul double %1035, %1036
  %1038 = call double @llvm.fmuladd.f64(double %1033, double %1034, double %1037)
  store double %1038, ptr %128, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #5
  %1039 = load double, ptr %123, align 8, !tbaa !11
  %1040 = load double, ptr %127, align 8, !tbaa !11
  %1041 = fmul double %1039, %1040
  store double %1041, ptr %129, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #5
  %1042 = load double, ptr %109, align 8, !tbaa !11
  %1043 = load double, ptr %126, align 8, !tbaa !11
  %1044 = load double, ptr %124, align 8, !tbaa !11
  %1045 = load double, ptr %127, align 8, !tbaa !11
  %1046 = fmul double %1044, %1045
  %1047 = call double @llvm.fmuladd.f64(double %1042, double %1043, double %1046)
  store double %1047, ptr %130, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #5
  %1048 = load double, ptr %17, align 8, !tbaa !11
  %1049 = load double, ptr %97, align 8, !tbaa !11
  %1050 = fmul double %1048, %1049
  %1051 = load double, ptr %125, align 8, !tbaa !11
  %1052 = fadd double %1051, 1.000000e+00
  %1053 = call double @log(double noundef %1052) #5
  %1054 = fmul double %1050, %1053
  store double %1054, ptr %131, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #5
  %1055 = load double, ptr %17, align 8, !tbaa !11
  %1056 = load double, ptr %125, align 8, !tbaa !11
  %1057 = fadd double %1056, 1.000000e+00
  %1058 = call double @log(double noundef %1057) #5
  %1059 = fmul double %1055, %1058
  store double %1059, ptr %132, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #5
  %1060 = load double, ptr %17, align 8, !tbaa !11
  %1061 = load double, ptr %97, align 8, !tbaa !11
  %1062 = fmul double %1060, %1061
  %1063 = load double, ptr %125, align 8, !tbaa !11
  %1064 = fadd double %1063, 1.000000e+00
  %1065 = fdiv double %1062, %1064
  store double %1065, ptr %133, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #5
  %1066 = load double, ptr %133, align 8, !tbaa !11
  %1067 = load double, ptr %128, align 8, !tbaa !11
  %1068 = load double, ptr %132, align 8, !tbaa !11
  %1069 = load double, ptr %99, align 8, !tbaa !11
  %1070 = fmul double %1068, %1069
  %1071 = call double @llvm.fmuladd.f64(double %1066, double %1067, double %1070)
  store double %1071, ptr %134, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #5
  %1072 = load double, ptr %133, align 8, !tbaa !11
  %1073 = load double, ptr %129, align 8, !tbaa !11
  %1074 = fmul double %1072, %1073
  store double %1074, ptr %135, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #5
  %1075 = load double, ptr %133, align 8, !tbaa !11
  %1076 = load double, ptr %130, align 8, !tbaa !11
  %1077 = load double, ptr %132, align 8, !tbaa !11
  %1078 = load double, ptr %100, align 8, !tbaa !11
  %1079 = fmul double %1077, %1078
  %1080 = call double @llvm.fmuladd.f64(double %1075, double %1076, double %1079)
  store double %1080, ptr %136, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #5
  %1081 = load double, ptr %131, align 8, !tbaa !11
  %1082 = load double, ptr %67, align 8, !tbaa !11
  %1083 = fadd double %1081, %1082
  store double %1083, ptr %137, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #5
  store double 1.000000e+00, ptr %138, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #5
  store double 1.000000e+00, ptr %139, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #5
  %1084 = load double, ptr %134, align 8, !tbaa !11
  %1085 = load double, ptr %138, align 8, !tbaa !11
  %1086 = load double, ptr %139, align 8, !tbaa !11
  %1087 = load double, ptr %70, align 8, !tbaa !11
  %1088 = fmul double %1086, %1087
  %1089 = call double @llvm.fmuladd.f64(double %1084, double %1085, double %1088)
  store double %1089, ptr %140, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #5
  %1090 = load double, ptr %135, align 8, !tbaa !11
  %1091 = load double, ptr %138, align 8, !tbaa !11
  %1092 = fmul double %1090, %1091
  store double %1092, ptr %141, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #5
  %1093 = load double, ptr %136, align 8, !tbaa !11
  %1094 = load double, ptr %138, align 8, !tbaa !11
  %1095 = load double, ptr %139, align 8, !tbaa !11
  %1096 = load double, ptr %71, align 8, !tbaa !11
  %1097 = fmul double %1095, %1096
  %1098 = call double @llvm.fmuladd.f64(double %1093, double %1094, double %1097)
  store double %1098, ptr %142, align 8, !tbaa !11
  %1099 = load double, ptr %137, align 8, !tbaa !11
  %1100 = load ptr, ptr %10, align 8, !tbaa !9
  %1101 = load i32, ptr %18, align 4, !tbaa !5
  %1102 = sext i32 %1101 to i64
  %1103 = getelementptr inbounds double, ptr %1100, i64 %1102
  store double %1099, ptr %1103, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #5
  %1104 = load double, ptr %20, align 8, !tbaa !11
  store double %1104, ptr %143, align 8, !tbaa !11
  %1105 = load double, ptr %143, align 8, !tbaa !11
  %1106 = load double, ptr %140, align 8, !tbaa !11
  %1107 = fmul double %1105, %1106
  %1108 = load ptr, ptr %11, align 8, !tbaa !9
  %1109 = load i32, ptr %18, align 4, !tbaa !5
  %1110 = mul nsw i32 2, %1109
  %1111 = add nsw i32 %1110, 1
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds double, ptr %1108, i64 %1112
  store double %1107, ptr %1113, align 8, !tbaa !11
  %1114 = load double, ptr %143, align 8, !tbaa !11
  %1115 = load double, ptr %141, align 8, !tbaa !11
  %1116 = fmul double %1114, %1115
  %1117 = load ptr, ptr %12, align 8, !tbaa !9
  %1118 = load i32, ptr %18, align 4, !tbaa !5
  %1119 = mul nsw i32 3, %1118
  %1120 = add nsw i32 %1119, 0
  %1121 = sext i32 %1120 to i64
  %1122 = getelementptr inbounds double, ptr %1117, i64 %1121
  store double %1116, ptr %1122, align 8, !tbaa !11
  %1123 = load double, ptr %143, align 8, !tbaa !11
  %1124 = load double, ptr %142, align 8, !tbaa !11
  %1125 = load double, ptr %137, align 8, !tbaa !11
  %1126 = call double @llvm.fmuladd.f64(double %1123, double %1124, double %1125)
  %1127 = load ptr, ptr %11, align 8, !tbaa !9
  %1128 = load i32, ptr %18, align 4, !tbaa !5
  %1129 = mul nsw i32 2, %1128
  %1130 = add nsw i32 %1129, 0
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds double, ptr %1127, i64 %1131
  store double %1126, ptr %1132, align 8, !tbaa !11
  %1133 = load ptr, ptr %12, align 8, !tbaa !9
  %1134 = load i32, ptr %18, align 4, !tbaa !5
  %1135 = mul nsw i32 3, %1134
  %1136 = add nsw i32 %1135, 1
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds double, ptr %1133, i64 %1137
  store double 0.000000e+00, ptr %1138, align 8, !tbaa !11
  %1139 = load ptr, ptr %12, align 8, !tbaa !9
  %1140 = load i32, ptr %18, align 4, !tbaa !5
  %1141 = mul nsw i32 3, %1140
  %1142 = add nsw i32 %1141, 2
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds double, ptr %1139, i64 %1143
  store double 0.000000e+00, ptr %1144, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #5
  call void @llvm.lifetime.end.p0(i64 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 8, 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 8, ptr %121) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %112) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, 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 8, 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 8, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  store i32 0, ptr %19, align 4
  br label %1145

1145:                                             ; preds = %810, %166
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  %1146 = load i32, ptr %19, align 4
  switch i32 %1146, label %1152 [
    i32 0, label %1147
    i32 4, label %1148
  ]

1147:                                             ; preds = %1145
  br label %1148

1148:                                             ; preds = %1147, %1145
  %1149 = load i32, ptr %18, align 4, !tbaa !5
  %1150 = add nsw i32 %1149, 1
  store i32 %1150, ptr %18, align 4, !tbaa !5
  br label %151, !llvm.loop !13

1151:                                             ; preds = %155
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  ret void

1152:                                             ; preds = %1145
  unreachable
}

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

; Function Attrs: nounwind
declare double @pow(double noundef, double noundef) #2

; Function Attrs: nounwind willreturn memory(none)
declare double @cbrt(double noundef) #3

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

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

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

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

; Function Attrs: nounwind
declare double @atan(double noundef) #2

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

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

; Function Attrs: nounwind
declare double @exp(double noundef) #2

attributes #0 = { mustprogress 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 = { 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 #3 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nounwind }
attributes #6 = { nounwind willreturn memory(none) }

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

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


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

; Function Attrs: mustprogress nofree nounwind memory(write, argmem: readwrite) uwtable
define dso_local void @_ZN9pdftpbe_c15compute_exc_vxcEiPKdS1_PdS2_S2_(i32 noundef %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readonly %2, ptr nocapture noundef writeonly %3, ptr nocapture noundef writeonly %4, ptr nocapture noundef writeonly %5) local_unnamed_addr #0 {
  %7 = tail call double @cbrt(double noundef 2.000000e+00) #6
  %8 = tail call double @llvm.fmuladd.f64(double %7, double 2.000000e+00, double -2.000000e+00)
  %9 = fdiv double 1.000000e+00, %8
  %10 = icmp sgt i32 %0, 0
  br i1 %10, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %6
  %11 = fneg double %9
  %wide.trip.count = zext nneg i32 %0 to i64
  br label %12

._crit_edge:                                      ; preds = %451, %6
  ret void

12:                                               ; preds = %.lr.ph, %451
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %451 ]
  %13 = shl nuw nsw i64 %indvars.iv, 1
  %14 = getelementptr inbounds double, ptr %1, i64 %13
  %15 = load double, ptr %14, align 8, !tbaa !5
  %16 = fcmp olt double %15, 0x3C9CD2B297D889BC
  br i1 %16, label %17, label %21

17:                                               ; preds = %12
  %18 = getelementptr inbounds double, ptr %3, i64 %indvars.iv
  store double 0.000000e+00, ptr %18, align 8, !tbaa !5
  %19 = getelementptr inbounds double, ptr %4, i64 %13
  store <2 x double> zeroinitializer, ptr %19, align 8, !tbaa !5
  %.idx = mul i64 %indvars.iv, 24
  %20 = getelementptr inbounds i8, ptr %5, i64 %.idx
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %20, i8 0, i64 24, i1 false)
  br label %451

21:                                               ; preds = %12
  %22 = or disjoint i64 %13, 1
  %23 = getelementptr inbounds double, ptr %1, i64 %22
  %24 = load double, ptr %23, align 8, !tbaa !5
  %25 = mul nuw nsw i64 %indvars.iv, 3
  %26 = getelementptr inbounds double, ptr %2, i64 %25
  %27 = load double, ptr %26, align 8, !tbaa !5
  %28 = fmul double %24, -2.000000e+00
  %square = fmul double %15, %15
  %29 = fdiv double %28, %square
  %30 = fmul double %24, 4.000000e+00
  %31 = tail call double @pow(double noundef %15, double noundef 3.000000e+00) #7
  %32 = insertelement <2 x double> <double -2.000000e+00, double poison>, double %30, i64 1
  %33 = insertelement <2 x double> poison, double %square, i64 0
  %34 = insertelement <2 x double> %33, double %31, i64 1
  %35 = fdiv <2 x double> %32, %34
  %square436 = fmul double %29, %29
  %36 = fmul double %29, 2.000000e+00
  %37 = extractelement <2 x double> %35, i64 0
  %38 = fmul double %37, %36
  %39 = extractelement <2 x double> %35, i64 1
  %40 = fmul double %39, %36
  %41 = tail call double @cbrt(double noundef %15) #6
  %42 = fdiv double 0x3FE3D9E945CF0E15, %41
  %43 = tail call double @pow(double noundef %15, double noundef 0x3FF5555555555555) #7
  %44 = fdiv double 0xBFCA77E1B269681C, %43
  %45 = tail call double @pow(double noundef %42, double noundef 1.500000e+00) #7
  %46 = tail call double @sqrt(double noundef %42) #7
  %47 = fmul double %46, 0x401E61FF2E48E8A7
  %48 = tail call double @llvm.fmuladd.f64(double %45, double 1.638200e+00, double %47)
  %square437 = fmul double %42, %42
  %49 = tail call double @llvm.fmuladd.f64(double %square437, double 4.929400e-01, double %48)
  %50 = tail call double @llvm.fmuladd.f64(double %42, double 3.587600e+00, double %49)
  %51 = tail call double @sqrt(double noundef %42) #7
  %52 = fmul double %42, 0x3FEF8C5436B8F9B1
  %53 = tail call double @llvm.fmuladd.f64(double %51, double 2.457300e+00, double %52)
  %54 = fadd double %53, 3.587600e+00
  %55 = tail call double @sqrt(double noundef %42) #7
  %56 = fdiv double 3.797850e+00, %55
  %57 = fadd double %54, %56
  %58 = fmul double %44, %57
  %59 = tail call double @llvm.fmuladd.f64(double %42, double 2.137000e-01, double 1.000000e+00)
  %60 = fmul double %59, -6.218200e-02
  %61 = fdiv double 0x403014F27053A807, %50
  %62 = fadd double %61, 1.000000e+00
  %63 = tail call double @log(double noundef %62) #7
  %64 = fmul double %60, %63
  %65 = fmul double %58, 0x3FEFFFFFFFFFFFFF
  %66 = fmul double %59, %65
  %square438 = fmul double %50, %50
  %67 = fmul double %square438, %62
  %68 = fdiv double %66, %67
  %69 = tail call double @log(double noundef %62) #7
  %70 = fmul double %44, 0xBF8B36E48C94CAE9
  %71 = tail call double @llvm.fmuladd.f64(double %70, double %69, double %68)
  %72 = tail call double @pow(double noundef %42, double noundef 1.500000e+00) #7
  %73 = tail call double @sqrt(double noundef %42) #7
  %74 = fmul double %73, 1.411890e+01
  %75 = tail call double @llvm.fmuladd.f64(double %72, double 3.366200e+00, double %74)
  %76 = tail call double @llvm.fmuladd.f64(double %square437, double 6.251700e-01, double %75)
  %77 = tail call double @llvm.fmuladd.f64(double %42, double 6.197700e+00, double %76)
  %78 = tail call double @sqrt(double noundef %42) #7
  %79 = fmul double %42, 1.250340e+00
  %80 = tail call double @llvm.fmuladd.f64(double %78, double 0x4014327BB2FEC56E, double %79)
  %81 = fadd double %80, 6.197700e+00
  %82 = tail call double @sqrt(double noundef %42) #7
  %83 = fdiv double 7.059450e+00, %82
  %84 = fadd double %81, %83
  %85 = fmul double %44, %84
  %86 = tail call double @llvm.fmuladd.f64(double %42, double 2.054800e-01, double 1.000000e+00)
  %87 = fmul double %86, -3.109000e-02
  %88 = fdiv double 0x40401514569F93F8, %77
  %89 = fadd double %88, 1.000000e+00
  %90 = tail call double @log(double noundef %89) #7
  %91 = fmul double %87, %90
  %92 = fmul double %86, %85
  %square440 = fmul double %77, %77
  %93 = fmul double %square440, %89
  %94 = fdiv double %92, %93
  %95 = tail call double @log(double noundef %89) #7
  %96 = fmul double %44, 0xBF7A2AB1DF7F8FAA
  %97 = tail call double @llvm.fmuladd.f64(double %96, double %95, double %94)
  %98 = tail call double @pow(double noundef %42, double noundef 1.500000e+00) #7
  %99 = tail call double @sqrt(double noundef %42) #7
  %100 = fmul double %99, 1.035700e+01
  %101 = tail call double @llvm.fmuladd.f64(double %98, double 8.802600e-01, double %100)
  %102 = tail call double @llvm.fmuladd.f64(double %square437, double 4.967100e-01, double %101)
  %103 = tail call double @llvm.fmuladd.f64(double %42, double 3.623100e+00, double %102)
  %104 = tail call double @sqrt(double noundef %42) #7
  %105 = fmul double %42, 0x3FEFCA18BD66277C
  %106 = tail call double @llvm.fmuladd.f64(double %104, double 0x3FF5205143BF7272, double %105)
  %107 = fadd double %106, 3.623100e+00
  %108 = tail call double @sqrt(double noundef %42) #7
  %109 = fdiv double 5.178500e+00, %108
  %110 = fadd double %107, %109
  %111 = fmul double %44, %110
  %112 = tail call double @llvm.fmuladd.f64(double %42, double 1.112500e-01, double 1.000000e+00)
  %113 = fmul double %112, -3.377400e-02
  %114 = fdiv double 0x403D9BCB8C3DCA5E, %103
  %115 = fadd double %114, 1.000000e+00
  %116 = tail call double @log(double noundef %115) #7
  %117 = fmul double %113, %116
  %118 = fmul double %112, %111
  %square442 = fmul double %103, %103
  %119 = fmul double %square442, %115
  %120 = fdiv double %118, %119
  %121 = tail call double @log(double noundef %115) #7
  %122 = fmul double %44, 0xBF6EC7BFF29EC37A
  %123 = tail call double @llvm.fmuladd.f64(double %122, double %121, double %120)
  %124 = fcmp olt double %24, 0xBC9CD2B297D889BC
  br i1 %124, label %125, label %159

125:                                              ; preds = %21
  %126 = fneg double %24
  %127 = tail call double @sqrt(double noundef %126) #7
  %128 = fmul double %127, 0x3FF6A09E667F3BCD
  %129 = fdiv double %128, %15
  %130 = tail call double @sqrt(double noundef %126) #7
  %131 = fmul double %15, %24
  %132 = tail call double @sqrt(double noundef %126) #7
  %133 = insertelement <2 x double> poison, double %130, i64 0
  %134 = insertelement <2 x double> %133, double %132, i64 1
  %135 = fmul <2 x double> %134, <double 0x3FE6A09E667F3BCD, double 0xBFF6A09E667F3BCD>
  %136 = insertelement <2 x double> poison, double %131, i64 0
  %137 = insertelement <2 x double> %136, double %square, i64 1
  %138 = fdiv <2 x double> %135, %137
  %139 = fsub double 1.000000e+00, %129
  %140 = fcmp ogt double %139, 0x3C9CD2B297D889BC
  br i1 %140, label %141, label %150

141:                                              ; preds = %125
  %142 = tail call double @pow(double noundef %139, double noundef 0x3FF5555555555555) #7
  %143 = fadd double %129, 1.000000e+00
  %144 = tail call double @pow(double noundef %143, double noundef 0x3FF5555555555555) #7
  %145 = fadd double %142, %144
  %146 = tail call double @cbrt(double noundef %139) #6
  %147 = tail call double @cbrt(double noundef %143) #6
  %148 = fmul double %147, 0x3FF5555555555555
  %149 = tail call double @llvm.fmuladd.f64(double %146, double 0xBFF5555555555555, double %148)
  br label %155

150:                                              ; preds = %125
  %151 = fadd double %129, 1.000000e+00
  %152 = tail call double @pow(double noundef %151, double noundef 0x3FF5555555555555) #7
  %153 = tail call double @cbrt(double noundef %151) #6
  %154 = fmul double %153, 0x3FF5555555555555
  br label %155

155:                                              ; preds = %150, %141
  %.0424 = phi double [ %149, %141 ], [ %154, %150 ]
  %.0421 = phi double [ %145, %141 ], [ %152, %150 ]
  %156 = insertelement <2 x double> poison, double %.0424, i64 0
  %157 = shufflevector <2 x double> %156, <2 x double> poison, <2 x i32> zeroinitializer
  %158 = fmul <2 x double> %138, %157
  br label %208

159:                                              ; preds = %21
  %160 = fcmp olt double %24, 0x3C9CD2B297D889BC
  br i1 %160, label %161, label %169

161:                                              ; preds = %159
  %162 = fmul double %29, 0x3FDC71C71C71C71C
  %163 = tail call double @llvm.fmuladd.f64(double %square436, double 0x3FA511E8D2B3183B, double %162)
  %164 = fadd double %163, 2.000000e+00
  %165 = tail call double @llvm.fmuladd.f64(double %29, double 0x3FB511E8D2B3183B, double 0x3FDC71C71C71C71C)
  %166 = insertelement <2 x double> poison, double %165, i64 0
  %167 = shufflevector <2 x double> %166, <2 x double> poison, <2 x i32> zeroinitializer
  %168 = fmul <2 x double> %35, %167
  br label %208

169:                                              ; preds = %159
  %170 = tail call double @sqrt(double noundef %24) #7
  %171 = fmul double %170, 0x3FF6A09E667F3BCD
  %172 = fdiv double %171, %15
  %173 = tail call double @sqrt(double noundef %24) #7
  %174 = fmul double %15, %173
  %175 = fdiv double 0x3FE6A09E667F3BCD, %174
  %176 = tail call double @sqrt(double noundef %24) #7
  %177 = tail call double @atan(double noundef %172) #7
  %178 = fmul double %177, 0x3FF5555555555555
  %square444 = fmul double %172, %172
  %179 = fadd double %square444, 1.000000e+00
  %180 = fdiv double 0x3FF5555555555555, %179
  %181 = tail call double @pow(double noundef %179, double noundef 0x3FE5555555555555) #7
  %182 = fmul double %181, 2.000000e+00
  %183 = tail call double @cos(double noundef %178) #7
  %184 = fmul double %182, %183
  %185 = tail call double @pow(double noundef %179, double noundef 0x3FE5555555555555) #7
  %186 = fmul double %185, -2.000000e+00
  %187 = tail call double @sin(double noundef %178) #7
  %188 = fmul double %186, %187
  %189 = fmul double %172, 0x4005555555555555
  %190 = tail call double @cos(double noundef %178) #7
  %191 = tail call double @cbrt(double noundef %179) #6
  %192 = insertelement <2 x double> poison, double %189, i64 0
  %193 = insertelement <2 x double> %192, double %176, i64 1
  %194 = insertelement <2 x double> <double poison, double 0xBFF6A09E667F3BCD>, double %190, i64 0
  %195 = fmul <2 x double> %193, %194
  %196 = insertelement <2 x double> poison, double %191, i64 0
  %197 = insertelement <2 x double> %196, double %square, i64 1
  %198 = fdiv <2 x double> %195, %197
  %199 = insertelement <2 x double> %198, double %175, i64 0
  %200 = insertelement <2 x double> poison, double %180, i64 0
  %201 = shufflevector <2 x double> %200, <2 x double> poison, <2 x i32> zeroinitializer
  %202 = fmul <2 x double> %199, %201
  %203 = insertelement <2 x double> poison, double %188, i64 0
  %204 = shufflevector <2 x double> %203, <2 x double> poison, <2 x i32> zeroinitializer
  %205 = fmul <2 x double> %202, %204
  %206 = shufflevector <2 x double> %199, <2 x double> %198, <2 x i32> <i32 0, i32 2>
  %207 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %198, <2 x double> %206, <2 x double> %205)
  br label %208

208:                                              ; preds = %161, %169, %155
  %.1 = phi double [ %.0421, %155 ], [ %164, %161 ], [ %184, %169 ]
  %209 = phi <2 x double> [ %158, %155 ], [ %168, %161 ], [ %207, %169 ]
  %210 = fmul double %9, %square436
  %211 = fadd double %.1, -2.000000e+00
  %212 = fmul double %210, %211
  %213 = fsub double %91, %64
  %214 = fdiv double %117, 0x3FFB5BD61F5BE5DA
  %215 = fadd double %213, %214
  %216 = fmul double %9, %117
  %217 = fmul double %216, %211
  %218 = fdiv double %217, 0xBFFB5BD61F5BE5DA
  %219 = tail call double @llvm.fmuladd.f64(double %212, double %215, double %218)
  %220 = fadd double %64, %219
  %221 = fmul double %9, %211
  %222 = fmul double %215, %221
  %223 = fdiv double %216, 0xBFFB5BD61F5BE5DA
  %224 = tail call double @llvm.fmuladd.f64(double %210, double %215, double %223)
  %225 = fmul double %38, %222
  %226 = extractelement <2 x double> %209, i64 0
  %227 = tail call double @llvm.fmuladd.f64(double %224, double %226, double %225)
  %228 = fmul double %40, %222
  %229 = extractelement <2 x double> %209, i64 1
  %230 = tail call double @llvm.fmuladd.f64(double %224, double %229, double %228)
  %231 = fmul double %square436, %11
  %232 = tail call double @llvm.fmuladd.f64(double %231, double %211, double 1.000000e+00)
  %233 = tail call double @llvm.fmuladd.f64(double %71, double %232, double %230)
  %234 = fmul double %9, %97
  %235 = fmul double %square436, %234
  %236 = tail call double @llvm.fmuladd.f64(double %235, double %211, double %233)
  %237 = fdiv double %212, 0x3FFB5BD61F5BE5DA
  %238 = fdiv double %221, 0x3FFB5BD61F5BE5DA
  %239 = fsub double %237, %238
  %240 = tail call double @llvm.fmuladd.f64(double %123, double %239, double %236)
  br i1 %124, label %241, label %278

241:                                              ; preds = %208
  %242 = fneg double %24
  %243 = tail call double @sqrt(double noundef %242) #7
  %244 = fmul double %243, 0x3FF6A09E667F3BCD
  %245 = fdiv double %244, %15
  %246 = tail call double @sqrt(double noundef %242) #7
  %247 = fmul double %15, %24
  %248 = tail call double @sqrt(double noundef %242) #7
  %249 = insertelement <2 x double> poison, double %246, i64 0
  %250 = insertelement <2 x double> %249, double %248, i64 1
  %251 = fmul <2 x double> %250, <double 0x3FE6A09E667F3BCD, double 0xBFF6A09E667F3BCD>
  %252 = insertelement <2 x double> poison, double %247, i64 0
  %253 = insertelement <2 x double> %252, double %square, i64 1
  %254 = fdiv <2 x double> %251, %253
  %255 = fsub double 1.000000e+00, %245
  %256 = fcmp ogt double %255, 0x3C9CD2B297D889BC
  br i1 %256, label %257, label %269

257:                                              ; preds = %241
  %258 = tail call double @pow(double noundef %255, double noundef 0x3FE5555555555555) #7
  %259 = fadd double %245, 1.000000e+00
  %260 = tail call double @pow(double noundef %259, double noundef 0x3FE5555555555555) #7
  %261 = fadd double %258, %260
  %262 = tail call double @cbrt(double noundef %259) #6
  %263 = tail call double @cbrt(double noundef %255) #6
  %264 = insertelement <2 x double> poison, double %262, i64 0
  %265 = insertelement <2 x double> %264, double %263, i64 1
  %266 = fdiv <2 x double> <double 0x3FE5555555555555, double 0x3FE5555555555555>, %265
  %shift = shufflevector <2 x double> %266, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %267 = fsub <2 x double> %266, %shift
  %268 = extractelement <2 x double> %267, i64 0
  br label %274

269:                                              ; preds = %241
  %270 = fadd double %245, 1.000000e+00
  %271 = tail call double @pow(double noundef %270, double noundef 0x3FE5555555555555) #7
  %272 = tail call double @cbrt(double noundef %270) #6
  %273 = fdiv double 0x3FE5555555555555, %272
  br label %274

274:                                              ; preds = %269, %257
  %.0429 = phi double [ %268, %257 ], [ %273, %269 ]
  %.0425 = phi double [ %261, %257 ], [ %271, %269 ]
  %275 = insertelement <2 x double> poison, double %.0429, i64 0
  %276 = shufflevector <2 x double> %275, <2 x double> poison, <2 x i32> zeroinitializer
  %277 = fmul <2 x double> %254, %276
  br label %326

278:                                              ; preds = %208
  %279 = fcmp olt double %24, 0x3C9CD2B297D889BC
  br i1 %279, label %280, label %288

280:                                              ; preds = %278
  %281 = fmul double %29, 0xBFCC71C71C71C71C
  %282 = tail call double @llvm.fmuladd.f64(double %square436, double 0xBFAD7F7926FABB86, double %281)
  %283 = fadd double %282, 2.000000e+00
  %284 = tail call double @llvm.fmuladd.f64(double %29, double 0xBFBD7F7926FABB86, double 0xBFCC71C71C71C71C)
  %285 = insertelement <2 x double> poison, double %284, i64 0
  %286 = shufflevector <2 x double> %285, <2 x double> poison, <2 x i32> zeroinitializer
  %287 = fmul <2 x double> %35, %286
  br label %326

288:                                              ; preds = %278
  %289 = tail call double @sqrt(double noundef %24) #7
  %290 = fmul double %289, 0x3FF6A09E667F3BCD
  %291 = fdiv double %290, %15
  %292 = tail call double @sqrt(double noundef %24) #7
  %293 = fmul double %15, %292
  %294 = fdiv double 0x3FE6A09E667F3BCD, %293
  %295 = tail call double @sqrt(double noundef %24) #7
  %296 = tail call double @atan(double noundef %291) #7
  %297 = fmul double %296, 0x3FE5555555555555
  %square451 = fmul double %291, %291
  %298 = fadd double %square451, 1.000000e+00
  %299 = fdiv double 0x3FE5555555555555, %298
  %300 = tail call double @cbrt(double noundef %298) #6
  %301 = fmul double %300, 2.000000e+00
  %302 = tail call double @cos(double noundef %297) #7
  %303 = fmul double %301, %302
  %304 = fmul double %300, -2.000000e+00
  %305 = tail call double @sin(double noundef %297) #7
  %306 = fmul double %304, %305
  %307 = fmul double %291, 0x3FF5555555555555
  %308 = tail call double @cos(double noundef %297) #7
  %309 = tail call double @pow(double noundef %298, double noundef 0x3FE5555555555555) #7
  %310 = insertelement <2 x double> poison, double %307, i64 0
  %311 = insertelement <2 x double> %310, double %295, i64 1
  %312 = insertelement <2 x double> <double poison, double 0xBFF6A09E667F3BCD>, double %308, i64 0
  %313 = fmul <2 x double> %311, %312
  %314 = insertelement <2 x double> poison, double %309, i64 0
  %315 = insertelement <2 x double> %314, double %square, i64 1
  %316 = fdiv <2 x double> %313, %315
  %317 = insertelement <2 x double> %316, double %294, i64 0
  %318 = insertelement <2 x double> poison, double %299, i64 0
  %319 = shufflevector <2 x double> %318, <2 x double> poison, <2 x i32> zeroinitializer
  %320 = fmul <2 x double> %317, %319
  %321 = insertelement <2 x double> poison, double %306, i64 0
  %322 = shufflevector <2 x double> %321, <2 x double> poison, <2 x i32> zeroinitializer
  %323 = fmul <2 x double> %320, %322
  %324 = shufflevector <2 x double> %317, <2 x double> %316, <2 x i32> <i32 0, i32 2>
  %325 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %316, <2 x double> %324, <2 x double> %323)
  br label %326

326:                                              ; preds = %280, %288, %274
  %.1426 = phi double [ %.0425, %274 ], [ %283, %280 ], [ %303, %288 ]
  %327 = phi <2 x double> [ %277, %274 ], [ %287, %280 ], [ %325, %288 ]
  %328 = fmul double %.1426, 5.000000e-01
  %329 = extractelement <2 x double> %327, i64 0
  %330 = fmul double %329, 5.000000e-01
  %331 = extractelement <2 x double> %327, i64 1
  %332 = fmul double %331, 5.000000e-01
  %333 = tail call double @pow(double noundef %328, double noundef 3.000000e+00) #7
  %square457 = fmul double %328, %328
  %334 = fmul double %square457, 3.000000e+00
  %335 = fmul double %330, %334
  %336 = fmul double %332, %334
  %337 = fneg double %220
  %338 = fmul double %333, 0x3F9FD63CF1FB1946
  %339 = fdiv double %337, %338
  %340 = tail call double @exp(double noundef %339) #7
  %341 = fadd double %340, -1.000000e+00
  %342 = tail call double @exp(double noundef %339) #7
  %343 = fneg double %342
  %344 = fdiv double %343, %338
  %345 = tail call double @exp(double noundef %339) #7
  %346 = fmul double %220, %345
  %square458 = fmul double %333, %333
  %347 = fmul double %square458, 0x3F9FD63CF1FB1946
  %348 = fdiv double %346, %347
  %349 = fmul double %335, %348
  %350 = tail call double @llvm.fmuladd.f64(double %344, double %227, double %349)
  %351 = fmul double %336, %348
  %352 = tail call double @llvm.fmuladd.f64(double %344, double %240, double %351)
  %353 = fmul double %341, 0x3F9FD63CF1FB1946
  %354 = fdiv double 0x3FB114DC32AE4A6A, %353
  %square459 = fmul double %341, %341
  %355 = fmul double %square459, 0x3F9FD63CF1FB1946
  %356 = fdiv double 0xBFB114DC32AE4A6A, %355
  %357 = fmul double %356, %350
  %358 = fmul double %356, %352
  %359 = tail call double @pow(double noundef %15, double noundef 0xBFF5555555555555) #7
  %360 = tail call double @sqrt(double noundef %27) #7
  %361 = fmul double %359, %360
  %362 = tail call double @pow(double noundef %15, double noundef 0xBFF5555555555555) #7
  %363 = tail call double @sqrt(double noundef %27) #7
  %364 = tail call double @pow(double noundef %15, double noundef 0xC002AAAAAAAAAAAA) #7
  %365 = fmul double %364, 0xBFF5555555555555
  %366 = tail call double @sqrt(double noundef %27) #7
  %367 = fmul double %365, %366
  %368 = fmul double %361, 0x3FC965FEA53D6E3C
  %369 = tail call double @sqrt(double noundef %42) #7
  %370 = fmul double %328, %369
  %371 = fdiv double %368, %370
  %372 = fmul double %361, 0xBFC965FEA53D6E3C
  %373 = tail call double @sqrt(double noundef %42) #7
  %374 = fmul double %square457, %373
  %375 = fdiv double %372, %374
  %376 = tail call double @sqrt(double noundef %42) #7
  %377 = fmul double %330, %375
  %378 = tail call double @pow(double noundef %42, double noundef 1.500000e+00) #7
  %379 = fmul double %328, %378
  %380 = fmul double %44, 0xBFB965FEA53D6E3C
  %381 = fmul double %380, %361
  %382 = fdiv double %381, %379
  %383 = tail call double @llvm.fmuladd.f64(double %332, double %375, double %382)
  %384 = tail call double @pow(double noundef %371, double noundef 4.000000e+00) #7
  %square461 = fmul double %371, %371
  %385 = tail call double @llvm.fmuladd.f64(double %354, double %384, double %square461)
  %386 = fmul double %354, 4.000000e+00
  %387 = tail call double @pow(double noundef %371, double noundef 3.000000e+00) #7
  %388 = fmul double %371, 2.000000e+00
  %389 = tail call double @llvm.fmuladd.f64(double %386, double %387, double %388)
  %390 = tail call double @pow(double noundef %371, double noundef 4.000000e+00) #7
  %391 = fmul double %377, %389
  %392 = tail call double @llvm.fmuladd.f64(double %357, double %390, double %391)
  %393 = fmul double %385, 0x3FB114DC32AE4A6A
  %394 = tail call double @llvm.fmuladd.f64(double %354, double %385, double 1.000000e+00)
  %395 = fneg double %385
  %396 = fmul double %385, %395
  %397 = fmul double %396, 0x3FB114DC32AE4A6A
  %square463 = fmul double %394, %394
  %398 = fmul double %square463, 0x3F9FD63CF1FB1946
  %399 = fdiv double %397, %398
  %400 = fneg double %354
  %401 = fmul double %385, %400
  %402 = insertelement <2 x double> poison, double %328, i64 0
  %403 = insertelement <2 x double> %402, double %394, i64 1
  %404 = insertelement <2 x double> <double poison, double 0x3F9FD63CF1FB1946>, double %376, i64 0
  %405 = fmul <2 x double> %403, %404
  %406 = fdiv <2 x double> <double 0x3FC965FEA53D6E3C, double 0x3FB114DC32AE4A6A>, %405
  %407 = extractelement <2 x double> %406, i64 0
  %408 = tail call double @llvm.fmuladd.f64(double %407, double %367, double %383)
  %409 = insertelement <2 x double> poison, double %362, i64 0
  %410 = insertelement <2 x double> %409, double %401, i64 1
  %411 = fmul <2 x double> %410, <double 5.000000e-01, double 0x3FB114DC32AE4A6A>
  %412 = insertelement <2 x double> poison, double %363, i64 0
  %413 = insertelement <2 x double> %412, double %398, i64 1
  %414 = fdiv <2 x double> %411, %413
  %415 = fmul <2 x double> %406, %414
  %416 = fadd <2 x double> %406, %414
  %417 = extractelement <2 x double> %415, i64 0
  %418 = fmul double %417, %389
  %419 = fmul double %389, %408
  %420 = tail call double @llvm.fmuladd.f64(double %358, double %390, double %419)
  %421 = extractelement <2 x double> %405, i64 1
  %422 = fdiv double %393, %421
  %423 = extractelement <2 x double> %416, i64 1
  %424 = fmul double %392, %423
  %425 = tail call double @llvm.fmuladd.f64(double %357, double %399, double %424)
  %426 = fmul double %418, %423
  %427 = fmul double %420, %423
  %428 = tail call double @llvm.fmuladd.f64(double %358, double %399, double %427)
  %429 = fadd double %422, 1.000000e+00
  %430 = tail call double @log(double noundef %429) #7
  %431 = fmul double %338, %430
  %432 = tail call double @log(double noundef %429) #7
  %433 = fmul double %432, 0x3F9FD63CF1FB1946
  %434 = fdiv double %338, %429
  %435 = fmul double %335, %433
  %436 = tail call double @llvm.fmuladd.f64(double %434, double %425, double %435)
  %437 = fmul double %434, %426
  %438 = fmul double %336, %433
  %439 = tail call double @llvm.fmuladd.f64(double %434, double %428, double %438)
  %440 = fadd double %220, %431
  %441 = fadd double %227, %436
  %442 = fadd double %240, %439
  %443 = getelementptr inbounds double, ptr %3, i64 %indvars.iv
  store double %440, ptr %443, align 8, !tbaa !5
  %444 = fmul double %15, %441
  %445 = getelementptr inbounds double, ptr %4, i64 %22
  store double %444, ptr %445, align 8, !tbaa !5
  %446 = fmul double %15, %437
  %447 = getelementptr inbounds double, ptr %5, i64 %25
  store double %446, ptr %447, align 8, !tbaa !5
  %448 = tail call double @llvm.fmuladd.f64(double %15, double %442, double %440)
  %449 = getelementptr inbounds double, ptr %4, i64 %13
  store double %448, ptr %449, align 8, !tbaa !5
  %450 = getelementptr inbounds i8, ptr %447, i64 8
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %450, i8 0, i64 16, i1 false)
  br label %451

451:                                              ; preds = %326, %17
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %12, !llvm.loop !9
}

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @pow(double noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare double @cbrt(double 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 @sqrt(double noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

attributes #0 = { mustprogress nofree nounwind memory(write, argmem: readwrite) 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 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 #2 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind willreturn memory(none) }
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 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass