; LLVM IR from VeloxChem/VeloxChem :: src/pdft_func/PairDensityLYP_erf.ll (ZN11pdftlyp_erf15compute_exc_vxcEiPKdS1_PdS2_S2_d)

; 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 @_ZN11pdftlyp_erf15compute_exc_vxcEiPKdS1_PdS2_S2_d(i32 noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, double noundef %6) #0 {
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %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 i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca double, align 8
  %80 = alloca double, align 8
  %81 = alloca double, align 8
  %82 = alloca double, align 8
  %83 = alloca double, align 8
  %84 = alloca double, align 8
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca double, align 8
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca double, align 8
  %92 = alloca double, align 8
  %93 = alloca double, align 8
  %94 = alloca double, align 8
  %95 = alloca double, align 8
  %96 = alloca double, align 8
  %97 = alloca double, align 8
  %98 = alloca double, align 8
  %99 = alloca double, align 8
  %100 = alloca double, align 8
  %101 = alloca double, align 8
  %102 = alloca double, align 8
  %103 = alloca double, align 8
  %104 = alloca double, align 8
  %105 = alloca double, align 8
  %106 = alloca double, align 8
  %107 = alloca double, align 8
  %108 = alloca double, align 8
  %109 = alloca double, align 8
  %110 = alloca double, align 8
  %111 = alloca double, align 8
  %112 = alloca double, align 8
  %113 = alloca double, align 8
  store i32 %0, ptr %8, align 4, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !9
  store ptr %2, ptr %10, align 8, !tbaa !9
  store ptr %3, ptr %11, align 8, !tbaa !9
  store ptr %4, ptr %12, align 8, !tbaa !9
  store ptr %5, ptr %13, align 8, !tbaa !9
  store double %6, ptr %14, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  store double 4.918000e-02, ptr %15, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  store double 1.320000e-01, ptr %16, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  store double 2.533000e-01, ptr %17, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  store double 3.490000e-01, ptr %18, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  store double 0x3FC39035A8CDB1BF, ptr %19, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  store double 0x3FEBF295CC939036, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %114 = call double @pow(double noundef 3.000000e+00, double noundef 0x3FE5555555555555) #5
  %115 = fmul double 3.000000e-01, %114
  %116 = call double @pow(double noundef 0x400921FB54442D18, double noundef 0x3FF5555555555555) #5
  %117 = fmul double %115, %116
  store double %117, ptr %21, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %118 = call double @cbrt(double noundef 2.000000e+00) #6
  %119 = fmul double 1.250000e-01, %118
  store double %119, ptr %22, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %120 = load double, ptr %22, align 8, !tbaa !11
  %121 = fmul double 2.500000e-01, %120
  store double %121, ptr %23, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %122 = load double, ptr %23, align 8, !tbaa !11
  %123 = fmul double 0x3FAC71C71C71C71C, %122
  store double %123, ptr %24, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  store i32 0, ptr %25, align 4, !tbaa !5
  br label %124

124:                                              ; preds = %1170, %7
  %125 = load i32, ptr %25, align 4, !tbaa !5
  %126 = load i32, ptr %8, align 4, !tbaa !5
  %127 = icmp slt i32 %125, %126
  br i1 %127, label %129, label %128

128:                                              ; preds = %124
  store i32 2, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %1173

129:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  %130 = load ptr, ptr %9, align 8, !tbaa !9
  %131 = load i32, ptr %25, align 4, !tbaa !5
  %132 = mul nsw i32 2, %131
  %133 = add nsw i32 %132, 0
  %134 = sext i32 %133 to i64
  %135 = getelementptr inbounds double, ptr %130, i64 %134
  %136 = load double, ptr %135, align 8, !tbaa !11
  store double %136, ptr %27, align 8, !tbaa !11
  %137 = load double, ptr %27, align 8, !tbaa !11
  %138 = fcmp olt double %137, 0x3C9CD2B297D889BC
  br i1 %138, label %139, label %174

139:                                              ; preds = %129
  %140 = load ptr, ptr %11, align 8, !tbaa !9
  %141 = load i32, ptr %25, align 4, !tbaa !5
  %142 = sext i32 %141 to i64
  %143 = getelementptr inbounds double, ptr %140, i64 %142
  store double 0.000000e+00, ptr %143, align 8, !tbaa !11
  %144 = load ptr, ptr %12, align 8, !tbaa !9
  %145 = load i32, ptr %25, align 4, !tbaa !5
  %146 = mul nsw i32 2, %145
  %147 = add nsw i32 %146, 0
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds double, ptr %144, i64 %148
  store double 0.000000e+00, ptr %149, align 8, !tbaa !11
  %150 = load ptr, ptr %12, align 8, !tbaa !9
  %151 = load i32, ptr %25, align 4, !tbaa !5
  %152 = mul nsw i32 2, %151
  %153 = add nsw i32 %152, 1
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds double, ptr %150, i64 %154
  store double 0.000000e+00, ptr %155, align 8, !tbaa !11
  %156 = load ptr, ptr %13, align 8, !tbaa !9
  %157 = load i32, ptr %25, align 4, !tbaa !5
  %158 = mul nsw i32 3, %157
  %159 = add nsw i32 %158, 0
  %160 = sext i32 %159 to i64
  %161 = getelementptr inbounds double, ptr %156, i64 %160
  store double 0.000000e+00, ptr %161, align 8, !tbaa !11
  %162 = load ptr, ptr %13, align 8, !tbaa !9
  %163 = load i32, ptr %25, align 4, !tbaa !5
  %164 = mul nsw i32 3, %163
  %165 = add nsw i32 %164, 1
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds double, ptr %162, i64 %166
  store double 0.000000e+00, ptr %167, align 8, !tbaa !11
  %168 = load ptr, ptr %13, align 8, !tbaa !9
  %169 = load i32, ptr %25, align 4, !tbaa !5
  %170 = mul nsw i32 3, %169
  %171 = add nsw i32 %170, 2
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds double, ptr %168, i64 %172
  store double 0.000000e+00, ptr %173, align 8, !tbaa !11
  store i32 4, ptr %26, align 4
  br label %1167

174:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  %175 = load ptr, ptr %9, align 8, !tbaa !9
  %176 = load i32, ptr %25, align 4, !tbaa !5
  %177 = mul nsw i32 2, %176
  %178 = add nsw i32 %177, 1
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds double, ptr %175, i64 %179
  %181 = load double, ptr %180, align 8, !tbaa !11
  store double %181, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  %182 = load ptr, ptr %10, align 8, !tbaa !9
  %183 = load i32, ptr %25, align 4, !tbaa !5
  %184 = mul nsw i32 3, %183
  %185 = add nsw i32 %184, 0
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds double, ptr %182, i64 %186
  %188 = load double, ptr %187, align 8, !tbaa !11
  store double %188, ptr %29, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  %189 = load double, ptr %27, align 8, !tbaa !11
  %190 = call double @pow(double noundef %189, double noundef 0xBFD5555555555555) #5
  store double %190, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  %191 = load double, ptr %27, align 8, !tbaa !11
  %192 = call double @pow(double noundef %191, double noundef 0x3FF5555555555555) #5
  %193 = fdiv double 0xBFD5555555555555, %192
  store double %193, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %194 = load double, ptr %16, align 8, !tbaa !11
  %195 = load double, ptr %17, align 8, !tbaa !11
  %196 = fneg double %195
  %197 = load double, ptr %30, align 8, !tbaa !11
  %198 = fmul double %196, %197
  %199 = call double @exp(double noundef %198) #5
  %200 = fmul double %194, %199
  %201 = load double, ptr %18, align 8, !tbaa !11
  %202 = load double, ptr %30, align 8, !tbaa !11
  %203 = call double @llvm.fmuladd.f64(double %201, double %202, double 1.000000e+00)
  %204 = fdiv double %200, %203
  store double %204, ptr %32, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %205 = load double, ptr %31, align 8, !tbaa !11
  %206 = load double, ptr %16, align 8, !tbaa !11
  %207 = fneg double %206
  %208 = load double, ptr %17, align 8, !tbaa !11
  %209 = fmul double %207, %208
  %210 = load double, ptr %17, align 8, !tbaa !11
  %211 = fneg double %210
  %212 = load double, ptr %30, align 8, !tbaa !11
  %213 = fmul double %211, %212
  %214 = call double @exp(double noundef %213) #5
  %215 = fmul double %209, %214
  %216 = load double, ptr %18, align 8, !tbaa !11
  %217 = load double, ptr %30, align 8, !tbaa !11
  %218 = call double @llvm.fmuladd.f64(double %216, double %217, double 1.000000e+00)
  %219 = fdiv double %215, %218
  %220 = load double, ptr %16, align 8, !tbaa !11
  %221 = load double, ptr %18, align 8, !tbaa !11
  %222 = fmul double %220, %221
  %223 = load double, ptr %17, align 8, !tbaa !11
  %224 = fneg double %223
  %225 = load double, ptr %30, align 8, !tbaa !11
  %226 = fmul double %224, %225
  %227 = call double @exp(double noundef %226) #5
  %228 = fmul double %222, %227
  %229 = load double, ptr %18, align 8, !tbaa !11
  %230 = load double, ptr %30, align 8, !tbaa !11
  %231 = call double @llvm.fmuladd.f64(double %229, double %230, double 1.000000e+00)
  %232 = call double @pow(double noundef %231, double noundef 2.000000e+00) #5
  %233 = fdiv double %228, %232
  %234 = fsub double %219, %233
  %235 = fmul double %205, %234
  store double %235, ptr %33, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  %236 = load double, ptr %30, align 8, !tbaa !11
  %237 = load double, ptr %17, align 8, !tbaa !11
  %238 = load double, ptr %18, align 8, !tbaa !11
  %239 = load double, ptr %18, align 8, !tbaa !11
  %240 = load double, ptr %30, align 8, !tbaa !11
  %241 = call double @llvm.fmuladd.f64(double %239, double %240, double 1.000000e+00)
  %242 = fdiv double %238, %241
  %243 = fadd double %237, %242
  %244 = fmul double %236, %243
  store double %244, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  %245 = load double, ptr %31, align 8, !tbaa !11
  %246 = load double, ptr %17, align 8, !tbaa !11
  %247 = load double, ptr %18, align 8, !tbaa !11
  %248 = call double @pow(double noundef %247, double noundef 2.000000e+00) #5
  %249 = load double, ptr %30, align 8, !tbaa !11
  %250 = fmul double %248, %249
  %251 = load double, ptr %18, align 8, !tbaa !11
  %252 = load double, ptr %30, align 8, !tbaa !11
  %253 = call double @llvm.fmuladd.f64(double %251, double %252, double 1.000000e+00)
  %254 = call double @pow(double noundef %253, double noundef 2.000000e+00) #5
  %255 = fdiv double %250, %254
  %256 = fsub double %246, %255
  %257 = load double, ptr %18, align 8, !tbaa !11
  %258 = load double, ptr %18, align 8, !tbaa !11
  %259 = load double, ptr %30, align 8, !tbaa !11
  %260 = call double @llvm.fmuladd.f64(double %258, double %259, double 1.000000e+00)
  %261 = fdiv double %257, %260
  %262 = fadd double %256, %261
  %263 = fmul double %245, %262
  store double %263, ptr %35, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  %264 = load double, ptr %28, align 8, !tbaa !11
  %265 = fmul double -2.000000e+00, %264
  %266 = load double, ptr %27, align 8, !tbaa !11
  %267 = call double @pow(double noundef %266, double noundef 2.000000e+00) #5
  %268 = fdiv double %265, %267
  store double %268, ptr %36, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  %269 = load double, ptr %28, align 8, !tbaa !11
  %270 = fmul double 4.000000e+00, %269
  %271 = load double, ptr %27, align 8, !tbaa !11
  %272 = call double @pow(double noundef %271, double noundef 3.000000e+00) #5
  %273 = fdiv double %270, %272
  store double %273, ptr %37, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  %274 = load double, ptr %27, align 8, !tbaa !11
  %275 = call double @pow(double noundef %274, double noundef 2.000000e+00) #5
  %276 = fdiv double -2.000000e+00, %275
  store double %276, ptr %38, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  %277 = load double, ptr %36, align 8, !tbaa !11
  %278 = fsub double %277, 1.000000e+00
  %279 = load double, ptr %18, align 8, !tbaa !11
  %280 = load double, ptr %30, align 8, !tbaa !11
  %281 = call double @llvm.fmuladd.f64(double %279, double %280, double 1.000000e+00)
  %282 = fdiv double %278, %281
  store double %282, ptr %39, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  %283 = load double, ptr %18, align 8, !tbaa !11
  %284 = load double, ptr %30, align 8, !tbaa !11
  %285 = call double @llvm.fmuladd.f64(double %283, double %284, double 1.000000e+00)
  %286 = fdiv double 1.000000e+00, %285
  store double %286, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  %287 = load double, ptr %40, align 8, !tbaa !11
  %288 = load double, ptr %37, align 8, !tbaa !11
  %289 = load double, ptr %31, align 8, !tbaa !11
  %290 = load double, ptr %18, align 8, !tbaa !11
  %291 = fmul double %289, %290
  %292 = load double, ptr %36, align 8, !tbaa !11
  %293 = fsub double %292, 1.000000e+00
  %294 = fmul double %291, %293
  %295 = load double, ptr %18, align 8, !tbaa !11
  %296 = load double, ptr %30, align 8, !tbaa !11
  %297 = call double @llvm.fmuladd.f64(double %295, double %296, double 1.000000e+00)
  %298 = call double @pow(double noundef %297, double noundef 2.000000e+00) #5
  %299 = fdiv double %294, %298
  %300 = fneg double %299
  %301 = call double @llvm.fmuladd.f64(double %287, double %288, double %300)
  store double %301, ptr %41, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  %302 = load double, ptr %40, align 8, !tbaa !11
  %303 = load double, ptr %38, align 8, !tbaa !11
  %304 = fmul double %302, %303
  store double %304, ptr %42, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  %305 = load double, ptr %27, align 8, !tbaa !11
  %306 = call double @pow(double noundef %305, double noundef 0xC005555555555555) #5
  %307 = load double, ptr %29, align 8, !tbaa !11
  %308 = fmul double %306, %307
  store double %308, ptr %43, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  %309 = load double, ptr %27, align 8, !tbaa !11
  %310 = call double @pow(double noundef %309, double noundef 0xC00D555555555555) #5
  %311 = fmul double 0xC005555555555555, %310
  %312 = load double, ptr %29, align 8, !tbaa !11
  %313 = fmul double %311, %312
  store double %313, ptr %44, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  %314 = load double, ptr %27, align 8, !tbaa !11
  %315 = call double @pow(double noundef %314, double noundef 0xC005555555555555) #5
  store double %315, ptr %45, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  %316 = load double, ptr %43, align 8, !tbaa !11
  %317 = fneg double %316
  %318 = load double, ptr %36, align 8, !tbaa !11
  %319 = fsub double 1.000000e+00, %318
  %320 = fmul double 0x3F8C71C71C71C71C, %319
  %321 = load double, ptr %34, align 8, !tbaa !11
  %322 = call double @llvm.fmuladd.f64(double -7.000000e+00, double %321, double 4.700000e+01)
  %323 = call double @llvm.fmuladd.f64(double %320, double %322, double 0xBFE5555555555555)
  %324 = fmul double %317, %323
  store double %324, ptr %46, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  %325 = load double, ptr %36, align 8, !tbaa !11
  %326 = fsub double 1.000000e+00, %325
  %327 = fmul double 0xBF8C71C71C71C71C, %326
  %328 = load double, ptr %34, align 8, !tbaa !11
  %329 = call double @llvm.fmuladd.f64(double -7.000000e+00, double %328, double 4.700000e+01)
  %330 = call double @llvm.fmuladd.f64(double %327, double %329, double 0x3FE5555555555555)
  store double %330, ptr %47, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  %331 = load double, ptr %43, align 8, !tbaa !11
  %332 = fneg double %331
  %333 = load double, ptr %34, align 8, !tbaa !11
  %334 = call double @llvm.fmuladd.f64(double 0x3FB8E38E38E38E39, double %333, double 0xBFE4E38E38E38E39)
  %335 = fmul double %332, %334
  store double %335, ptr %48, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  %336 = load double, ptr %35, align 8, !tbaa !11
  %337 = fneg double %336
  %338 = load double, ptr %43, align 8, !tbaa !11
  %339 = fmul double %337, %338
  %340 = load double, ptr %36, align 8, !tbaa !11
  %341 = call double @llvm.fmuladd.f64(double 0x3FB8E38E38E38E39, double %340, double 0xBFB8E38E38E38E39)
  %342 = load double, ptr %47, align 8, !tbaa !11
  %343 = load double, ptr %44, align 8, !tbaa !11
  %344 = fmul double %342, %343
  %345 = call double @llvm.fmuladd.f64(double %339, double %341, double %344)
  %346 = load double, ptr %48, align 8, !tbaa !11
  %347 = load double, ptr %37, align 8, !tbaa !11
  %348 = call double @llvm.fmuladd.f64(double %346, double %347, double %345)
  store double %348, ptr %49, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  %349 = load double, ptr %48, align 8, !tbaa !11
  %350 = load double, ptr %38, align 8, !tbaa !11
  %351 = fmul double %349, %350
  store double %351, ptr %50, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  %352 = load double, ptr %47, align 8, !tbaa !11
  %353 = load double, ptr %45, align 8, !tbaa !11
  %354 = fmul double %352, %353
  store double %354, ptr %51, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  store double 0.000000e+00, ptr %52, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  store double 0.000000e+00, ptr %54, align 8, !tbaa !11
  %355 = load double, ptr %28, align 8, !tbaa !11
  %356 = fcmp olt double %355, 0xBC9CD2B297D889BC
  br i1 %356, label %357, label %413

357:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #5
  %358 = load double, ptr %28, align 8, !tbaa !11
  %359 = fneg double %358
  %360 = call double @sqrt(double noundef %359) #5
  %361 = fmul double 0x3FF6A09E667F3BCD, %360
  %362 = load double, ptr %27, align 8, !tbaa !11
  %363 = fdiv double %361, %362
  store double %363, ptr %55, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #5
  %364 = load double, ptr %28, align 8, !tbaa !11
  %365 = fneg double %364
  %366 = call double @sqrt(double noundef %365) #5
  %367 = fmul double 0xBFF6A09E667F3BCD, %366
  %368 = load double, ptr %27, align 8, !tbaa !11
  %369 = call double @pow(double noundef %368, double noundef 2.000000e+00) #5
  %370 = fdiv double %367, %369
  store double %370, ptr %56, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  %371 = load double, ptr %28, align 8, !tbaa !11
  %372 = fneg double %371
  %373 = call double @sqrt(double noundef %372) #5
  %374 = fmul double 0x3FE6A09E667F3BCD, %373
  %375 = load double, ptr %27, align 8, !tbaa !11
  %376 = load double, ptr %28, align 8, !tbaa !11
  %377 = fmul double %375, %376
  %378 = fdiv double %374, %377
  store double %378, ptr %57, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  store double 0.000000e+00, ptr %58, align 8, !tbaa !11
  %379 = load double, ptr %55, align 8, !tbaa !11
  %380 = fsub double 1.000000e+00, %379
  %381 = fcmp ogt double %380, 0x3C9CD2B297D889BC
  br i1 %381, label %382, label %398

382:                                              ; preds = %357
  %383 = load double, ptr %55, align 8, !tbaa !11
  %384 = fsub double 1.000000e+00, %383
  %385 = call double @pow(double noundef %384, double noundef 0x4005555555555555) #5
  %386 = load double, ptr %55, align 8, !tbaa !11
  %387 = fadd double %386, 1.000000e+00
  %388 = call double @pow(double noundef %387, double noundef 0x4005555555555555) #5
  %389 = fadd double %385, %388
  store double %389, ptr %52, align 8, !tbaa !11
  %390 = load double, ptr %55, align 8, !tbaa !11
  %391 = fsub double 1.000000e+00, %390
  %392 = call double @pow(double noundef %391, double noundef 0x3FFAAAAAAAAAAAAB) #5
  %393 = load double, ptr %55, align 8, !tbaa !11
  %394 = fadd double %393, 1.000000e+00
  %395 = call double @pow(double noundef %394, double noundef 0x3FFAAAAAAAAAAAAB) #5
  %396 = fmul double 0x4005555555555555, %395
  %397 = call double @llvm.fmuladd.f64(double 0xC005555555555555, double %392, double %396)
  store double %397, ptr %58, align 8, !tbaa !11
  br label %406

398:                                              ; preds = %357
  %399 = load double, ptr %55, align 8, !tbaa !11
  %400 = fadd double %399, 1.000000e+00
  %401 = call double @pow(double noundef %400, double noundef 0x4005555555555555) #5
  store double %401, ptr %52, align 8, !tbaa !11
  %402 = load double, ptr %55, align 8, !tbaa !11
  %403 = fadd double %402, 1.000000e+00
  %404 = call double @pow(double noundef %403, double noundef 0x3FFAAAAAAAAAAAAB) #5
  %405 = fmul double 0x4005555555555555, %404
  store double %405, ptr %58, align 8, !tbaa !11
  br label %406

406:                                              ; preds = %398, %382
  %407 = load double, ptr %58, align 8, !tbaa !11
  %408 = load double, ptr %56, align 8, !tbaa !11
  %409 = fmul double %407, %408
  store double %409, ptr %54, align 8, !tbaa !11
  %410 = load double, ptr %58, align 8, !tbaa !11
  %411 = load double, ptr %57, align 8, !tbaa !11
  %412 = fmul double %410, %411
  store double %412, ptr %53, align 8, !tbaa !11
  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
  br label %500

413:                                              ; preds = %174
  %414 = load double, ptr %28, align 8, !tbaa !11
  %415 = fcmp olt double %414, 0x3C9CD2B297D889BC
  br i1 %415, label %416, label %431

416:                                              ; preds = %413
  %417 = load double, ptr %36, align 8, !tbaa !11
  %418 = call double @pow(double noundef %417, double noundef 2.000000e+00) #5
  %419 = load double, ptr %36, align 8, !tbaa !11
  %420 = fmul double 0x4011C71C71C71C72, %419
  %421 = call double @llvm.fmuladd.f64(double 0xBFB511E8D2B3183B, double %418, double %420)
  %422 = fadd double %421, 2.000000e+00
  store double %422, ptr %52, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  %423 = load double, ptr %36, align 8, !tbaa !11
  %424 = call double @llvm.fmuladd.f64(double 0xBFC511E8D2B3183B, double %423, double 0x4011C71C71C71C72)
  store double %424, ptr %59, align 8, !tbaa !11
  %425 = load double, ptr %59, align 8, !tbaa !11
  %426 = load double, ptr %37, align 8, !tbaa !11
  %427 = fmul double %425, %426
  store double %427, ptr %54, align 8, !tbaa !11
  %428 = load double, ptr %59, align 8, !tbaa !11
  %429 = load double, ptr %38, align 8, !tbaa !11
  %430 = fmul double %428, %429
  store double %430, ptr %53, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  br label %499

431:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #5
  %432 = load double, ptr %28, align 8, !tbaa !11
  %433 = call double @sqrt(double noundef %432) #5
  %434 = fmul double 0x3FF6A09E667F3BCD, %433
  %435 = load double, ptr %27, align 8, !tbaa !11
  %436 = fdiv double %434, %435
  store double %436, ptr %60, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #5
  %437 = load double, ptr %28, align 8, !tbaa !11
  %438 = call double @sqrt(double noundef %437) #5
  %439 = fmul double 0xBFF6A09E667F3BCD, %438
  %440 = load double, ptr %27, align 8, !tbaa !11
  %441 = call double @pow(double noundef %440, double noundef 2.000000e+00) #5
  %442 = fdiv double %439, %441
  store double %442, ptr %61, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #5
  %443 = load double, ptr %27, align 8, !tbaa !11
  %444 = load double, ptr %28, align 8, !tbaa !11
  %445 = call double @sqrt(double noundef %444) #5
  %446 = fmul double %443, %445
  %447 = fdiv double 0x3FE6A09E667F3BCD, %446
  store double %447, ptr %62, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  %448 = load double, ptr %60, align 8, !tbaa !11
  %449 = call double @atan(double noundef %448) #5
  %450 = fmul double 0x4005555555555555, %449
  store double %450, ptr %63, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  %451 = load double, ptr %60, align 8, !tbaa !11
  %452 = call double @pow(double noundef %451, double noundef 2.000000e+00) #5
  %453 = fadd double %452, 1.000000e+00
  %454 = fdiv double 0x4005555555555555, %453
  store double %454, ptr %64, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  %455 = load double, ptr %61, align 8, !tbaa !11
  %456 = load double, ptr %64, align 8, !tbaa !11
  %457 = fmul double %455, %456
  store double %457, ptr %65, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  %458 = load double, ptr %62, align 8, !tbaa !11
  %459 = load double, ptr %64, align 8, !tbaa !11
  %460 = fmul double %458, %459
  store double %460, ptr %66, align 8, !tbaa !11
  %461 = load double, ptr %60, align 8, !tbaa !11
  %462 = call double @pow(double noundef %461, double noundef 2.000000e+00) #5
  %463 = fadd double %462, 1.000000e+00
  %464 = call double @pow(double noundef %463, double noundef 0x3FF5555555555555) #5
  %465 = fmul double 2.000000e+00, %464
  %466 = load double, ptr %63, align 8, !tbaa !11
  %467 = call double @cos(double noundef %466) #5
  %468 = fmul double %465, %467
  store double %468, ptr %52, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  %469 = load double, ptr %60, align 8, !tbaa !11
  %470 = fmul double 0x4015555555555555, %469
  %471 = load double, ptr %60, align 8, !tbaa !11
  %472 = call double @pow(double noundef %471, double noundef 2.000000e+00) #5
  %473 = fadd double %472, 1.000000e+00
  %474 = call double @cbrt(double noundef %473) #6
  %475 = fmul double %470, %474
  %476 = load double, ptr %63, align 8, !tbaa !11
  %477 = call double @cos(double noundef %476) #5
  %478 = fmul double %475, %477
  store double %478, ptr %67, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  %479 = load double, ptr %60, align 8, !tbaa !11
  %480 = call double @pow(double noundef %479, double noundef 2.000000e+00) #5
  %481 = fadd double %480, 1.000000e+00
  %482 = call double @pow(double noundef %481, double noundef 0x3FF5555555555555) #5
  %483 = fmul double -2.000000e+00, %482
  %484 = load double, ptr %63, align 8, !tbaa !11
  %485 = call double @sin(double noundef %484) #5
  %486 = fmul double %483, %485
  store double %486, ptr %68, align 8, !tbaa !11
  %487 = load double, ptr %61, align 8, !tbaa !11
  %488 = load double, ptr %67, align 8, !tbaa !11
  %489 = load double, ptr %68, align 8, !tbaa !11
  %490 = load double, ptr %65, align 8, !tbaa !11
  %491 = fmul double %489, %490
  %492 = call double @llvm.fmuladd.f64(double %487, double %488, double %491)
  store double %492, ptr %54, align 8, !tbaa !11
  %493 = load double, ptr %62, align 8, !tbaa !11
  %494 = load double, ptr %67, align 8, !tbaa !11
  %495 = load double, ptr %68, align 8, !tbaa !11
  %496 = load double, ptr %66, align 8, !tbaa !11
  %497 = fmul double %495, %496
  %498 = call double @llvm.fmuladd.f64(double %493, double %494, double %497)
  store double %498, ptr %53, align 8, !tbaa !11
  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
  br label %499

499:                                              ; preds = %431, %416
  br label %500

