; LLVM IR from VeloxChem/VeloxChem :: src/pdft_func/PairDensityP86.ll (ZN7pdftp8615compute_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 @_ZN7pdftp8615compute_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 i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %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
  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
  %104 = call double @pow(double noundef 0x400921FB54442D18, double noundef 0xBFD5555555555555) #5
  %105 = fmul double 0x3FED12ED0AF1A27F, %104
  store double %105, ptr %13, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  store double 4.235000e-03, ptr %14, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  %106 = call double @cbrt(double noundef 2.000000e+00) #6
  %107 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %106, double -2.000000e+00)
  %108 = fdiv double 1.000000e+00, %107
  store double %108, ptr %15, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %109

109:                                              ; preds = %919, %6
  %110 = load i32, ptr %16, align 4, !tbaa !5
  %111 = load i32, ptr %7, align 4, !tbaa !5
  %112 = icmp slt i32 %110, %111
  br i1 %112, label %114, label %113

113:                                              ; preds = %109
  store i32 2, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  br label %922

114:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %115 = load ptr, ptr %8, align 8, !tbaa !9
  %116 = load i32, ptr %16, align 4, !tbaa !5
  %117 = mul nsw i32 2, %116
  %118 = add nsw i32 %117, 0
  %119 = sext i32 %118 to i64
  %120 = getelementptr inbounds double, ptr %115, i64 %119
  %121 = load double, ptr %120, align 8, !tbaa !11
  store double %121, ptr %18, align 8, !tbaa !11
  %122 = load double, ptr %18, align 8, !tbaa !11
  %123 = fcmp olt double %122, 0x3C9CD2B297D889BC
  br i1 %123, label %124, label %159

124:                                              ; preds = %114
  %125 = load ptr, ptr %10, align 8, !tbaa !9
  %126 = load i32, ptr %16, align 4, !tbaa !5
  %127 = sext i32 %126 to i64
  %128 = getelementptr inbounds double, ptr %125, i64 %127
  store double 0.000000e+00, ptr %128, align 8, !tbaa !11
  %129 = load ptr, ptr %11, align 8, !tbaa !9
  %130 = load i32, ptr %16, align 4, !tbaa !5
  %131 = mul nsw i32 2, %130
  %132 = add nsw i32 %131, 0
  %133 = sext i32 %132 to i64
  %134 = getelementptr inbounds double, ptr %129, i64 %133
  store double 0.000000e+00, ptr %134, align 8, !tbaa !11
  %135 = load ptr, ptr %11, align 8, !tbaa !9
  %136 = load i32, ptr %16, align 4, !tbaa !5
  %137 = mul nsw i32 2, %136
  %138 = add nsw i32 %137, 1
  %139 = sext i32 %138 to i64
  %140 = getelementptr inbounds double, ptr %135, i64 %139
  store double 0.000000e+00, ptr %140, align 8, !tbaa !11
  %141 = load ptr, ptr %12, align 8, !tbaa !9
  %142 = load i32, ptr %16, align 4, !tbaa !5
  %143 = mul nsw i32 3, %142
  %144 = add nsw i32 %143, 0
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds double, ptr %141, i64 %145
  store double 0.000000e+00, ptr %146, align 8, !tbaa !11
  %147 = load ptr, ptr %12, align 8, !tbaa !9
  %148 = load i32, ptr %16, align 4, !tbaa !5
  %149 = mul nsw i32 3, %148
  %150 = add nsw i32 %149, 1
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds double, ptr %147, i64 %151
  store double 0.000000e+00, ptr %152, align 8, !tbaa !11
  %153 = load ptr, ptr %12, align 8, !tbaa !9
  %154 = load i32, ptr %16, align 4, !tbaa !5
  %155 = mul nsw i32 3, %154
  %156 = add nsw i32 %155, 2
  %157 = sext i32 %156 to i64
  %158 = getelementptr inbounds double, ptr %153, i64 %157
  store double 0.000000e+00, ptr %158, align 8, !tbaa !11
  store i32 4, ptr %17, align 4
  br label %916

159:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %160 = load ptr, ptr %8, align 8, !tbaa !9
  %161 = load i32, ptr %16, align 4, !tbaa !5
  %162 = mul nsw i32 2, %161
  %163 = add nsw i32 %162, 1
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds double, ptr %160, i64 %164
  %166 = load double, ptr %165, align 8, !tbaa !11
  store double %166, ptr %19, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  %167 = load ptr, ptr %9, align 8, !tbaa !9
  %168 = load i32, ptr %16, align 4, !tbaa !5
  %169 = mul nsw i32 3, %168
  %170 = add nsw i32 %169, 0
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds double, ptr %167, i64 %171
  %173 = load double, ptr %172, align 8, !tbaa !11
  store double %173, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %174 = load double, ptr %13, align 8, !tbaa !11
  %175 = load double, ptr %18, align 8, !tbaa !11
  %176 = call double @cbrt(double noundef %175) #6
  %177 = fdiv double %174, %176
  store double %177, ptr %21, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %178 = load double, ptr %13, align 8, !tbaa !11
  %179 = fmul double 0xBFD5555555555555, %178
  %180 = load double, ptr %18, align 8, !tbaa !11
  %181 = call double @pow(double noundef %180, double noundef 0x3FF5555555555555) #5
  %182 = fdiv double %179, %181
  store double %182, ptr %22, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %183 = load double, ptr %21, align 8, !tbaa !11
  %184 = call double @pow(double noundef %183, double noundef 2.000000e+00) #5
  store double %184, ptr %23, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %185 = load double, ptr %22, align 8, !tbaa !11
  %186 = fmul double 2.000000e+00, %185
  %187 = load double, ptr %21, align 8, !tbaa !11
  %188 = fmul double %186, %187
  store double %188, ptr %24, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  store double 0.000000e+00, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  store double 0.000000e+00, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  store double 0.000000e+00, ptr %27, align 8, !tbaa !11
  %189 = load double, ptr %19, align 8, !tbaa !11
  %190 = fcmp olt double %189, 0xBC9CD2B297D889BC
  br i1 %190, label %191, label %247

191:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  %192 = load double, ptr %19, align 8, !tbaa !11
  %193 = fneg double %192
  %194 = call double @sqrt(double noundef %193) #5
  %195 = fmul double 0x3FF6A09E667F3BCD, %194
  %196 = load double, ptr %18, align 8, !tbaa !11
  %197 = fdiv double %195, %196
  store double %197, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  %198 = load double, ptr %19, align 8, !tbaa !11
  %199 = fneg double %198
  %200 = call double @sqrt(double noundef %199) #5
  %201 = fmul double 0xBFF6A09E667F3BCD, %200
  %202 = load double, ptr %18, align 8, !tbaa !11
  %203 = call double @pow(double noundef %202, double noundef 2.000000e+00) #5
  %204 = fdiv double %201, %203
  store double %204, ptr %29, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  %205 = load double, ptr %19, align 8, !tbaa !11
  %206 = fneg double %205
  %207 = call double @sqrt(double noundef %206) #5
  %208 = fmul double 0x3FE6A09E667F3BCD, %207
  %209 = load double, ptr %18, align 8, !tbaa !11
  %210 = load double, ptr %19, align 8, !tbaa !11
  %211 = fmul double %209, %210
  %212 = fdiv double %208, %211
  store double %212, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  store double 0.000000e+00, ptr %31, align 8, !tbaa !11
  %213 = load double, ptr %28, align 8, !tbaa !11
  %214 = fsub double 1.000000e+00, %213
  %215 = fcmp ogt double %214, 0x3C9CD2B297D889BC
  br i1 %215, label %216, label %232

216:                                              ; preds = %191
  %217 = load double, ptr %28, align 8, !tbaa !11
  %218 = fsub double 1.000000e+00, %217
  %219 = call double @pow(double noundef %218, double noundef 0x3FFAAAAAAAAAAAAB) #5
  %220 = load double, ptr %28, align 8, !tbaa !11
  %221 = fadd double %220, 1.000000e+00
  %222 = call double @pow(double noundef %221, double noundef 0x3FFAAAAAAAAAAAAB) #5
  %223 = fadd double %219, %222
  store double %223, ptr %26, align 8, !tbaa !11
  %224 = load double, ptr %28, align 8, !tbaa !11
  %225 = fsub double 1.000000e+00, %224
  %226 = call double @pow(double noundef %225, double noundef 0x3FE5555555555555) #5
  %227 = load double, ptr %28, align 8, !tbaa !11
  %228 = fadd double %227, 1.000000e+00
  %229 = call double @pow(double noundef %228, double noundef 0x3FE5555555555555) #5
  %230 = fmul double 0x3FFAAAAAAAAAAAAB, %229
  %231 = call double @llvm.fmuladd.f64(double 0xBFFAAAAAAAAAAAAB, double %226, double %230)
  store double %231, ptr %31, align 8, !tbaa !11
  br label %240

232:                                              ; preds = %191
  %233 = load double, ptr %28, align 8, !tbaa !11
  %234 = fadd double %233, 1.000000e+00
  %235 = call double @pow(double noundef %234, double noundef 0x3FFAAAAAAAAAAAAB) #5
  store double %235, ptr %26, align 8, !tbaa !11
  %236 = load double, ptr %28, align 8, !tbaa !11
  %237 = fadd double %236, 1.000000e+00
  %238 = call double @pow(double noundef %237, double noundef 0x3FE5555555555555) #5
  %239 = fmul double 0x3FFAAAAAAAAAAAAB, %238
  store double %239, ptr %31, align 8, !tbaa !11
  br label %240

240:                                              ; preds = %232, %216
  %241 = load double, ptr %31, align 8, !tbaa !11
  %242 = load double, ptr %29, align 8, !tbaa !11
  %243 = fmul double %241, %242
  store double %243, ptr %27, align 8, !tbaa !11
  %244 = load double, ptr %31, align 8, !tbaa !11
  %245 = load double, ptr %30, align 8, !tbaa !11
  %246 = fmul double %244, %245
  store double %246, ptr %25, align 8, !tbaa !11
  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
  br label %347

247:                                              ; preds = %159
  %248 = load double, ptr %19, align 8, !tbaa !11
  %249 = fcmp olt double %248, 0x3C9CD2B297D889BC
  br i1 %249, label %250, label %278

250:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %251 = load double, ptr %19, align 8, !tbaa !11
  %252 = fmul double -2.000000e+00, %251
  %253 = load double, ptr %18, align 8, !tbaa !11
  %254 = call double @pow(double noundef %253, double noundef 2.000000e+00) #5
  %255 = fdiv double %252, %254
  store double %255, ptr %32, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %256 = load double, ptr %19, align 8, !tbaa !11
  %257 = fmul double 4.000000e+00, %256
  %258 = load double, ptr %18, align 8, !tbaa !11
  %259 = call double @pow(double noundef %258, double noundef 3.000000e+00) #5
  %260 = fdiv double %257, %259
  store double %260, ptr %33, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  %261 = load double, ptr %18, align 8, !tbaa !11
  %262 = call double @pow(double noundef %261, double noundef 2.000000e+00) #5
  %263 = fdiv double -2.000000e+00, %262
  store double %263, ptr %34, align 8, !tbaa !11
  %264 = load double, ptr %32, align 8, !tbaa !11
  %265 = call double @pow(double noundef %264, double noundef 2.000000e+00) #5
  %266 = load double, ptr %32, align 8, !tbaa !11
  %267 = fmul double 0x3FF1C71C71C71C72, %266
  %268 = call double @llvm.fmuladd.f64(double 0x3FA511E8D2B3183B, double %265, double %267)
  %269 = fadd double %268, 2.000000e+00
  store double %269, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  %270 = load double, ptr %32, align 8, !tbaa !11
  %271 = call double @llvm.fmuladd.f64(double 0x3FB511E8D2B3183B, double %270, double 0x3FF1C71C71C71C72)
  store double %271, ptr %35, align 8, !tbaa !11
  %272 = load double, ptr %35, align 8, !tbaa !11
  %273 = load double, ptr %33, align 8, !tbaa !11
  %274 = fmul double %272, %273
  store double %274, ptr %27, align 8, !tbaa !11
  %275 = load double, ptr %35, align 8, !tbaa !11
  %276 = load double, ptr %34, align 8, !tbaa !11
  %277 = fmul double %275, %276
  store double %277, ptr %25, align 8, !tbaa !11
  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
  br label %346

278:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  %279 = load double, ptr %19, align 8, !tbaa !11
  %280 = call double @sqrt(double noundef %279) #5
  %281 = fmul double 0x3FF6A09E667F3BCD, %280
  %282 = load double, ptr %18, align 8, !tbaa !11
  %283 = fdiv double %281, %282
  store double %283, ptr %36, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  %284 = load double, ptr %19, align 8, !tbaa !11
  %285 = call double @sqrt(double noundef %284) #5
  %286 = fmul double 0xBFF6A09E667F3BCD, %285
  %287 = load double, ptr %18, align 8, !tbaa !11
  %288 = call double @pow(double noundef %287, double noundef 2.000000e+00) #5
  %289 = fdiv double %286, %288
  store double %289, ptr %37, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  %290 = load double, ptr %18, align 8, !tbaa !11
  %291 = load double, ptr %19, align 8, !tbaa !11
  %292 = call double @sqrt(double noundef %291) #5
  %293 = fmul double %290, %292
  %294 = fdiv double 0x3FE6A09E667F3BCD, %293
  store double %294, ptr %38, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  %295 = load double, ptr %36, align 8, !tbaa !11
  %296 = call double @atan(double noundef %295) #5
  %297 = fmul double 0x3FFAAAAAAAAAAAAB, %296
  store double %297, ptr %39, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  %298 = load double, ptr %36, align 8, !tbaa !11
  %299 = call double @pow(double noundef %298, double noundef 2.000000e+00) #5
  %300 = fadd double %299, 1.000000e+00
  %301 = fdiv double 0x3FFAAAAAAAAAAAAB, %300
  store double %301, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  %302 = load double, ptr %37, align 8, !tbaa !11
  %303 = load double, ptr %40, align 8, !tbaa !11
  %304 = fmul double %302, %303
  store double %304, ptr %41, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  %305 = load double, ptr %38, align 8, !tbaa !11
  %306 = load double, ptr %40, align 8, !tbaa !11
  %307 = fmul double %305, %306
  store double %307, ptr %42, align 8, !tbaa !11
  %308 = load double, ptr %36, align 8, !tbaa !11
  %309 = call double @pow(double noundef %308, double noundef 2.000000e+00) #5
  %310 = fadd double %309, 1.000000e+00
  %311 = call double @pow(double noundef %310, double noundef 0x3FEAAAAAAAAAAAAB) #5
  %312 = fmul double 2.000000e+00, %311
  %313 = load double, ptr %39, align 8, !tbaa !11
  %314 = call double @cos(double noundef %313) #5
  %315 = fmul double %312, %314
  store double %315, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  %316 = load double, ptr %36, align 8, !tbaa !11
  %317 = fmul double 0x400AAAAAAAAAAAAB, %316
  %318 = load double, ptr %39, align 8, !tbaa !11
  %319 = call double @cos(double noundef %318) #5
  %320 = fmul double %317, %319
  %321 = load double, ptr %36, align 8, !tbaa !11
  %322 = call double @pow(double noundef %321, double noundef 2.000000e+00) #5
  %323 = fadd double %322, 1.000000e+00
  %324 = call double @pow(double noundef %323, double noundef 0x3FC5555555555555) #5
  %325 = fdiv double %320, %324
  store double %325, ptr %43, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  %326 = load double, ptr %36, align 8, !tbaa !11
  %327 = call double @pow(double noundef %326, double noundef 2.000000e+00) #5
  %328 = fadd double %327, 1.000000e+00
  %329 = call double @pow(double noundef %328, double noundef 0x3FEAAAAAAAAAAAAB) #5
  %330 = fmul double -2.000000e+00, %329
  %331 = load double, ptr %39, align 8, !tbaa !11
  %332 = call double @sin(double noundef %331) #5
  %333 = fmul double %330, %332
  store double %333, ptr %44, align 8, !tbaa !11
  %334 = load double, ptr %37, align 8, !tbaa !11
  %335 = load double, ptr %43, align 8, !tbaa !11
  %336 = load double, ptr %44, align 8, !tbaa !11
  %337 = load double, ptr %41, align 8, !tbaa !11
  %338 = fmul double %336, %337
  %339 = call double @llvm.fmuladd.f64(double %334, double %335, double %338)
  store double %339, ptr %27, align 8, !tbaa !11
  %340 = load double, ptr %38, align 8, !tbaa !11
  %341 = load double, ptr %43, align 8, !tbaa !11
  %342 = load double, ptr %44, align 8, !tbaa !11
  %343 = load double, ptr %42, align 8, !tbaa !11
  %344 = fmul double %342, %343
  %345 = call double @llvm.fmuladd.f64(double %340, double %341, double %344)
  store double %345, ptr %25, align 8, !tbaa !11
  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
  br label %346

346:                                              ; preds = %278, %250
  br label %347

