; LLVM IR from VeloxChem/VeloxChem :: src/pdft_func/PairDensitySlater_erf.ll (ZN14pdftslater_erf15compute_exc_vxcEiPKdPdS2_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 @_ZN14pdftslater_erf15compute_exc_vxcEiPKdPdS2_d(i32 noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, double noundef %4) #0 {
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca double, align 8
  %80 = alloca double, align 8
  %81 = alloca double, align 8
  %82 = alloca double, align 8
  %83 = alloca double, align 8
  %84 = alloca double, align 8
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca double, align 8
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca double, align 8
  %92 = alloca double, align 8
  %93 = alloca double, align 8
  %94 = alloca double, align 8
  %95 = alloca double, align 8
  %96 = alloca double, align 8
  %97 = alloca double, align 8
  %98 = alloca double, align 8
  %99 = alloca double, align 8
  %100 = alloca double, align 8
  %101 = alloca double, align 8
  %102 = alloca double, align 8
  %103 = alloca double, align 8
  %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
  store i32 %0, ptr %6, align 4, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !9
  store ptr %2, ptr %8, align 8, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !9
  store double %4, ptr %10, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  %110 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %111 = fmul double 0x3FC5555555555555, %110
  %112 = call double @cbrt(double noundef 3.000000e+00) #6
  %113 = fmul double %111, %112
  %114 = load double, ptr %10, align 8, !tbaa !11
  %115 = fmul double %113, %114
  %116 = call double @cbrt(double noundef 0x400921FB54442D18) #6
  %117 = fdiv double %115, %116
  store double %117, ptr %11, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  %118 = call double @cbrt(double noundef 6.000000e+00) #6
  %119 = fmul double 5.000000e-01, %118
  %120 = call double @cbrt(double noundef 0x400921FB54442D18) #6
  %121 = fdiv double %119, %120
  store double %121, ptr %12, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %122 = call double @cbrt(double noundef 6.000000e+00) #6
  %123 = fmul double 7.500000e-01, %122
  %124 = call double @cbrt(double noundef 0x400921FB54442D18) #6
  %125 = fdiv double %123, %124
  store double %125, ptr %13, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  %126 = call double @pow(double noundef 2.000000e+00, double noundef 0x3FE5555555555555) #5
  %127 = fmul double -2.500000e-01, %126
  %128 = load double, ptr %12, align 8, !tbaa !11
  %129 = fmul double %127, %128
  %130 = load double, ptr %13, align 8, !tbaa !11
  %131 = fmul double %129, %130
  store double %131, ptr %14, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  %132 = call double @pow(double noundef 0x400921FB54442D18, double noundef 0xBFD5555555555555) #5
  %133 = fmul double 0x3FED12ED0AF1A27F, %132
  store double %133, ptr %15, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %134

134:                                              ; preds = %1035, %5
  %135 = load i32, ptr %16, align 4, !tbaa !5
  %136 = load i32, ptr %6, align 4, !tbaa !5
  %137 = icmp slt i32 %135, %136
  br i1 %137, label %139, label %138

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

139:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %140 = load ptr, ptr %7, align 8, !tbaa !9
  %141 = load i32, ptr %16, align 4, !tbaa !5
  %142 = mul nsw i32 2, %141
  %143 = add nsw i32 %142, 0
  %144 = sext i32 %143 to i64
  %145 = getelementptr inbounds double, ptr %140, i64 %144
  %146 = load double, ptr %145, align 8, !tbaa !11
  store double %146, ptr %18, align 8, !tbaa !11
  %147 = load double, ptr %18, align 8, !tbaa !11
  %148 = fcmp olt double %147, 0x3C9CD2B297D889BC
  br i1 %148, label %149, label %166

149:                                              ; preds = %139
  %150 = load ptr, ptr %8, align 8, !tbaa !9
  %151 = load i32, ptr %16, align 4, !tbaa !5
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds double, ptr %150, i64 %152
  store double 0.000000e+00, ptr %153, align 8, !tbaa !11
  %154 = load ptr, ptr %9, align 8, !tbaa !9
  %155 = load i32, ptr %16, align 4, !tbaa !5
  %156 = mul nsw i32 2, %155
  %157 = add nsw i32 %156, 0
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds double, ptr %154, i64 %158
  store double 0.000000e+00, ptr %159, align 8, !tbaa !11
  %160 = load ptr, ptr %9, align 8, !tbaa !9
  %161 = load i32, ptr %16, align 4, !tbaa !5
  %162 = mul nsw i32 2, %161
  %163 = add nsw i32 %162, 1
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds double, ptr %160, i64 %164
  store double 0.000000e+00, ptr %165, align 8, !tbaa !11
  store i32 4, ptr %17, align 4
  br label %1032

166:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %167 = load ptr, ptr %7, align 8, !tbaa !9
  %168 = load i32, ptr %16, align 4, !tbaa !5
  %169 = mul nsw i32 2, %168
  %170 = add nsw i32 %169, 1
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds double, ptr %167, i64 %171
  %173 = load double, ptr %172, align 8, !tbaa !11
  store double %173, ptr %19, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  %174 = load double, ptr %15, align 8, !tbaa !11
  %175 = load double, ptr %18, align 8, !tbaa !11
  %176 = call double @cbrt(double noundef %175) #6
  %177 = fdiv double %174, %176
  store double %177, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %178 = load double, ptr %15, align 8, !tbaa !11
  %179 = fmul double 0xBFD5555555555555, %178
  %180 = load double, ptr %18, align 8, !tbaa !11
  %181 = call double @pow(double noundef %180, double noundef 0x3FF5555555555555) #5
  %182 = fdiv double %179, %181
  store double %182, ptr %21, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %183 = load double, ptr %11, align 8, !tbaa !11
  %184 = load double, ptr %20, align 8, !tbaa !11
  %185 = fmul double %183, %184
  store double %185, ptr %22, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %186 = load double, ptr %11, align 8, !tbaa !11
  %187 = load double, ptr %21, align 8, !tbaa !11
  %188 = fmul double %186, %187
  store double %188, ptr %23, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  store double 0.000000e+00, ptr %24, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  store double 0.000000e+00, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  store double 0.000000e+00, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  store double 0.000000e+00, ptr %27, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  store double 0.000000e+00, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  store double 0.000000e+00, ptr %29, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  store double 0.000000e+00, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  store double 0.000000e+00, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  store double 0.000000e+00, ptr %32, align 8, !tbaa !11
  %189 = load double, ptr %19, align 8, !tbaa !11
  %190 = call double @llvm.fabs.f64(double %189)
  %191 = fcmp ogt double %190, 0x3C9CD2B297D889BC
  br i1 %191, label %192, label %655

192:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  store double 0.000000e+00, ptr %33, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  store double 0.000000e+00, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  store double 0.000000e+00, ptr %35, align 8, !tbaa !11
  %193 = load double, ptr %19, align 8, !tbaa !11
  %194 = fcmp olt double %193, 0.000000e+00
  br i1 %194, label %195, label %224

195:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  %196 = load double, ptr %19, align 8, !tbaa !11
  %197 = fneg double %196
  %198 = call double @sqrt(double noundef %197) #5
  %199 = fmul double 0x3FF6A09E667F3BCD, %198
  %200 = load double, ptr %18, align 8, !tbaa !11
  %201 = fdiv double %199, %200
  store double %201, ptr %36, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  %202 = load double, ptr %19, align 8, !tbaa !11
  %203 = fneg double %202
  %204 = call double @sqrt(double noundef %203) #5
  %205 = fmul double 0xBFF6A09E667F3BCD, %204
  %206 = load double, ptr %18, align 8, !tbaa !11
  %207 = call double @pow(double noundef %206, double noundef 2.000000e+00) #5
  %208 = fdiv double %205, %207
  store double %208, ptr %37, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  %209 = load double, ptr %19, align 8, !tbaa !11
  %210 = fneg double %209
  %211 = call double @sqrt(double noundef %210) #5
  %212 = fmul double 0x3FE6A09E667F3BCD, %211
  %213 = load double, ptr %18, align 8, !tbaa !11
  %214 = load double, ptr %19, align 8, !tbaa !11
  %215 = fmul double %213, %214
  %216 = fdiv double %212, %215
  store double %216, ptr %38, align 8, !tbaa !11
  %217 = load double, ptr %36, align 8, !tbaa !11
  store double %217, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  store double 1.000000e+00, ptr %39, align 8, !tbaa !11
  %218 = load double, ptr %39, align 8, !tbaa !11
  %219 = load double, ptr %37, align 8, !tbaa !11
  %220 = fmul double %218, %219
  store double %220, ptr %35, align 8, !tbaa !11
  %221 = load double, ptr %39, align 8, !tbaa !11
  %222 = load double, ptr %38, align 8, !tbaa !11
  %223 = fmul double %221, %222
  store double %223, ptr %33, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  br label %248

224:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  %225 = load double, ptr %19, align 8, !tbaa !11
  %226 = call double @sqrt(double noundef %225) #5
  %227 = fmul double 0x3FF6A09E667F3BCD, %226
  %228 = load double, ptr %18, align 8, !tbaa !11
  %229 = fdiv double %227, %228
  store double %229, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  %230 = load double, ptr %19, align 8, !tbaa !11
  %231 = call double @sqrt(double noundef %230) #5
  %232 = fmul double 0xBFF6A09E667F3BCD, %231
  %233 = load double, ptr %18, align 8, !tbaa !11
  %234 = call double @pow(double noundef %233, double noundef 2.000000e+00) #5
  %235 = fdiv double %232, %234
  store double %235, ptr %41, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  %236 = load double, ptr %18, align 8, !tbaa !11
  %237 = load double, ptr %19, align 8, !tbaa !11
  %238 = call double @sqrt(double noundef %237) #5
  %239 = fmul double %236, %238
  %240 = fdiv double 0x3FE6A09E667F3BCD, %239
  store double %240, ptr %42, align 8, !tbaa !11
  %241 = load double, ptr %40, align 8, !tbaa !11
  store double %241, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  store double 1.000000e+00, ptr %43, align 8, !tbaa !11
  %242 = load double, ptr %41, align 8, !tbaa !11
  %243 = load double, ptr %43, align 8, !tbaa !11
  %244 = fmul double %242, %243
  store double %244, ptr %35, align 8, !tbaa !11
  %245 = load double, ptr %42, align 8, !tbaa !11
  %246 = load double, ptr %43, align 8, !tbaa !11
  %247 = fmul double %245, %246
  store double %247, ptr %33, align 8, !tbaa !11
  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
  br label %248

248:                                              ; preds = %224, %195
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  %249 = load double, ptr %22, align 8, !tbaa !11
  %250 = load double, ptr %34, align 8, !tbaa !11
  %251 = fadd double %250, 1.000000e+00
  %252 = call double @cbrt(double noundef %251) #6
  %253 = fdiv double %249, %252
  store double %253, ptr %44, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  %254 = load double, ptr %22, align 8, !tbaa !11
  %255 = fmul double 0xBFD5555555555555, %254
  %256 = load double, ptr %34, align 8, !tbaa !11
  %257 = fadd double %256, 1.000000e+00
  %258 = call double @pow(double noundef %257, double noundef 0x3FF5555555555555) #5
  %259 = fdiv double %255, %258
  store double %259, ptr %45, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  %260 = load double, ptr %45, align 8, !tbaa !11
  %261 = load double, ptr %35, align 8, !tbaa !11
  %262 = load double, ptr %23, align 8, !tbaa !11
  %263 = load double, ptr %34, align 8, !tbaa !11
  %264 = fadd double %263, 1.000000e+00
  %265 = call double @cbrt(double noundef %264) #6
  %266 = fdiv double %262, %265
  %267 = call double @llvm.fmuladd.f64(double %260, double %261, double %266)
  store double %267, ptr %46, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  %268 = load double, ptr %45, align 8, !tbaa !11
  %269 = load double, ptr %33, align 8, !tbaa !11
  %270 = fmul double %268, %269
  store double %270, ptr %47, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  %271 = call double @sqrt(double noundef 0x400921FB54442D18) #5
  %272 = load double, ptr %44, align 8, !tbaa !11
  %273 = fdiv double 5.000000e-01, %272
  %274 = call double @erf(double noundef %273) #5
  %275 = fmul double %271, %274
  store double %275, ptr %48, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  %276 = load double, ptr %44, align 8, !tbaa !11
  %277 = call double @pow(double noundef %276, double noundef 2.000000e+00) #5
  %278 = fdiv double -2.500000e-01, %277
  %279 = call double @exp(double noundef %278) #5
  %280 = fneg double %279
  %281 = load double, ptr %44, align 8, !tbaa !11
  %282 = call double @pow(double noundef %281, double noundef 2.000000e+00) #5
  %283 = fdiv double %280, %282
  store double %283, ptr %49, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  %284 = load double, ptr %46, align 8, !tbaa !11
  %285 = load double, ptr %49, align 8, !tbaa !11
  %286 = fmul double %284, %285
  store double %286, ptr %50, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  %287 = load double, ptr %47, align 8, !tbaa !11
  %288 = load double, ptr %49, align 8, !tbaa !11
  %289 = fmul double %287, %288
  store double %289, 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
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #5
  store double 0.000000e+00, ptr %55, align 8, !tbaa !11
  %290 = load double, ptr %44, align 8, !tbaa !11
  %291 = fcmp olt double %290, 5.000000e+00
  br i1 %291, label %292, label %312

292:                                              ; preds = %248
  %293 = load double, ptr %44, align 8, !tbaa !11
  %294 = call double @pow(double noundef %293, double noundef 2.000000e+00) #5
  %295 = fdiv double -2.500000e-01, %294
  %296 = call double @exp(double noundef %295) #5
  %297 = fadd double -1.000000e+00, %296
  store double %297, ptr %54, align 8, !tbaa !11
  %298 = load double, ptr %44, align 8, !tbaa !11
  %299 = call double @pow(double noundef %298, double noundef 2.000000e+00) #5
  %300 = fdiv double -2.500000e-01, %299
  %301 = call double @exp(double noundef %300) #5
  %302 = fmul double 5.000000e-01, %301
  %303 = load double, ptr %44, align 8, !tbaa !11
  %304 = call double @pow(double noundef %303, double noundef 3.000000e+00) #5
  %305 = fdiv double %302, %304
  store double %305, ptr %52, align 8, !tbaa !11
  %306 = load double, ptr %46, align 8, !tbaa !11
  %307 = load double, ptr %52, align 8, !tbaa !11
  %308 = fmul double %306, %307
  store double %308, ptr %53, align 8, !tbaa !11
  %309 = load double, ptr %47, align 8, !tbaa !11
  %310 = load double, ptr %52, align 8, !tbaa !11
  %311 = fmul double %309, %310
  store double %311, ptr %55, align 8, !tbaa !11
  br label %339

312:                                              ; preds = %248
  %313 = load double, ptr %44, align 8, !tbaa !11
  %314 = call double @pow(double noundef %313, double noundef 2.000000e+00) #5
  %315 = fdiv double 5.000000e-01, %314
  %316 = fsub double 1.000000e+00, %315
  %317 = fmul double -2.500000e-01, %316
  %318 = load double, ptr %44, align 8, !tbaa !11
  %319 = call double @pow(double noundef %318, double noundef 2.000000e+00) #5
  %320 = fdiv double %317, %319
  store double %320, ptr %54, align 8, !tbaa !11
  %321 = load double, ptr %44, align 8, !tbaa !11
  %322 = call double @pow(double noundef %321, double noundef 2.000000e+00) #5
  %323 = fdiv double 5.000000e-01, %322
  %324 = fsub double 1.000000e+00, %323
  %325 = fmul double 5.000000e-01, %324
  %326 = load double, ptr %44, align 8, !tbaa !11
  %327 = call double @pow(double noundef %326, double noundef 3.000000e+00) #5
  %328 = fdiv double %325, %327
  %329 = load double, ptr %44, align 8, !tbaa !11
  %330 = call double @pow(double noundef %329, double noundef 5.000000e+00) #5
  %331 = fdiv double 2.500000e-01, %330
  %332 = fsub double %328, %331
  store double %332, ptr %52, align 8, !tbaa !11
  %333 = load double, ptr %46, align 8, !tbaa !11
  %334 = load double, ptr %52, align 8, !tbaa !11
  %335 = fmul double %333, %334
  store double %335, ptr %53, align 8, !tbaa !11
  %336 = load double, ptr %47, align 8, !tbaa !11
  %337 = load double, ptr %52, align 8, !tbaa !11
  %338 = fmul double %336, %337
  store double %338, ptr %55, align 8, !tbaa !11
  br label %339

339:                                              ; preds = %312, %292
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #5
  %340 = load double, ptr %44, align 8, !tbaa !11
  %341 = call double @pow(double noundef %340, double noundef 2.000000e+00) #5
  %342 = fmul double 2.000000e+00, %341
  %343 = load double, ptr %54, align 8, !tbaa !11
  %344 = call double @llvm.fmuladd.f64(double %342, double %343, double 5.000000e-01)
  store double %344, ptr %56, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  %345 = load double, ptr %44, align 8, !tbaa !11
  %346 = call double @pow(double noundef %345, double noundef 2.000000e+00) #5
  %347 = fmul double 2.000000e+00, %346
  store double %347, ptr %57, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  %348 = load double, ptr %44, align 8, !tbaa !11
  %349 = fmul double 4.000000e+00, %348
  %350 = load double, ptr %54, align 8, !tbaa !11
  %351 = fmul double %349, %350
  store double %351, ptr %58, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  %352 = load double, ptr %46, align 8, !tbaa !11
  %353 = load double, ptr %58, align 8, !tbaa !11
  %354 = load double, ptr %53, align 8, !tbaa !11
  %355 = load double, ptr %57, align 8, !tbaa !11
  %356 = fmul double %354, %355
  %357 = call double @llvm.fmuladd.f64(double %352, double %353, double %356)
  store double %357, ptr %59, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #5
  %358 = load double, ptr %47, align 8, !tbaa !11
  %359 = load double, ptr %58, align 8, !tbaa !11
  %360 = load double, ptr %55, align 8, !tbaa !11
  %361 = load double, ptr %57, align 8, !tbaa !11
  %362 = fmul double %360, %361
  %363 = call double @llvm.fmuladd.f64(double %358, double %359, double %362)
  store double %363, ptr %60, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #5
  %364 = load double, ptr %44, align 8, !tbaa !11
  %365 = fmul double 0xC005555555555555, %364
  %366 = load double, ptr %44, align 8, !tbaa !11
  %367 = fmul double 2.000000e+00, %366
  %368 = load double, ptr %54, align 8, !tbaa !11
  %369 = load double, ptr %56, align 8, !tbaa !11
  %370 = fsub double %368, %369
  %371 = load double, ptr %48, align 8, !tbaa !11
  %372 = call double @llvm.fmuladd.f64(double %367, double %370, double %371)
  %373 = call double @llvm.fmuladd.f64(double %365, double %372, double 1.000000e+00)
  store double %373, ptr %61, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #5
  %374 = load double, ptr %44, align 8, !tbaa !11
  %375 = call double @pow(double noundef %374, double noundef 2.000000e+00) #5
  %376 = fmul double 0xC015555555555555, %375
  store double %376, ptr %62, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  %377 = load double, ptr %44, align 8, !tbaa !11
  %378 = fmul double 0xC015555555555555, %377
  %379 = load double, ptr %54, align 8, !tbaa !11
  %380 = load double, ptr %56, align 8, !tbaa !11
  %381 = fsub double %379, %380
  %382 = load double, ptr %44, align 8, !tbaa !11
  %383 = fmul double 0x4005555555555555, %382
  %384 = load double, ptr %54, align 8, !tbaa !11
  %385 = load double, ptr %56, align 8, !tbaa !11
  %386 = fmul double 2.000000e+00, %385
  %387 = fneg double %386
  %388 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %384, double %387)
  %389 = fmul double %383, %388
  %390 = fneg double %389
  %391 = call double @llvm.fmuladd.f64(double %378, double %381, double %390)
  %392 = load double, ptr %48, align 8, !tbaa !11
  %393 = call double @llvm.fmuladd.f64(double 0xC005555555555555, double %392, double %391)
  store double %393, ptr %63, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  %394 = load double, ptr %44, align 8, !tbaa !11
  %395 = fmul double 0xC005555555555555, %394
  store double %395, ptr %64, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  %396 = load double, ptr %44, align 8, !tbaa !11
  %397 = call double @pow(double noundef %396, double noundef 2.000000e+00) #5
  %398 = fmul double 0x4015555555555555, %397
  store double %398, ptr %65, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  %399 = load double, ptr %46, align 8, !tbaa !11
  %400 = load double, ptr %63, align 8, !tbaa !11
  %401 = load double, ptr %64, align 8, !tbaa !11
  %402 = load double, ptr %50, align 8, !tbaa !11
  %403 = fmul double %401, %402
  %404 = call double @llvm.fmuladd.f64(double %399, double %400, double %403)
  %405 = load double, ptr %62, align 8, !tbaa !11
  %406 = load double, ptr %53, align 8, !tbaa !11
  %407 = call double @llvm.fmuladd.f64(double %405, double %406, double %404)
  %408 = load double, ptr %65, align 8, !tbaa !11
  %409 = load double, ptr %59, align 8, !tbaa !11
  %410 = call double @llvm.fmuladd.f64(double %408, double %409, double %407)
  store double %410, ptr %66, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  %411 = load double, ptr %47, align 8, !tbaa !11
  %412 = load double, ptr %63, align 8, !tbaa !11
  %413 = load double, ptr %64, align 8, !tbaa !11
  %414 = load double, ptr %51, align 8, !tbaa !11
  %415 = fmul double %413, %414
  %416 = call double @llvm.fmuladd.f64(double %411, double %412, double %415)
  %417 = load double, ptr %62, align 8, !tbaa !11
  %418 = load double, ptr %55, align 8, !tbaa !11
  %419 = call double @llvm.fmuladd.f64(double %417, double %418, double %416)
  %420 = load double, ptr %65, align 8, !tbaa !11
  %421 = load double, ptr %60, align 8, !tbaa !11
  %422 = call double @llvm.fmuladd.f64(double %420, double %421, double %419)
  store double %422, ptr %67, align 8, !tbaa !11
  %423 = load double, ptr %61, align 8, !tbaa !11
  %424 = load double, ptr %34, align 8, !tbaa !11
  %425 = fadd double %424, 1.000000e+00
  %426 = call double @pow(double noundef %425, double noundef 0x3FF5555555555555) #5
  %427 = fmul double %423, %426
  store double %427, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  %428 = load double, ptr %34, align 8, !tbaa !11
  %429 = fadd double %428, 1.000000e+00
  %430 = call double @pow(double noundef %429, double noundef 0x3FF5555555555555) #5
  store double %430, ptr %68, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  %431 = load double, ptr %61, align 8, !tbaa !11
  %432 = fmul double 0x3FF5555555555555, %431
  %433 = load double, ptr %34, align 8, !tbaa !11
  %434 = fadd double %433, 1.000000e+00
  %435 = call double @cbrt(double noundef %434) #6
  %436 = fmul double %432, %435
  store double %436, ptr %69, align 8, !tbaa !11
  %437 = load double, ptr %66, align 8, !tbaa !11
  %438 = load double, ptr %68, align 8, !tbaa !11
  %439 = fmul double %437, %438
  store double %439, ptr %30, align 8, !tbaa !11
  %440 = load double, ptr %67, align 8, !tbaa !11
  %441 = load double, ptr %68, align 8, !tbaa !11
  %442 = fmul double %440, %441
  store double %442, ptr %28, align 8, !tbaa !11
  %443 = load double, ptr %34, align 8, !tbaa !11
  %444 = fsub double 1.000000e+00, %443
  %445 = fcmp ogt double %444, 0x3C9CD2B297D889BC
  br i1 %445, label %446, label %646

446:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  %447 = load double, ptr %22, align 8, !tbaa !11
  %448 = load double, ptr %34, align 8, !tbaa !11
  %449 = fsub double 1.000000e+00, %448
  %450 = call double @cbrt(double noundef %449) #6
  %451 = fdiv double %447, %450
  store double %451, ptr %70, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  %452 = load double, ptr %22, align 8, !tbaa !11
  %453 = fmul double 0x3FD5555555555555, %452
  %454 = load double, ptr %34, align 8, !tbaa !11
  %455 = fsub double 1.000000e+00, %454
  %456 = call double @pow(double noundef %455, double noundef 0x3FF5555555555555) #5
  %457 = fdiv double %453, %456
  store double %457, ptr %71, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  %458 = load double, ptr %23, align 8, !tbaa !11
  %459 = load double, ptr %34, align 8, !tbaa !11
  %460 = fsub double 1.000000e+00, %459
  %461 = call double @cbrt(double noundef %460) #6
  %462 = fdiv double %458, %461
  %463 = load double, ptr %71, align 8, !tbaa !11
  %464 = load double, ptr %35, align 8, !tbaa !11
  %465 = call double @llvm.fmuladd.f64(double %463, double %464, double %462)
  store double %465, ptr %72, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  %466 = load double, ptr %71, align 8, !tbaa !11
  %467 = load double, ptr %33, align 8, !tbaa !11
  %468 = fmul double %466, %467
  store double %468, ptr %73, align 8, !tbaa !11
  %469 = call double @sqrt(double noundef 0x400921FB54442D18) #5
  %470 = load double, ptr %70, align 8, !tbaa !11
  %471 = fdiv double 5.000000e-01, %470
  %472 = call double @erf(double noundef %471) #5
  %473 = fmul double %469, %472
  store double %473, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #5
  %474 = load double, ptr %70, align 8, !tbaa !11
  %475 = call double @pow(double noundef %474, double noundef 2.000000e+00) #5
  %476 = fdiv double -2.500000e-01, %475
  %477 = call double @exp(double noundef %476) #5
  %478 = fneg double %477
  %479 = load double, ptr %70, align 8, !tbaa !11
  %480 = call double @pow(double noundef %479, double noundef 2.000000e+00) #5
  %481 = fdiv double %478, %480
  store double %481, ptr %74, align 8, !tbaa !11
  %482 = load double, ptr %74, align 8, !tbaa !11
  %483 = load double, ptr %72, align 8, !tbaa !11
  %484 = fmul double %482, %483
  store double %484, ptr %27, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  %485 = load double, ptr %74, align 8, !tbaa !11
  %486 = load double, ptr %73, align 8, !tbaa !11
  %487 = fmul double %485, %486
  store double %487, ptr %75, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  store double 0.000000e+00, ptr %76, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  store double 0.000000e+00, ptr %77, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #5
  store double 0.000000e+00, ptr %78, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  store double 0.000000e+00, ptr %79, align 8, !tbaa !11
  %488 = load double, ptr %70, align 8, !tbaa !11
  %489 = fcmp olt double %488, 5.000000e+00
  br i1 %489, label %490, label %510