500:                                              ; preds = %499, %406
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  %501 = load double, ptr %52, align 8, !tbaa !11
  %502 = fmul double -5.000000e-01, %501
  %503 = load double, ptr %21, align 8, !tbaa !11
  %504 = fmul double %502, %503
  %505 = load double, ptr %36, align 8, !tbaa !11
  %506 = fsub double 1.000000e+00, %505
  %507 = fmul double %504, %506
  store double %507, ptr %69, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  %508 = load double, ptr %21, align 8, !tbaa !11
  %509 = fmul double -5.000000e-01, %508
  %510 = load double, ptr %36, align 8, !tbaa !11
  %511 = fsub double 1.000000e+00, %510
  %512 = fmul double %509, %511
  store double %512, ptr %70, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  %513 = load double, ptr %52, align 8, !tbaa !11
  %514 = fmul double 5.000000e-01, %513
  %515 = load double, ptr %21, align 8, !tbaa !11
  %516 = fmul double %514, %515
  store double %516, ptr %71, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  %517 = load double, ptr %54, align 8, !tbaa !11
  %518 = load double, ptr %70, align 8, !tbaa !11
  %519 = load double, ptr %71, align 8, !tbaa !11
  %520 = load double, ptr %37, align 8, !tbaa !11
  %521 = fmul double %519, %520
  %522 = call double @llvm.fmuladd.f64(double %517, double %518, double %521)
  store double %522, ptr %72, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  %523 = load double, ptr %53, align 8, !tbaa !11
  %524 = load double, ptr %70, align 8, !tbaa !11
  %525 = load double, ptr %71, align 8, !tbaa !11
  %526 = load double, ptr %38, align 8, !tbaa !11
  %527 = fmul double %525, %526
  %528 = call double @llvm.fmuladd.f64(double %523, double %524, double %527)
  store double %528, ptr %73, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #5
  %529 = load double, ptr %27, align 8, !tbaa !11
  %530 = call double @pow(double noundef %529, double noundef 0xBFF5555555555555) #5
  %531 = load double, ptr %29, align 8, !tbaa !11
  %532 = call double @sqrt(double noundef %531) #5
  %533 = fmul double %530, %532
  store double %533, ptr %74, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  %534 = load double, ptr %27, align 8, !tbaa !11
  %535 = call double @pow(double noundef %534, double noundef 0xC002AAAAAAAAAAAA) #5
  %536 = fmul double 0xBFF5555555555555, %535
  %537 = load double, ptr %29, align 8, !tbaa !11
  %538 = call double @sqrt(double noundef %537) #5
  %539 = fmul double %536, %538
  store double %539, ptr %75, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  %540 = load double, ptr %27, align 8, !tbaa !11
  %541 = call double @pow(double noundef %540, double noundef 0xBFF5555555555555) #5
  %542 = fmul double 5.000000e-01, %541
  %543 = load double, ptr %29, align 8, !tbaa !11
  %544 = call double @sqrt(double noundef %543) #5
  %545 = fdiv double %542, %544
  store double %545, ptr %76, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  %546 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %547 = fmul double 2.000000e+00, %546
  %548 = load double, ptr %23, align 8, !tbaa !11
  %549 = fmul double %547, %548
  %550 = load double, ptr %74, align 8, !tbaa !11
  %551 = call double @pow(double noundef %550, double noundef 2.000000e+00) #5
  %552 = fmul double %549, %551
  %553 = load double, ptr %36, align 8, !tbaa !11
  %554 = fsub double 1.000000e+00, %553
  %555 = fmul double %552, %554
  %556 = load double, ptr %34, align 8, !tbaa !11
  %557 = call double @llvm.fmuladd.f64(double 0xBFAC71C71C71C71C, double %556, double 2.500000e+00)
  %558 = fmul double %555, %557
  %559 = load double, ptr %36, align 8, !tbaa !11
  %560 = fadd double %559, 1.000000e+00
  %561 = fmul double %558, %560
  store double %561, ptr %77, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #5
  %562 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %563 = fmul double 4.000000e+00, %562
  %564 = load double, ptr %23, align 8, !tbaa !11
  %565 = fmul double %563, %564
  %566 = load double, ptr %74, align 8, !tbaa !11
  %567 = fmul double %565, %566
  %568 = load double, ptr %36, align 8, !tbaa !11
  %569 = fsub double 1.000000e+00, %568
  %570 = fmul double %567, %569
  %571 = load double, ptr %34, align 8, !tbaa !11
  %572 = call double @llvm.fmuladd.f64(double 0xBFAC71C71C71C71C, double %571, double 2.500000e+00)
  %573 = fmul double %570, %572
  %574 = load double, ptr %36, align 8, !tbaa !11
  %575 = fadd double %574, 1.000000e+00
  %576 = fmul double %573, %575
  store double %576, ptr %78, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  %577 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %578 = fmul double 2.000000e+00, %577
  %579 = load double, ptr %23, align 8, !tbaa !11
  %580 = fmul double %578, %579
  %581 = load double, ptr %74, align 8, !tbaa !11
  %582 = call double @pow(double noundef %581, double noundef 2.000000e+00) #5
  %583 = fmul double %580, %582
  %584 = load double, ptr %36, align 8, !tbaa !11
  %585 = fsub double 1.000000e+00, %584
  %586 = fmul double %583, %585
  %587 = load double, ptr %34, align 8, !tbaa !11
  %588 = call double @llvm.fmuladd.f64(double 0xBFAC71C71C71C71C, double %587, double 2.500000e+00)
  %589 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %590 = fmul double 2.000000e+00, %589
  %591 = load double, ptr %23, align 8, !tbaa !11
  %592 = fmul double %590, %591
  %593 = load double, ptr %74, align 8, !tbaa !11
  %594 = call double @pow(double noundef %593, double noundef 2.000000e+00) #5
  %595 = fmul double %592, %594
  %596 = load double, ptr %34, align 8, !tbaa !11
  %597 = call double @llvm.fmuladd.f64(double 0xBFAC71C71C71C71C, double %596, double 2.500000e+00)
  %598 = fmul double %595, %597
  %599 = load double, ptr %36, align 8, !tbaa !11
  %600 = fadd double %599, 1.000000e+00
  %601 = fmul double %598, %600
  %602 = fneg double %601
  %603 = call double @llvm.fmuladd.f64(double %586, double %588, double %602)
  store double %603, ptr %79, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  %604 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %605 = fmul double 0xBFBC71C71C71C71C, %604
  %606 = load double, ptr %35, align 8, !tbaa !11
  %607 = fmul double %605, %606
  %608 = load double, ptr %23, align 8, !tbaa !11
  %609 = fmul double %607, %608
  %610 = load double, ptr %74, align 8, !tbaa !11
  %611 = call double @pow(double noundef %610, double noundef 2.000000e+00) #5
  %612 = fmul double %609, %611
  %613 = load double, ptr %36, align 8, !tbaa !11
  %614 = fsub double 1.000000e+00, %613
  %615 = fmul double %612, %614
  %616 = load double, ptr %36, align 8, !tbaa !11
  %617 = fadd double %616, 1.000000e+00
  %618 = load double, ptr %78, align 8, !tbaa !11
  %619 = load double, ptr %75, align 8, !tbaa !11
  %620 = fmul double %618, %619
  %621 = call double @llvm.fmuladd.f64(double %615, double %617, double %620)
  %622 = load double, ptr %79, align 8, !tbaa !11
  %623 = load double, ptr %37, align 8, !tbaa !11
  %624 = call double @llvm.fmuladd.f64(double %622, double %623, double %621)
  store double %624, ptr %80, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  %625 = load double, ptr %79, align 8, !tbaa !11
  %626 = load double, ptr %38, align 8, !tbaa !11
  %627 = fmul double %625, %626
  store double %627, ptr %81, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  %628 = load double, ptr %78, align 8, !tbaa !11
  %629 = load double, ptr %76, align 8, !tbaa !11
  %630 = fmul double %628, %629
  store double %630, ptr %82, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  %631 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %632 = fmul double 2.000000e+00, %631
  %633 = load double, ptr %24, align 8, !tbaa !11
  %634 = fmul double %632, %633
  %635 = load double, ptr %74, align 8, !tbaa !11
  %636 = call double @pow(double noundef %635, double noundef 2.000000e+00) #5
  %637 = fmul double %634, %636
  %638 = load double, ptr %36, align 8, !tbaa !11
  %639 = fsub double 1.000000e+00, %638
  %640 = fmul double %637, %639
  %641 = load double, ptr %34, align 8, !tbaa !11
  %642 = fsub double %641, 1.100000e+01
  %643 = fmul double %640, %642
  %644 = load double, ptr %36, align 8, !tbaa !11
  %645 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %644, double 1.000000e+00)
  %646 = fmul double %643, %645
  store double %646, ptr %83, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  %647 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %648 = fmul double 4.000000e+00, %647
  %649 = load double, ptr %24, align 8, !tbaa !11
  %650 = fmul double %648, %649
  %651 = load double, ptr %74, align 8, !tbaa !11
  %652 = fmul double %650, %651
  %653 = load double, ptr %36, align 8, !tbaa !11
  %654 = fsub double 1.000000e+00, %653
  %655 = fmul double %652, %654
  %656 = load double, ptr %34, align 8, !tbaa !11
  %657 = fsub double %656, 1.100000e+01
  %658 = fmul double %655, %657
  %659 = load double, ptr %36, align 8, !tbaa !11
  %660 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %659, double 1.000000e+00)
  %661 = fmul double %658, %660
  store double %661, ptr %84, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #5
  %662 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %663 = fmul double 6.000000e+00, %662
  %664 = load double, ptr %24, align 8, !tbaa !11
  %665 = fmul double %663, %664
  %666 = load double, ptr %74, align 8, !tbaa !11
  %667 = call double @pow(double noundef %666, double noundef 2.000000e+00) #5
  %668 = fmul double %665, %667
  %669 = load double, ptr %36, align 8, !tbaa !11
  %670 = fsub double 1.000000e+00, %669
  %671 = fmul double %668, %670
  %672 = load double, ptr %34, align 8, !tbaa !11
  %673 = fsub double %672, 1.100000e+01
  %674 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %675 = fmul double 2.000000e+00, %674
  %676 = load double, ptr %24, align 8, !tbaa !11
  %677 = fmul double %675, %676
  %678 = load double, ptr %74, align 8, !tbaa !11
  %679 = call double @pow(double noundef %678, double noundef 2.000000e+00) #5
  %680 = fmul double %677, %679
  %681 = load double, ptr %34, align 8, !tbaa !11
  %682 = fsub double %681, 1.100000e+01
  %683 = fmul double %680, %682
  %684 = load double, ptr %36, align 8, !tbaa !11
  %685 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %684, double 1.000000e+00)
  %686 = fmul double %683, %685
  %687 = fneg double %686
  %688 = call double @llvm.fmuladd.f64(double %671, double %673, double %687)
  store double %688, ptr %85, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  %689 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %690 = fmul double 2.000000e+00, %689
  %691 = load double, ptr %35, align 8, !tbaa !11
  %692 = fmul double %690, %691
  %693 = load double, ptr %24, align 8, !tbaa !11
  %694 = fmul double %692, %693
  %695 = load double, ptr %74, align 8, !tbaa !11
  %696 = call double @pow(double noundef %695, double noundef 2.000000e+00) #5
  %697 = fmul double %694, %696
  %698 = load double, ptr %36, align 8, !tbaa !11
  %699 = fsub double 1.000000e+00, %698
  %700 = fmul double %697, %699
  %701 = load double, ptr %36, align 8, !tbaa !11
  %702 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %701, double 1.000000e+00)
  %703 = load double, ptr %84, align 8, !tbaa !11
  %704 = load double, ptr %75, align 8, !tbaa !11
  %705 = fmul double %703, %704
  %706 = call double @llvm.fmuladd.f64(double %700, double %702, double %705)
  %707 = load double, ptr %85, align 8, !tbaa !11
  %708 = load double, ptr %37, align 8, !tbaa !11
  %709 = call double @llvm.fmuladd.f64(double %707, double %708, double %706)
  store double %709, ptr %86, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #5
  %710 = load double, ptr %85, align 8, !tbaa !11
  %711 = load double, ptr %38, align 8, !tbaa !11
  %712 = fmul double %710, %711
  store double %712, ptr %87, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #5
  %713 = load double, ptr %84, align 8, !tbaa !11
  %714 = load double, ptr %76, align 8, !tbaa !11
  %715 = fmul double %713, %714
  store double %715, ptr %88, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #5
  %716 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %717 = fmul double -2.000000e+00, %716
  %718 = load double, ptr %22, align 8, !tbaa !11
  %719 = fmul double %717, %718
  %720 = load double, ptr %43, align 8, !tbaa !11
  %721 = fmul double %719, %720
  %722 = load double, ptr %36, align 8, !tbaa !11
  %723 = load double, ptr %36, align 8, !tbaa !11
  %724 = fsub double 1.000000e+00, %723
  %725 = call double @pow(double noundef %724, double noundef 2.000000e+00) #5
  %726 = fmul double 2.500000e-01, %725
  %727 = fneg double %726
  %728 = call double @llvm.fmuladd.f64(double 0x3FE5555555555555, double %722, double %727)
  %729 = fadd double %728, 0x3FE5555555555555
  %730 = fmul double %721, %729
  store double %730, ptr %89, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #5
  %731 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %732 = fmul double -2.000000e+00, %731
  %733 = load double, ptr %22, align 8, !tbaa !11
  %734 = fmul double %732, %733
  %735 = load double, ptr %36, align 8, !tbaa !11
  %736 = load double, ptr %36, align 8, !tbaa !11
  %737 = fsub double 1.000000e+00, %736
  %738 = call double @pow(double noundef %737, double noundef 2.000000e+00) #5
  %739 = fmul double 2.500000e-01, %738
  %740 = fneg double %739
  %741 = call double @llvm.fmuladd.f64(double 0x3FE5555555555555, double %735, double %740)
  %742 = fadd double %741, 0x3FE5555555555555
  %743 = fmul double %734, %742
  store double %743, ptr %90, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #5
  %744 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %745 = fmul double -2.000000e+00, %744
  %746 = load double, ptr %22, align 8, !tbaa !11
  %747 = fmul double %745, %746
  %748 = load double, ptr %43, align 8, !tbaa !11
  %749 = fmul double %747, %748
  %750 = load double, ptr %36, align 8, !tbaa !11
  %751 = call double @llvm.fmuladd.f64(double -5.000000e-01, double %750, double 0x3FF2AAAAAAAAAAAB)
  %752 = fmul double %749, %751
  store double %752, ptr %91, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  %753 = load double, ptr %90, align 8, !tbaa !11
  %754 = load double, ptr %44, align 8, !tbaa !11
  %755 = load double, ptr %91, align 8, !tbaa !11
  %756 = load double, ptr %37, align 8, !tbaa !11
  %757 = fmul double %755, %756
  %758 = call double @llvm.fmuladd.f64(double %753, double %754, double %757)
  store double %758, ptr %92, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #5
  %759 = load double, ptr %91, align 8, !tbaa !11
  %760 = load double, ptr %38, align 8, !tbaa !11
  %761 = fmul double %759, %760
  store double %761, ptr %93, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  %762 = load double, ptr %90, align 8, !tbaa !11
  %763 = load double, ptr %45, align 8, !tbaa !11
  %764 = fmul double %762, %763
  store double %764, ptr %94, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  %765 = load double, ptr %19, align 8, !tbaa !11
  %766 = load double, ptr %14, align 8, !tbaa !11
  %767 = fmul double %765, %766
  %768 = load double, ptr %30, align 8, !tbaa !11
  %769 = fmul double %767, %768
  %770 = call double @erfc(double noundef %769) #5
  store double %770, ptr %95, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #5
  %771 = load double, ptr %31, align 8, !tbaa !11
  %772 = fmul double -2.000000e+00, %771
  %773 = load double, ptr %19, align 8, !tbaa !11
  %774 = fmul double %772, %773
  %775 = load double, ptr %14, align 8, !tbaa !11
  %776 = fmul double %774, %775
  %777 = load double, ptr %19, align 8, !tbaa !11
  %778 = call double @pow(double noundef %777, double noundef 2.000000e+00) #5
  %779 = fneg double %778
  %780 = load double, ptr %14, align 8, !tbaa !11
  %781 = call double @pow(double noundef %780, double noundef 2.000000e+00) #5
  %782 = fmul double %779, %781
  %783 = load double, ptr %30, align 8, !tbaa !11
  %784 = call double @pow(double noundef %783, double noundef 2.000000e+00) #5
  %785 = fmul double %782, %784
  %786 = call double @exp(double noundef %785) #5
  %787 = fmul double %776, %786
  %788 = call double @sqrt(double noundef 0x400921FB54442D18) #5
  %789 = fdiv double %787, %788
  store double %789, ptr %96, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #5
  %790 = load double, ptr %20, align 8, !tbaa !11
  %791 = load double, ptr %14, align 8, !tbaa !11
  %792 = fmul double %790, %791
  %793 = load double, ptr %30, align 8, !tbaa !11
  %794 = fmul double %792, %793
  %795 = call double @erfc(double noundef %794) #5
  store double %795, ptr %97, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #5
  %796 = load double, ptr %31, align 8, !tbaa !11
  %797 = fmul double -2.000000e+00, %796
  %798 = load double, ptr %20, align 8, !tbaa !11
  %799 = fmul double %797, %798
  %800 = load double, ptr %14, align 8, !tbaa !11
  %801 = fmul double %799, %800
  %802 = load double, ptr %20, align 8, !tbaa !11
  %803 = call double @pow(double noundef %802, double noundef 2.000000e+00) #5
  %804 = fneg double %803
  %805 = load double, ptr %14, align 8, !tbaa !11
  %806 = call double @pow(double noundef %805, double noundef 2.000000e+00) #5
  %807 = fmul double %804, %806
  %808 = load double, ptr %30, align 8, !tbaa !11
  %809 = call double @pow(double noundef %808, double noundef 2.000000e+00) #5
  %810 = fmul double %807, %809
  %811 = call double @exp(double noundef %810) #5
  %812 = fmul double %801, %811
  %813 = call double @sqrt(double noundef 0x400921FB54442D18) #5
  %814 = fdiv double %812, %813
  store double %814, ptr %98, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #5
  %815 = load double, ptr %20, align 8, !tbaa !11
  %816 = fmul double 0xBFE5555555555555, %815
  %817 = load double, ptr %14, align 8, !tbaa !11
  %818 = fmul double %816, %817
  %819 = load double, ptr %20, align 8, !tbaa !11
  %820 = call double @pow(double noundef %819, double noundef 2.000000e+00) #5
  %821 = fneg double %820
  %822 = load double, ptr %14, align 8, !tbaa !11
  %823 = call double @pow(double noundef %822, double noundef 2.000000e+00) #5
  %824 = fmul double %821, %823
  %825 = load double, ptr %30, align 8, !tbaa !11
  %826 = call double @pow(double noundef %825, double noundef 2.000000e+00) #5
  %827 = fmul double %824, %826
  %828 = call double @exp(double noundef %827) #5
  %829 = fmul double %818, %828
  %830 = call double @sqrt(double noundef 0x400921FB54442D18) #5
  %831 = fdiv double %829, %830
  store double %831, ptr %99, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #5
  %832 = load double, ptr %31, align 8, !tbaa !11
  %833 = fmul double 0x3FF5555555555555, %832
  %834 = load double, ptr %20, align 8, !tbaa !11
  %835 = call double @pow(double noundef %834, double noundef 3.000000e+00) #5
  %836 = fmul double %833, %835
  %837 = load double, ptr %14, align 8, !tbaa !11
  %838 = call double @pow(double noundef %837, double noundef 3.000000e+00) #5
  %839 = fmul double %836, %838
  %840 = load double, ptr %30, align 8, !tbaa !11
  %841 = fmul double %839, %840
  %842 = load double, ptr %20, align 8, !tbaa !11
  %843 = call double @pow(double noundef %842, double noundef 2.000000e+00) #5
  %844 = fneg double %843
  %845 = load double, ptr %14, align 8, !tbaa !11
  %846 = call double @pow(double noundef %845, double noundef 2.000000e+00) #5
  %847 = fmul double %844, %846
  %848 = load double, ptr %30, align 8, !tbaa !11
  %849 = call double @pow(double noundef %848, double noundef 2.000000e+00) #5
  %850 = fmul double %847, %849
  %851 = call double @exp(double noundef %850) #5
  %852 = fmul double %841, %851
  %853 = call double @sqrt(double noundef 0x400921FB54442D18) #5
  %854 = fdiv double %852, %853
  store double %854, ptr %100, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #5
  %855 = load double, ptr %30, align 8, !tbaa !11
  %856 = fmul double -2.500000e-01, %855
  %857 = load double, ptr %43, align 8, !tbaa !11
  %858 = fmul double %856, %857
  %859 = load double, ptr %36, align 8, !tbaa !11
  %860 = fsub double 1.000000e+00, %859
  %861 = fmul double %858, %860
  %862 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %863 = fmul double 0x3FE5555555555555, %862
  %864 = load double, ptr %22, align 8, !tbaa !11
  %865 = fmul double %863, %864
  %866 = load double, ptr %36, align 8, !tbaa !11
  %867 = call double @llvm.fmuladd.f64(double %865, double %866, double 0x3FF2AAAAAAAAAAAB)
  %868 = fmul double %861, %867
  store double %868, ptr %101, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #5
  %869 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %870 = fmul double 0xBFC5555555555555, %869
  %871 = load double, ptr %22, align 8, !tbaa !11
  %872 = fmul double %870, %871
  %873 = load double, ptr %30, align 8, !tbaa !11
  %874 = fmul double %872, %873
  %875 = load double, ptr %43, align 8, !tbaa !11
  %876 = fmul double %874, %875
  %877 = load double, ptr %36, align 8, !tbaa !11
  %878 = fsub double 1.000000e+00, %877
  %879 = load double, ptr %30, align 8, !tbaa !11
  %880 = fmul double 2.500000e-01, %879
  %881 = load double, ptr %43, align 8, !tbaa !11
  %882 = fmul double %880, %881
  %883 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %884 = fmul double 0x3FE5555555555555, %883
  %885 = load double, ptr %22, align 8, !tbaa !11
  %886 = fmul double %884, %885
  %887 = load double, ptr %36, align 8, !tbaa !11
  %888 = call double @llvm.fmuladd.f64(double %886, double %887, double 0x3FF2AAAAAAAAAAAB)
  %889 = fmul double %882, %888
  %890 = call double @llvm.fmuladd.f64(double %876, double %878, double %889)
  store double %890, ptr %102, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #5
  %891 = load double, ptr %30, align 8, !tbaa !11
  %892 = fmul double -2.500000e-01, %891
  %893 = load double, ptr %36, align 8, !tbaa !11
  %894 = fsub double 1.000000e+00, %893
  %895 = fmul double %892, %894
  %896 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %897 = fmul double 0x3FE5555555555555, %896
  %898 = load double, ptr %22, align 8, !tbaa !11
  %899 = fmul double %897, %898
  %900 = load double, ptr %36, align 8, !tbaa !11
  %901 = call double @llvm.fmuladd.f64(double %899, double %900, double 0x3FF2AAAAAAAAAAAB)
  %902 = fmul double %895, %901
  store double %902, ptr %103, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #5
  %903 = load double, ptr %103, align 8, !tbaa !11
  %904 = load double, ptr %44, align 8, !tbaa !11
  %905 = load double, ptr %102, align 8, !tbaa !11
  %906 = load double, ptr %37, align 8, !tbaa !11
  %907 = fmul double %905, %906
  %908 = call double @llvm.fmuladd.f64(double %903, double %904, double %907)
  %909 = load double, ptr %31, align 8, !tbaa !11
  %910 = fmul double 2.500000e-01, %909
  %911 = load double, ptr %43, align 8, !tbaa !11
  %912 = fmul double %910, %911
  %913 = load double, ptr %36, align 8, !tbaa !11
  %914 = fsub double 1.000000e+00, %913
  %915 = fmul double %912, %914
  %916 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %917 = fmul double 0x3FE5555555555555, %916
  %918 = load double, ptr %22, align 8, !tbaa !11
  %919 = fmul double %917, %918
  %920 = load double, ptr %36, align 8, !tbaa !11
  %921 = call double @llvm.fmuladd.f64(double %919, double %920, double 0x3FF2AAAAAAAAAAAB)
  %922 = fneg double %915
  %923 = call double @llvm.fmuladd.f64(double %922, double %921, double %908)
  store double %923, ptr %104, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #5
  %924 = load double, ptr %102, align 8, !tbaa !11
  %925 = load double, ptr %38, align 8, !tbaa !11
  %926 = fmul double %924, %925
  store double %926, ptr %105, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #5
  %927 = load double, ptr %103, align 8, !tbaa !11
  %928 = load double, ptr %45, align 8, !tbaa !11
  %929 = fmul double %927, %928
  store double %929, ptr %106, align 8, !tbaa !11
  %930 = load double, ptr %15, align 8, !tbaa !11
  %931 = load double, ptr %95, align 8, !tbaa !11
  %932 = load double, ptr %39, align 8, !tbaa !11
  %933 = load double, ptr %97, align 8, !tbaa !11
  %934 = load double, ptr %32, align 8, !tbaa !11
  %935 = fmul double %933, %934
  %936 = load double, ptr %46, align 8, !tbaa !11
  %937 = load double, ptr %69, align 8, !tbaa !11
  %938 = fadd double %936, %937
  %939 = load double, ptr %77, align 8, !tbaa !11
  %940 = fadd double %938, %939
  %941 = load double, ptr %83, align 8, !tbaa !11
  %942 = fadd double %940, %941
  %943 = load double, ptr %89, align 8, !tbaa !11
  %944 = fadd double %942, %943
  %945 = fmul double %935, %944
  %946 = call double @llvm.fmuladd.f64(double %931, double %932, double %945)
  %947 = load double, ptr %32, align 8, !tbaa !11
  %948 = load double, ptr %99, align 8, !tbaa !11
  %949 = fmul double %947, %948
  %950 = load double, ptr %101, align 8, !tbaa !11
  %951 = call double @llvm.fmuladd.f64(double %949, double %950, double %946)
  %952 = fmul double %930, %951
  %953 = load ptr, ptr %11, align 8, !tbaa !9
  %954 = load i32, ptr %25, align 4, !tbaa !5
  %955 = sext i32 %954 to i64
  %956 = getelementptr inbounds double, ptr %953, i64 %955
  store double %952, ptr %956, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #5
  %957 = load double, ptr %27, align 8, !tbaa !11
  %958 = load double, ptr %15, align 8, !tbaa !11
  %959 = fmul double %957, %958
  %960 = load double, ptr %32, align 8, !tbaa !11
  %961 = fmul double %959, %960
  %962 = load double, ptr %99, align 8, !tbaa !11
  %963 = fmul double %961, %962
  store double %963, ptr %107, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #5
  %964 = load double, ptr %27, align 8, !tbaa !11
  %965 = load double, ptr %97, align 8, !tbaa !11
  %966 = fmul double %964, %965
  %967 = load double, ptr %15, align 8, !tbaa !11
  %968 = fmul double %966, %967
  %969 = load double, ptr %32, align 8, !tbaa !11
  %970 = fmul double %968, %969
  store double %970, ptr %108, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #5
  %971 = load double, ptr %27, align 8, !tbaa !11
  %972 = load double, ptr %97, align 8, !tbaa !11
  %973 = fmul double %971, %972
  %974 = load double, ptr %15, align 8, !tbaa !11
  %975 = fmul double %973, %974
  %976 = load double, ptr %32, align 8, !tbaa !11
  %977 = fmul double %975, %976
  store double %977, ptr %109, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #5
  %978 = load double, ptr %27, align 8, !tbaa !11
  %979 = load double, ptr %97, align 8, !tbaa !11
  %980 = fmul double %978, %979
  %981 = load double, ptr %15, align 8, !tbaa !11
  %982 = fmul double %980, %981
  %983 = load double, ptr %32, align 8, !tbaa !11
  %984 = fmul double %982, %983
  store double %984, ptr %110, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #5
  %985 = load double, ptr %27, align 8, !tbaa !11
  %986 = load double, ptr %97, align 8, !tbaa !11
  %987 = fmul double %985, %986
  %988 = load double, ptr %15, align 8, !tbaa !11
  %989 = fmul double %987, %988
  %990 = load double, ptr %32, align 8, !tbaa !11
  %991 = fmul double %989, %990
  store double %991, ptr %111, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #5
  %992 = load double, ptr %27, align 8, !tbaa !11
  %993 = load double, ptr %95, align 8, !tbaa !11
  %994 = fmul double %992, %993
  %995 = load double, ptr %15, align 8, !tbaa !11
  %996 = fmul double %994, %995
  store double %996, ptr %112, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #5
  %997 = load double, ptr %27, align 8, !tbaa !11
  %998 = load double, ptr %97, align 8, !tbaa !11
  %999 = fmul double %997, %998
  %1000 = load double, ptr %15, align 8, !tbaa !11
  %1001 = fmul double %999, %1000
  %1002 = load double, ptr %32, align 8, !tbaa !11
  %1003 = fmul double %1001, %1002
  store double %1003, ptr %113, align 8, !tbaa !11
  %1004 = load double, ptr %112, align 8, !tbaa !11
  %1005 = load double, ptr %41, align 8, !tbaa !11
  %1006 = load double, ptr %111, align 8, !tbaa !11
  %1007 = load double, ptr %49, align 8, !tbaa !11
  %1008 = fmul double %1006, %1007
  %1009 = call double @llvm.fmuladd.f64(double %1004, double %1005, double %1008)
  %1010 = load double, ptr %110, align 8, !tbaa !11
  %1011 = load double, ptr %72, align 8, !tbaa !11
  %1012 = call double @llvm.fmuladd.f64(double %1010, double %1011, double %1009)
  %1013 = load double, ptr %113, align 8, !tbaa !11
  %1014 = load double, ptr %80, align 8, !tbaa !11
  %1015 = call double @llvm.fmuladd.f64(double %1013, double %1014, double %1012)
  %1016 = load double, ptr %109, align 8, !tbaa !11
  %1017 = load double, ptr %86, align 8, !tbaa !11
  %1018 = call double @llvm.fmuladd.f64(double %1016, double %1017, double %1015)
  %1019 = load double, ptr %108, align 8, !tbaa !11
  %1020 = load double, ptr %92, align 8, !tbaa !11
  %1021 = call double @llvm.fmuladd.f64(double %1019, double %1020, double %1018)
  %1022 = load double, ptr %107, align 8, !tbaa !11
  %1023 = load double, ptr %104, align 8, !tbaa !11
  %1024 = call double @llvm.fmuladd.f64(double %1022, double %1023, double %1021)
  %1025 = load double, ptr %27, align 8, !tbaa !11
  %1026 = load double, ptr %96, align 8, !tbaa !11
  %1027 = fmul double %1025, %1026
  %1028 = load double, ptr %15, align 8, !tbaa !11
  %1029 = fmul double %1027, %1028
  %1030 = load double, ptr %39, align 8, !tbaa !11
  %1031 = call double @llvm.fmuladd.f64(double %1029, double %1030, double %1024)
  %1032 = load double, ptr %27, align 8, !tbaa !11
  %1033 = load double, ptr %98, align 8, !tbaa !11
  %1034 = fmul double %1032, %1033
  %1035 = load double, ptr %15, align 8, !tbaa !11
  %1036 = fmul double %1034, %1035
  %1037 = load double, ptr %32, align 8, !tbaa !11
  %1038 = fmul double %1036, %1037
  %1039 = load double, ptr %46, align 8, !tbaa !11
  %1040 = load double, ptr %69, align 8, !tbaa !11
  %1041 = fadd double %1039, %1040
  %1042 = load double, ptr %77, align 8, !tbaa !11
  %1043 = fadd double %1041, %1042
  %1044 = load double, ptr %83, align 8, !tbaa !11
  %1045 = fadd double %1043, %1044
  %1046 = load double, ptr %89, align 8, !tbaa !11
  %1047 = fadd double %1045, %1046
  %1048 = call double @llvm.fmuladd.f64(double %1038, double %1047, double %1031)
  %1049 = load double, ptr %27, align 8, !tbaa !11
  %1050 = load double, ptr %33, align 8, !tbaa !11
  %1051 = fmul double %1049, %1050
  %1052 = load double, ptr %15, align 8, !tbaa !11
  %1053 = fmul double %1051, %1052
  %1054 = load double, ptr %97, align 8, !tbaa !11
  %1055 = load double, ptr %46, align 8, !tbaa !11
  %1056 = load double, ptr %69, align 8, !tbaa !11
  %1057 = fadd double %1055, %1056
  %1058 = load double, ptr %77, align 8, !tbaa !11
  %1059 = fadd double %1057, %1058
  %1060 = load double, ptr %83, align 8, !tbaa !11
  %1061 = fadd double %1059, %1060
  %1062 = load double, ptr %89, align 8, !tbaa !11
  %1063 = fadd double %1061, %1062
  %1064 = load double, ptr %99, align 8, !tbaa !11
  %1065 = load double, ptr %101, align 8, !tbaa !11
  %1066 = fmul double %1064, %1065
  %1067 = call double @llvm.fmuladd.f64(double %1054, double %1063, double %1066)
  %1068 = call double @llvm.fmuladd.f64(double %1053, double %1067, double %1048)
  %1069 = load double, ptr %27, align 8, !tbaa !11
  %1070 = load double, ptr %100, align 8, !tbaa !11
  %1071 = fmul double %1069, %1070
  %1072 = load double, ptr %15, align 8, !tbaa !11
  %1073 = fmul double %1071, %1072
  %1074 = load double, ptr %32, align 8, !tbaa !11
  %1075 = fmul double %1073, %1074
  %1076 = load double, ptr %101, align 8, !tbaa !11
  %1077 = call double @llvm.fmuladd.f64(double %1075, double %1076, double %1068)
  %1078 = load double, ptr %15, align 8, !tbaa !11
  %1079 = load double, ptr %95, align 8, !tbaa !11
  %1080 = load double, ptr %39, align 8, !tbaa !11
  %1081 = load double, ptr %97, align 8, !tbaa !11
  %1082 = load double, ptr %32, align 8, !tbaa !11
  %1083 = fmul double %1081, %1082
  %1084 = load double, ptr %46, align 8, !tbaa !11
  %1085 = load double, ptr %69, align 8, !tbaa !11
  %1086 = fadd double %1084, %1085
  %1087 = load double, ptr %77, align 8, !tbaa !11
  %1088 = fadd double %1086, %1087
  %1089 = load double, ptr %83, align 8, !tbaa !11
  %1090 = fadd double %1088, %1089
  %1091 = load double, ptr %89, align 8, !tbaa !11
  %1092 = fadd double %1090, %1091
  %1093 = fmul double %1083, %1092
  %1094 = call double @llvm.fmuladd.f64(double %1079, double %1080, double %1093)
  %1095 = load double, ptr %32, align 8, !tbaa !11
  %1096 = load double, ptr %99, align 8, !tbaa !11
  %1097 = fmul double %1095, %1096
  %1098 = load double, ptr %101, align 8, !tbaa !11
  %1099 = call double @llvm.fmuladd.f64(double %1097, double %1098, double %1094)
  %1100 = call double @llvm.fmuladd.f64(double %1078, double %1099, double %1077)
  %1101 = load ptr, ptr %12, align 8, !tbaa !9
  %1102 = load i32, ptr %25, align 4, !tbaa !5
  %1103 = mul nsw i32 2, %1102
  %1104 = add nsw i32 %1103, 0
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds double, ptr %1101, i64 %1105
  store double %1100, ptr %1106, align 8, !tbaa !11
  %1107 = load double, ptr %112, align 8, !tbaa !11
  %1108 = load double, ptr %42, align 8, !tbaa !11
  %1109 = load double, ptr %111, align 8, !tbaa !11
  %1110 = load double, ptr %50, align 8, !tbaa !11
  %1111 = fmul double %1109, %1110
  %1112 = call double @llvm.fmuladd.f64(double %1107, double %1108, double %1111)
  %1113 = load double, ptr %110, align 8, !tbaa !11
  %1114 = load double, ptr %73, align 8, !tbaa !11
  %1115 = call double @llvm.fmuladd.f64(double %1113, double %1114, double %1112)
  %1116 = load double, ptr %113, align 8, !tbaa !11
  %1117 = load double, ptr %81, align 8, !tbaa !11
  %1118 = call double @llvm.fmuladd.f64(double %1116, double %1117, double %1115)
  %1119 = load double, ptr %109, align 8, !tbaa !11
  %1120 = load double, ptr %87, align 8, !tbaa !11
  %1121 = call double @llvm.fmuladd.f64(double %1119, double %1120, double %1118)
  %1122 = load double, ptr %108, align 8, !tbaa !11
  %1123 = load double, ptr %93, align 8, !tbaa !11
  %1124 = call double @llvm.fmuladd.f64(double %1122, double %1123, double %1121)
  %1125 = load double, ptr %107, align 8, !tbaa !11
  %1126 = load double, ptr %105, align 8, !tbaa !11
  %1127 = call double @llvm.fmuladd.f64(double %1125, double %1126, double %1124)
  %1128 = load ptr, ptr %12, align 8, !tbaa !9
  %1129 = load i32, ptr %25, align 4, !tbaa !5
  %1130 = mul nsw i32 2, %1129
  %1131 = add nsw i32 %1130, 1
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds double, ptr %1128, i64 %1132
  store double %1127, ptr %1133, align 8, !tbaa !11
  %1134 = load double, ptr %111, align 8, !tbaa !11
  %1135 = load double, ptr %51, align 8, !tbaa !11
  %1136 = load double, ptr %113, align 8, !tbaa !11
  %1137 = load double, ptr %82, align 8, !tbaa !11
  %1138 = fmul double %1136, %1137
  %1139 = call double @llvm.fmuladd.f64(double %1134, double %1135, double %1138)
  %1140 = load double, ptr %109, align 8, !tbaa !11
  %1141 = load double, ptr %88, align 8, !tbaa !11
  %1142 = call double @llvm.fmuladd.f64(double %1140, double %1141, double %1139)
  %1143 = load double, ptr %108, align 8, !tbaa !11
  %1144 = load double, ptr %94, align 8, !tbaa !11
  %1145 = call double @llvm.fmuladd.f64(double %1143, double %1144, double %1142)
  %1146 = load double, ptr %107, align 8, !tbaa !11
  %1147 = load double, ptr %106, align 8, !tbaa !11
  %1148 = call double @llvm.fmuladd.f64(double %1146, double %1147, double %1145)
  %1149 = load ptr, ptr %13, align 8, !tbaa !9
  %1150 = load i32, ptr %25, align 4, !tbaa !5
  %1151 = mul nsw i32 3, %1150
  %1152 = add nsw i32 %1151, 0
  %1153 = sext i32 %1152 to i64
  %1154 = getelementptr inbounds double, ptr %1149, i64 %1153
  store double %1148, ptr %1154, align 8, !tbaa !11
  %1155 = load ptr, ptr %13, align 8, !tbaa !9
  %1156 = load i32, ptr %25, align 4, !tbaa !5
  %1157 = mul nsw i32 3, %1156
  %1158 = add nsw i32 %1157, 1
  %1159 = sext i32 %1158 to i64
  %1160 = getelementptr inbounds double, ptr %1155, i64 %1159
  store double 0.000000e+00, ptr %1160, align 8, !tbaa !11
  %1161 = load ptr, ptr %13, align 8, !tbaa !9
  %1162 = load i32, ptr %25, align 4, !tbaa !5
  %1163 = mul nsw i32 3, %1162
  %1164 = add nsw i32 %1163, 2
  %1165 = sext i32 %1164 to i64
  %1166 = getelementptr inbounds double, ptr %1161, i64 %1165
  store double 0.000000e+00, ptr %1166, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %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
  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
  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
  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 %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 %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  store i32 0, ptr %26, align 4
  br label %1167