347:                                              ; preds = %346, %240
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  %348 = load double, ptr %26, align 8, !tbaa !11
  %349 = call double @sqrt(double noundef %348) #5
  %350 = fmul double 0x3FE6A09E667F3BCD, %349
  store double %350, ptr %45, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  %351 = load double, ptr %26, align 8, !tbaa !11
  %352 = call double @sqrt(double noundef %351) #5
  %353 = fdiv double 0x3FD6A09E667F3BCD, %352
  store double %353, ptr %46, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  %354 = load double, ptr %46, align 8, !tbaa !11
  %355 = load double, ptr %27, align 8, !tbaa !11
  %356 = fmul double %354, %355
  store double %356, ptr %47, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  %357 = load double, ptr %46, align 8, !tbaa !11
  %358 = load double, ptr %25, align 8, !tbaa !11
  %359 = fmul double %357, %358
  store double %359, ptr %48, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  %360 = load double, ptr %21, align 8, !tbaa !11
  %361 = load double, ptr %23, align 8, !tbaa !11
  %362 = fmul double 7.389000e-06, %361
  %363 = call double @llvm.fmuladd.f64(double 2.326600e-02, double %360, double %362)
  %364 = fadd double %363, 2.568000e-03
  %365 = load double, ptr %21, align 8, !tbaa !11
  %366 = call double @pow(double noundef %365, double noundef 3.000000e+00) #5
  %367 = load double, ptr %21, align 8, !tbaa !11
  %368 = fmul double 8.723000e+00, %367
  %369 = call double @llvm.fmuladd.f64(double 0x3FB2EA747D805E5F, double %366, double %368)
  %370 = load double, ptr %23, align 8, !tbaa !11
  %371 = call double @llvm.fmuladd.f64(double 4.720000e-01, double %370, double %369)
  %372 = fadd double %371, 1.000000e+00
  %373 = fdiv double %364, %372
  %374 = fadd double %373, 1.667000e-03
  store double %374, ptr %49, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  %375 = load double, ptr %24, align 8, !tbaa !11
  %376 = load double, ptr %21, align 8, !tbaa !11
  %377 = load double, ptr %23, align 8, !tbaa !11
  %378 = fmul double 7.389000e-06, %377
  %379 = call double @llvm.fmuladd.f64(double 2.326600e-02, double %376, double %378)
  %380 = fadd double %379, 2.568000e-03
  %381 = fmul double 0xBF7968719E2F4481, %380
  %382 = load double, ptr %21, align 8, !tbaa !11
  %383 = call double @pow(double noundef %382, double noundef 3.000000e+00) #5
  %384 = load double, ptr %21, align 8, !tbaa !11
  %385 = call double @llvm.fmuladd.f64(double 0x3F81591766463E8B, double %383, double %384)
  %386 = load double, ptr %23, align 8, !tbaa !11
  %387 = call double @llvm.fmuladd.f64(double 0x3FABB4486E1CD1C6, double %386, double %385)
  %388 = fadd double %387, 0x3FBD5902F6D06D68
  %389 = call double @pow(double noundef %388, double noundef 2.000000e+00) #5
  %390 = fdiv double %381, %389
  %391 = load double, ptr %21, align 8, !tbaa !11
  %392 = call double @pow(double noundef %391, double noundef 3.000000e+00) #5
  %393 = load double, ptr %21, align 8, !tbaa !11
  %394 = fmul double 8.723000e+00, %393
  %395 = call double @llvm.fmuladd.f64(double 0x3FB2EA747D805E5F, double %392, double %394)
  %396 = load double, ptr %23, align 8, !tbaa !11
  %397 = call double @llvm.fmuladd.f64(double 4.720000e-01, double %396, double %395)
  %398 = fadd double %397, 1.000000e+00
  %399 = fdiv double 7.389000e-06, %398
  %400 = fadd double %390, %399
  %401 = load double, ptr %22, align 8, !tbaa !11
  %402 = load double, ptr %21, align 8, !tbaa !11
  %403 = call double @pow(double noundef %402, double noundef 2.000000e+00) #5
  %404 = call double @llvm.fmuladd.f64(double 0xBFCC5FAEBC408D8E, double %403, double -8.723000e+00)
  %405 = fmul double 0x3F8AEA4CF7D6F3F6, %404
  %406 = load double, ptr %21, align 8, !tbaa !11
  %407 = load double, ptr %23, align 8, !tbaa !11
  %408 = fmul double 7.389000e-06, %407
  %409 = call double @llvm.fmuladd.f64(double 2.326600e-02, double %406, double %408)
  %410 = fadd double %409, 2.568000e-03
  %411 = fmul double %405, %410
  %412 = load double, ptr %21, align 8, !tbaa !11
  %413 = call double @pow(double noundef %412, double noundef 3.000000e+00) #5
  %414 = load double, ptr %21, align 8, !tbaa !11
  %415 = call double @llvm.fmuladd.f64(double 0x3F81591766463E8B, double %413, double %414)
  %416 = load double, ptr %23, align 8, !tbaa !11
  %417 = call double @llvm.fmuladd.f64(double 0x3FABB4486E1CD1C6, double %416, double %415)
  %418 = fadd double %417, 0x3FBD5902F6D06D68
  %419 = call double @pow(double noundef %418, double noundef 2.000000e+00) #5
  %420 = fdiv double %411, %419
  %421 = load double, ptr %21, align 8, !tbaa !11
  %422 = call double @pow(double noundef %421, double noundef 3.000000e+00) #5
  %423 = load double, ptr %21, align 8, !tbaa !11
  %424 = fmul double 8.723000e+00, %423
  %425 = call double @llvm.fmuladd.f64(double 0x3FB2EA747D805E5F, double %422, double %424)
  %426 = load double, ptr %23, align 8, !tbaa !11
  %427 = call double @llvm.fmuladd.f64(double 4.720000e-01, double %426, double %425)
  %428 = fadd double %427, 1.000000e+00
  %429 = fdiv double 2.326600e-02, %428
  %430 = fadd double %420, %429
  %431 = fmul double %401, %430
  %432 = call double @llvm.fmuladd.f64(double %375, double %400, double %431)
  store double %432, ptr %50, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  %433 = load double, ptr %18, align 8, !tbaa !11
  %434 = call double @pow(double noundef %433, double noundef 0xBFF5555555555555) #5
  %435 = load double, ptr %20, align 8, !tbaa !11
  %436 = call double @sqrt(double noundef %435) #5
  %437 = fmul double %434, %436
  store double %437, ptr %51, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  %438 = load double, ptr %18, align 8, !tbaa !11
  %439 = call double @pow(double noundef %438, double noundef 0xC002AAAAAAAAAAAA) #5
  %440 = fmul double 0xBFF5555555555555, %439
  %441 = load double, ptr %20, align 8, !tbaa !11
  %442 = call double @sqrt(double noundef %441) #5
  %443 = fmul double %440, %442
  store double %443, ptr %52, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  %444 = load double, ptr %18, align 8, !tbaa !11
  %445 = call double @pow(double noundef %444, double noundef 0xBFF5555555555555) #5
  %446 = fmul double 5.000000e-01, %445
  %447 = load double, ptr %20, align 8, !tbaa !11
  %448 = call double @sqrt(double noundef %447) #5
  %449 = fdiv double %446, %448
  store double %449, ptr %53, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  %450 = load double, ptr %51, align 8, !tbaa !11
  %451 = load double, ptr %21, align 8, !tbaa !11
  %452 = load double, ptr %13, align 8, !tbaa !11
  %453 = fdiv double %451, %452
  %454 = call double @sqrt(double noundef %453) #5
  %455 = fdiv double %450, %454
  store double %455, ptr %54, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #5
  %456 = load double, ptr %21, align 8, !tbaa !11
  %457 = load double, ptr %13, align 8, !tbaa !11
  %458 = fdiv double %456, %457
  %459 = call double @pow(double noundef %458, double noundef -5.000000e-01) #5
  store double %459, ptr %55, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #5
  %460 = load double, ptr %22, align 8, !tbaa !11
  %461 = fmul double -5.000000e-01, %460
  %462 = load double, ptr %51, align 8, !tbaa !11
  %463 = fmul double %461, %462
  %464 = load double, ptr %21, align 8, !tbaa !11
  %465 = load double, ptr %21, align 8, !tbaa !11
  %466 = load double, ptr %13, align 8, !tbaa !11
  %467 = fdiv double %465, %466
  %468 = call double @sqrt(double noundef %467) #5
  %469 = fmul double %464, %468
  %470 = fdiv double %463, %469
  %471 = load double, ptr %55, align 8, !tbaa !11
  %472 = load double, ptr %52, align 8, !tbaa !11
  %473 = call double @llvm.fmuladd.f64(double %471, double %472, double %470)
  store double %473, ptr %56, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  %474 = load double, ptr %55, align 8, !tbaa !11
  %475 = load double, ptr %53, align 8, !tbaa !11
  %476 = fmul double %474, %475
  store double %476, ptr %57, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  %477 = load double, ptr %14, align 8, !tbaa !11
  %478 = fmul double 1.919500e-01, %477
  %479 = load double, ptr %54, align 8, !tbaa !11
  %480 = fmul double %478, %479
  %481 = load double, ptr %49, align 8, !tbaa !11
  %482 = fdiv double %480, %481
  store double %482, ptr %58, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  %483 = load double, ptr %14, align 8, !tbaa !11
  %484 = fmul double 1.919500e-01, %483
  %485 = load double, ptr %49, align 8, !tbaa !11
  %486 = fdiv double %484, %485
  store double %486, ptr %59, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #5
  %487 = load double, ptr %59, align 8, !tbaa !11
  %488 = load double, ptr %56, align 8, !tbaa !11
  %489 = load double, ptr %14, align 8, !tbaa !11
  %490 = fmul double 1.919500e-01, %489
  %491 = load double, ptr %50, align 8, !tbaa !11
  %492 = fmul double %490, %491
  %493 = load double, ptr %54, align 8, !tbaa !11
  %494 = fmul double %492, %493
  %495 = load double, ptr %49, align 8, !tbaa !11
  %496 = call double @pow(double noundef %495, double noundef 2.000000e+00) #5
  %497 = fdiv double %494, %496
  %498 = fneg double %497
  %499 = call double @llvm.fmuladd.f64(double %487, double %488, double %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 %59, align 8, !tbaa !11
  %501 = load double, ptr %57, align 8, !tbaa !11
  %502 = fmul double %500, %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 %49, align 8, !tbaa !11
  %504 = load double, ptr %54, align 8, !tbaa !11
  %505 = call double @pow(double noundef %504, double noundef 2.000000e+00) #5
  %506 = fmul double %503, %505
  %507 = load double, ptr %58, align 8, !tbaa !11
  %508 = fneg double %507
  %509 = call double @exp(double noundef %508) #5
  %510 = fmul double %506, %509
  %511 = load double, ptr %45, align 8, !tbaa !11
  %512 = fdiv double %510, %511
  store double %512, ptr %62, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  %513 = load double, ptr %49, align 8, !tbaa !11
  %514 = fmul double 2.000000e+00, %513
  %515 = load double, ptr %54, align 8, !tbaa !11
  %516 = fmul double %514, %515
  %517 = load double, ptr %58, align 8, !tbaa !11
  %518 = fneg double %517
  %519 = call double @exp(double noundef %518) #5
  %520 = fmul double %516, %519
  %521 = load double, ptr %45, align 8, !tbaa !11
  %522 = fdiv double %520, %521
  store double %522, ptr %63, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  %523 = load double, ptr %49, align 8, !tbaa !11
  %524 = fneg double %523
  %525 = load double, ptr %54, align 8, !tbaa !11
  %526 = call double @pow(double noundef %525, double noundef 2.000000e+00) #5
  %527 = fmul double %524, %526
  %528 = load double, ptr %58, align 8, !tbaa !11
  %529 = fneg double %528
  %530 = call double @exp(double noundef %529) #5
  %531 = fmul double %527, %530
  %532 = load double, ptr %45, align 8, !tbaa !11
  %533 = fdiv double %531, %532
  store double %533, ptr %64, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  %534 = load double, ptr %49, align 8, !tbaa !11
  %535 = fneg double %534
  %536 = load double, ptr %54, align 8, !tbaa !11
  %537 = call double @pow(double noundef %536, double noundef 2.000000e+00) #5
  %538 = fmul double %535, %537
  %539 = load double, ptr %58, align 8, !tbaa !11
  %540 = fneg double %539
  %541 = call double @exp(double noundef %540) #5
  %542 = fmul double %538, %541
  %543 = load double, ptr %45, align 8, !tbaa !11
  %544 = call double @pow(double noundef %543, double noundef 2.000000e+00) #5
  %545 = fdiv double %542, %544
  store double %545, ptr %65, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  %546 = load double, ptr %50, align 8, !tbaa !11
  %547 = load double, ptr %54, align 8, !tbaa !11
  %548 = call double @pow(double noundef %547, double noundef 2.000000e+00) #5
  %549 = fmul double %546, %548
  %550 = load double, ptr %58, align 8, !tbaa !11
  %551 = fneg double %550
  %552 = call double @exp(double noundef %551) #5
  %553 = fmul double %549, %552
  %554 = load double, ptr %45, align 8, !tbaa !11
  %555 = fdiv double %553, %554
  %556 = load double, ptr %47, align 8, !tbaa !11
  %557 = load double, ptr %65, align 8, !tbaa !11
  %558 = call double @llvm.fmuladd.f64(double %556, double %557, double %555)
  %559 = load double, ptr %60, align 8, !tbaa !11
  %560 = load double, ptr %64, align 8, !tbaa !11
  %561 = call double @llvm.fmuladd.f64(double %559, double %560, double %558)
  %562 = load double, ptr %63, align 8, !tbaa !11
  %563 = load double, ptr %56, align 8, !tbaa !11
  %564 = call double @llvm.fmuladd.f64(double %562, double %563, double %561)
  store double %564, ptr %66, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  %565 = load double, ptr %48, align 8, !tbaa !11
  %566 = load double, ptr %65, align 8, !tbaa !11
  %567 = fmul double %565, %566
  store double %567, ptr %67, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  %568 = load double, ptr %61, align 8, !tbaa !11
  %569 = load double, ptr %64, align 8, !tbaa !11
  %570 = load double, ptr %63, align 8, !tbaa !11
  %571 = load double, ptr %57, align 8, !tbaa !11
  %572 = fmul double %570, %571
  %573 = call double @llvm.fmuladd.f64(double %568, double %569, double %572)
  store double %573, ptr %68, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  store double 0.000000e+00, ptr %69, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  store double 0.000000e+00, ptr %70, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  store double 0.000000e+00, ptr %71, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  store double 0.000000e+00, ptr %72, align 8, !tbaa !11
  %574 = load double, ptr %21, align 8, !tbaa !11
  %575 = fcmp oge double %574, 1.000000e+00
  br i1 %575, label %576, label %619

576:                                              ; preds = %347
  %577 = load double, ptr %21, align 8, !tbaa !11
  %578 = call double @sqrt(double noundef %577) #5
  %579 = load double, ptr %21, align 8, !tbaa !11
  %580 = fmul double 3.334000e-01, %579
  %581 = call double @llvm.fmuladd.f64(double 1.052900e+00, double %578, double %580)
  %582 = fadd double %581, 1.000000e+00
  %583 = fdiv double -1.423000e-01, %582
  store double %583, ptr %70, align 8, !tbaa !11
  %584 = load double, ptr %22, align 8, !tbaa !11
  %585 = fmul double 0xBFC06E1C0DDE33D2, %584
  %586 = load double, ptr %21, align 8, !tbaa !11
  %587 = call double @sqrt(double noundef %586) #5
  %588 = fdiv double 5.264500e-01, %587
  %589 = fsub double -3.334000e-01, %588
  %590 = fmul double %585, %589
  %591 = load double, ptr %21, align 8, !tbaa !11
  %592 = call double @sqrt(double noundef %591) #5
  %593 = load double, ptr %21, align 8, !tbaa !11
  %594 = call double @llvm.fmuladd.f64(double 0x3FD443FB3C07E0AF, double %593, double %592)
  %595 = fadd double %594, 0x3FEE646A7E93E065
  %596 = call double @pow(double noundef %595, double noundef 2.000000e+00) #5
  %597 = fdiv double %590, %596
  store double %597, ptr %71, align 8, !tbaa !11
  %598 = load double, ptr %21, align 8, !tbaa !11
  %599 = call double @sqrt(double noundef %598) #5
  %600 = load double, ptr %21, align 8, !tbaa !11
  %601 = fmul double 2.611000e-01, %600
  %602 = call double @llvm.fmuladd.f64(double 1.398100e+00, double %599, double %601)
  %603 = fadd double %602, 1.000000e+00
  %604 = fdiv double 0xBFB594AF4F0D844D, %603
  store double %604, ptr %72, align 8, !tbaa !11
  %605 = load double, ptr %22, align 8, !tbaa !11
  %606 = fmul double 0xBFA614C42AF86F4C, %605
  %607 = load double, ptr %21, align 8, !tbaa !11
  %608 = call double @sqrt(double noundef %607) #5
  %609 = fdiv double 0x3FE65E9E1B089A02, %608
  %610 = fsub double -2.611000e-01, %609
  %611 = fmul double %606, %610
  %612 = load double, ptr %21, align 8, !tbaa !11
  %613 = call double @sqrt(double noundef %612) #5
  %614 = load double, ptr %21, align 8, !tbaa !11
  %615 = call double @llvm.fmuladd.f64(double 0x3FC7E7897E7897E8, double %614, double %613)
  %616 = fadd double %615, 0x3FE6E3616E3616E4
  %617 = call double @pow(double noundef %616, double noundef 2.000000e+00) #5
  %618 = fdiv double %611, %617
  store double %618, ptr %69, align 8, !tbaa !11
  br label %660

619:                                              ; preds = %347
  %620 = load double, ptr %21, align 8, !tbaa !11
  %621 = fmul double 2.000000e-03, %620
  %622 = load double, ptr %21, align 8, !tbaa !11
  %623 = call double @log(double noundef %622) #5
  %624 = load double, ptr %21, align 8, !tbaa !11
  %625 = fmul double 1.160000e-02, %624
  %626 = fneg double %625
  %627 = call double @llvm.fmuladd.f64(double %621, double %623, double %626)
  %628 = load double, ptr %21, align 8, !tbaa !11
  %629 = call double @log(double noundef %628) #5
  %630 = call double @llvm.fmuladd.f64(double 3.110000e-02, double %629, double %627)
  %631 = fsub double %630, 4.800000e-02
  store double %631, ptr %70, align 8, !tbaa !11
  %632 = load double, ptr %22, align 8, !tbaa !11
  %633 = load double, ptr %21, align 8, !tbaa !11
  %634 = call double @log(double noundef %633) #5
  %635 = call double @llvm.fmuladd.f64(double 2.000000e-03, double %634, double 0xBF83A92A30553261)
  %636 = load double, ptr %21, align 8, !tbaa !11
  %637 = fdiv double 3.110000e-02, %636
  %638 = fadd double %635, %637
  %639 = fmul double %632, %638
  store double %639, ptr %71, align 8, !tbaa !11
  %640 = load double, ptr %21, align 8, !tbaa !11
  %641 = fmul double 7.000000e-04, %640
  %642 = load double, ptr %21, align 8, !tbaa !11
  %643 = call double @log(double noundef %642) #5
  %644 = load double, ptr %21, align 8, !tbaa !11
  %645 = fmul double 4.800000e-03, %644
  %646 = fneg double %645
  %647 = call double @llvm.fmuladd.f64(double %641, double %643, double %646)
  %648 = load double, ptr %21, align 8, !tbaa !11
  %649 = call double @log(double noundef %648) #5
  %650 = call double @llvm.fmuladd.f64(double 1.555000e-02, double %649, double %647)
  %651 = fsub double %650, 2.690000e-02
  store double %651, ptr %72, align 8, !tbaa !11
  %652 = load double, ptr %22, align 8, !tbaa !11
  %653 = load double, ptr %21, align 8, !tbaa !11
  %654 = call double @log(double noundef %653) #5
  %655 = call double @llvm.fmuladd.f64(double 7.000000e-04, double %654, double 0xBF70CB295E9E1B08)
  %656 = load double, ptr %21, align 8, !tbaa !11
  %657 = fdiv double 1.555000e-02, %656
  %658 = fadd double %655, %657
  %659 = fmul double %652, %658
  store double %659, ptr %69, align 8, !tbaa !11
  br label %660

660:                                              ; preds = %619, %576
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  store double 0.000000e+00, ptr %73, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #5
  store double 0.000000e+00, ptr %74, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  store double 0.000000e+00, ptr %75, align 8, !tbaa !11
  %661 = load double, ptr %19, align 8, !tbaa !11
  %662 = fcmp olt double %661, 0xBC9CD2B297D889BC
  br i1 %662, label %663, label %719

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

688:                                              ; preds = %663
  %689 = load double, ptr %76, align 8, !tbaa !11
  %690 = fsub double 1.000000e+00, %689
  %691 = call double @pow(double noundef %690, double noundef 0x3FF5555555555555) #5
  %692 = load double, ptr %76, align 8, !tbaa !11
  %693 = fadd double %692, 1.000000e+00
  %694 = call double @pow(double noundef %693, double noundef 0x3FF5555555555555) #5
  %695 = fadd double %691, %694
  store double %695, ptr %73, align 8, !tbaa !11
  %696 = load double, ptr %76, align 8, !tbaa !11
  %697 = fsub double 1.000000e+00, %696
  %698 = call double @cbrt(double noundef %697) #6
  %699 = load double, ptr %76, align 8, !tbaa !11
  %700 = fadd double %699, 1.000000e+00
  %701 = call double @cbrt(double noundef %700) #6
  %702 = fmul double 0x3FF5555555555555, %701
  %703 = call double @llvm.fmuladd.f64(double 0xBFF5555555555555, double %698, double %702)
  store double %703, ptr %79, align 8, !tbaa !11
  br label %712

704:                                              ; preds = %663
  %705 = load double, ptr %76, align 8, !tbaa !11
  %706 = fadd double %705, 1.000000e+00
  %707 = call double @pow(double noundef %706, double noundef 0x3FF5555555555555) #5
  store double %707, ptr %73, align 8, !tbaa !11
  %708 = load double, ptr %76, align 8, !tbaa !11
  %709 = fadd double %708, 1.000000e+00
  %710 = call double @cbrt(double noundef %709) #6
  %711 = fmul double 0x3FF5555555555555, %710
  store double %711, ptr %79, align 8, !tbaa !11
  br label %712

712:                                              ; preds = %704, %688
  %713 = load double, ptr %79, align 8, !tbaa !11
  %714 = load double, ptr %77, align 8, !tbaa !11
  %715 = fmul double %713, %714
  store double %715, ptr %74, align 8, !tbaa !11
  %716 = load double, ptr %79, align 8, !tbaa !11
  %717 = load double, ptr %78, align 8, !tbaa !11
  %718 = fmul double %716, %717
  store double %718, ptr %75, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #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
  br label %819

719:                                              ; preds = %660
  %720 = load double, ptr %19, align 8, !tbaa !11
  %721 = fcmp olt double %720, 0x3C9CD2B297D889BC
  br i1 %721, label %722, label %750

722:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  %723 = load double, ptr %19, align 8, !tbaa !11
  %724 = fmul double -2.000000e+00, %723
  %725 = load double, ptr %18, align 8, !tbaa !11
  %726 = call double @pow(double noundef %725, double noundef 2.000000e+00) #5
  %727 = fdiv double %724, %726
  store double %727, ptr %80, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  %728 = load double, ptr %19, align 8, !tbaa !11
  %729 = fmul double 4.000000e+00, %728
  %730 = load double, ptr %18, align 8, !tbaa !11
  %731 = call double @pow(double noundef %730, double noundef 3.000000e+00) #5
  %732 = fdiv double %729, %731
  store double %732, ptr %81, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  %733 = load double, ptr %18, align 8, !tbaa !11
  %734 = call double @pow(double noundef %733, double noundef 2.000000e+00) #5
  %735 = fdiv double -2.000000e+00, %734
  store double %735, ptr %82, align 8, !tbaa !11
  %736 = load double, ptr %80, align 8, !tbaa !11
  %737 = call double @pow(double noundef %736, double noundef 2.000000e+00) #5
  %738 = load double, ptr %80, align 8, !tbaa !11
  %739 = fmul double 0x3FDC71C71C71C71C, %738
  %740 = call double @llvm.fmuladd.f64(double 0x3FA511E8D2B3183B, double %737, double %739)
  %741 = fadd double %740, 2.000000e+00
  store double %741, ptr %73, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  %742 = load double, ptr %80, align 8, !tbaa !11
  %743 = call double @llvm.fmuladd.f64(double 0x3FB511E8D2B3183B, double %742, double 0x3FDC71C71C71C71C)
  store double %743, ptr %83, align 8, !tbaa !11
  %744 = load double, ptr %83, align 8, !tbaa !11
  %745 = load double, ptr %81, align 8, !tbaa !11
  %746 = fmul double %744, %745
  store double %746, ptr %74, align 8, !tbaa !11
  %747 = load double, ptr %83, align 8, !tbaa !11
  %748 = load double, ptr %82, align 8, !tbaa !11
  %749 = fmul double %747, %748
  store double %749, ptr %75, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  br label %818

750:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  %751 = load double, ptr %19, align 8, !tbaa !11
  %752 = call double @sqrt(double noundef %751) #5
  %753 = fmul double 0x3FF6A09E667F3BCD, %752
  %754 = load double, ptr %18, align 8, !tbaa !11
  %755 = fdiv double %753, %754
  store double %755, ptr %84, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #5
  %756 = load double, ptr %19, align 8, !tbaa !11
  %757 = call double @sqrt(double noundef %756) #5
  %758 = fmul double 0xBFF6A09E667F3BCD, %757
  %759 = load double, ptr %18, align 8, !tbaa !11
  %760 = call double @pow(double noundef %759, double noundef 2.000000e+00) #5
  %761 = fdiv double %758, %760
  store double %761, ptr %85, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  %762 = load double, ptr %18, align 8, !tbaa !11
  %763 = load double, ptr %19, align 8, !tbaa !11
  %764 = call double @sqrt(double noundef %763) #5
  %765 = fmul double %762, %764
  %766 = fdiv double 0x3FE6A09E667F3BCD, %765
  store double %766, ptr %86, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #5
  %767 = load double, ptr %84, align 8, !tbaa !11
  %768 = call double @atan(double noundef %767) #5
  %769 = fmul double 0x3FF5555555555555, %768
  store double %769, ptr %87, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #5
  %770 = load double, ptr %84, align 8, !tbaa !11
  %771 = call double @pow(double noundef %770, double noundef 2.000000e+00) #5
  %772 = fadd double %771, 1.000000e+00
  %773 = fdiv double 0x3FF5555555555555, %772
  store double %773, ptr %88, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #5
  %774 = load double, ptr %85, align 8, !tbaa !11
  %775 = load double, ptr %88, align 8, !tbaa !11
  %776 = fmul double %774, %775
  store double %776, ptr %89, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #5
  %777 = load double, ptr %86, align 8, !tbaa !11
  %778 = load double, ptr %88, align 8, !tbaa !11
  %779 = fmul double %777, %778
  store double %779, ptr %90, align 8, !tbaa !11
  %780 = load double, ptr %84, align 8, !tbaa !11
  %781 = call double @pow(double noundef %780, double noundef 2.000000e+00) #5
  %782 = fadd double %781, 1.000000e+00
  %783 = call double @pow(double noundef %782, double noundef 0x3FE5555555555555) #5
  %784 = fmul double 2.000000e+00, %783
  %785 = load double, ptr %87, align 8, !tbaa !11
  %786 = call double @cos(double noundef %785) #5
  %787 = fmul double %784, %786
  store double %787, ptr %73, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #5
  %788 = load double, ptr %84, align 8, !tbaa !11
  %789 = fmul double 0x4005555555555555, %788
  %790 = load double, ptr %87, align 8, !tbaa !11
  %791 = call double @cos(double noundef %790) #5
  %792 = fmul double %789, %791
  %793 = load double, ptr %84, align 8, !tbaa !11
  %794 = call double @pow(double noundef %793, double noundef 2.000000e+00) #5
  %795 = fadd double %794, 1.000000e+00
  %796 = call double @cbrt(double noundef %795) #6
  %797 = fdiv double %792, %796
  store double %797, ptr %91, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  %798 = load double, ptr %84, align 8, !tbaa !11
  %799 = call double @pow(double noundef %798, double noundef 2.000000e+00) #5
  %800 = fadd double %799, 1.000000e+00
  %801 = call double @pow(double noundef %800, double noundef 0x3FE5555555555555) #5
  %802 = fmul double -2.000000e+00, %801
  %803 = load double, ptr %87, align 8, !tbaa !11
  %804 = call double @sin(double noundef %803) #5
  %805 = fmul double %802, %804
  store double %805, ptr %92, align 8, !tbaa !11
  %806 = load double, ptr %85, align 8, !tbaa !11
  %807 = load double, ptr %91, align 8, !tbaa !11
  %808 = load double, ptr %92, align 8, !tbaa !11
  %809 = load double, ptr %89, align 8, !tbaa !11
  %810 = fmul double %808, %809
  %811 = call double @llvm.fmuladd.f64(double %806, double %807, double %810)
  store double %811, ptr %74, align 8, !tbaa !11
  %812 = load double, ptr %86, align 8, !tbaa !11
  %813 = load double, ptr %91, align 8, !tbaa !11
  %814 = load double, ptr %92, align 8, !tbaa !11
  %815 = load double, ptr %90, align 8, !tbaa !11
  %816 = fmul double %814, %815
  %817 = call double @llvm.fmuladd.f64(double %812, double %813, double %816)
  store double %817, ptr %75, 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 %818

818:                                              ; preds = %750, %722
  br label %819

819:                                              ; preds = %818, %712
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #5
  %820 = load double, ptr %70, align 8, !tbaa !11
  %821 = load double, ptr %15, align 8, !tbaa !11
  %822 = load double, ptr %70, align 8, !tbaa !11
  %823 = load double, ptr %72, align 8, !tbaa !11
  %824 = fadd double %822, %823
  %825 = fmul double %821, %824
  %826 = load double, ptr %73, align 8, !tbaa !11
  %827 = fsub double %826, 2.000000e+00
  %828 = call double @llvm.fmuladd.f64(double %825, double %827, double %820)
  store double %828, ptr %93, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  %829 = load double, ptr %15, align 8, !tbaa !11
  %830 = load double, ptr %70, align 8, !tbaa !11
  %831 = load double, ptr %72, align 8, !tbaa !11
  %832 = fadd double %830, %831
  %833 = fmul double %829, %832
  store double %833, ptr %94, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  %834 = load double, ptr %71, align 8, !tbaa !11
  %835 = load double, ptr %15, align 8, !tbaa !11
  %836 = load double, ptr %73, align 8, !tbaa !11
  %837 = fsub double %836, 2.000000e+00
  %838 = call double @llvm.fmuladd.f64(double %835, double %837, double 1.000000e+00)
  %839 = load double, ptr %69, align 8, !tbaa !11
  %840 = load double, ptr %15, align 8, !tbaa !11
  %841 = fmul double %839, %840
  %842 = load double, ptr %73, align 8, !tbaa !11
  %843 = fsub double %842, 2.000000e+00
  %844 = fmul double %841, %843
  %845 = call double @llvm.fmuladd.f64(double %834, double %838, double %844)
  %846 = load double, ptr %94, align 8, !tbaa !11
  %847 = load double, ptr %74, align 8, !tbaa !11
  %848 = call double @llvm.fmuladd.f64(double %846, double %847, double %845)
  store double %848, ptr %95, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #5
  %849 = load double, ptr %94, align 8, !tbaa !11
  %850 = load double, ptr %75, align 8, !tbaa !11
  %851 = fmul double %849, %850
  store double %851, ptr %96, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #5
  %852 = load double, ptr %93, align 8, !tbaa !11
  %853 = load double, ptr %62, align 8, !tbaa !11
  %854 = fadd double %852, %853
  store double %854, ptr %97, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #5
  store double 1.000000e+00, ptr %98, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #5
  store double 1.000000e+00, ptr %99, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #5
  %855 = load double, ptr %98, align 8, !tbaa !11
  %856 = load double, ptr %95, align 8, !tbaa !11
  %857 = load double, ptr %99, align 8, !tbaa !11
  %858 = load double, ptr %66, align 8, !tbaa !11
  %859 = fmul double %857, %858
  %860 = call double @llvm.fmuladd.f64(double %855, double %856, double %859)
  store double %860, ptr %100, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #5
  %861 = load double, ptr %98, align 8, !tbaa !11
  %862 = load double, ptr %96, align 8, !tbaa !11
  %863 = load double, ptr %99, align 8, !tbaa !11
  %864 = load double, ptr %67, align 8, !tbaa !11
  %865 = fmul double %863, %864
  %866 = call double @llvm.fmuladd.f64(double %861, double %862, double %865)
  store double %866, ptr %101, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #5
  %867 = load double, ptr %99, align 8, !tbaa !11
  %868 = load double, ptr %68, align 8, !tbaa !11
  %869 = fmul double %867, %868
  store double %869, ptr %102, align 8, !tbaa !11
  %870 = load double, ptr %97, align 8, !tbaa !11
  %871 = load ptr, ptr %10, align 8, !tbaa !9
  %872 = load i32, ptr %16, align 4, !tbaa !5
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds double, ptr %871, i64 %873
  store double %870, ptr %874, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #5
  %875 = load double, ptr %18, align 8, !tbaa !11
  store double %875, ptr %103, align 8, !tbaa !11
  %876 = load double, ptr %103, align 8, !tbaa !11
  %877 = load double, ptr %100, align 8, !tbaa !11
  %878 = load double, ptr %97, align 8, !tbaa !11
  %879 = call double @llvm.fmuladd.f64(double %876, double %877, double %878)
  %880 = load ptr, ptr %11, align 8, !tbaa !9
  %881 = load i32, ptr %16, align 4, !tbaa !5
  %882 = mul nsw i32 2, %881
  %883 = add nsw i32 %882, 0
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds double, ptr %880, i64 %884
  store double %879, ptr %885, align 8, !tbaa !11
  %886 = load double, ptr %103, align 8, !tbaa !11
  %887 = load double, ptr %101, align 8, !tbaa !11
  %888 = fmul double %886, %887
  %889 = load ptr, ptr %11, align 8, !tbaa !9
  %890 = load i32, ptr %16, align 4, !tbaa !5
  %891 = mul nsw i32 2, %890
  %892 = add nsw i32 %891, 1
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds double, ptr %889, i64 %893
  store double %888, ptr %894, align 8, !tbaa !11
  %895 = load double, ptr %103, align 8, !tbaa !11
  %896 = load double, ptr %102, align 8, !tbaa !11
  %897 = fmul double %895, %896
  %898 = load ptr, ptr %12, align 8, !tbaa !9
  %899 = load i32, ptr %16, align 4, !tbaa !5
  %900 = mul nsw i32 3, %899
  %901 = add nsw i32 %900, 0
  %902 = sext i32 %901 to i64
  %903 = getelementptr inbounds double, ptr %898, i64 %902
  store double %897, ptr %903, align 8, !tbaa !11
  %904 = load ptr, ptr %12, align 8, !tbaa !9
  %905 = load i32, ptr %16, align 4, !tbaa !5
  %906 = mul nsw i32 3, %905
  %907 = add nsw i32 %906, 1
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds double, ptr %904, i64 %908
  store double 0.000000e+00, ptr %909, align 8, !tbaa !11
  %910 = load ptr, ptr %12, align 8, !tbaa !9
  %911 = load i32, ptr %16, align 4, !tbaa !5
  %912 = mul nsw i32 3, %911
  %913 = add nsw i32 %912, 2
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds double, ptr %910, i64 %914
  store double 0.000000e+00, ptr %915, align 8, !tbaa !11
  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 %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 %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
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  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 %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
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  store i32 0, ptr %17, align 4
  br label %916

916:                                              ; preds = %819, %124
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  %917 = load i32, ptr %17, align 4
  switch i32 %917, label %923 [
    i32 0, label %918
    i32 4, label %919
  ]

918:                                              ; preds = %916
  br label %919

919:                                              ; preds = %918, %916
  %920 = load i32, ptr %16, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr %16, align 4, !tbaa !5
  br label %109, !llvm.loop !13

922:                                              ; preds = %113
  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

923:                                              ; preds = %916
  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: 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

; Function Attrs: nounwind
declare double @log(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 @_ZN7pdftp8615compute_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.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %6
  %wide.trip.count = zext nneg i32 %0 to i64
  br label %.lr.ph

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

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

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

19:                                               ; preds = %.lr.ph
  %20 = or disjoint i64 %11, 1
  %21 = getelementptr inbounds double, ptr %1, i64 %20
  %22 = load double, ptr %21, align 8, !tbaa !5
  %23 = mul nuw nsw i64 %indvars.iv, 3
  %24 = getelementptr inbounds double, ptr %2, i64 %23
  %25 = load double, ptr %24, align 8, !tbaa !5
  %26 = tail call double @cbrt(double noundef %13) #6
  %27 = fdiv double 0x3FE3D9E945CF0E15, %26
  %28 = tail call double @pow(double noundef %13, double noundef 0x3FF5555555555555) #7
  %29 = fdiv double 0xBFCA77E1B269681C, %28
  %square = fmul double %27, %27
  %30 = fmul double %29, 2.000000e+00
  %31 = fmul double %27, %30
  %32 = fcmp olt double %22, 0xBC9CD2B297D889BC
  br i1 %32, label %33, label %68

33:                                               ; preds = %19
  %34 = fneg double %22
  %35 = tail call double @sqrt(double noundef %34) #7
  %36 = fmul double %35, 0x3FF6A09E667F3BCD
  %37 = fdiv double %36, %13
  %38 = tail call double @sqrt(double noundef %34) #7
  %39 = insertelement <2 x double> poison, double %13, i64 0
  %40 = shufflevector <2 x double> %39, <2 x double> poison, <2 x i32> zeroinitializer
  %41 = insertelement <2 x double> %39, double %22, i64 1
  %42 = fmul <2 x double> %40, %41
  %43 = tail call double @sqrt(double noundef %34) #7
  %44 = insertelement <2 x double> poison, double %38, i64 0
  %45 = insertelement <2 x double> %44, double %43, i64 1
  %46 = fmul <2 x double> %45, <double 0xBFF6A09E667F3BCD, double 0x3FE6A09E667F3BCD>
  %47 = fdiv <2 x double> %46, %42
  %48 = fsub double 1.000000e+00, %37
  %49 = fcmp ogt double %48, 0x3C9CD2B297D889BC
  br i1 %49, label %50, label %59

50:                                               ; preds = %33
  %51 = tail call double @pow(double noundef %48, double noundef 0x3FFAAAAAAAAAAAAB) #7
  %52 = fadd double %37, 1.000000e+00
  %53 = tail call double @pow(double noundef %52, double noundef 0x3FFAAAAAAAAAAAAB) #7
  %54 = fadd double %51, %53
  %55 = tail call double @pow(double noundef %48, double noundef 0x3FE5555555555555) #7
  %56 = tail call double @pow(double noundef %52, double noundef 0x3FE5555555555555) #7
  %57 = fmul double %56, 0x3FFAAAAAAAAAAAAB
  %58 = tail call double @llvm.fmuladd.f64(double %55, double 0xBFFAAAAAAAAAAAAB, double %57)
  br label %64

59:                                               ; preds = %33
  %60 = fadd double %37, 1.000000e+00
  %61 = tail call double @pow(double noundef %60, double noundef 0x3FFAAAAAAAAAAAAB) #7
  %62 = tail call double @pow(double noundef %60, double noundef 0x3FE5555555555555) #7
  %63 = fmul double %62, 0x3FFAAAAAAAAAAAAB
  br label %64

64:                                               ; preds = %59, %50
  %.0322 = phi double [ %58, %50 ], [ %63, %59 ]
  %.0320 = phi double [ %54, %50 ], [ %61, %59 ]
  %65 = insertelement <2 x double> poison, double %.0322, i64 0
  %66 = shufflevector <2 x double> %65, <2 x double> poison, <2 x i32> zeroinitializer
  %67 = fmul <2 x double> %47, %66
  br label %125

68:                                               ; preds = %19
  %69 = fcmp olt double %22, 0x3C9CD2B297D889BC
  br i1 %69, label %70, label %86

70:                                               ; preds = %68
  %71 = fmul double %22, -2.000000e+00
  %square344 = fmul double %13, %13
  %72 = fdiv double %71, %square344
  %73 = fmul double %22, 4.000000e+00
  %74 = tail call double @pow(double noundef %13, double noundef 3.000000e+00) #7
  %75 = insertelement <2 x double> <double poison, double -2.000000e+00>, double %73, i64 0
  %76 = insertelement <2 x double> poison, double %74, i64 0
  %77 = insertelement <2 x double> %76, double %square344, i64 1
  %78 = fdiv <2 x double> %75, %77
  %square346 = fmul double %72, %72
  %79 = fmul double %72, 0x3FF1C71C71C71C72
  %80 = tail call double @llvm.fmuladd.f64(double %square346, double 0x3FA511E8D2B3183B, double %79)
  %81 = fadd double %80, 2.000000e+00
  %82 = tail call double @llvm.fmuladd.f64(double %72, double 0x3FB511E8D2B3183B, double 0x3FF1C71C71C71C72)
  %83 = insertelement <2 x double> poison, double %82, i64 0
  %84 = shufflevector <2 x double> %83, <2 x double> poison, <2 x i32> zeroinitializer
  %85 = fmul <2 x double> %84, %78
  br label %125

86:                                               ; preds = %68
  %87 = tail call double @sqrt(double noundef %22) #7
  %88 = fmul double %87, 0x3FF6A09E667F3BCD
  %89 = fdiv double %88, %13
  %90 = tail call double @sqrt(double noundef %22) #7
  %91 = fmul double %90, 0xBFF6A09E667F3BCD
  %92 = tail call double @sqrt(double noundef %22) #7
  %93 = tail call double @atan(double noundef %89) #7
  %94 = fmul double %93, 0x3FFAAAAAAAAAAAAB
  %square340 = fmul double %89, %89
  %95 = fadd double %square340, 1.000000e+00
  %96 = fdiv double 0x3FFAAAAAAAAAAAAB, %95
  %97 = tail call double @pow(double noundef %95, double noundef 0x3FEAAAAAAAAAAAAB) #7
  %98 = fmul double %97, 2.000000e+00
  %99 = tail call double @cos(double noundef %94) #7
  %100 = fmul double %98, %99
  %101 = fmul double %89, 0x400AAAAAAAAAAAAB
  %102 = tail call double @cos(double noundef %94) #7
  %103 = fmul double %101, %102
  %104 = tail call double @pow(double noundef %95, double noundef 0x3FC5555555555555) #7
  %105 = fdiv double %103, %104
  %106 = tail call double @pow(double noundef %95, double noundef 0x3FEAAAAAAAAAAAAB) #7
  %107 = fmul double %106, -2.000000e+00
  %108 = tail call double @sin(double noundef %94) #7
  %109 = fmul double %107, %108
  %110 = insertelement <2 x double> poison, double %13, i64 0
  %111 = shufflevector <2 x double> %110, <2 x double> poison, <2 x i32> zeroinitializer
  %112 = insertelement <2 x double> %111, double %92, i64 1
  %113 = fmul <2 x double> %111, %112
  %114 = insertelement <2 x double> <double poison, double 0x3FE6A09E667F3BCD>, double %91, i64 0
  %115 = fdiv <2 x double> %114, %113
  %116 = insertelement <2 x double> %115, double %96, i64 0
  %117 = insertelement <2 x double> %115, double %96, i64 1
  %118 = fmul <2 x double> %116, %117
  %119 = insertelement <2 x double> poison, double %109, i64 0
  %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> zeroinitializer
  %121 = fmul <2 x double> %118, %120
  %122 = insertelement <2 x double> poison, double %105, i64 0
  %123 = shufflevector <2 x double> %122, <2 x double> poison, <2 x i32> zeroinitializer
  %124 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %115, <2 x double> %123, <2 x double> %121)
  br label %125

125:                                              ; preds = %70, %86, %64
  %.1 = phi double [ %.0320, %64 ], [ %81, %70 ], [ %100, %86 ]
  %126 = phi <2 x double> [ %67, %64 ], [ %85, %70 ], [ %124, %86 ]
  %127 = tail call double @sqrt(double noundef %.1) #7
  %128 = fmul double %127, 0x3FE6A09E667F3BCD
  %129 = tail call double @sqrt(double noundef %.1) #7
  %130 = fdiv double 0x3FD6A09E667F3BCD, %129
  %131 = extractelement <2 x double> %126, i64 0
  %132 = fmul double %131, %130
  %133 = extractelement <2 x double> %126, i64 1
  %134 = fmul double %133, %130
  %135 = fmul double %square, 7.389000e-06
  %136 = tail call double @llvm.fmuladd.f64(double %27, double 2.326600e-02, double %135)
  %137 = fadd double %136, 2.568000e-03
  %138 = tail call double @pow(double noundef %27, double noundef 3.000000e+00) #7
  %139 = fmul double %27, 8.723000e+00
  %140 = tail call double @llvm.fmuladd.f64(double %138, double 0x3FB2EA747D805E5F, double %139)
  %141 = tail call double @llvm.fmuladd.f64(double %square, double 4.720000e-01, double %140)
  %142 = fadd double %141, 1.000000e+00
  %143 = fdiv double %137, %142
  %144 = fadd double %143, 1.667000e-03
  %145 = fmul double %137, 0x3F7968719E2F4481
  %146 = tail call double @pow(double noundef %27, double noundef 3.000000e+00) #7
  %147 = tail call double @llvm.fmuladd.f64(double %146, double 0x3F81591766463E8B, double %27)
  %148 = tail call double @llvm.fmuladd.f64(double %square, double 0x3FABB4486E1CD1C6, double %147)
  %149 = fadd double %148, 0x3FBD5902F6D06D68
  %square348 = fmul double %149, %149
  %150 = fdiv double %145, %square348
  %151 = tail call double @pow(double noundef %27, double noundef 3.000000e+00) #7
  %152 = tail call double @llvm.fmuladd.f64(double %151, double 0x3FB2EA747D805E5F, double %139)
  %153 = tail call double @llvm.fmuladd.f64(double %square, double 4.720000e-01, double %152)
  %154 = fadd double %153, 1.000000e+00
  %155 = fdiv double 7.389000e-06, %154
  %156 = fsub double %155, %150
  %157 = tail call double @llvm.fmuladd.f64(double %square, double 0xBFCC5FAEBC408D8E, double -8.723000e+00)
  %158 = fmul double %157, 0x3F8AEA4CF7D6F3F6
  %159 = fmul double %158, %137
  %160 = tail call double @pow(double noundef %27, double noundef 3.000000e+00) #7
  %161 = tail call double @llvm.fmuladd.f64(double %160, double 0x3F81591766463E8B, double %27)
  %162 = tail call double @llvm.fmuladd.f64(double %square, double 0x3FABB4486E1CD1C6, double %161)
  %163 = fadd double %162, 0x3FBD5902F6D06D68
  %square350 = fmul double %163, %163
  %164 = fdiv double %159, %square350
  %165 = tail call double @pow(double noundef %27, double noundef 3.000000e+00) #7
  %166 = tail call double @llvm.fmuladd.f64(double %165, double 0x3FB2EA747D805E5F, double %139)
  %167 = tail call double @llvm.fmuladd.f64(double %square, double 4.720000e-01, double %166)
  %168 = fadd double %167, 1.000000e+00
  %169 = fdiv double 2.326600e-02, %168
  %170 = fadd double %164, %169
  %171 = fmul double %29, %170
  %172 = tail call double @llvm.fmuladd.f64(double %31, double %156, double %171)
  %173 = tail call double @pow(double noundef %13, double noundef 0xBFF5555555555555) #7
  %174 = tail call double @sqrt(double noundef %25) #7
  %175 = fmul double %173, %174
  %176 = tail call double @pow(double noundef %13, double noundef 0xC002AAAAAAAAAAAA) #7
  %177 = fmul double %176, 0xBFF5555555555555
  %178 = tail call double @sqrt(double noundef %25) #7
  %179 = fmul double %177, %178
  %180 = tail call double @pow(double noundef %13, double noundef 0xBFF5555555555555) #7
  %181 = fmul double %180, 5.000000e-01
  %182 = tail call double @sqrt(double noundef %25) #7
  %183 = fdiv double %181, %182
  %184 = fdiv double %27, 0x3FE3D9E945CF0E15
  %185 = tail call double @sqrt(double noundef %184) #7
  %186 = fdiv double %175, %185
  %187 = tail call double @pow(double noundef %184, double noundef -5.000000e-01) #7
  %188 = fmul double %29, -5.000000e-01
  %189 = fmul double %188, %175
  %190 = tail call double @sqrt(double noundef %184) #7
  %191 = fmul double %27, %190
  %192 = fdiv double %189, %191
  %193 = tail call double @llvm.fmuladd.f64(double %187, double %179, double %192)
  %194 = fmul double %183, %187
  %195 = fdiv double 0x3F4AA32B2C985338, %144
  %square351 = fmul double %144, %144
  %196 = fmul double %172, 0xBF4AA32B2C985338
  %197 = fmul double %196, %186
  %198 = fdiv double %197, %square351
  %199 = tail call double @llvm.fmuladd.f64(double %195, double %193, double %198)
  %200 = fmul double %195, %194
  %square352 = fmul double %186, %186
  %201 = fmul double %144, %square352
  %202 = fmul double %186, 0xBF4AA32B2C985338
  %203 = fdiv double %202, %144
  %204 = tail call double @exp(double noundef %203) #7
  %205 = fmul double %201, %204
  %206 = fdiv double %205, %128
  %207 = fmul double %144, 2.000000e+00
  %208 = fmul double %207, %186
  %209 = tail call double @exp(double noundef %203) #7
  %210 = fmul double %208, %209
  %211 = fdiv double %210, %128
  %212 = fneg double %144
  %213 = fmul double %square352, %212
  %214 = tail call double @exp(double noundef %203) #7
  %215 = fmul double %213, %214
  %216 = fdiv double %215, %128
  %217 = tail call double @exp(double noundef %203) #7
  %218 = fmul double %213, %217
  %square355 = fmul double %128, %128
  %219 = fdiv double %218, %square355
  %220 = fmul double %172, %square352
  %221 = tail call double @exp(double noundef %203) #7
  %222 = fmul double %220, %221
  %223 = fdiv double %222, %128
  %224 = tail call double @llvm.fmuladd.f64(double %132, double %219, double %223)
  %225 = tail call double @llvm.fmuladd.f64(double %199, double %216, double %224)
  %226 = tail call double @llvm.fmuladd.f64(double %211, double %193, double %225)
  %227 = fmul double %134, %219
  %228 = fmul double %194, %211
  %229 = tail call double @llvm.fmuladd.f64(double %200, double %216, double %228)
  %230 = fcmp ult double %27, 1.000000e+00
  br i1 %230, label %260, label %231

231:                                              ; preds = %125
  %232 = tail call double @sqrt(double noundef %27) #7
  %233 = fmul double %27, 3.334000e-01
  %234 = tail call double @llvm.fmuladd.f64(double %232, double 1.052900e+00, double %233)
  %235 = fadd double %234, 1.000000e+00
  %236 = fdiv double -1.423000e-01, %235
  %237 = fmul double %29, 0xBFC06E1C0DDE33D2
  %238 = tail call double @sqrt(double noundef %27) #7
  %239 = fdiv double 5.264500e-01, %238
  %240 = fsub double -3.334000e-01, %239
  %241 = fmul double %237, %240
  %242 = tail call double @sqrt(double noundef %27) #7
  %243 = tail call double @llvm.fmuladd.f64(double %27, double 0x3FD443FB3C07E0AF, double %242)
  %244 = fadd double %243, 0x3FEE646A7E93E065
  %square357 = fmul double %244, %244
  %245 = fdiv double %241, %square357
  %246 = tail call double @sqrt(double noundef %27) #7
  %247 = fmul double %27, 2.611000e-01
  %248 = tail call double @llvm.fmuladd.f64(double %246, double 1.398100e+00, double %247)
  %249 = fadd double %248, 1.000000e+00
  %250 = fdiv double 0xBFB594AF4F0D844D, %249
  %251 = fmul double %29, 0xBFA614C42AF86F4C
  %252 = tail call double @sqrt(double noundef %27) #7
  %253 = fdiv double 0x3FE65E9E1B089A02, %252
  %254 = fsub double -2.611000e-01, %253
  %255 = fmul double %251, %254
  %256 = tail call double @sqrt(double noundef %27) #7
  %257 = tail call double @llvm.fmuladd.f64(double %27, double 0x3FC7E7897E7897E8, double %256)
  %258 = fadd double %257, 0x3FE6E3616E3616E4
  %square358 = fmul double %258, %258
  %259 = fdiv double %255, %square358
  br label %285

260:                                              ; preds = %125
  %261 = fmul double %27, 2.000000e-03
  %262 = tail call double @log(double noundef %27) #7
  %263 = fmul double %27, -1.160000e-02
  %264 = tail call double @llvm.fmuladd.f64(double %261, double %262, double %263)
  %265 = tail call double @log(double noundef %27) #7
  %266 = tail call double @llvm.fmuladd.f64(double %265, double 3.110000e-02, double %264)
  %267 = fadd double %266, -4.800000e-02
  %268 = tail call double @log(double noundef %27) #7
  %269 = tail call double @llvm.fmuladd.f64(double %268, double 2.000000e-03, double 0xBF83A92A30553261)
  %270 = fdiv double 3.110000e-02, %27
  %271 = fadd double %270, %269
  %272 = fmul double %29, %271
  %273 = fmul double %27, 7.000000e-04
  %274 = tail call double @log(double noundef %27) #7
  %275 = fmul double %27, -4.800000e-03
  %276 = tail call double @llvm.fmuladd.f64(double %273, double %274, double %275)
  %277 = tail call double @log(double noundef %27) #7
  %278 = tail call double @llvm.fmuladd.f64(double %277, double 1.555000e-02, double %276)
  %279 = fadd double %278, -2.690000e-02
  %280 = tail call double @log(double noundef %27) #7
  %281 = tail call double @llvm.fmuladd.f64(double %280, double 7.000000e-04, double 0xBF70CB295E9E1B08)
  %282 = fdiv double 1.555000e-02, %27
  %283 = fadd double %282, %281
  %284 = fmul double %29, %283
  br label %285

285:                                              ; preds = %260, %231
  %.0326 = phi double [ %250, %231 ], [ %279, %260 ]
  %.0325 = phi double [ %245, %231 ], [ %272, %260 ]
  %.0324 = phi double [ %236, %231 ], [ %267, %260 ]
  %.0323 = phi double [ %259, %231 ], [ %284, %260 ]
  br i1 %32, label %286, label %322

286:                                              ; preds = %285
  %287 = fneg double %22
  %288 = tail call double @sqrt(double noundef %287) #7
  %289 = fmul double %288, 0x3FF6A09E667F3BCD
  %290 = fdiv double %289, %13
  %291 = tail call double @sqrt(double noundef %287) #7
  %292 = insertelement <2 x double> poison, double %13, i64 0
  %293 = shufflevector <2 x double> %292, <2 x double> poison, <2 x i32> zeroinitializer
  %294 = insertelement <2 x double> poison, double %22, i64 0
  %295 = insertelement <2 x double> %294, double %13, i64 1
  %296 = fmul <2 x double> %293, %295
  %297 = tail call double @sqrt(double noundef %287) #7
  %298 = insertelement <2 x double> poison, double %297, i64 0
  %299 = insertelement <2 x double> %298, double %291, i64 1
  %300 = fmul <2 x double> %299, <double 0x3FE6A09E667F3BCD, double 0xBFF6A09E667F3BCD>
  %301 = fdiv <2 x double> %300, %296
  %302 = fsub double 1.000000e+00, %290
  %303 = fcmp ogt double %302, 0x3C9CD2B297D889BC
  br i1 %303, label %304, label %313

304:                                              ; preds = %286
  %305 = tail call double @pow(double noundef %302, double noundef 0x3FF5555555555555) #7
  %306 = fadd double %290, 1.000000e+00
  %307 = tail call double @pow(double noundef %306, double noundef 0x3FF5555555555555) #7
  %308 = fadd double %305, %307
  %309 = tail call double @cbrt(double noundef %302) #6
  %310 = tail call double @cbrt(double noundef %306) #6
  %311 = fmul double %310, 0x3FF5555555555555
  %312 = tail call double @llvm.fmuladd.f64(double %309, double 0xBFF5555555555555, double %311)
  br label %318

313:                                              ; preds = %286
  %314 = fadd double %290, 1.000000e+00
  %315 = tail call double @pow(double noundef %314, double noundef 0x3FF5555555555555) #7
  %316 = tail call double @cbrt(double noundef %314) #6
  %317 = fmul double %316, 0x3FF5555555555555
  br label %318

318:                                              ; preds = %313, %304
  %.0331 = phi double [ %312, %304 ], [ %317, %313 ]
  %.0327 = phi double [ %308, %304 ], [ %315, %313 ]
  %319 = insertelement <2 x double> poison, double %.0331, i64 0
  %320 = shufflevector <2 x double> %319, <2 x double> poison, <2 x i32> zeroinitializer
  %321 = fmul <2 x double> %301, %320
  br label %379

322:                                              ; preds = %285
  %323 = fcmp olt double %22, 0x3C9CD2B297D889BC
  br i1 %323, label %324, label %340

324:                                              ; preds = %322
  %325 = fmul double %22, -2.000000e+00
  %square364 = fmul double %13, %13
  %326 = fdiv double %325, %square364
  %327 = fmul double %22, 4.000000e+00
  %328 = tail call double @pow(double noundef %13, double noundef 3.000000e+00) #7
  %329 = insertelement <2 x double> <double -2.000000e+00, double poison>, double %327, i64 1
  %330 = insertelement <2 x double> poison, double %square364, i64 0
  %331 = insertelement <2 x double> %330, double %328, i64 1
  %332 = fdiv <2 x double> %329, %331
  %square366 = fmul double %326, %326
  %333 = fmul double %326, 0x3FDC71C71C71C71C
  %334 = tail call double @llvm.fmuladd.f64(double %square366, double 0x3FA511E8D2B3183B, double %333)
  %335 = fadd double %334, 2.000000e+00
  %336 = tail call double @llvm.fmuladd.f64(double %326, double 0x3FB511E8D2B3183B, double 0x3FDC71C71C71C71C)
  %337 = insertelement <2 x double> poison, double %336, i64 0
  %338 = shufflevector <2 x double> %337, <2 x double> poison, <2 x i32> zeroinitializer
  %339 = fmul <2 x double> %332, %338
  br label %379

340:                                              ; preds = %322
  %341 = tail call double @sqrt(double noundef %22) #7
  %342 = fmul double %341, 0x3FF6A09E667F3BCD
  %343 = fdiv double %342, %13
  %344 = tail call double @sqrt(double noundef %22) #7
  %square359 = fmul double %13, %13
  %345 = tail call double @sqrt(double noundef %22) #7
  %346 = fmul double %13, %345
  %347 = fdiv double 0x3FE6A09E667F3BCD, %346
  %348 = tail call double @atan(double noundef %343) #7
  %349 = fmul double %348, 0x3FF5555555555555
  %square360 = fmul double %343, %343
  %350 = fadd double %square360, 1.000000e+00
  %351 = fdiv double 0x3FF5555555555555, %350
  %352 = tail call double @pow(double noundef %350, double noundef 0x3FE5555555555555) #7
  %353 = fmul double %352, 2.000000e+00
  %354 = tail call double @cos(double noundef %349) #7
  %355 = fmul double %353, %354
  %356 = fmul double %343, 0x4005555555555555
  %357 = tail call double @cos(double noundef %349) #7
  %358 = tail call double @cbrt(double noundef %350) #6
  %359 = tail call double @pow(double noundef %350, double noundef 0x3FE5555555555555) #7
  %360 = fmul double %359, -2.000000e+00
  %361 = tail call double @sin(double noundef %349) #7
  %362 = fmul double %360, %361
  %363 = insertelement <2 x double> poison, double %356, i64 0
  %364 = insertelement <2 x double> %363, double %344, i64 1
  %365 = insertelement <2 x double> <double poison, double 0xBFF6A09E667F3BCD>, double %357, i64 0
  %366 = fmul <2 x double> %364, %365
  %367 = insertelement <2 x double> poison, double %358, i64 0
  %368 = insertelement <2 x double> %367, double %square359, i64 1
  %369 = fdiv <2 x double> %366, %368
  %370 = insertelement <2 x double> %369, double %347, i64 0
  %371 = insertelement <2 x double> poison, double %351, i64 0
  %372 = shufflevector <2 x double> %371, <2 x double> poison, <2 x i32> zeroinitializer
  %373 = fmul <2 x double> %370, %372
  %374 = insertelement <2 x double> poison, double %362, i64 0
  %375 = shufflevector <2 x double> %374, <2 x double> poison, <2 x i32> zeroinitializer
  %376 = fmul <2 x double> %373, %375
  %377 = shufflevector <2 x double> %370, <2 x double> %369, <2 x i32> <i32 0, i32 2>
  %378 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %369, <2 x double> %377, <2 x double> %376)
  br label %379