490:                                              ; preds = %446
  %491 = load double, ptr %70, align 8, !tbaa !11
  %492 = call double @pow(double noundef %491, double noundef 2.000000e+00) #5
  %493 = fdiv double -2.500000e-01, %492
  %494 = call double @exp(double noundef %493) #5
  %495 = fadd double -1.000000e+00, %494
  store double %495, ptr %76, align 8, !tbaa !11
  %496 = load double, ptr %70, align 8, !tbaa !11
  %497 = call double @pow(double noundef %496, double noundef 2.000000e+00) #5
  %498 = fdiv double -2.500000e-01, %497
  %499 = call double @exp(double noundef %498) #5
  %500 = fmul double 5.000000e-01, %499
  %501 = load double, ptr %70, align 8, !tbaa !11
  %502 = call double @pow(double noundef %501, double noundef 3.000000e+00) #5
  %503 = fdiv double %500, %502
  store double %503, ptr %78, align 8, !tbaa !11
  %504 = load double, ptr %78, align 8, !tbaa !11
  %505 = load double, ptr %72, align 8, !tbaa !11
  %506 = fmul double %504, %505
  store double %506, ptr %79, align 8, !tbaa !11
  %507 = load double, ptr %78, align 8, !tbaa !11
  %508 = load double, ptr %73, align 8, !tbaa !11
  %509 = fmul double %507, %508
  store double %509, ptr %77, align 8, !tbaa !11
  br label %537

510:                                              ; preds = %446
  %511 = load double, ptr %70, align 8, !tbaa !11
  %512 = call double @pow(double noundef %511, double noundef 2.000000e+00) #5
  %513 = fdiv double 5.000000e-01, %512
  %514 = fsub double 1.000000e+00, %513
  %515 = fmul double -2.500000e-01, %514
  %516 = load double, ptr %70, align 8, !tbaa !11
  %517 = call double @pow(double noundef %516, double noundef 2.000000e+00) #5
  %518 = fdiv double %515, %517
  store double %518, ptr %76, align 8, !tbaa !11
  %519 = load double, ptr %70, align 8, !tbaa !11
  %520 = call double @pow(double noundef %519, double noundef 2.000000e+00) #5
  %521 = fdiv double 5.000000e-01, %520
  %522 = fsub double 1.000000e+00, %521
  %523 = fmul double 5.000000e-01, %522
  %524 = load double, ptr %70, align 8, !tbaa !11
  %525 = call double @pow(double noundef %524, double noundef 3.000000e+00) #5
  %526 = fdiv double %523, %525
  %527 = load double, ptr %70, align 8, !tbaa !11
  %528 = call double @pow(double noundef %527, double noundef 5.000000e+00) #5
  %529 = fdiv double 2.500000e-01, %528
  %530 = fsub double %526, %529
  store double %530, ptr %78, align 8, !tbaa !11
  %531 = load double, ptr %78, align 8, !tbaa !11
  %532 = load double, ptr %72, align 8, !tbaa !11
  %533 = fmul double %531, %532
  store double %533, ptr %79, align 8, !tbaa !11
  %534 = load double, ptr %78, align 8, !tbaa !11
  %535 = load double, ptr %73, align 8, !tbaa !11
  %536 = fmul double %534, %535
  store double %536, ptr %77, align 8, !tbaa !11
  br label %537

537:                                              ; preds = %510, %490
  %538 = load double, ptr %76, align 8, !tbaa !11
  %539 = fmul double 2.000000e+00, %538
  %540 = load double, ptr %70, align 8, !tbaa !11
  %541 = call double @pow(double noundef %540, double noundef 2.000000e+00) #5
  %542 = call double @llvm.fmuladd.f64(double %539, double %541, double 5.000000e-01)
  store double %542, ptr %32, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  %543 = load double, ptr %76, align 8, !tbaa !11
  %544 = fmul double 4.000000e+00, %543
  %545 = load double, ptr %70, align 8, !tbaa !11
  %546 = fmul double %544, %545
  store double %546, ptr %80, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  %547 = load double, ptr %70, align 8, !tbaa !11
  %548 = call double @pow(double noundef %547, double noundef 2.000000e+00) #5
  %549 = fmul double 2.000000e+00, %548
  store double %549, ptr %81, align 8, !tbaa !11
  %550 = load double, ptr %79, align 8, !tbaa !11
  %551 = load double, ptr %81, align 8, !tbaa !11
  %552 = load double, ptr %80, align 8, !tbaa !11
  %553 = load double, ptr %72, align 8, !tbaa !11
  %554 = fmul double %552, %553
  %555 = call double @llvm.fmuladd.f64(double %550, double %551, double %554)
  store double %555, ptr %24, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  %556 = load double, ptr %77, align 8, !tbaa !11
  %557 = load double, ptr %81, align 8, !tbaa !11
  %558 = load double, ptr %80, align 8, !tbaa !11
  %559 = load double, ptr %73, align 8, !tbaa !11
  %560 = fmul double %558, %559
  %561 = call double @llvm.fmuladd.f64(double %556, double %557, double %560)
  store double %561, ptr %82, align 8, !tbaa !11
  %562 = load double, ptr %70, align 8, !tbaa !11
  %563 = fmul double 0xC005555555555555, %562
  %564 = load double, ptr %26, align 8, !tbaa !11
  %565 = load double, ptr %70, align 8, !tbaa !11
  %566 = fmul double 2.000000e+00, %565
  %567 = load double, ptr %76, align 8, !tbaa !11
  %568 = load double, ptr %32, align 8, !tbaa !11
  %569 = fsub double %567, %568
  %570 = call double @llvm.fmuladd.f64(double %566, double %569, double %564)
  %571 = call double @llvm.fmuladd.f64(double %563, double %570, double 1.000000e+00)
  store double %571, ptr %29, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  %572 = load double, ptr %26, align 8, !tbaa !11
  %573 = load double, ptr %70, align 8, !tbaa !11
  %574 = fmul double 0x4015555555555555, %573
  %575 = load double, ptr %76, align 8, !tbaa !11
  %576 = load double, ptr %32, align 8, !tbaa !11
  %577 = fsub double %575, %576
  %578 = fmul double %574, %577
  %579 = fneg double %578
  %580 = call double @llvm.fmuladd.f64(double 0xC005555555555555, double %572, double %579)
  %581 = load double, ptr %70, align 8, !tbaa !11
  %582 = fmul double 0x4005555555555555, %581
  %583 = load double, ptr %76, align 8, !tbaa !11
  %584 = load double, ptr %32, align 8, !tbaa !11
  %585 = fmul double 2.000000e+00, %584
  %586 = fneg double %585
  %587 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %583, double %586)
  %588 = fneg double %582
  %589 = call double @llvm.fmuladd.f64(double %588, double %587, double %580)
  store double %589, ptr %83, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  %590 = load double, ptr %70, align 8, !tbaa !11
  %591 = call double @pow(double noundef %590, double noundef 2.000000e+00) #5
  %592 = fmul double 0xC015555555555555, %591
  store double %592, ptr %84, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #5
  %593 = load double, ptr %70, align 8, !tbaa !11
  %594 = call double @pow(double noundef %593, double noundef 2.000000e+00) #5
  %595 = fmul double 0x4015555555555555, %594
  store double %595, ptr %85, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  %596 = load double, ptr %70, align 8, !tbaa !11
  %597 = fmul double 0xC005555555555555, %596
  store double %597, ptr %86, align 8, !tbaa !11
  %598 = load double, ptr %86, align 8, !tbaa !11
  %599 = load double, ptr %27, align 8, !tbaa !11
  %600 = load double, ptr %84, align 8, !tbaa !11
  %601 = load double, ptr %79, align 8, !tbaa !11
  %602 = fmul double %600, %601
  %603 = call double @llvm.fmuladd.f64(double %598, double %599, double %602)
  %604 = load double, ptr %85, align 8, !tbaa !11
  %605 = load double, ptr %24, align 8, !tbaa !11
  %606 = call double @llvm.fmuladd.f64(double %604, double %605, double %603)
  %607 = load double, ptr %83, align 8, !tbaa !11
  %608 = load double, ptr %72, align 8, !tbaa !11
  %609 = call double @llvm.fmuladd.f64(double %607, double %608, double %606)
  store double %609, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #5
  %610 = load double, ptr %86, align 8, !tbaa !11
  %611 = load double, ptr %75, align 8, !tbaa !11
  %612 = load double, ptr %84, align 8, !tbaa !11
  %613 = load double, ptr %77, align 8, !tbaa !11
  %614 = fmul double %612, %613
  %615 = call double @llvm.fmuladd.f64(double %610, double %611, double %614)
  %616 = load double, ptr %85, align 8, !tbaa !11
  %617 = load double, ptr %82, align 8, !tbaa !11
  %618 = call double @llvm.fmuladd.f64(double %616, double %617, double %615)
  %619 = load double, ptr %83, align 8, !tbaa !11
  %620 = load double, ptr %73, align 8, !tbaa !11
  %621 = call double @llvm.fmuladd.f64(double %619, double %620, double %618)
  store double %621, ptr %87, align 8, !tbaa !11
  %622 = load double, ptr %29, align 8, !tbaa !11
  %623 = load double, ptr %34, align 8, !tbaa !11
  %624 = fsub double 1.000000e+00, %623
  %625 = call double @pow(double noundef %624, double noundef 0x3FF5555555555555) #5
  %626 = load double, ptr %31, align 8, !tbaa !11
  %627 = call double @llvm.fmuladd.f64(double %622, double %625, double %626)
  store double %627, ptr %31, align 8, !tbaa !11
  %628 = load double, ptr %29, align 8, !tbaa !11
  %629 = fmul double 0xBFF5555555555555, %628
  %630 = load double, ptr %34, align 8, !tbaa !11
  %631 = fsub double 1.000000e+00, %630
  %632 = call double @cbrt(double noundef %631) #6
  %633 = load double, ptr %69, align 8, !tbaa !11
  %634 = call double @llvm.fmuladd.f64(double %629, double %632, double %633)
  store double %634, ptr %69, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #5
  %635 = load double, ptr %34, align 8, !tbaa !11
  %636 = fsub double 1.000000e+00, %635
  %637 = call double @pow(double noundef %636, double noundef 0x3FF5555555555555) #5
  store double %637, ptr %88, align 8, !tbaa !11
  %638 = load double, ptr %25, align 8, !tbaa !11
  %639 = load double, ptr %88, align 8, !tbaa !11
  %640 = load double, ptr %30, align 8, !tbaa !11
  %641 = call double @llvm.fmuladd.f64(double %638, double %639, double %640)
  store double %641, ptr %30, align 8, !tbaa !11
  %642 = load double, ptr %87, align 8, !tbaa !11
  %643 = load double, ptr %88, align 8, !tbaa !11
  %644 = load double, ptr %28, align 8, !tbaa !11
  %645 = call double @llvm.fmuladd.f64(double %642, double %643, double %644)
  store double %645, ptr %28, align 8, !tbaa !11
  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
  br label %646