1167:                                             ; preds = %500, %139
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  %1168 = load i32, ptr %26, align 4
  switch i32 %1168, label %1174 [
    i32 0, label %1169
    i32 4, label %1170
  ]

1169:                                             ; preds = %1167
  br label %1170

1170:                                             ; preds = %1169, %1167
  %1171 = load i32, ptr %25, align 4, !tbaa !5
  %1172 = add nsw i32 %1171, 1
  store i32 %1172, ptr %25, align 4, !tbaa !5
  br label %124, !llvm.loop !13

1173:                                             ; preds = %128
  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
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  ret void

1174:                                             ; preds = %1167
  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: nounwind
declare double @exp(double noundef) #2

; 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 @erfc(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 nounwind uwtable
define dso_local void @_ZN11pdftlyp_erf15compute_exc_vxcEiPKdS1_PdS2_S2_d(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, double noundef %6) local_unnamed_addr #0 {
  %8 = tail call double @cbrt(double noundef 2.000000e+00) #7
  %9 = fmul double %8, 1.250000e-01
  %10 = fmul double %9, 2.500000e-01
  %11 = fmul double %10, 0x3FAC71C71C71C71C
  %12 = icmp sgt i32 %0, 0
  br i1 %12, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %7
  %13 = insertelement <2 x double> poison, double %11, i64 0
  %14 = insertelement <2 x double> %13, double %10, i64 1
  %15 = fmul <2 x double> %14, <double 0x400965FEA53D6E3C, double 0x400965FEA53D6E3C>
  %16 = fmul double %10, 0x401965FEA53D6E3C
  %17 = extractelement <2 x double> %15, i64 1
  %18 = fneg double %17
  %19 = fmul double %11, 0x401965FEA53D6E3C
  %20 = fmul double %11, 0x40230C7EFBEE12AD
  %21 = extractelement <2 x double> %15, i64 0
  %22 = fneg double %21
  %23 = fmul double %9, 0xC00965FEA53D6E3C
  %24 = fmul double %6, 0x3FC39035A8CDB1BF
  %square475 = fmul double %6, %6
  %25 = fmul double %square475, 0xBF97EB93377AF1ED
  %26 = fmul double %6, 0x3FEBF295CC939036
  %27 = fmul double %square475, 0xBFE8688BC5AC797A
  %28 = fmul double %6, 0xBFE2A1B9330D0ACE
  %29 = fmul double %9, 0x3FF0EEA9C37E497D
  %30 = fmul double %9, 0xBFD0EEA9C37E497D
  %wide.trip.count = zext nneg i32 %0 to i64
  br label %31

._crit_edge:                                      ; preds = %418, %7
  ret void

31:                                               ; preds = %.lr.ph, %418
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %418 ]
  %32 = shl nuw nsw i64 %indvars.iv, 1
  %33 = getelementptr inbounds double, ptr %1, i64 %32
  %34 = load double, ptr %33, align 8, !tbaa !5
  %35 = fcmp olt double %34, 0x3C9CD2B297D889BC
  br i1 %35, label %36, label %40