379:                                              ; preds = %324, %340, %318
  %.1328 = phi double [ %.0327, %318 ], [ %335, %324 ], [ %355, %340 ]
  %380 = phi <2 x double> [ %321, %318 ], [ %339, %324 ], [ %378, %340 ]
  %381 = fadd double %.0326, %.0324
  %382 = fmul double %9, %381
  %383 = fadd double %.1328, -2.000000e+00
  %384 = tail call double @llvm.fmuladd.f64(double %382, double %383, double %.0324)
  %385 = tail call double @llvm.fmuladd.f64(double %9, double %383, double 1.000000e+00)
  %386 = fmul double %9, %.0323
  %387 = fmul double %386, %383
  %388 = tail call double @llvm.fmuladd.f64(double %.0325, double %385, double %387)
  %389 = extractelement <2 x double> %380, i64 1
  %390 = tail call double @llvm.fmuladd.f64(double %382, double %389, double %388)
  %391 = extractelement <2 x double> %380, i64 0
  %392 = fmul double %382, %391
  %393 = fadd double %206, %384
  %394 = fadd double %226, %390
  %395 = fadd double %227, %392
  %396 = getelementptr inbounds double, ptr %3, i64 %indvars.iv
  store double %393, ptr %396, align 8, !tbaa !5
  %397 = tail call double @llvm.fmuladd.f64(double %13, double %394, double %393)
  %398 = getelementptr inbounds double, ptr %4, i64 %11
  store double %397, ptr %398, align 8, !tbaa !5
  %399 = fmul double %13, %395
  %400 = getelementptr inbounds double, ptr %4, i64 %20
  store double %399, ptr %400, align 8, !tbaa !5
  %401 = fmul double %13, %229
  %402 = getelementptr inbounds double, ptr %5, i64 %23
  store double %401, ptr %402, align 8, !tbaa !5
  %403 = getelementptr inbounds i8, ptr %402, i64 8
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %403, i8 0, i64 16, i1 false)
  br label %404

404:                                              ; preds = %379, %15
  %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 %.lr.ph, !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 @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: mustprogress nofree nounwind willreturn memory(write)
declare double @log(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