646:                                              ; preds = %537, %339
  %647 = load double, ptr %69, align 8, !tbaa !11
  %648 = load double, ptr %35, align 8, !tbaa !11
  %649 = load double, ptr %30, align 8, !tbaa !11
  %650 = call double @llvm.fmuladd.f64(double %647, double %648, double %649)
  store double %650, ptr %30, align 8, !tbaa !11
  %651 = load double, ptr %69, align 8, !tbaa !11
  %652 = load double, ptr %33, align 8, !tbaa !11
  %653 = load double, ptr %28, align 8, !tbaa !11
  %654 = call double @llvm.fmuladd.f64(double %651, double %652, double %653)
  store double %654, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #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
  br label %841

655:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #5
  %656 = load double, ptr %22, align 8, !tbaa !11
  %657 = call double @pow(double noundef %656, double noundef 2.000000e+00) #5
  %658 = fdiv double -2.500000e-01, %657
  %659 = call double @exp(double noundef %658) #5
  store double %659, ptr %89, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #5
  %660 = load double, ptr %23, align 8, !tbaa !11
  %661 = fmul double 5.000000e-01, %660
  %662 = load double, ptr %22, align 8, !tbaa !11
  %663 = call double @pow(double noundef %662, double noundef 2.000000e+00) #5
  %664 = fdiv double -2.500000e-01, %663
  %665 = call double @exp(double noundef %664) #5
  %666 = fmul double %661, %665
  %667 = load double, ptr %22, align 8, !tbaa !11
  %668 = call double @pow(double noundef %667, double noundef 3.000000e+00) #5
  %669 = fdiv double %666, %668
  store double %669, ptr %90, align 8, !tbaa !11
  %670 = call double @sqrt(double noundef 0x400921FB54442D18) #5
  %671 = load double, ptr %22, align 8, !tbaa !11
  %672 = fdiv double 5.000000e-01, %671
  %673 = call double @erf(double noundef %672) #5
  %674 = fmul double %670, %673
  store double %674, ptr %26, align 8, !tbaa !11
  %675 = load double, ptr %23, align 8, !tbaa !11
  %676 = fneg double %675
  %677 = load double, ptr %22, align 8, !tbaa !11
  %678 = call double @pow(double noundef %677, double noundef 2.000000e+00) #5
  %679 = fdiv double -2.500000e-01, %678
  %680 = call double @exp(double noundef %679) #5
  %681 = fmul double %676, %680
  %682 = load double, ptr %22, align 8, !tbaa !11
  %683 = call double @pow(double noundef %682, double noundef 2.000000e+00) #5
  %684 = fdiv double %681, %683
  store double %684, ptr %27, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #5
  store double 0.000000e+00, ptr %91, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  store double 0.000000e+00, ptr %92, align 8, !tbaa !11
  %685 = load double, ptr %22, align 8, !tbaa !11
  %686 = fcmp olt double %685, 5.000000e+00
  br i1 %686, label %687, label %703

687:                                              ; preds = %655
  %688 = load double, ptr %22, align 8, !tbaa !11
  %689 = call double @pow(double noundef %688, double noundef 2.000000e+00) #5
  %690 = fdiv double -2.500000e-01, %689
  %691 = call double @exp(double noundef %690) #5
  %692 = fadd double -1.000000e+00, %691
  store double %692, ptr %91, align 8, !tbaa !11
  %693 = load double, ptr %23, align 8, !tbaa !11
  %694 = fmul double 5.000000e-01, %693
  %695 = load double, ptr %22, align 8, !tbaa !11
  %696 = call double @pow(double noundef %695, double noundef 2.000000e+00) #5
  %697 = fdiv double -2.500000e-01, %696
  %698 = call double @exp(double noundef %697) #5
  %699 = fmul double %694, %698
  %700 = load double, ptr %22, align 8, !tbaa !11
  %701 = call double @pow(double noundef %700, double noundef 3.000000e+00) #5
  %702 = fdiv double %699, %701
  store double %702, ptr %92, align 8, !tbaa !11
  br label %726

703:                                              ; preds = %655
  %704 = load double, ptr %22, align 8, !tbaa !11
  %705 = call double @pow(double noundef %704, double noundef 2.000000e+00) #5
  %706 = fdiv double 5.000000e-01, %705
  %707 = fsub double 1.000000e+00, %706
  %708 = fmul double -2.500000e-01, %707
  %709 = load double, ptr %22, align 8, !tbaa !11
  %710 = call double @pow(double noundef %709, double noundef 2.000000e+00) #5
  %711 = fdiv double %708, %710
  store double %711, ptr %91, align 8, !tbaa !11
  %712 = load double, ptr %23, align 8, !tbaa !11
  %713 = load double, ptr %22, align 8, !tbaa !11
  %714 = call double @pow(double noundef %713, double noundef 2.000000e+00) #5
  %715 = fdiv double 5.000000e-01, %714
  %716 = fsub double 1.000000e+00, %715
  %717 = fmul double 5.000000e-01, %716
  %718 = load double, ptr %22, align 8, !tbaa !11
  %719 = call double @pow(double noundef %718, double noundef 3.000000e+00) #5
  %720 = fdiv double %717, %719
  %721 = load double, ptr %22, align 8, !tbaa !11
  %722 = call double @pow(double noundef %721, double noundef 5.000000e+00) #5
  %723 = fdiv double 2.500000e-01, %722
  %724 = fsub double %720, %723
  %725 = fmul double %712, %724
  store double %725, ptr %92, align 8, !tbaa !11
  br label %726

726:                                              ; preds = %703, %687
  %727 = load double, ptr %22, align 8, !tbaa !11
  %728 = call double @pow(double noundef %727, double noundef 2.000000e+00) #5
  %729 = fmul double 2.000000e+00, %728
  %730 = load double, ptr %91, align 8, !tbaa !11
  %731 = call double @llvm.fmuladd.f64(double %729, double %730, double 5.000000e-01)
  store double %731, ptr %32, align 8, !tbaa !11
  %732 = load double, ptr %22, align 8, !tbaa !11
  %733 = call double @pow(double noundef %732, double noundef 2.000000e+00) #5
  %734 = fmul double 2.000000e+00, %733
  %735 = load double, ptr %92, align 8, !tbaa !11
  %736 = load double, ptr %22, align 8, !tbaa !11
  %737 = fmul double 4.000000e+00, %736
  %738 = load double, ptr %91, align 8, !tbaa !11
  %739 = fmul double %737, %738
  %740 = load double, ptr %23, align 8, !tbaa !11
  %741 = fmul double %739, %740
  %742 = call double @llvm.fmuladd.f64(double %734, double %735, double %741)
  store double %742, ptr %24, align 8, !tbaa !11
  %743 = load double, ptr %22, align 8, !tbaa !11
  %744 = fmul double 0xC005555555555555, %743
  %745 = load double, ptr %22, align 8, !tbaa !11
  %746 = fmul double 2.000000e+00, %745
  %747 = load double, ptr %91, align 8, !tbaa !11
  %748 = load double, ptr %32, align 8, !tbaa !11
  %749 = fsub double %747, %748
  %750 = load double, ptr %26, align 8, !tbaa !11
  %751 = call double @llvm.fmuladd.f64(double %746, double %749, double %750)
  %752 = call double @llvm.fmuladd.f64(double %744, double %751, double 1.000000e+00)
  store double %752, ptr %29, align 8, !tbaa !11
  %753 = load double, ptr %22, align 8, !tbaa !11
  %754 = call double @pow(double noundef %753, double noundef 2.000000e+00) #5
  %755 = fmul double 0xC015555555555555, %754
  %756 = load double, ptr %92, align 8, !tbaa !11
  %757 = load double, ptr %22, align 8, !tbaa !11
  %758 = call double @pow(double noundef %757, double noundef 2.000000e+00) #5
  %759 = fmul double 0x4015555555555555, %758
  %760 = load double, ptr %24, align 8, !tbaa !11
  %761 = fmul double %759, %760
  %762 = call double @llvm.fmuladd.f64(double %755, double %756, double %761)
  %763 = load double, ptr %22, align 8, !tbaa !11
  %764 = fmul double 0x4005555555555555, %763
  %765 = load double, ptr %27, align 8, !tbaa !11
  %766 = fneg double %764
  %767 = call double @llvm.fmuladd.f64(double %766, double %765, double %762)
  %768 = load double, ptr %23, align 8, !tbaa !11
  %769 = load double, ptr %22, align 8, !tbaa !11
  %770 = fmul double 0xC015555555555555, %769
  %771 = load double, ptr %91, align 8, !tbaa !11
  %772 = load double, ptr %32, align 8, !tbaa !11
  %773 = fsub double %771, %772
  %774 = load double, ptr %22, align 8, !tbaa !11
  %775 = fmul double 0x4005555555555555, %774
  %776 = load double, ptr %91, align 8, !tbaa !11
  %777 = load double, ptr %32, align 8, !tbaa !11
  %778 = fmul double 2.000000e+00, %777
  %779 = fneg double %778
  %780 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %776, double %779)
  %781 = fmul double %775, %780
  %782 = fneg double %781
  %783 = call double @llvm.fmuladd.f64(double %770, double %773, double %782)
  %784 = load double, ptr %26, align 8, !tbaa !11
  %785 = call double @llvm.fmuladd.f64(double 0xC005555555555555, double %784, double %783)
  %786 = call double @llvm.fmuladd.f64(double %768, double %785, double %767)
  store double %786, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #5
  %787 = load double, ptr %19, align 8, !tbaa !11
  %788 = fmul double -2.000000e+00, %787
  %789 = load double, ptr %18, align 8, !tbaa !11
  %790 = call double @pow(double noundef %789, double noundef 2.000000e+00) #5
  %791 = fdiv double %788, %790
  store double %791, ptr %93, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  %792 = load double, ptr %19, align 8, !tbaa !11
  %793 = fmul double 4.000000e+00, %792
  %794 = load double, ptr %18, align 8, !tbaa !11
  %795 = call double @pow(double noundef %794, double noundef 3.000000e+00) #5
  %796 = fdiv double %793, %795
  store double %796, ptr %94, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  %797 = load double, ptr %18, align 8, !tbaa !11
  %798 = call double @pow(double noundef %797, double noundef 2.000000e+00) #5
  %799 = fdiv double -2.000000e+00, %798
  store double %799, ptr %95, align 8, !tbaa !11
  %800 = load double, ptr %29, align 8, !tbaa !11
  %801 = load double, ptr %93, align 8, !tbaa !11
  %802 = fmul double 0x3FDC71C71C71C71C, %801
  %803 = load double, ptr %22, align 8, !tbaa !11
  %804 = call double @pow(double noundef %803, double noundef 2.000000e+00) #5
  %805 = fmul double 4.000000e+00, %804
  %806 = load double, ptr %89, align 8, !tbaa !11
  %807 = fsub double %806, 1.000000e+00
  %808 = call double @llvm.fmuladd.f64(double %805, double %807, double 1.000000e+00)
  %809 = fmul double %802, %808
  %810 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %800, double %809)
  store double %810, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #5
  %811 = load double, ptr %22, align 8, !tbaa !11
  %812 = call double @pow(double noundef %811, double noundef 2.000000e+00) #5
  %813 = fmul double 0x3FFC71C71C71C71C, %812
  %814 = load double, ptr %89, align 8, !tbaa !11
  %815 = fsub double %814, 1.000000e+00
  %816 = call double @llvm.fmuladd.f64(double %813, double %815, double 0x3FDC71C71C71C71C)
  store double %816, ptr %96, align 8, !tbaa !11
  %817 = load double, ptr %22, align 8, !tbaa !11
  %818 = call double @pow(double noundef %817, double noundef 2.000000e+00) #5
  %819 = fmul double 0x3FFC71C71C71C71C, %818
  %820 = load double, ptr %90, align 8, !tbaa !11
  %821 = fmul double %819, %820
  %822 = load double, ptr %93, align 8, !tbaa !11
  %823 = load double, ptr %22, align 8, !tbaa !11
  %824 = fmul double 0x400C71C71C71C71C, %823
  %825 = load double, ptr %23, align 8, !tbaa !11
  %826 = fmul double %824, %825
  %827 = load double, ptr %93, align 8, !tbaa !11
  %828 = fmul double %826, %827
  %829 = load double, ptr %89, align 8, !tbaa !11
  %830 = fsub double %829, 1.000000e+00
  %831 = fmul double %828, %830
  %832 = call double @llvm.fmuladd.f64(double %821, double %822, double %831)
  %833 = load double, ptr %25, align 8, !tbaa !11
  %834 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %833, double %832)
  %835 = load double, ptr %96, align 8, !tbaa !11
  %836 = load double, ptr %94, align 8, !tbaa !11
  %837 = call double @llvm.fmuladd.f64(double %835, double %836, double %834)
  store double %837, ptr %30, align 8, !tbaa !11
  %838 = load double, ptr %96, align 8, !tbaa !11
  %839 = load double, ptr %95, align 8, !tbaa !11
  %840 = fmul double %838, %839
  store double %840, ptr %28, align 8, !tbaa !11
  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
  br label %841