36:                                               ; preds = %31
  %37 = getelementptr inbounds double, ptr %3, i64 %indvars.iv
  store double 0.000000e+00, ptr %37, align 8, !tbaa !5
  %38 = getelementptr inbounds double, ptr %4, i64 %32
  store <2 x double> zeroinitializer, ptr %38, align 8, !tbaa !5
  %.idx = mul i64 %indvars.iv, 24
  %39 = getelementptr inbounds i8, ptr %5, i64 %.idx
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %39, i8 0, i64 24, i1 false)
  br label %418

40:                                               ; preds = %31
  %41 = or disjoint i64 %32, 1
  %42 = getelementptr inbounds double, ptr %1, i64 %41
  %43 = load double, ptr %42, align 8, !tbaa !5
  %44 = mul nuw nsw i64 %indvars.iv, 3
  %45 = getelementptr inbounds double, ptr %2, i64 %44
  %46 = load double, ptr %45, align 8, !tbaa !5
  %47 = tail call double @pow(double noundef %34, double noundef 0xBFD5555555555555) #8
  %48 = tail call double @pow(double noundef %34, double noundef 0x3FF5555555555555) #8
  %49 = fdiv double 0xBFD5555555555555, %48
  %50 = fmul double %47, -2.533000e-01
  %51 = tail call double @exp(double noundef %50) #8
  %52 = fmul double %51, 1.320000e-01
  %53 = tail call double @llvm.fmuladd.f64(double %47, double 3.490000e-01, double 1.000000e+00)
  %54 = fdiv double %52, %53
  %55 = tail call double @exp(double noundef %50) #8
  %56 = fmul double %55, -3.343560e-02
  %57 = fdiv double %56, %53
  %58 = tail call double @exp(double noundef %50) #8
  %59 = fmul double %58, 4.606800e-02
  %square = fmul double %53, %53
  %60 = fdiv double %59, %square
  %61 = fsub double %57, %60
  %62 = fmul double %49, %61
  %63 = fdiv double 3.490000e-01, %53
  %64 = fadd double %63, 2.533000e-01
  %65 = fmul double %47, %64
  %66 = fmul double %47, 0x3FBF2E59AF9EBE9B
  %67 = fdiv double %66, %square
  %68 = fsub double 2.533000e-01, %67
  %69 = fadd double %63, %68
  %70 = fmul double %49, %69
  %71 = fmul double %43, -2.000000e+00
  %square455 = fmul double %34, %34
  %72 = fdiv double %71, %square455
  %73 = fmul double %43, 4.000000e+00
  %74 = tail call double @pow(double noundef %34, double noundef 3.000000e+00) #8
  %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 %square455, i64 1
  %78 = fdiv <2 x double> %75, %77
  %79 = fadd double %72, -1.000000e+00
  %80 = fdiv double %79, %53
  %81 = fdiv double 1.000000e+00, %53
  %82 = fmul double %49, -3.490000e-01
  %83 = fmul double %79, %82
  %84 = fdiv double %83, %square
  %85 = extractelement <2 x double> %78, i64 0
  %86 = tail call double @llvm.fmuladd.f64(double %81, double %85, double %84)
  %87 = extractelement <2 x double> %78, i64 1
  %88 = fmul double %87, %81
  %89 = tail call double @pow(double noundef %34, double noundef 0xC005555555555555) #8
  %90 = fmul double %46, %89
  %91 = tail call double @pow(double noundef %34, double noundef 0xC00D555555555555) #8
  %92 = fmul double %91, 0xC005555555555555
  %93 = fmul double %46, %92
  %94 = tail call double @pow(double noundef %34, double noundef 0xC005555555555555) #8
  %95 = fneg double %90
  %96 = fsub double 1.000000e+00, %72
  %97 = fmul double %96, 0x3F8C71C71C71C71C
  %98 = tail call double @llvm.fmuladd.f64(double %65, double -7.000000e+00, double 4.700000e+01)
  %99 = tail call double @llvm.fmuladd.f64(double %97, double %98, double 0xBFE5555555555555)
  %100 = fmul double %96, 0xBF8C71C71C71C71C
  %101 = tail call double @llvm.fmuladd.f64(double %100, double %98, double 0x3FE5555555555555)
  %102 = tail call double @llvm.fmuladd.f64(double %65, double 0x3FB8E38E38E38E39, double 0xBFE4E38E38E38E39)
  %103 = fmul double %102, %95
  %104 = fneg double %70
  %105 = fmul double %90, %104
  %106 = tail call double @llvm.fmuladd.f64(double %72, double 0x3FB8E38E38E38E39, double 0xBFB8E38E38E38E39)
  %107 = fmul double %101, %93
  %108 = tail call double @llvm.fmuladd.f64(double %105, double %106, double %107)
  %109 = tail call double @llvm.fmuladd.f64(double %103, double %85, double %108)
  %110 = fmul double %87, %103
  %111 = fmul double %101, %94
  %112 = fcmp olt double %43, 0xBC9CD2B297D889BC
  br i1 %112, label %113, label %147

113:                                              ; preds = %40
  %114 = fneg double %43
  %115 = tail call double @sqrt(double noundef %114) #8
  %116 = fmul double %115, 0x3FF6A09E667F3BCD
  %117 = fdiv double %116, %34
  %118 = tail call double @sqrt(double noundef %114) #8
  %119 = tail call double @sqrt(double noundef %114) #8
  %120 = insertelement <2 x double> poison, double %118, i64 0
  %121 = insertelement <2 x double> %120, double %119, i64 1
  %122 = fmul <2 x double> %121, <double 0xBFF6A09E667F3BCD, double 0x3FE6A09E667F3BCD>
  %123 = fmul double %34, %43
  %124 = insertelement <2 x double> poison, double %square455, i64 0
  %125 = insertelement <2 x double> %124, double %123, i64 1
  %126 = fdiv <2 x double> %122, %125
  %127 = fsub double 1.000000e+00, %117
  %128 = fcmp ogt double %127, 0x3C9CD2B297D889BC
  br i1 %128, label %129, label %138

129:                                              ; preds = %113
  %130 = tail call double @pow(double noundef %127, double noundef 0x4005555555555555) #8
  %131 = fadd double %117, 1.000000e+00
  %132 = tail call double @pow(double noundef %131, double noundef 0x4005555555555555) #8
  %133 = fadd double %130, %132
  %134 = tail call double @pow(double noundef %127, double noundef 0x3FFAAAAAAAAAAAAB) #8
  %135 = tail call double @pow(double noundef %131, double noundef 0x3FFAAAAAAAAAAAAB) #8
  %136 = fmul double %135, 0x4005555555555555
  %137 = tail call double @llvm.fmuladd.f64(double %134, double 0xC005555555555555, double %136)
  br label %143

138:                                              ; preds = %113
  %139 = fadd double %117, 1.000000e+00
  %140 = tail call double @pow(double noundef %139, double noundef 0x4005555555555555) #8
  %141 = tail call double @pow(double noundef %139, double noundef 0x3FFAAAAAAAAAAAAB) #8
  %142 = fmul double %141, 0x4005555555555555
  br label %143

143:                                              ; preds = %138, %129
  %.0449 = phi double [ %137, %129 ], [ %142, %138 ]
  %.0446 = phi double [ %133, %129 ], [ %140, %138 ]
  %144 = insertelement <2 x double> poison, double %.0449, i64 0
  %145 = shufflevector <2 x double> %144, <2 x double> poison, <2 x i32> zeroinitializer
  %146 = fmul <2 x double> %126, %145
  br label %195

147:                                              ; preds = %40
  %148 = fcmp olt double %43, 0x3C9CD2B297D889BC
  br i1 %148, label %149, label %157

149:                                              ; preds = %147
  %square463 = fmul double %72, %72
  %150 = fmul double %72, 0x4011C71C71C71C72
  %151 = tail call double @llvm.fmuladd.f64(double %square463, double 0xBFB511E8D2B3183B, double %150)
  %152 = fadd double %151, 2.000000e+00
  %153 = tail call double @llvm.fmuladd.f64(double %72, double 0xBFC511E8D2B3183B, double 0x4011C71C71C71C72)
  %154 = insertelement <2 x double> poison, double %153, i64 0
  %155 = shufflevector <2 x double> %154, <2 x double> poison, <2 x i32> zeroinitializer
  %156 = fmul <2 x double> %155, %78
  br label %195

157:                                              ; preds = %147
  %158 = tail call double @sqrt(double noundef %43) #8
  %159 = fmul double %158, 0x3FF6A09E667F3BCD
  %160 = fdiv double %159, %34
  %161 = tail call double @sqrt(double noundef %43) #8
  %162 = fmul double %161, 0xBFF6A09E667F3BCD
  %163 = tail call double @sqrt(double noundef %43) #8
  %164 = fmul double %34, %163
  %165 = tail call double @atan(double noundef %160) #8
  %166 = fmul double %165, 0x4005555555555555
  %square459 = fmul double %160, %160
  %167 = fadd double %square459, 1.000000e+00
  %168 = fdiv double 0x4005555555555555, %167
  %169 = tail call double @pow(double noundef %167, double noundef 0x3FF5555555555555) #8
  %170 = fmul double %169, 2.000000e+00
  %171 = tail call double @cos(double noundef %166) #8
  %172 = fmul double %170, %171
  %173 = fmul double %160, 0x4015555555555555
  %174 = tail call double @cbrt(double noundef %167) #7
  %175 = fmul double %173, %174
  %176 = tail call double @cos(double noundef %166) #8
  %177 = fmul double %175, %176
  %178 = tail call double @pow(double noundef %167, double noundef 0x3FF5555555555555) #8
  %179 = fmul double %178, -2.000000e+00
  %180 = tail call double @sin(double noundef %166) #8
  %181 = fmul double %179, %180
  %182 = insertelement <2 x double> <double poison, double 0x3FE6A09E667F3BCD>, double %162, i64 0
  %183 = insertelement <2 x double> poison, double %square455, i64 0
  %184 = insertelement <2 x double> %183, double %164, i64 1
  %185 = fdiv <2 x double> %182, %184
  %186 = insertelement <2 x double> %185, double %168, i64 0
  %187 = insertelement <2 x double> %185, double %168, i64 1
  %188 = fmul <2 x double> %186, %187
  %189 = insertelement <2 x double> poison, double %181, i64 0
  %190 = shufflevector <2 x double> %189, <2 x double> poison, <2 x i32> zeroinitializer
  %191 = fmul <2 x double> %188, %190
  %192 = insertelement <2 x double> poison, double %177, i64 0
  %193 = shufflevector <2 x double> %192, <2 x double> poison, <2 x i32> zeroinitializer
  %194 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %193, <2 x double> %191)
  br label %195