841:                                              ; preds = %726, %646
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #5
  store double 0.000000e+00, ptr %97, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #5
  store double 0.000000e+00, ptr %98, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #5
  store double 0.000000e+00, ptr %99, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #5
  store double 0.000000e+00, ptr %100, align 8, !tbaa !11
  %842 = load double, ptr %19, align 8, !tbaa !11
  %843 = fcmp olt double %842, 0x3C9CD2B297D889BC
  br i1 %843, label %844, label %852

844:                                              ; preds = %841
  %845 = load double, ptr %31, align 8, !tbaa !11
  store double %845, ptr %97, align 8, !tbaa !11
  store double 1.000000e+00, ptr %100, align 8, !tbaa !11
  %846 = load double, ptr %100, align 8, !tbaa !11
  %847 = load double, ptr %30, align 8, !tbaa !11
  %848 = fmul double %846, %847
  store double %848, ptr %99, align 8, !tbaa !11
  %849 = load double, ptr %100, align 8, !tbaa !11
  %850 = load double, ptr %28, align 8, !tbaa !11
  %851 = fmul double %849, %850
  store double %851, ptr %98, align 8, !tbaa !11
  br label %982

852:                                              ; preds = %841
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #5
  %853 = call double @sqrt(double noundef 0x400921FB54442D18) #5
  %854 = load double, ptr %22, align 8, !tbaa !11
  %855 = fdiv double 5.000000e-01, %854
  %856 = call double @erf(double noundef %855) #5
  %857 = fmul double %853, %856
  store double %857, ptr %101, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #5
  %858 = load double, ptr %23, align 8, !tbaa !11
  %859 = fneg double %858
  %860 = load double, ptr %22, align 8, !tbaa !11
  %861 = call double @pow(double noundef %860, double noundef 2.000000e+00) #5
  %862 = fdiv double -2.500000e-01, %861
  %863 = call double @exp(double noundef %862) #5
  %864 = fmul double %859, %863
  %865 = load double, ptr %22, align 8, !tbaa !11
  %866 = call double @pow(double noundef %865, double noundef 2.000000e+00) #5
  %867 = fdiv double %864, %866
  store double %867, ptr %102, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #5
  store double 0.000000e+00, ptr %103, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #5
  store double 0.000000e+00, ptr %104, align 8, !tbaa !11
  %868 = load double, ptr %22, align 8, !tbaa !11
  %869 = fcmp olt double %868, 5.000000e+00
  br i1 %869, label %870, label %886

870:                                              ; preds = %852
  %871 = load double, ptr %22, align 8, !tbaa !11
  %872 = call double @pow(double noundef %871, double noundef 2.000000e+00) #5
  %873 = fdiv double -2.500000e-01, %872
  %874 = call double @exp(double noundef %873) #5
  %875 = fadd double -1.000000e+00, %874
  store double %875, ptr %104, align 8, !tbaa !11
  %876 = load double, ptr %23, align 8, !tbaa !11
  %877 = fmul double 5.000000e-01, %876
  %878 = load double, ptr %22, align 8, !tbaa !11
  %879 = call double @pow(double noundef %878, double noundef 2.000000e+00) #5
  %880 = fdiv double -2.500000e-01, %879
  %881 = call double @exp(double noundef %880) #5
  %882 = fmul double %877, %881
  %883 = load double, ptr %22, align 8, !tbaa !11
  %884 = call double @pow(double noundef %883, double noundef 3.000000e+00) #5
  %885 = fdiv double %882, %884
  store double %885, ptr %103, align 8, !tbaa !11
  br label %909

886:                                              ; preds = %852
  %887 = load double, ptr %22, align 8, !tbaa !11
  %888 = call double @pow(double noundef %887, double noundef 2.000000e+00) #5
  %889 = fdiv double 5.000000e-01, %888
  %890 = fsub double 1.000000e+00, %889
  %891 = fmul double -2.500000e-01, %890
  %892 = load double, ptr %22, align 8, !tbaa !11
  %893 = call double @pow(double noundef %892, double noundef 2.000000e+00) #5
  %894 = fdiv double %891, %893
  store double %894, ptr %104, align 8, !tbaa !11
  %895 = load double, ptr %23, align 8, !tbaa !11
  %896 = load double, ptr %22, align 8, !tbaa !11
  %897 = call double @pow(double noundef %896, double noundef 2.000000e+00) #5
  %898 = fdiv double 5.000000e-01, %897
  %899 = fsub double 1.000000e+00, %898
  %900 = fmul double 5.000000e-01, %899
  %901 = load double, ptr %22, align 8, !tbaa !11
  %902 = call double @pow(double noundef %901, double noundef 3.000000e+00) #5
  %903 = fdiv double %900, %902
  %904 = load double, ptr %22, align 8, !tbaa !11
  %905 = call double @pow(double noundef %904, double noundef 5.000000e+00) #5
  %906 = fdiv double 2.500000e-01, %905
  %907 = fsub double %903, %906
  %908 = fmul double %895, %907
  store double %908, ptr %103, align 8, !tbaa !11
  br label %909

909:                                              ; preds = %886, %870
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #5
  %910 = load double, ptr %22, align 8, !tbaa !11
  %911 = call double @pow(double noundef %910, double noundef 2.000000e+00) #5
  %912 = fmul double 2.000000e+00, %911
  %913 = load double, ptr %104, align 8, !tbaa !11
  %914 = call double @llvm.fmuladd.f64(double %912, double %913, double 5.000000e-01)
  store double %914, ptr %105, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #5
  %915 = load double, ptr %22, align 8, !tbaa !11
  %916 = call double @pow(double noundef %915, double noundef 2.000000e+00) #5
  %917 = fmul double 2.000000e+00, %916
  %918 = load double, ptr %103, align 8, !tbaa !11
  %919 = load double, ptr %22, align 8, !tbaa !11
  %920 = fmul double 4.000000e+00, %919
  %921 = load double, ptr %104, align 8, !tbaa !11
  %922 = fmul double %920, %921
  %923 = load double, ptr %23, align 8, !tbaa !11
  %924 = fmul double %922, %923
  %925 = call double @llvm.fmuladd.f64(double %917, double %918, double %924)
  store double %925, ptr %106, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #5
  %926 = load double, ptr %22, align 8, !tbaa !11
  %927 = fmul double 0xC005555555555555, %926
  %928 = load double, ptr %22, align 8, !tbaa !11
  %929 = fmul double 2.000000e+00, %928
  %930 = load double, ptr %104, align 8, !tbaa !11
  %931 = load double, ptr %105, align 8, !tbaa !11
  %932 = fsub double %930, %931
  %933 = load double, ptr %101, align 8, !tbaa !11
  %934 = call double @llvm.fmuladd.f64(double %929, double %932, double %933)
  %935 = call double @llvm.fmuladd.f64(double %927, double %934, double 1.000000e+00)
  store double %935, ptr %107, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #5
  %936 = load double, ptr %22, align 8, !tbaa !11
  %937 = call double @pow(double noundef %936, double noundef 2.000000e+00) #5
  %938 = fmul double 0xC015555555555555, %937
  %939 = load double, ptr %103, align 8, !tbaa !11
  %940 = load double, ptr %22, align 8, !tbaa !11
  %941 = call double @pow(double noundef %940, double noundef 2.000000e+00) #5
  %942 = fmul double 0x4015555555555555, %941
  %943 = load double, ptr %106, align 8, !tbaa !11
  %944 = fmul double %942, %943
  %945 = call double @llvm.fmuladd.f64(double %938, double %939, double %944)
  %946 = load double, ptr %22, align 8, !tbaa !11
  %947 = fmul double 0x4005555555555555, %946
  %948 = load double, ptr %102, align 8, !tbaa !11
  %949 = fneg double %947
  %950 = call double @llvm.fmuladd.f64(double %949, double %948, double %945)
  %951 = load double, ptr %23, align 8, !tbaa !11
  %952 = load double, ptr %22, align 8, !tbaa !11
  %953 = fmul double 0xC015555555555555, %952
  %954 = load double, ptr %104, align 8, !tbaa !11
  %955 = load double, ptr %105, align 8, !tbaa !11
  %956 = fsub double %954, %955
  %957 = load double, ptr %22, align 8, !tbaa !11
  %958 = fmul double 0x4005555555555555, %957
  %959 = load double, ptr %104, align 8, !tbaa !11
  %960 = load double, ptr %105, align 8, !tbaa !11
  %961 = fmul double 2.000000e+00, %960
  %962 = fneg double %961
  %963 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %959, double %962)
  %964 = fmul double %958, %963
  %965 = fneg double %964
  %966 = call double @llvm.fmuladd.f64(double %953, double %956, double %965)
  %967 = load double, ptr %101, align 8, !tbaa !11
  %968 = call double @llvm.fmuladd.f64(double 0xC005555555555555, double %967, double %966)
  %969 = call double @llvm.fmuladd.f64(double %951, double %968, double %950)
  store double %969, ptr %108, align 8, !tbaa !11
  %970 = load double, ptr %107, align 8, !tbaa !11
  %971 = load double, ptr %31, align 8, !tbaa !11
  %972 = fneg double %971
  %973 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %970, double %972)
  store double %973, ptr %97, align 8, !tbaa !11
  store double -1.000000e+00, ptr %100, align 8, !tbaa !11
  %974 = load double, ptr %108, align 8, !tbaa !11
  %975 = load double, ptr %100, align 8, !tbaa !11
  %976 = load double, ptr %30, align 8, !tbaa !11
  %977 = fmul double %975, %976
  %978 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %974, double %977)
  store double %978, ptr %99, align 8, !tbaa !11
  %979 = load double, ptr %100, align 8, !tbaa !11
  %980 = load double, ptr %28, align 8, !tbaa !11
  %981 = fmul double %979, %980
  store double %981, ptr %98, align 8, !tbaa !11
  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
  br label %982