195:                                              ; preds = %149, %157, %143
  %.1 = phi double [ %.0446, %143 ], [ %152, %149 ], [ %172, %157 ]
  %196 = phi <2 x double> [ %146, %143 ], [ %156, %149 ], [ %194, %157 ]
  %197 = fmul double %.1, -5.000000e-01
  %198 = fmul double %197, 0x4006F849880FC5B7
  %199 = fmul double %96, %198
  %200 = fmul double %96, 0xBFF6F849880FC5B7
  %201 = fmul double %.1, 5.000000e-01
  %202 = fmul double %201, 0x4006F849880FC5B7
  %203 = fmul double %85, %202
  %204 = extractelement <2 x double> %196, i64 0
  %205 = tail call double @llvm.fmuladd.f64(double %204, double %200, double %203)
  %206 = fmul double %87, %202
  %207 = extractelement <2 x double> %196, i64 1
  %208 = tail call double @llvm.fmuladd.f64(double %207, double %200, double %206)
  %209 = tail call double @pow(double noundef %34, double noundef 0xBFF5555555555555) #8
  %210 = tail call double @sqrt(double noundef %46) #8
  %211 = fmul double %209, %210
  %212 = tail call double @pow(double noundef %34, double noundef 0xC002AAAAAAAAAAAA) #8
  %213 = fmul double %212, 0xBFF5555555555555
  %214 = tail call double @sqrt(double noundef %46) #8
  %215 = fmul double %213, %214
  %216 = tail call double @pow(double noundef %34, double noundef 0xBFF5555555555555) #8
  %217 = fmul double %216, 5.000000e-01
  %218 = tail call double @sqrt(double noundef %46) #8
  %219 = fdiv double %217, %218
  %square465 = fmul double %211, %211
  %220 = tail call double @llvm.fmuladd.f64(double %65, double 0xBFAC71C71C71C71C, double 2.500000e+00)
  %221 = fadd double %72, 1.000000e+00
  %222 = fmul double %16, %211
  %223 = fmul double %96, %222
  %224 = fmul double %220, %223
  %225 = fmul double %221, %224
  %226 = fmul double %square465, %18
  %227 = fmul double %220, %226
  %228 = fmul double %221, %227
  %229 = fmul double %70, 0xBFC6938D04A861FC
  %230 = fmul double %10, %229
  %231 = fmul double %230, %square465
  %232 = fmul double %96, %231
  %233 = fmul double %215, %225
  %234 = tail call double @llvm.fmuladd.f64(double %232, double %221, double %233)
  %235 = fmul double %225, %219
  %236 = fadd double %65, -1.100000e+01
  %237 = tail call double @llvm.fmuladd.f64(double %72, double 3.000000e+00, double 1.000000e+00)
  %238 = insertelement <2 x double> poison, double %square465, i64 0
  %239 = shufflevector <2 x double> %238, <2 x double> poison, <2 x i32> zeroinitializer
  %240 = fmul <2 x double> %15, %239
  %241 = insertelement <2 x double> poison, double %96, i64 0
  %242 = shufflevector <2 x double> %241, <2 x double> poison, <2 x i32> zeroinitializer
  %243 = fmul <2 x double> %242, %240
  %244 = extractelement <2 x double> %243, i64 1
  %245 = tail call double @llvm.fmuladd.f64(double %244, double %220, double %228)
  %246 = tail call double @llvm.fmuladd.f64(double %245, double %85, double %234)
  %247 = fmul double %87, %245
  %248 = insertelement <2 x double> poison, double %236, i64 0
  %249 = insertelement <2 x double> %248, double %220, i64 1
  %250 = fmul <2 x double> %249, %243
  %251 = insertelement <2 x double> poison, double %237, i64 0
  %252 = insertelement <2 x double> %251, double %221, i64 1
  %253 = fmul <2 x double> %252, %250
  %254 = fmul double %19, %211
  %255 = fmul double %96, %254
  %256 = fmul double %236, %255
  %257 = fmul double %237, %256
  %258 = fmul double %20, %square465
  %259 = fmul double %96, %258
  %260 = fmul double %square465, %22
  %261 = fmul double %236, %260
  %262 = fmul double %237, %261
  %263 = tail call double @llvm.fmuladd.f64(double %259, double %236, double %262)
  %264 = fmul double %70, 0x400965FEA53D6E3C
  %265 = fmul double %11, %264
  %266 = fmul double %265, %square465
  %267 = fmul double %96, %266
  %268 = fmul double %215, %257
  %269 = tail call double @llvm.fmuladd.f64(double %267, double %237, double %268)
  %270 = tail call double @llvm.fmuladd.f64(double %263, double %85, double %269)
  %271 = fmul double %87, %263
  %272 = fmul double %257, %219
  %square473 = fmul double %96, %96
  %273 = fmul double %square473, -2.500000e-01
  %274 = tail call double @llvm.fmuladd.f64(double %72, double 0x3FE5555555555555, double %273)
  %275 = fadd double %274, 0x3FE5555555555555
  %276 = fmul double %23, %275
  %277 = tail call double @llvm.fmuladd.f64(double %72, double -5.000000e-01, double 0x3FF2AAAAAAAAAAAB)
  %278 = fmul double %276, %94
  %279 = fmul double %24, %47
  %280 = tail call double @erfc(double noundef %279) #8
  %281 = fmul double %49, -2.000000e+00
  %282 = fmul double %281, 0x3FC39035A8CDB1BF
  %283 = fmul double %282, %6
  %square476 = fmul double %47, %47
  %284 = fmul double %25, %square476
  %285 = tail call double @exp(double noundef %284) #8
  %286 = fmul double %283, %285
  %287 = fdiv double %286, 0x3FFC5BF891B4EF6A
  %288 = fmul double %26, %47
  %289 = tail call double @erfc(double noundef %288) #8
  %290 = fmul double %281, 0x3FEBF295CC939036
  %291 = fmul double %290, %6
  %292 = fmul double %27, %square476
  %293 = tail call double @exp(double noundef %292) #8
  %294 = fmul double %291, %293
  %295 = fdiv double %294, 0x3FFC5BF891B4EF6A
  %296 = tail call double @exp(double noundef %292) #8
  %297 = fmul double %28, %296
  %298 = fdiv double %297, 0x3FFC5BF891B4EF6A
  %299 = fmul double %49, 0x3FF5555555555555
  %300 = fmul double %299, 0x3FE5513ED2A6488F
  %301 = tail call double @pow(double noundef %6, double noundef 3.000000e+00) #8
  %302 = fmul double %300, %301
  %303 = fmul double %47, %302
  %304 = tail call double @exp(double noundef %292) #8
  %305 = fmul double %304, %303
  %306 = fdiv double %305, 0x3FFC5BF891B4EF6A
  %307 = fmul double %47, -2.500000e-01
  %308 = tail call double @llvm.fmuladd.f64(double %29, double %72, double 0x3FF2AAAAAAAAAAAB)
  %309 = fmul double %30, %47
  %310 = fmul double %309, %90
  %311 = fmul double %47, 2.500000e-01
  %312 = fmul double %311, %90
  %313 = fmul double %308, %312
  %314 = tail call double @llvm.fmuladd.f64(double %310, double %96, double %313)
  %315 = fmul double %307, %96
  %316 = fmul double %308, %315
  %317 = fmul double %85, %314
  %318 = tail call double @llvm.fmuladd.f64(double %316, double %93, double %317)
  %319 = fmul double %49, -2.500000e-01
  %320 = fmul double %319, %90
  %321 = fmul double %96, %320
  %322 = tail call double @llvm.fmuladd.f64(double %321, double %308, double %318)
  %323 = fmul double %87, %314
  %324 = fmul double %316, %94
  %325 = fmul double %54, %289
  %326 = fmul double %99, %90
  %327 = fsub double %199, %326
  %328 = extractelement <2 x double> %253, i64 1
  %329 = fadd double %327, %328
  %330 = extractelement <2 x double> %253, i64 0
  %331 = fadd double %330, %329
  %332 = fmul double %54, %298
  %333 = getelementptr inbounds double, ptr %3, i64 %indvars.iv
  %334 = fmul double %34, 4.918000e-02
  %335 = fmul double %34, %287
  %336 = fmul double %335, 4.918000e-02
  %337 = fmul double %34, %295
  %338 = fmul double %337, 4.918000e-02
  %339 = fmul double %54, %338
  %340 = fmul double %34, %62
  %341 = fmul double %340, 4.918000e-02
  %342 = getelementptr inbounds double, ptr %4, i64 %32
  %343 = insertelement <2 x double> poison, double %307, i64 0
  %344 = insertelement <2 x double> %343, double %23, i64 1
  %345 = insertelement <2 x double> poison, double %90, i64 0
  %346 = shufflevector <2 x double> %345, <2 x double> poison, <2 x i32> zeroinitializer
  %347 = fmul <2 x double> %344, %346
  %348 = extractelement <2 x double> %347, i64 1
  %349 = fmul double %275, %348
  %350 = insertelement <2 x double> %241, double %277, i64 1
  %351 = fmul <2 x double> %350, %347
  %shift = shufflevector <2 x double> %351, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %352 = fmul <2 x double> %78, %shift
  %353 = extractelement <2 x double> %352, i64 0
  %354 = tail call double @llvm.fmuladd.f64(double %276, double %93, double %353)
  %355 = insertelement <2 x double> %78, double %308, i64 0
  %356 = fmul <2 x double> %355, %351
  %357 = fadd double %349, %331
  %358 = fmul double %325, %357
  %359 = tail call double @llvm.fmuladd.f64(double %280, double %80, double %358)
  %360 = extractelement <2 x double> %356, i64 0
  %361 = tail call double @llvm.fmuladd.f64(double %332, double %360, double %359)
  %362 = fmul double %361, 4.918000e-02
  store double %362, ptr %333, align 8, !tbaa !5
  %363 = insertelement <2 x double> poison, double %334, i64 0
  %364 = insertelement <2 x double> %363, double %34, i64 1
  %365 = insertelement <2 x double> poison, double %54, i64 0
  %366 = insertelement <2 x double> %365, double %280, i64 1
  %367 = fmul <2 x double> %364, %366
  %368 = insertelement <2 x double> <double poison, double 4.918000e-02>, double %298, i64 0
  %369 = fmul <2 x double> %367, %368
  %370 = shufflevector <2 x double> %364, <2 x double> poison, <2 x i32> <i32 1, i32 1>
  %371 = insertelement <2 x double> poison, double %306, i64 0
  %372 = insertelement <2 x double> %371, double %289, i64 1
  %373 = fmul <2 x double> %370, %372
  %374 = fmul <2 x double> %373, <double 4.918000e-02, double 4.918000e-02>
  %375 = shufflevector <2 x double> %365, <2 x double> poison, <2 x i32> zeroinitializer
  %376 = fmul <2 x double> %375, %374
  %377 = extractelement <2 x double> %376, i64 1
  %378 = fmul double %109, %377
  %379 = extractelement <2 x double> %369, i64 1
  %380 = tail call double @llvm.fmuladd.f64(double %379, double %86, double %378)
  %381 = tail call double @llvm.fmuladd.f64(double %377, double %205, double %380)
  %382 = tail call double @llvm.fmuladd.f64(double %377, double %246, double %381)
  %383 = tail call double @llvm.fmuladd.f64(double %377, double %270, double %382)
  %384 = tail call double @llvm.fmuladd.f64(double %377, double %354, double %383)
  %385 = fmul double %360, %298
  %386 = tail call double @llvm.fmuladd.f64(double %289, double %357, double %385)
  %387 = fmul double %110, %377
  %388 = insertelement <2 x double> poison, double %322, i64 0
  %389 = insertelement <2 x double> %388, double %88, i64 1
  %390 = insertelement <2 x double> poison, double %384, i64 0
  %391 = insertelement <2 x double> %390, double %387, i64 1
  %392 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %369, <2 x double> %389, <2 x double> %391)
  %393 = insertelement <2 x double> %376, double %336, i64 0
  %394 = insertelement <2 x double> poison, double %80, i64 0
  %395 = insertelement <2 x double> %394, double %208, i64 1
  %396 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %393, <2 x double> %395, <2 x double> %392)
  %397 = insertelement <2 x double> %376, double %339, i64 0
  %398 = insertelement <2 x double> poison, double %357, i64 0
  %399 = insertelement <2 x double> %398, double %247, i64 1
  %400 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %397, <2 x double> %399, <2 x double> %396)
  %401 = insertelement <2 x double> %376, double %341, i64 0
  %402 = insertelement <2 x double> poison, double %386, i64 0
  %403 = insertelement <2 x double> %402, double %271, i64 1
  %404 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %401, <2 x double> %403, <2 x double> %400)
  %405 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %376, <2 x double> %356, <2 x double> %404)
  %406 = shufflevector <2 x double> %369, <2 x double> poison, <2 x i32> <i32 poison, i32 0>
  %407 = insertelement <2 x double> %406, double %361, i64 0
  %408 = insertelement <2 x double> <double 4.918000e-02, double poison>, double %323, i64 1
  %409 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %407, <2 x double> %408, <2 x double> %405)
  store <2 x double> %409, ptr %342, align 8, !tbaa !5
  %410 = fmul double %235, %377
  %411 = tail call double @llvm.fmuladd.f64(double %377, double %111, double %410)
  %412 = tail call double @llvm.fmuladd.f64(double %377, double %272, double %411)
  %413 = tail call double @llvm.fmuladd.f64(double %377, double %278, double %412)
  %414 = extractelement <2 x double> %369, i64 0
  %415 = tail call double @llvm.fmuladd.f64(double %414, double %324, double %413)
  %416 = getelementptr inbounds double, ptr %5, i64 %44
  store double %415, ptr %416, align 8, !tbaa !5
  %417 = getelementptr inbounds i8, ptr %416, i64 8
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %417, i8 0, i64 16, i1 false)
  br label %418

418:                                              ; preds = %195, %36
  %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 %31, !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 nofree nounwind willreturn memory(write)
declare double @exp(double noundef) local_unnamed_addr #1

; 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: nounwind
declare double @erfc(double noundef) local_unnamed_addr #4

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

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

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

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

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


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