982:                                              ; preds = %909, %844
  %983 = load double, ptr %97, align 8, !tbaa !11
  %984 = load double, ptr %14, align 8, !tbaa !11
  %985 = fmul double %983, %984
  %986 = load double, ptr %20, align 8, !tbaa !11
  %987 = fdiv double %985, %986
  %988 = load ptr, ptr %8, align 8, !tbaa !9
  %989 = load i32, ptr %16, align 4, !tbaa !5
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds double, ptr %988, i64 %990
  store double %987, ptr %991, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #5
  %992 = load double, ptr %18, align 8, !tbaa !11
  %993 = load double, ptr %14, align 8, !tbaa !11
  %994 = fmul double %992, %993
  %995 = load double, ptr %20, align 8, !tbaa !11
  %996 = fdiv double %994, %995
  store double %996, ptr %109, align 8, !tbaa !11
  %997 = load double, ptr %109, align 8, !tbaa !11
  %998 = load double, ptr %99, align 8, !tbaa !11
  %999 = load double, ptr %18, align 8, !tbaa !11
  %1000 = load double, ptr %21, align 8, !tbaa !11
  %1001 = fmul double %999, %1000
  %1002 = load double, ptr %97, align 8, !tbaa !11
  %1003 = fmul double %1001, %1002
  %1004 = load double, ptr %14, align 8, !tbaa !11
  %1005 = fmul double %1003, %1004
  %1006 = load double, ptr %20, align 8, !tbaa !11
  %1007 = call double @pow(double noundef %1006, double noundef 2.000000e+00) #5
  %1008 = fdiv double %1005, %1007
  %1009 = fneg double %1008
  %1010 = call double @llvm.fmuladd.f64(double %997, double %998, double %1009)
  %1011 = load double, ptr %97, align 8, !tbaa !11
  %1012 = load double, ptr %14, align 8, !tbaa !11
  %1013 = fmul double %1011, %1012
  %1014 = load double, ptr %20, align 8, !tbaa !11
  %1015 = fdiv double %1013, %1014
  %1016 = fadd double %1010, %1015
  %1017 = load ptr, ptr %9, align 8, !tbaa !9
  %1018 = load i32, ptr %16, align 4, !tbaa !5
  %1019 = mul nsw i32 2, %1018
  %1020 = add nsw i32 %1019, 0
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds double, ptr %1017, i64 %1021
  store double %1016, ptr %1022, align 8, !tbaa !11
  %1023 = load double, ptr %109, align 8, !tbaa !11
  %1024 = load double, ptr %98, align 8, !tbaa !11
  %1025 = fmul double %1023, %1024
  %1026 = load ptr, ptr %9, align 8, !tbaa !9
  %1027 = load i32, ptr %16, align 4, !tbaa !5
  %1028 = mul nsw i32 2, %1027
  %1029 = add nsw i32 %1028, 1
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds double, ptr %1026, i64 %1030
  store double %1025, ptr %1031, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #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 %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  store i32 0, ptr %17, align 4
  br label %1032

1032:                                             ; preds = %982, %149
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  %1033 = load i32, ptr %17, align 4
  switch i32 %1033, label %1039 [
    i32 0, label %1034
    i32 4, label %1035
  ]

1034:                                             ; preds = %1032
  br label %1035

1035:                                             ; preds = %1034, %1032
  %1036 = load i32, ptr %16, align 4, !tbaa !5
  %1037 = add nsw i32 %1036, 1
  store i32 %1037, ptr %16, align 4, !tbaa !5
  br label %134, !llvm.loop !13

1038:                                             ; preds = %138
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  ret void

1039:                                             ; preds = %1032
  unreachable
}

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(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: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #4

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

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

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

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

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


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

; Function Attrs: mustprogress nofree nounwind memory(write, argmem: readwrite) uwtable
define dso_local void @_ZN14pdftslater_erf15compute_exc_vxcEiPKdPdS2_d(i32 noundef %0, ptr nocapture noundef readonly %1, ptr nocapture noundef writeonly %2, ptr nocapture noundef writeonly %3, double noundef %4) local_unnamed_addr #0 {
  %6 = tail call double @cbrt(double noundef 3.000000e+00) #5
  %7 = fmul double %6, 0x3FD0EEA9C37E497D
  %8 = fmul double %7, %4
  %9 = tail call double @cbrt(double noundef 0x400921FB54442D18) #5
  %10 = fdiv double %8, %9
  %11 = tail call double @cbrt(double noundef 6.000000e+00) #5
  %12 = fmul double %11, 5.000000e-01
  %13 = fdiv double %12, %9
  %14 = fmul double %11, 7.500000e-01
  %15 = fdiv double %14, %9
  %16 = fmul double %13, 0xBFD965FEA53D6E3C
  %17 = fmul double %15, %16
  %18 = icmp sgt i32 %0, 0
  br i1 %18, label %.lr.ph.preheader, label %._crit_edge

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

._crit_edge:                                      ; preds = %433, %5
  ret void

.lr.ph:                                           ; preds = %.lr.ph.preheader, %433
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %433 ]
  %19 = shl nuw nsw i64 %indvars.iv, 1
  %20 = getelementptr inbounds double, ptr %1, i64 %19
  %21 = load double, ptr %20, align 8, !tbaa !5
  %22 = fcmp olt double %21, 0x3C9CD2B297D889BC
  br i1 %22, label %23, label %27

23:                                               ; preds = %.lr.ph
  %24 = getelementptr inbounds double, ptr %2, i64 %indvars.iv
  store double 0.000000e+00, ptr %24, align 8, !tbaa !5
  %25 = getelementptr inbounds double, ptr %3, i64 %19
  store double 0.000000e+00, ptr %25, align 8, !tbaa !5
  %26 = or disjoint i64 %19, 1
  br label %433

27:                                               ; preds = %.lr.ph
  %28 = or disjoint i64 %19, 1
  %29 = getelementptr inbounds double, ptr %1, i64 %28
  %30 = load double, ptr %29, align 8, !tbaa !5
  %31 = tail call double @cbrt(double noundef %21) #5
  %32 = fdiv double 0x3FE3D9E945CF0E15, %31
  %33 = tail call double @pow(double noundef %21, double noundef 0x3FF5555555555555) #6
  %34 = fdiv double 0xBFCA77E1B269681C, %33
  %35 = fmul double %10, %32
  %36 = fmul double %10, %34
  %37 = tail call double @llvm.fabs.f64(double %30)
  %38 = fcmp ogt double %37, 0x3C9CD2B297D889BC
  br i1 %38, label %39, label %259

39:                                               ; preds = %27
  %40 = fcmp olt double %30, 0.000000e+00
  br i1 %40, label %41, label %49

41:                                               ; preds = %39
  %42 = fneg double %30
  %43 = tail call double @sqrt(double noundef %42) #6
  %44 = tail call double @sqrt(double noundef %42) #6
  %45 = fmul double %44, 0xBFF6A09E667F3BCD
  %square430 = fmul double %21, %21
  %46 = fdiv double %45, %square430
  %47 = tail call double @sqrt(double noundef %42) #6
  %48 = fmul double %47, 0x3FE6A09E667F3BCD
  br label %55

49:                                               ; preds = %39
  %50 = tail call double @sqrt(double noundef %30) #6
  %51 = tail call double @sqrt(double noundef %30) #6
  %52 = fmul double %51, 0xBFF6A09E667F3BCD
  %square429 = fmul double %21, %21
  %53 = fdiv double %52, %square429
  %54 = tail call double @sqrt(double noundef %30) #6
  br label %55

55:                                               ; preds = %49, %41
  %.sink472 = phi double [ %54, %49 ], [ %30, %41 ]
  %.sink = phi double [ 0x3FE6A09E667F3BCD, %49 ], [ %48, %41 ]
  %.0394 = phi double [ %53, %49 ], [ %46, %41 ]
  %.pn.in = phi double [ %50, %49 ], [ %43, %41 ]
  %56 = fmul double %21, %.sink472
  %.pn = fmul double %.pn.in, 0x3FF6A09E667F3BCD
  %.0393 = fdiv double %.pn, %21
  %57 = fadd double %.0393, 1.000000e+00
  %58 = tail call double @cbrt(double noundef %57) #5
  %59 = fdiv double %35, %58
  %60 = fmul double %35, 0xBFD5555555555555
  %61 = tail call double @pow(double noundef %57, double noundef 0x3FF5555555555555) #6
  %62 = insertelement <2 x double> poison, double %.sink, i64 0
  %63 = insertelement <2 x double> %62, double %60, i64 1
  %64 = insertelement <2 x double> poison, double %56, i64 0
  %65 = insertelement <2 x double> %64, double %61, i64 1
  %66 = fdiv <2 x double> %63, %65
  %67 = fdiv double %36, %58
  %68 = extractelement <2 x double> %66, i64 1
  %69 = tail call double @llvm.fmuladd.f64(double %68, double %.0394, double %67)
  %70 = extractelement <2 x double> %66, i64 0
  %71 = fmul double %70, %68
  %72 = fdiv double 5.000000e-01, %59
  %73 = tail call double @erf(double noundef %72) #6
  %74 = fmul double %73, 0x3FFC5BF891B4EF6A
  %square431 = fmul double %59, %59
  %75 = fdiv double -2.500000e-01, %square431
  %76 = tail call double @exp(double noundef %75) #6
  %77 = fneg double %76
  %78 = fdiv double %77, %square431
  %79 = insertelement <2 x double> poison, double %71, i64 0
  %80 = insertelement <2 x double> %79, double %69, i64 1
  %81 = insertelement <2 x double> poison, double %78, i64 0
  %82 = shufflevector <2 x double> %81, <2 x double> poison, <2 x i32> zeroinitializer
  %83 = fmul <2 x double> %80, %82
  %84 = fcmp olt double %59, 5.000000e+00
  br i1 %84, label %85, label %92

85:                                               ; preds = %55
  %86 = tail call double @exp(double noundef %75) #6
  %87 = fadd double %86, -1.000000e+00
  %88 = tail call double @exp(double noundef %75) #6
  %89 = fmul double %88, 5.000000e-01
  %90 = tail call double @pow(double noundef %59, double noundef 3.000000e+00) #6
  %91 = fdiv double %89, %90
  br label %106

92:                                               ; preds = %55
  %93 = fdiv double 5.000000e-01, %square431
  %94 = fsub double 1.000000e+00, %93
  %95 = fmul double %94, -2.500000e-01
  %96 = fdiv double %95, %square431
  %97 = fmul double %94, 5.000000e-01
  %98 = tail call double @pow(double noundef %59, double noundef 3.000000e+00) #6
  %99 = tail call double @pow(double noundef %59, double noundef 5.000000e+00) #6
  %100 = insertelement <2 x double> <double poison, double 2.500000e-01>, double %97, i64 0
  %101 = insertelement <2 x double> poison, double %98, i64 0
  %102 = insertelement <2 x double> %101, double %99, i64 1
  %103 = fdiv <2 x double> %100, %102
  %shift = shufflevector <2 x double> %103, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %104 = fsub <2 x double> %103, %shift
  %105 = extractelement <2 x double> %104, i64 0
  br label %106

106:                                              ; preds = %92, %85
  %.pn438 = phi double [ %91, %85 ], [ %105, %92 ]
  %.0396 = phi double [ %87, %85 ], [ %96, %92 ]
  %107 = insertelement <2 x double> poison, double %.pn438, i64 0
  %108 = shufflevector <2 x double> %107, <2 x double> poison, <2 x i32> zeroinitializer
  %109 = fmul <2 x double> %80, %108
  %110 = fmul double %square431, 2.000000e+00
  %111 = tail call double @llvm.fmuladd.f64(double %110, double %.0396, double 5.000000e-01)
  %112 = fmul double %59, 4.000000e+00
  %113 = fmul double %112, %.0396
  %114 = fmul double %59, 0xC005555555555555
  %115 = fmul double %59, 2.000000e+00
  %116 = fsub double %.0396, %111
  %117 = tail call double @llvm.fmuladd.f64(double %115, double %116, double %74)
  %118 = tail call double @llvm.fmuladd.f64(double %114, double %117, double 1.000000e+00)
  %119 = fmul double %square431, 0xC015555555555555
  %120 = fmul double %59, 0xC015555555555555
  %121 = fmul double %111, -2.000000e+00
  %122 = tail call double @llvm.fmuladd.f64(double %.0396, double 2.000000e+00, double %121)
  %123 = fmul double %114, %122
  %124 = tail call double @llvm.fmuladd.f64(double %120, double %116, double %123)
  %125 = tail call double @llvm.fmuladd.f64(double %74, double 0xC005555555555555, double %124)
  %126 = fmul double %square431, 0x4015555555555555
  %127 = insertelement <2 x double> poison, double %110, i64 0
  %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> zeroinitializer
  %129 = fmul <2 x double> %128, %109
  %130 = insertelement <2 x double> poison, double %113, i64 0
  %131 = shufflevector <2 x double> %130, <2 x double> poison, <2 x i32> zeroinitializer
  %132 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %80, <2 x double> %131, <2 x double> %129)
  %133 = insertelement <2 x double> poison, double %114, i64 0
  %134 = shufflevector <2 x double> %133, <2 x double> poison, <2 x i32> zeroinitializer
  %135 = fmul <2 x double> %134, %83
  %136 = insertelement <2 x double> poison, double %125, i64 0
  %137 = shufflevector <2 x double> %136, <2 x double> poison, <2 x i32> zeroinitializer
  %138 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %80, <2 x double> %137, <2 x double> %135)
  %139 = insertelement <2 x double> poison, double %119, i64 0
  %140 = shufflevector <2 x double> %139, <2 x double> poison, <2 x i32> zeroinitializer
  %141 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %140, <2 x double> %109, <2 x double> %138)
  %142 = insertelement <2 x double> poison, double %126, i64 0
  %143 = shufflevector <2 x double> %142, <2 x double> poison, <2 x i32> zeroinitializer
  %144 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %143, <2 x double> %132, <2 x double> %141)
  %145 = tail call double @pow(double noundef %57, double noundef 0x3FF5555555555555) #6
  %146 = tail call double @pow(double noundef %57, double noundef 0x3FF5555555555555) #6
  %147 = fmul double %118, 0x3FF5555555555555
  %148 = insertelement <2 x double> poison, double %58, i64 0
  %149 = insertelement <2 x double> %148, double %145, i64 1
  %150 = insertelement <2 x double> poison, double %147, i64 0
  %151 = insertelement <2 x double> %150, double %118, i64 1
  %152 = fmul <2 x double> %149, %151
  %153 = insertelement <2 x double> poison, double %146, i64 0
  %154 = shufflevector <2 x double> %153, <2 x double> poison, <2 x i32> zeroinitializer
  %155 = fmul <2 x double> %154, %144
  %156 = fsub double 1.000000e+00, %.0393
  %157 = fcmp ogt double %156, 0x3C9CD2B297D889BC
  br i1 %157, label %158, label %252

158:                                              ; preds = %106
  %159 = tail call double @cbrt(double noundef %156) #5
  %160 = fdiv double %35, %159
  %161 = fmul double %35, 0x3FD5555555555555
  %162 = tail call double @pow(double noundef %156, double noundef 0x3FF5555555555555) #6
  %163 = fdiv double %161, %162
  %164 = fdiv double %36, %159
  %165 = tail call double @llvm.fmuladd.f64(double %163, double %.0394, double %164)
  %166 = fmul double %70, %163
  %167 = fdiv double 5.000000e-01, %160
  %168 = tail call double @erf(double noundef %167) #6
  %169 = fmul double %168, 0x3FFC5BF891B4EF6A
  %square444 = fmul double %160, %160
  %170 = fdiv double -2.500000e-01, %square444
  %171 = tail call double @exp(double noundef %170) #6
  %172 = fneg double %171
  %173 = fdiv double %172, %square444
  %174 = insertelement <2 x double> poison, double %166, i64 0
  %175 = insertelement <2 x double> %174, double %165, i64 1
  %176 = insertelement <2 x double> poison, double %173, i64 0
  %177 = shufflevector <2 x double> %176, <2 x double> poison, <2 x i32> zeroinitializer
  %178 = fmul <2 x double> %175, %177
  %179 = fcmp olt double %160, 5.000000e+00
  br i1 %179, label %180, label %187

180:                                              ; preds = %158
  %181 = tail call double @exp(double noundef %170) #6
  %182 = fadd double %181, -1.000000e+00
  %183 = tail call double @exp(double noundef %170) #6
  %184 = fmul double %183, 5.000000e-01
  %185 = tail call double @pow(double noundef %160, double noundef 3.000000e+00) #6
  %186 = fdiv double %184, %185
  br label %201

187:                                              ; preds = %158
  %188 = fdiv double 5.000000e-01, %square444
  %189 = fsub double 1.000000e+00, %188
  %190 = fmul double %189, -2.500000e-01
  %191 = fdiv double %190, %square444
  %192 = fmul double %189, 5.000000e-01
  %193 = tail call double @pow(double noundef %160, double noundef 3.000000e+00) #6
  %194 = tail call double @pow(double noundef %160, double noundef 5.000000e+00) #6
  %195 = insertelement <2 x double> <double poison, double 2.500000e-01>, double %192, i64 0
  %196 = insertelement <2 x double> poison, double %193, i64 0
  %197 = insertelement <2 x double> %196, double %194, i64 1
  %198 = fdiv <2 x double> %195, %197
  %shift476 = shufflevector <2 x double> %198, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %199 = fsub <2 x double> %198, %shift476
  %200 = extractelement <2 x double> %199, i64 0
  br label %201

201:                                              ; preds = %187, %180
  %.pn451 = phi double [ %186, %180 ], [ %200, %187 ]
  %.0399 = phi double [ %182, %180 ], [ %191, %187 ]
  %202 = insertelement <2 x double> poison, double %.pn451, i64 0
  %203 = shufflevector <2 x double> %202, <2 x double> poison, <2 x i32> zeroinitializer
  %204 = fmul <2 x double> %175, %203
  %205 = fmul double %.0399, 2.000000e+00
  %206 = tail call double @llvm.fmuladd.f64(double %205, double %square444, double 5.000000e-01)
  %207 = fmul double %.0399, 4.000000e+00
  %208 = fmul double %160, %207
  %209 = fmul double %square444, 2.000000e+00
  %210 = fmul double %160, 0xC005555555555555
  %211 = fmul double %160, 2.000000e+00
  %212 = fsub double %.0399, %206
  %213 = tail call double @llvm.fmuladd.f64(double %211, double %212, double %169)
  %214 = tail call double @llvm.fmuladd.f64(double %210, double %213, double 1.000000e+00)
  %215 = fmul double %160, 0xC015555555555555
  %216 = fmul double %215, %212
  %217 = tail call double @llvm.fmuladd.f64(double %169, double 0xC005555555555555, double %216)
  %218 = fmul double %206, -2.000000e+00
  %219 = tail call double @llvm.fmuladd.f64(double %.0399, double 2.000000e+00, double %218)
  %220 = tail call double @llvm.fmuladd.f64(double %210, double %219, double %217)
  %221 = fmul double %square444, 0xC015555555555555
  %222 = fmul double %square444, 0x4015555555555555
  %223 = insertelement <2 x double> poison, double %208, i64 0
  %224 = shufflevector <2 x double> %223, <2 x double> poison, <2 x i32> zeroinitializer
  %225 = fmul <2 x double> %175, %224
  %226 = insertelement <2 x double> poison, double %209, i64 0
  %227 = shufflevector <2 x double> %226, <2 x double> poison, <2 x i32> zeroinitializer
  %228 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %204, <2 x double> %227, <2 x double> %225)
  %229 = insertelement <2 x double> poison, double %221, i64 0
  %230 = shufflevector <2 x double> %229, <2 x double> poison, <2 x i32> zeroinitializer
  %231 = fmul <2 x double> %230, %204
  %232 = insertelement <2 x double> poison, double %210, i64 0
  %233 = shufflevector <2 x double> %232, <2 x double> poison, <2 x i32> zeroinitializer
  %234 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %233, <2 x double> %178, <2 x double> %231)
  %235 = insertelement <2 x double> poison, double %222, i64 0
  %236 = shufflevector <2 x double> %235, <2 x double> poison, <2 x i32> zeroinitializer
  %237 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %236, <2 x double> %228, <2 x double> %234)
  %238 = insertelement <2 x double> poison, double %220, i64 0
  %239 = shufflevector <2 x double> %238, <2 x double> poison, <2 x i32> zeroinitializer
  %240 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %239, <2 x double> %175, <2 x double> %237)
  %241 = tail call double @pow(double noundef %156, double noundef 0x3FF5555555555555) #6
  %242 = fmul double %214, 0xBFF5555555555555
  %243 = insertelement <2 x double> poison, double %242, i64 0
  %244 = insertelement <2 x double> %243, double %214, i64 1
  %245 = insertelement <2 x double> poison, double %159, i64 0
  %246 = insertelement <2 x double> %245, double %241, i64 1
  %247 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %244, <2 x double> %246, <2 x double> %152)
  %248 = tail call double @pow(double noundef %156, double noundef 0x3FF5555555555555) #6
  %249 = insertelement <2 x double> poison, double %248, i64 0
  %250 = shufflevector <2 x double> %249, <2 x double> poison, <2 x i32> zeroinitializer
  %251 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %240, <2 x double> %250, <2 x double> %155)
  br label %252

252:                                              ; preds = %201, %106
  %253 = phi <2 x double> [ %251, %201 ], [ %155, %106 ]
  %254 = phi <2 x double> [ %247, %201 ], [ %152, %106 ]
  %255 = shufflevector <2 x double> %254, <2 x double> poison, <2 x i32> zeroinitializer
  %256 = insertelement <2 x double> %66, double %.0394, i64 1
  %257 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %255, <2 x double> %256, <2 x double> %253)
  %258 = extractelement <2 x double> %254, i64 1
  br label %346

259:                                              ; preds = %27
  %square = fmul double %35, %35
  %260 = fdiv double -2.500000e-01, %square
  %261 = tail call double @exp(double noundef %260) #6
  %262 = fmul double %36, 5.000000e-01
  %263 = tail call double @exp(double noundef %260) #6
  %264 = fmul double %262, %263
  %265 = tail call double @pow(double noundef %35, double noundef 3.000000e+00) #6
  %266 = fdiv double %264, %265
  %267 = fdiv double 5.000000e-01, %35
  %268 = tail call double @erf(double noundef %267) #6
  %269 = fmul double %268, 0x3FFC5BF891B4EF6A
  %270 = fneg double %36
  %271 = tail call double @exp(double noundef %260) #6
  %272 = fmul double %271, %270
  %273 = fdiv double %272, %square
  %274 = fcmp olt double %35, 5.000000e+00
  br i1 %274, label %275, label %282

275:                                              ; preds = %259
  %276 = tail call double @exp(double noundef %260) #6
  %277 = fadd double %276, -1.000000e+00
  %278 = tail call double @exp(double noundef %260) #6
  %279 = fmul double %262, %278
  %280 = tail call double @pow(double noundef %35, double noundef 3.000000e+00) #6
  %281 = fdiv double %279, %280
  br label %297

282:                                              ; preds = %259
  %283 = fdiv double 5.000000e-01, %square
  %284 = fsub double 1.000000e+00, %283
  %285 = fmul double %284, -2.500000e-01
  %286 = fdiv double %285, %square
  %287 = fmul double %284, 5.000000e-01
  %288 = tail call double @pow(double noundef %35, double noundef 3.000000e+00) #6
  %289 = tail call double @pow(double noundef %35, double noundef 5.000000e+00) #6
  %290 = insertelement <2 x double> <double poison, double 2.500000e-01>, double %287, i64 0
  %291 = insertelement <2 x double> poison, double %288, i64 0
  %292 = insertelement <2 x double> %291, double %289, i64 1
  %293 = fdiv <2 x double> %290, %292
  %shift477 = shufflevector <2 x double> %293, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %294 = fsub <2 x double> %293, %shift477
  %295 = extractelement <2 x double> %294, i64 0
  %296 = fmul double %36, %295
  br label %297

297:                                              ; preds = %282, %275
  %.0391 = phi double [ %277, %275 ], [ %286, %282 ]
  %.0390 = phi double [ %281, %275 ], [ %296, %282 ]
  %298 = fmul double %square, 2.000000e+00
  %299 = tail call double @llvm.fmuladd.f64(double %298, double %.0391, double 5.000000e-01)
  %300 = fmul double %35, 4.000000e+00
  %301 = fmul double %300, %.0391
  %302 = fmul double %36, %301
  %303 = tail call double @llvm.fmuladd.f64(double %298, double %.0390, double %302)
  %304 = fmul double %35, 0xC005555555555555
  %305 = fmul double %35, 2.000000e+00
  %306 = fsub double %.0391, %299
  %307 = tail call double @llvm.fmuladd.f64(double %305, double %306, double %269)
  %308 = tail call double @llvm.fmuladd.f64(double %304, double %307, double 1.000000e+00)
  %309 = fmul double %square, 0xC015555555555555
  %310 = fmul double %square, 0x4015555555555555
  %311 = fmul double %310, %303
  %312 = tail call double @llvm.fmuladd.f64(double %309, double %.0390, double %311)
  %313 = tail call double @llvm.fmuladd.f64(double %304, double %273, double %312)
  %314 = fmul double %35, 0xC015555555555555
  %315 = fmul double %299, -2.000000e+00
  %316 = tail call double @llvm.fmuladd.f64(double %.0391, double 2.000000e+00, double %315)
  %317 = fmul double %304, %316
  %318 = tail call double @llvm.fmuladd.f64(double %314, double %306, double %317)
  %319 = tail call double @llvm.fmuladd.f64(double %269, double 0xC005555555555555, double %318)
  %320 = tail call double @llvm.fmuladd.f64(double %36, double %319, double %313)
  %321 = fmul double %30, -2.000000e+00
  %square424 = fmul double %21, %21
  %322 = fdiv double %321, %square424
  %323 = fmul double %30, 4.000000e+00
  %324 = tail call double @pow(double noundef %21, double noundef 3.000000e+00) #6
  %325 = fdiv double %323, %324
  %326 = fdiv double -2.000000e+00, %square424
  %327 = fmul double %322, 0x3FDC71C71C71C71C
  %328 = fmul double %square, 4.000000e+00
  %329 = fadd double %261, -1.000000e+00
  %330 = tail call double @llvm.fmuladd.f64(double %328, double %329, double 1.000000e+00)
  %331 = fmul double %327, %330
  %332 = tail call double @llvm.fmuladd.f64(double %308, double 2.000000e+00, double %331)
  %333 = fmul double %square, 0x3FFC71C71C71C71C
  %334 = tail call double @llvm.fmuladd.f64(double %333, double %329, double 0x3FDC71C71C71C71C)
  %335 = fmul double %333, %266
  %336 = fmul double %35, 0x400C71C71C71C71C
  %337 = fmul double %336, %36
  %338 = fmul double %322, %337
  %339 = fmul double %338, %329
  %340 = tail call double @llvm.fmuladd.f64(double %335, double %322, double %339)
  %341 = tail call double @llvm.fmuladd.f64(double %320, double 2.000000e+00, double %340)
  %342 = tail call double @llvm.fmuladd.f64(double %334, double %325, double %341)
  %343 = fmul double %326, %334
  %344 = insertelement <2 x double> poison, double %343, i64 0
  %345 = insertelement <2 x double> %344, double %342, i64 1
  br label %346

346:                                              ; preds = %297, %252
  %.1389 = phi double [ %258, %252 ], [ %332, %297 ]
  %347 = phi <2 x double> [ %257, %252 ], [ %345, %297 ]
  %348 = fcmp olt double %30, 0x3C9CD2B297D889BC
  br i1 %348, label %415, label %349

349:                                              ; preds = %346
  %350 = fdiv double 5.000000e-01, %35
  %351 = tail call double @erf(double noundef %350) #6
  %352 = fmul double %351, 0x3FFC5BF891B4EF6A
  %353 = fneg double %36
  %square457 = fmul double %35, %35
  %354 = fdiv double -2.500000e-01, %square457
  %355 = tail call double @exp(double noundef %354) #6
  %356 = fmul double %355, %353
  %357 = fdiv double %356, %square457
  %358 = fcmp olt double %35, 5.000000e+00
  br i1 %358, label %359, label %367

359:                                              ; preds = %349
  %360 = tail call double @exp(double noundef %354) #6
  %361 = fadd double %360, -1.000000e+00
  %362 = fmul double %36, 5.000000e-01
  %363 = tail call double @exp(double noundef %354) #6
  %364 = fmul double %362, %363
  %365 = tail call double @pow(double noundef %35, double noundef 3.000000e+00) #6
  %366 = fdiv double %364, %365
  br label %382

367:                                              ; preds = %349
  %368 = fdiv double 5.000000e-01, %square457
  %369 = fsub double 1.000000e+00, %368
  %370 = fmul double %369, -2.500000e-01
  %371 = fdiv double %370, %square457
  %372 = fmul double %369, 5.000000e-01
  %373 = tail call double @pow(double noundef %35, double noundef 3.000000e+00) #6
  %374 = tail call double @pow(double noundef %35, double noundef 5.000000e+00) #6
  %375 = insertelement <2 x double> <double poison, double 2.500000e-01>, double %372, i64 0
  %376 = insertelement <2 x double> poison, double %373, i64 0
  %377 = insertelement <2 x double> %376, double %374, i64 1
  %378 = fdiv <2 x double> %375, %377
  %shift478 = shufflevector <2 x double> %378, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %379 = fsub <2 x double> %378, %shift478
  %380 = extractelement <2 x double> %379, i64 0
  %381 = fmul double %36, %380
  br label %382

382:                                              ; preds = %367, %359
  %.0381 = phi double [ %366, %359 ], [ %381, %367 ]
  %.0380 = phi double [ %361, %359 ], [ %371, %367 ]
  %383 = fmul double %square457, 2.000000e+00
  %384 = tail call double @llvm.fmuladd.f64(double %383, double %.0380, double 5.000000e-01)
  %385 = fmul double %35, 4.000000e+00
  %386 = fmul double %385, %.0380
  %387 = fmul double %36, %386
  %388 = tail call double @llvm.fmuladd.f64(double %383, double %.0381, double %387)
  %389 = fmul double %35, 0xC005555555555555
  %390 = fmul double %35, 2.000000e+00
  %391 = fsub double %.0380, %384
  %392 = tail call double @llvm.fmuladd.f64(double %390, double %391, double %352)
  %393 = tail call double @llvm.fmuladd.f64(double %389, double %392, double 1.000000e+00)
  %394 = fmul double %square457, 0xC015555555555555
  %395 = fmul double %square457, 0x4015555555555555
  %396 = fmul double %395, %388
  %397 = tail call double @llvm.fmuladd.f64(double %394, double %.0381, double %396)
  %398 = tail call double @llvm.fmuladd.f64(double %389, double %357, double %397)
  %399 = fmul double %35, 0xC015555555555555
  %400 = fmul double %384, -2.000000e+00
  %401 = tail call double @llvm.fmuladd.f64(double %.0380, double 2.000000e+00, double %400)
  %402 = fmul double %389, %401
  %403 = tail call double @llvm.fmuladd.f64(double %399, double %391, double %402)
  %404 = tail call double @llvm.fmuladd.f64(double %352, double 0xC005555555555555, double %403)
  %405 = tail call double @llvm.fmuladd.f64(double %36, double %404, double %398)
  %406 = fneg double %.1389
  %407 = tail call double @llvm.fmuladd.f64(double %393, double 4.000000e+00, double %406)
  %408 = extractelement <2 x double> %347, i64 1
  %409 = fneg double %408
  %410 = tail call double @llvm.fmuladd.f64(double %405, double 4.000000e+00, double %409)
  %411 = extractelement <2 x double> %347, i64 0
  %412 = fneg double %411
  %413 = insertelement <2 x double> poison, double %412, i64 0
  %414 = insertelement <2 x double> %413, double %410, i64 1
  br label %415

415:                                              ; preds = %346, %382
  %.0385 = phi double [ %407, %382 ], [ %.1389, %346 ]
  %416 = phi <2 x double> [ %414, %382 ], [ %347, %346 ]
  %417 = fmul double %17, %.0385
  %418 = fdiv double %417, %32
  %419 = getelementptr inbounds double, ptr %2, i64 %indvars.iv
  store double %418, ptr %419, align 8, !tbaa !5
  %420 = fmul double %17, %21
  %421 = fdiv double %420, %32
  %square468 = fmul double %32, %32
  %422 = fneg double %21
  %423 = fmul double %34, %422
  %424 = fmul double %423, %.0385
  %425 = fmul double %17, %424
  %426 = fdiv double %425, %square468
  %427 = extractelement <2 x double> %416, i64 1
  %428 = tail call double @llvm.fmuladd.f64(double %421, double %427, double %426)
  %429 = fadd double %418, %428
  %430 = getelementptr inbounds double, ptr %3, i64 %19
  store double %429, ptr %430, align 8, !tbaa !5
  %431 = extractelement <2 x double> %416, i64 0
  %432 = fmul double %421, %431
  br label %433

433:                                              ; preds = %415, %23
  %.sink475 = phi i64 [ %28, %415 ], [ %26, %23 ]
  %.sink473 = phi double [ %432, %415 ], [ 0.000000e+00, %23 ]
  %434 = getelementptr inbounds double, ptr %3, i64 %.sink475
  store double %.sink473, ptr %434, align 8, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !9
}

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare double @cbrt(double noundef) local_unnamed_addr #2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass