; LLVM IR from kdrag0n/fxdsp :: external/boost/libs/math/example (autodiff_black_scholes)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Tuple_impl.0", %"struct.std::_Head_base.15" }
%"struct.std::_Tuple_impl.0" = type { %"struct.std::_Tuple_impl.1", %"struct.std::_Head_base.10" }
%"struct.std::_Tuple_impl.1" = type { %"struct.std::_Tuple_impl.2", %"struct.std::_Head_base.9" }
%"struct.std::_Tuple_impl.2" = type { %"struct.std::_Head_base" }
%"struct.std::_Head_base" = type { %"class.boost::math::differentiation::autodiff_v1::detail::fvar" }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar" = type { %"struct.std::array" }
%"struct.std::array" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.3" = type { %"struct.std::array.4" }
%"struct.std::array.4" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.5"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.5" = type { %"struct.std::array.6" }
%"struct.std::array.6" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.7"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.7" = type { %"struct.std::array.8" }
%"struct.std::array.8" = type { [2 x double] }
%"struct.std::_Head_base.9" = type { %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3" }
%"struct.std::_Head_base.10" = type { %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11" }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11" = type { %"struct.std::array.12" }
%"struct.std::array.12" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13" = type { %"struct.std::array.14" }
%"struct.std::array.14" = type { [4 x double] }
%"struct.std::_Head_base.15" = type { %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13" }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16" = type { %"struct.std::array.17" }
%"struct.std::array.17" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.18"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.18" = type { %"struct.std::array.19" }
%"struct.std::array.19" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.20"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.20" = type { %"struct.std::array.21" }
%"struct.std::array.21" = type { [2 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.7"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22" = type { %"struct.std::array.23" }
%"struct.std::array.23" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.18"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24" = type { %"struct.std::array.25" }
%"struct.std::array.25" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26" = type { %"struct.std::array.27" }
%"struct.std::array.27" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.5"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28" = type { %"struct.std::array.29" }
%"struct.std::array.29" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.30"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.30" = type { %"struct.std::array.31" }
%"struct.std::array.31" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.7"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32" = type { %"struct.std::array.33" }
%"struct.std::array.33" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.30"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34" = type { %"struct.std::array.35" }
%"struct.std::array.35" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36" = type { %"struct.std::array.37" }
%"struct.std::array.37" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.38"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.38" = type { %"struct.std::array.39" }
%"struct.std::array.39" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.20"] }
%"struct.std::_Setprecision" = type { i32 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [37 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [24 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 {
  %1 = alloca i32, align 4
  %2 = alloca double, align 8
  %3 = alloca %"class.std::tuple", align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %13 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %14 = alloca double, align 8
  %15 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %16 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %17 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %18 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %19 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %20 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.24", align 8
  %21 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %22 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %23 = alloca double, align 8
  %24 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %25 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %26 = alloca double, align 8
  %27 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %28 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %29 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %30 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %31 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %32 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.24", align 8
  %33 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %34 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %35 = alloca double, align 8
  %36 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %37 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", 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 %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %44 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %45 = alloca double, align 8
  %46 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %47 = alloca double, align 8
  %48 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %49 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %50 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %51 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %52 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %53 = alloca double, align 8
  %54 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %55 = alloca double, align 8
  %56 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %57 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %58 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %59 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %60 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %61 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %62 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %67 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %68 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %69 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %70 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %71 = alloca double, align 8
  %72 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %73 = alloca double, align 8
  %74 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %75 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %76 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %77 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %78 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %79 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %80 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %81 = alloca double, align 8
  %82 = alloca double, align 8
  %83 = alloca double, align 8
  %84 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %85 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %86 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %87 = alloca double, align 8
  %88 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %89 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %90 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %91 = alloca double, align 8
  %92 = alloca double, align 8
  %93 = alloca double, align 8
  %94 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %95 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %96 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %97 = alloca double, align 8
  %98 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %99 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %100 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %101 = alloca double, align 8
  %102 = alloca double, align 8
  %103 = alloca double, align 8
  %104 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %105 = alloca double, align 8
  %106 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %107 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %108 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %109 = alloca double, align 8
  %110 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %111 = alloca double, align 8
  %112 = alloca double, align 8
  %113 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %114 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %115 = alloca double, align 8
  %116 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %117 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %118 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %119 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %120 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %121 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %122 = alloca double, align 8
  %123 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %124 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %125 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %126 = alloca double, align 8
  %127 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %128 = alloca double, align 8
  %129 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %130 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %131 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %132 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %133 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %134 = alloca double, align 8
  %135 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %136 = alloca double, align 8
  %137 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %138 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %139 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %140 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %141 = alloca double, align 8
  %142 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %143 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %144 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %145 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %146 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %147 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %148 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %149 = alloca double, align 8
  %150 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %151 = alloca double, align 8
  %152 = alloca double, align 8
  %153 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %154 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %155 = alloca double, align 8
  %156 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %157 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %158 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %159 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %160 = alloca double, align 8
  %161 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %162 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %163 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %164 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %165 = alloca double, align 8
  %166 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %167 = alloca double, align 8
  %168 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %169 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %170 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %171 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %172 = alloca double, align 8
  %173 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %174 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %175 = alloca double, align 8
  %176 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %177 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %178 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %179 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %180 = alloca double, align 8
  %181 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %182 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %183 = alloca double, align 8
  %184 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %185 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %186 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %187 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %188 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %189 = alloca double, align 8
  %190 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %191 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %192 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %193 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %194 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %195 = alloca double, align 8
  %196 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %197 = alloca double, align 8
  %198 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %199 = alloca %"struct.std::_Setprecision", align 4
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %2) #7
  store double 1.000000e+02, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %3) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #7
  store i32 105, ptr %4, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #7
  store i32 5, ptr %5, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  store double 0x3FB50A8542A150A8, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  store double 1.250000e-02, ptr %7, align 8, !tbaa !5
  call void @_ZN5boost4math15differentiation11autodiff_v111make_ftupleIdJLm3ELm3ELm1ELm1EEJiiddEEEDaDpRKT1_(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7)
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %200 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96) %3) #7
  store ptr %200, ptr %8, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %201 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96) %3) #7
  store ptr %201, ptr %9, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %202 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm2EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96) %3) #7
  store ptr %202, ptr %10, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %203 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm3EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96) %3) #7
  store ptr %203, ptr %11, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 512, ptr %12) #7
  %204 = load ptr, ptr %8, align 8, !tbaa !11
  %205 = load ptr, ptr %9, align 8, !tbaa !11
  %206 = load ptr, ptr %10, align 8, !tbaa !11
  %207 = load ptr, ptr %11, align 8, !tbaa !11
  call void @_Z26black_scholes_option_priceIN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEENS4_14promote_args_nIT_JT0_T1_T2_EE4typeE2CPdRKSD_RKSE_RKSF_RKSG_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %12, i32 noundef 0, double noundef 1.000000e+02, ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(16) %206, ptr noundef nonnull align 8 dereferenceable(16) %207)
  call void @llvm.lifetime.start.p0(i64 512, ptr %13) #7
  %208 = load ptr, ptr %8, align 8, !tbaa !11
  %209 = load ptr, ptr %9, align 8, !tbaa !11
  %210 = load ptr, ptr %10, align 8, !tbaa !11
  %211 = load ptr, ptr %11, align 8, !tbaa !11
  call void @_Z26black_scholes_option_priceIN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEENS4_14promote_args_nIT_JT0_T1_T2_EE4typeE2CPdRKSD_RKSE_RKSF_RKSG_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %13, i32 noundef 1, double noundef 1.000000e+02, ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef nonnull align 8 dereferenceable(16) %210, ptr noundef nonnull align 8 dereferenceable(16) %211)
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #7
  %212 = load ptr, ptr %8, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEdvERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(8) %2)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3logIdLm3EEENS3_4fvarIT_XT0_EEERKS7_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18)
  call void @llvm.lifetime.start.p0(i64 128, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %20) #7
  %213 = load ptr, ptr %11, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  %214 = load ptr, ptr %9, align 8, !tbaa !11
  %215 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull align 8 dereferenceable(32) %215)
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  store double 2.000000e+00, ptr %23, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEdvERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(8) %23)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEplINS4_IdLm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24") align 8 %20, ptr noundef nonnull align 8 dereferenceable(16) %213, ptr noundef nonnull align 8 dereferenceable(32) %21)
  %216 = load ptr, ptr %10, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm3EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %19, ptr noundef nonnull align 8 dereferenceable(64) %20, ptr noundef nonnull align 8 dereferenceable(16) %216)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEplINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(128) %19)
  call void @llvm.lifetime.start.p0(i64 64, ptr %24) #7
  %217 = load ptr, ptr %9, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #7
  %218 = load ptr, ptr %10, align 8, !tbaa !11
  %219 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %218)
  %220 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %25, i32 0, i32 0
  %221 = getelementptr inbounds %"struct.std::array.4", ptr %220, i32 0, i32 0
  %222 = getelementptr inbounds { double, double }, ptr %221, i32 0, i32 0
  %223 = extractvalue { double, double } %219, 0
  store double %223, ptr %222, align 8
  %224 = getelementptr inbounds { double, double }, ptr %221, i32 0, i32 1
  %225 = extractvalue { double, double } %219, 1
  store double %225, ptr %224, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef nonnull align 8 dereferenceable(16) %25)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %15, ptr noundef nonnull align 8 dereferenceable(512) %16, ptr noundef nonnull align 8 dereferenceable(64) %24)
  %226 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %15)
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %15) #7
  store double %226, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr %27) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  %227 = load ptr, ptr %8, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEdvERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef nonnull align 8 dereferenceable(8) %2)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3logIdLm3EEENS3_4fvarIT_XT0_EEERKS7_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30)
  call void @llvm.lifetime.start.p0(i64 128, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %32) #7
  %228 = load ptr, ptr %11, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #7
  %229 = load ptr, ptr %9, align 8, !tbaa !11
  %230 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef nonnull align 8 dereferenceable(32) %230)
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  store double 2.000000e+00, ptr %35, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEdvERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(8) %35)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmiINS4_IdLm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24") align 8 %32, ptr noundef nonnull align 8 dereferenceable(16) %228, ptr noundef nonnull align 8 dereferenceable(32) %33)
  %231 = load ptr, ptr %10, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm3EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %31, ptr noundef nonnull align 8 dereferenceable(64) %32, ptr noundef nonnull align 8 dereferenceable(16) %231)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEplINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(128) %31)
  call void @llvm.lifetime.start.p0(i64 64, ptr %36) #7
  %232 = load ptr, ptr %9, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #7
  %233 = load ptr, ptr %10, align 8, !tbaa !11
  %234 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %233)
  %235 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %37, i32 0, i32 0
  %236 = getelementptr inbounds %"struct.std::array.4", ptr %235, i32 0, i32 0
  %237 = getelementptr inbounds { double, double }, ptr %236, i32 0, i32 0
  %238 = extractvalue { double, double } %234, 0
  store double %238, ptr %237, align 8
  %239 = getelementptr inbounds { double, double }, ptr %236, i32 0, i32 1
  %240 = extractvalue { double, double } %234, 1
  store double %240, ptr %239, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %232, ptr noundef nonnull align 8 dereferenceable(16) %37)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %27, ptr noundef nonnull align 8 dereferenceable(512) %28, ptr noundef nonnull align 8 dereferenceable(64) %36)
  %241 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %27)
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %27) #7
  store double %241, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  %242 = load double, ptr %14, align 8, !tbaa !5
  store double %242, ptr %39, align 8, !tbaa !5
  %243 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  store double %243, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %244 = load double, ptr %14, align 8, !tbaa !5
  %245 = fneg double %244
  store double %245, ptr %41, align 8, !tbaa !5
  %246 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %41)
  %247 = fneg double %246
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  store double %247, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %43) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #7
  %248 = load ptr, ptr %8, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %249 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  store double %249, ptr %45, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef nonnull align 8 dereferenceable(8) %45)
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #7
  %250 = load ptr, ptr %10, align 8, !tbaa !11
  %251 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %250)
  %252 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %46, i32 0, i32 0
  %253 = getelementptr inbounds %"struct.std::array.4", ptr %252, i32 0, i32 0
  %254 = getelementptr inbounds { double, double }, ptr %253, i32 0, i32 0
  %255 = extractvalue { double, double } %251, 0
  store double %255, ptr %254, align 8
  %256 = getelementptr inbounds { double, double }, ptr %253, i32 0, i32 1
  %257 = extractvalue { double, double } %251, 1
  store double %257, ptr %256, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(16) %46)
  %258 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(64) %43)
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %43) #7
  store double %258, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr %48) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #7
  %259 = load ptr, ptr %8, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEngEv(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %259)
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  %260 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  store double %260, ptr %53, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(8) %53)
  %261 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %261)
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  store double 2.000000e+00, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %56) #7
  %262 = load ptr, ptr %10, align 8, !tbaa !11
  %263 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %262)
  %264 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %56, i32 0, i32 0
  %265 = getelementptr inbounds %"struct.std::array.4", ptr %264, i32 0, i32 0
  %266 = getelementptr inbounds { double, double }, ptr %265, i32 0, i32 0
  %267 = extractvalue { double, double } %263, 0
  store double %267, ptr %266, align 8
  %268 = getelementptr inbounds { double, double }, ptr %265, i32 0, i32 1
  %269 = extractvalue { double, double } %263, 1
  store double %269, ptr %268, align 8
  %270 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(16) %56)
  %271 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %54, i32 0, i32 0
  %272 = getelementptr inbounds %"struct.std::array.4", ptr %271, i32 0, i32 0
  %273 = getelementptr inbounds { double, double }, ptr %272, i32 0, i32 0
  %274 = extractvalue { double, double } %270, 0
  store double %274, ptr %273, align 8
  %275 = getelementptr inbounds { double, double }, ptr %272, i32 0, i32 1
  %276 = extractvalue { double, double } %270, 1
  store double %276, ptr %275, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEdvINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %49, ptr noundef nonnull align 8 dereferenceable(128) %50, ptr noundef nonnull align 8 dereferenceable(16) %54)
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #7
  %277 = load ptr, ptr %11, align 8, !tbaa !11
  %278 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlERKd(ptr noundef nonnull align 8 dereferenceable(16) %277, ptr noundef nonnull align 8 dereferenceable(8) %2)
  %279 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar", ptr %59, i32 0, i32 0
  %280 = getelementptr inbounds %"struct.std::array", ptr %279, i32 0, i32 0
  %281 = getelementptr inbounds { double, double }, ptr %280, i32 0, i32 0
  %282 = extractvalue { double, double } %278, 0
  store double %282, ptr %281, align 8
  %283 = getelementptr inbounds { double, double }, ptr %280, i32 0, i32 1
  %284 = extractvalue { double, double } %278, 1
  store double %284, ptr %283, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #7
  %285 = load ptr, ptr %11, align 8, !tbaa !11
  %286 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16) %285)
  %287 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar", ptr %62, i32 0, i32 0
  %288 = getelementptr inbounds %"struct.std::array", ptr %287, i32 0, i32 0
  %289 = getelementptr inbounds { double, double }, ptr %288, i32 0, i32 0
  %290 = extractvalue { double, double } %286, 0
  store double %290, ptr %289, align 8
  %291 = getelementptr inbounds { double, double }, ptr %288, i32 0, i32 1
  %292 = extractvalue { double, double } %286, 1
  store double %292, ptr %291, align 8
  %293 = load ptr, ptr %10, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %61, ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 8 dereferenceable(16) %293)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %61)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSE_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %58, ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef nonnull align 8 dereferenceable(32) %60)
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  %294 = load double, ptr %26, align 8, !tbaa !5
  store double %294, ptr %64, align 8, !tbaa !5
  %295 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %64)
  store double %295, ptr %63, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(8) %63)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmiINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %48, ptr noundef nonnull align 8 dereferenceable(256) %49, ptr noundef nonnull align 8 dereferenceable(32) %57)
  %296 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %48) #7
  store double %296, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #7
  %297 = load ptr, ptr %8, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEngEv(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %297)
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #7
  %298 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  store double %298, ptr %71, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(8) %71)
  %299 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %299)
  call void @llvm.lifetime.start.p0(i64 16, ptr %72) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  store double 2.000000e+00, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %74) #7
  %300 = load ptr, ptr %10, align 8, !tbaa !11
  %301 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %300)
  %302 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %74, i32 0, i32 0
  %303 = getelementptr inbounds %"struct.std::array.4", ptr %302, i32 0, i32 0
  %304 = getelementptr inbounds { double, double }, ptr %303, i32 0, i32 0
  %305 = extractvalue { double, double } %301, 0
  store double %305, ptr %304, align 8
  %306 = getelementptr inbounds { double, double }, ptr %303, i32 0, i32 1
  %307 = extractvalue { double, double } %301, 1
  store double %307, ptr %306, align 8
  %308 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(16) %74)
  %309 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %72, i32 0, i32 0
  %310 = getelementptr inbounds %"struct.std::array.4", ptr %309, i32 0, i32 0
  %311 = getelementptr inbounds { double, double }, ptr %310, i32 0, i32 0
  %312 = extractvalue { double, double } %308, 0
  store double %312, ptr %311, align 8
  %313 = getelementptr inbounds { double, double }, ptr %310, i32 0, i32 1
  %314 = extractvalue { double, double } %308, 1
  store double %314, ptr %313, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEdvINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %67, ptr noundef nonnull align 8 dereferenceable(128) %68, ptr noundef nonnull align 8 dereferenceable(16) %72)
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %77) #7
  %315 = load ptr, ptr %11, align 8, !tbaa !11
  %316 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlERKd(ptr noundef nonnull align 8 dereferenceable(16) %315, ptr noundef nonnull align 8 dereferenceable(8) %2)
  %317 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar", ptr %77, i32 0, i32 0
  %318 = getelementptr inbounds %"struct.std::array", ptr %317, i32 0, i32 0
  %319 = getelementptr inbounds { double, double }, ptr %318, i32 0, i32 0
  %320 = extractvalue { double, double } %316, 0
  store double %320, ptr %319, align 8
  %321 = getelementptr inbounds { double, double }, ptr %318, i32 0, i32 1
  %322 = extractvalue { double, double } %316, 1
  store double %322, ptr %321, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %80) #7
  %323 = load ptr, ptr %11, align 8, !tbaa !11
  %324 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16) %323)
  %325 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar", ptr %80, i32 0, i32 0
  %326 = getelementptr inbounds %"struct.std::array", ptr %325, i32 0, i32 0
  %327 = getelementptr inbounds { double, double }, ptr %326, i32 0, i32 0
  %328 = extractvalue { double, double } %324, 0
  store double %328, ptr %327, align 8
  %329 = getelementptr inbounds { double, double }, ptr %326, i32 0, i32 1
  %330 = extractvalue { double, double } %324, 1
  store double %330, ptr %329, align 8
  %331 = load ptr, ptr %10, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %79, ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef nonnull align 8 dereferenceable(16) %331)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSE_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %76, ptr noundef nonnull align 8 dereferenceable(16) %77, ptr noundef nonnull align 8 dereferenceable(32) %78)
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %332 = load double, ptr %26, align 8, !tbaa !5
  %333 = fneg double %332
  store double %333, ptr %82, align 8, !tbaa !5
  %334 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %82)
  store double %334, ptr %81, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(8) %81)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEplINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %66, ptr noundef nonnull align 8 dereferenceable(256) %67, ptr noundef nonnull align 8 dereferenceable(32) %75)
  %335 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %66) #7
  store double %335, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #7
  store double 1.000000e+02, ptr %87, align 8, !tbaa !5
  %336 = load ptr, ptr %10, align 8, !tbaa !11
  %337 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(16) %336)
  %338 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %86, i32 0, i32 0
  %339 = getelementptr inbounds %"struct.std::array.4", ptr %338, i32 0, i32 0
  %340 = getelementptr inbounds { double, double }, ptr %339, i32 0, i32 0
  %341 = extractvalue { double, double } %337, 0
  store double %341, ptr %340, align 8
  %342 = getelementptr inbounds { double, double }, ptr %339, i32 0, i32 1
  %343 = extractvalue { double, double } %337, 1
  store double %343, ptr %342, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #7
  %344 = load ptr, ptr %11, align 8, !tbaa !11
  %345 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16) %344)
  %346 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar", ptr %90, i32 0, i32 0
  %347 = getelementptr inbounds %"struct.std::array", ptr %346, i32 0, i32 0
  %348 = getelementptr inbounds { double, double }, ptr %347, i32 0, i32 0
  %349 = extractvalue { double, double } %345, 0
  store double %349, ptr %348, align 8
  %350 = getelementptr inbounds { double, double }, ptr %347, i32 0, i32 1
  %351 = extractvalue { double, double } %345, 1
  store double %351, ptr %350, align 8
  %352 = load ptr, ptr %10, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %89, ptr noundef nonnull align 8 dereferenceable(16) %90, ptr noundef nonnull align 8 dereferenceable(16) %352)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %85, ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 8 dereferenceable(32) %88)
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #7
  %353 = load double, ptr %26, align 8, !tbaa !5
  store double %353, ptr %92, align 8, !tbaa !5
  %354 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %92)
  store double %354, ptr %91, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %84, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(8) %91)
  %355 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %84)
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  store double %355, ptr %83, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %96) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #7
  store double -1.000000e+02, ptr %97, align 8, !tbaa !5
  %356 = load ptr, ptr %10, align 8, !tbaa !11
  %357 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(16) %356)
  %358 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %96, i32 0, i32 0
  %359 = getelementptr inbounds %"struct.std::array.4", ptr %358, i32 0, i32 0
  %360 = getelementptr inbounds { double, double }, ptr %359, i32 0, i32 0
  %361 = extractvalue { double, double } %357, 0
  store double %361, ptr %360, align 8
  %362 = getelementptr inbounds { double, double }, ptr %359, i32 0, i32 1
  %363 = extractvalue { double, double } %357, 1
  store double %363, ptr %362, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %100) #7
  %364 = load ptr, ptr %11, align 8, !tbaa !11
  %365 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16) %364)
  %366 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar", ptr %100, i32 0, i32 0
  %367 = getelementptr inbounds %"struct.std::array", ptr %366, i32 0, i32 0
  %368 = getelementptr inbounds { double, double }, ptr %367, i32 0, i32 0
  %369 = extractvalue { double, double } %365, 0
  store double %369, ptr %368, align 8
  %370 = getelementptr inbounds { double, double }, ptr %367, i32 0, i32 1
  %371 = extractvalue { double, double } %365, 1
  store double %371, ptr %370, align 8
  %372 = load ptr, ptr %10, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %99, ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 8 dereferenceable(16) %372)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %99)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %95, ptr noundef nonnull align 8 dereferenceable(16) %96, ptr noundef nonnull align 8 dereferenceable(32) %98)
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #7
  %373 = load double, ptr %26, align 8, !tbaa !5
  %374 = fneg double %373
  store double %374, ptr %102, align 8, !tbaa !5
  %375 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %102)
  store double %375, ptr %101, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(8) %101)
  %376 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %94)
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  store double %376, ptr %93, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr %104) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #7
  %377 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  store double %377, ptr %105, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %106) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %107) #7
  %378 = load ptr, ptr %8, align 8, !tbaa !11
  %379 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef nonnull align 8 dereferenceable(32) %379)
  call void @llvm.lifetime.start.p0(i64 16, ptr %108) #7
  %380 = load ptr, ptr %10, align 8, !tbaa !11
  %381 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %380)
  %382 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %108, i32 0, i32 0
  %383 = getelementptr inbounds %"struct.std::array.4", ptr %382, i32 0, i32 0
  %384 = getelementptr inbounds { double, double }, ptr %383, i32 0, i32 0
  %385 = extractvalue { double, double } %381, 0
  store double %385, ptr %384, align 8
  %386 = getelementptr inbounds { double, double }, ptr %383, i32 0, i32 1
  %387 = extractvalue { double, double } %381, 1
  store double %387, ptr %386, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %106, ptr noundef nonnull align 8 dereferenceable(128) %107, ptr noundef nonnull align 8 dereferenceable(16) %108)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm3EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %104, ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 8 dereferenceable(256) %106)
  %388 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256) %104)
  call void @llvm.lifetime.end.p0(i64 16, ptr %108) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %107) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %106) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %104) #7
  store double %388, ptr %103, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #7
  %389 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  %390 = fneg double %389
  %391 = load double, ptr %26, align 8, !tbaa !5
  %392 = fmul double %390, %391
  store double %392, ptr %111, align 8, !tbaa !5
  %393 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %110, ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(32) %393)
  %394 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %110)
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  store double %394, ptr %109, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %113) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %114) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #7
  %395 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  store double %395, ptr %115, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 128, ptr %116) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %117) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #7
  %396 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %118, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(32) %396)
  call void @llvm.lifetime.start.p0(i64 16, ptr %119) #7
  %397 = load ptr, ptr %10, align 8, !tbaa !11
  %398 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %397)
  %399 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %119, i32 0, i32 0
  %400 = getelementptr inbounds %"struct.std::array.4", ptr %399, i32 0, i32 0
  %401 = getelementptr inbounds { double, double }, ptr %400, i32 0, i32 0
  %402 = extractvalue { double, double } %398, 0
  store double %402, ptr %401, align 8
  %403 = getelementptr inbounds { double, double }, ptr %400, i32 0, i32 1
  %404 = extractvalue { double, double } %398, 1
  store double %404, ptr %403, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %117, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(16) %119)
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #7
  store double 2.000000e+00, ptr %122, align 8, !tbaa !5
  %405 = load ptr, ptr %11, align 8, !tbaa !11
  %406 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm0EEELm0EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(16) %405)
  %407 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar", ptr %121, i32 0, i32 0
  %408 = getelementptr inbounds %"struct.std::array", ptr %407, i32 0, i32 0
  %409 = getelementptr inbounds { double, double }, ptr %408, i32 0, i32 0
  %410 = extractvalue { double, double } %406, 0
  store double %410, ptr %409, align 8
  %411 = getelementptr inbounds { double, double }, ptr %408, i32 0, i32 1
  %412 = extractvalue { double, double } %406, 1
  store double %412, ptr %411, align 8
  %413 = load ptr, ptr %10, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %120, ptr noundef nonnull align 8 dereferenceable(16) %121, ptr noundef nonnull align 8 dereferenceable(16) %413)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEmiINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %116, ptr noundef nonnull align 8 dereferenceable(64) %117, ptr noundef nonnull align 8 dereferenceable(32) %120)
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %114, ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(128) %116)
  call void @llvm.lifetime.start.p0(i64 64, ptr %123) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %124) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %125) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #7
  store double 2.000000e+00, ptr %126, align 8, !tbaa !5
  %414 = load ptr, ptr %10, align 8, !tbaa !11
  %415 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(16) %414)
  %416 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %125, i32 0, i32 0
  %417 = getelementptr inbounds %"struct.std::array.4", ptr %416, i32 0, i32 0
  %418 = getelementptr inbounds { double, double }, ptr %417, i32 0, i32 0
  %419 = extractvalue { double, double } %415, 0
  store double %419, ptr %418, align 8
  %420 = getelementptr inbounds { double, double }, ptr %417, i32 0, i32 1
  %421 = extractvalue { double, double } %415, 1
  store double %421, ptr %420, align 8
  %422 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %124, ptr noundef nonnull align 8 dereferenceable(16) %125, ptr noundef nonnull align 8 dereferenceable(32) %422)
  call void @llvm.lifetime.start.p0(i64 16, ptr %127) #7
  %423 = load ptr, ptr %10, align 8, !tbaa !11
  %424 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %423)
  %425 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %127, i32 0, i32 0
  %426 = getelementptr inbounds %"struct.std::array.4", ptr %425, i32 0, i32 0
  %427 = getelementptr inbounds { double, double }, ptr %426, i32 0, i32 0
  %428 = extractvalue { double, double } %424, 0
  store double %428, ptr %427, align 8
  %429 = getelementptr inbounds { double, double }, ptr %426, i32 0, i32 1
  %430 = extractvalue { double, double } %424, 1
  store double %430, ptr %429, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEmlINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %123, ptr noundef nonnull align 8 dereferenceable(64) %124, ptr noundef nonnull align 8 dereferenceable(16) %127)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %113, ptr noundef nonnull align 8 dereferenceable(128) %114, ptr noundef nonnull align 8 dereferenceable(64) %123)
  %431 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(128) %113)
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %124) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %119) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %116) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %113) #7
  store double %431, ptr %112, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr %129) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %130) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %131) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %132) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #7
  %432 = load ptr, ptr %8, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #7
  %433 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  store double %433, ptr %134, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %133, ptr noundef nonnull align 8 dereferenceable(32) %432, ptr noundef nonnull align 8 dereferenceable(8) %134)
  call void @llvm.lifetime.start.p0(i64 16, ptr %135) #7
  %434 = load ptr, ptr %10, align 8, !tbaa !11
  %435 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %436 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %135, i32 0, i32 0
  %437 = getelementptr inbounds %"struct.std::array.4", ptr %436, i32 0, i32 0
  %438 = getelementptr inbounds { double, double }, ptr %437, i32 0, i32 0
  %439 = extractvalue { double, double } %435, 0
  store double %439, ptr %438, align 8
  %440 = getelementptr inbounds { double, double }, ptr %437, i32 0, i32 1
  %441 = extractvalue { double, double } %435, 1
  store double %441, ptr %440, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %132, ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(16) %135)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %131, ptr noundef nonnull align 8 dereferenceable(64) %132, ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %130, ptr noundef nonnull align 8 dereferenceable(64) %131, ptr noundef nonnull align 8 dereferenceable(8) %26)
  %442 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEdvINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %129, ptr noundef nonnull align 8 dereferenceable(64) %130, ptr noundef nonnull align 8 dereferenceable(32) %442)
  %443 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256) %129)
  call void @llvm.lifetime.end.p0(i64 16, ptr %135) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %132) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %131) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %129) #7
  store double %443, ptr %128, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr %137) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %138) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %140) #7
  %444 = load ptr, ptr %8, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEngEv(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %140, ptr noundef nonnull align 8 dereferenceable(32) %444)
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #7
  %445 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  store double %445, ptr %141, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %139, ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(8) %141)
  call void @llvm.lifetime.start.p0(i64 16, ptr %142) #7
  %446 = load ptr, ptr %10, align 8, !tbaa !11
  %447 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %446)
  %448 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %142, i32 0, i32 0
  %449 = getelementptr inbounds %"struct.std::array.4", ptr %448, i32 0, i32 0
  %450 = getelementptr inbounds { double, double }, ptr %449, i32 0, i32 0
  %451 = extractvalue { double, double } %447, 0
  store double %451, ptr %450, align 8
  %452 = getelementptr inbounds { double, double }, ptr %449, i32 0, i32 1
  %453 = extractvalue { double, double } %447, 1
  store double %453, ptr %452, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %138, ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull align 8 dereferenceable(16) %142)
  call void @llvm.lifetime.start.p0(i64 128, ptr %143) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %144) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %145) #7
  %454 = load ptr, ptr %11, align 8, !tbaa !11
  %455 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlERKd(ptr noundef nonnull align 8 dereferenceable(16) %454, ptr noundef nonnull align 8 dereferenceable(8) %14)
  %456 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar", ptr %145, i32 0, i32 0
  %457 = getelementptr inbounds %"struct.std::array", ptr %456, i32 0, i32 0
  %458 = getelementptr inbounds { double, double }, ptr %457, i32 0, i32 0
  %459 = extractvalue { double, double } %455, 0
  store double %459, ptr %458, align 8
  %460 = getelementptr inbounds { double, double }, ptr %457, i32 0, i32 1
  %461 = extractvalue { double, double } %455, 1
  store double %461, ptr %460, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %146) #7
  %462 = load ptr, ptr %9, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %147) #7
  %463 = load ptr, ptr %10, align 8, !tbaa !11
  %464 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %463)
  %465 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %147, i32 0, i32 0
  %466 = getelementptr inbounds %"struct.std::array.4", ptr %465, i32 0, i32 0
  %467 = getelementptr inbounds { double, double }, ptr %466, i32 0, i32 0
  %468 = extractvalue { double, double } %464, 0
  store double %468, ptr %467, align 8
  %469 = getelementptr inbounds { double, double }, ptr %466, i32 0, i32 1
  %470 = extractvalue { double, double } %464, 1
  store double %470, ptr %469, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %146, ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef nonnull align 8 dereferenceable(16) %147)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %144, ptr noundef nonnull align 8 dereferenceable(16) %145, ptr noundef nonnull align 8 dereferenceable(64) %146)
  call void @llvm.lifetime.start.p0(i64 16, ptr %148) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #7
  %471 = load double, ptr %14, align 8, !tbaa !5
  %472 = load double, ptr %26, align 8, !tbaa !5
  %473 = call double @llvm.fmuladd.f64(double %471, double %472, double 1.000000e+00)
  store double %473, ptr %149, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %150) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #7
  store double 2.000000e+00, ptr %151, align 8, !tbaa !5
  %474 = load ptr, ptr %10, align 8, !tbaa !11
  %475 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef nonnull align 8 dereferenceable(16) %474)
  %476 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %150, i32 0, i32 0
  %477 = getelementptr inbounds %"struct.std::array.4", ptr %476, i32 0, i32 0
  %478 = getelementptr inbounds { double, double }, ptr %477, i32 0, i32 0
  %479 = extractvalue { double, double } %475, 0
  store double %479, ptr %478, align 8
  %480 = getelementptr inbounds { double, double }, ptr %477, i32 0, i32 1
  %481 = extractvalue { double, double } %475, 1
  store double %481, ptr %480, align 8
  %482 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef nonnull align 8 dereferenceable(16) %150)
  %483 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %148, i32 0, i32 0
  %484 = getelementptr inbounds %"struct.std::array.4", ptr %483, i32 0, i32 0
  %485 = getelementptr inbounds { double, double }, ptr %484, i32 0, i32 0
  %486 = extractvalue { double, double } %482, 0
  store double %486, ptr %485, align 8
  %487 = getelementptr inbounds { double, double }, ptr %484, i32 0, i32 1
  %488 = extractvalue { double, double } %482, 1
  store double %488, ptr %487, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEmiINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %143, ptr noundef nonnull align 8 dereferenceable(128) %144, ptr noundef nonnull align 8 dereferenceable(16) %148)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlINS4_INS4_IS5_Lm1EEELm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %137, ptr noundef nonnull align 8 dereferenceable(64) %138, ptr noundef nonnull align 8 dereferenceable(128) %143)
  %489 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %137)
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %150) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %148) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %146) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %144) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %143) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %142) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %137) #7
  store double %489, ptr %136, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr %153) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %154) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #7
  %490 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  %491 = fneg double %490
  store double %491, ptr %155, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr %156) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %157) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %158) #7
  %492 = load ptr, ptr %9, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %159) #7
  %493 = load ptr, ptr %10, align 8, !tbaa !11
  %494 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %493)
  %495 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %159, i32 0, i32 0
  %496 = getelementptr inbounds %"struct.std::array.4", ptr %495, i32 0, i32 0
  %497 = getelementptr inbounds { double, double }, ptr %496, i32 0, i32 0
  %498 = extractvalue { double, double } %494, 0
  store double %498, ptr %497, align 8
  %499 = getelementptr inbounds { double, double }, ptr %496, i32 0, i32 1
  %500 = extractvalue { double, double } %494, 1
  store double %500, ptr %499, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %158, ptr noundef nonnull align 8 dereferenceable(32) %492, ptr noundef nonnull align 8 dereferenceable(16) %159)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %157, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(64) %158)
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #7
  store double 1.000000e+00, ptr %160, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEplERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %156, ptr noundef nonnull align 8 dereferenceable(64) %157, ptr noundef nonnull align 8 dereferenceable(8) %160)
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %154, ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull align 8 dereferenceable(64) %156)
  call void @llvm.lifetime.start.p0(i64 256, ptr %161) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %162) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %163) #7
  %501 = load ptr, ptr %8, align 8, !tbaa !11
  %502 = load ptr, ptr %8, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIdLm3EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %163, ptr noundef nonnull align 8 dereferenceable(32) %501, ptr noundef nonnull align 8 dereferenceable(32) %502)
  %503 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %162, ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull align 8 dereferenceable(32) %503)
  call void @llvm.lifetime.start.p0(i64 16, ptr %164) #7
  %504 = load ptr, ptr %10, align 8, !tbaa !11
  %505 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %504)
  %506 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %164, i32 0, i32 0
  %507 = getelementptr inbounds %"struct.std::array.4", ptr %506, i32 0, i32 0
  %508 = getelementptr inbounds { double, double }, ptr %507, i32 0, i32 0
  %509 = extractvalue { double, double } %505, 0
  store double %509, ptr %508, align 8
  %510 = getelementptr inbounds { double, double }, ptr %507, i32 0, i32 1
  %511 = extractvalue { double, double } %505, 1
  store double %511, ptr %510, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %161, ptr noundef nonnull align 8 dereferenceable(128) %162, ptr noundef nonnull align 8 dereferenceable(16) %164)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEdvIS6_Lm3EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %153, ptr noundef nonnull align 8 dereferenceable(64) %154, ptr noundef nonnull align 8 dereferenceable(256) %161)
  %512 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256) %153)
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %162) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %161) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %158) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %157) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %156) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %154) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %153) #7
  store double %512, ptr %152, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr %166) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #7
  %513 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  %514 = load double, ptr %14, align 8, !tbaa !5
  %515 = load double, ptr %26, align 8, !tbaa !5
  %516 = call double @llvm.fmuladd.f64(double %514, double %515, double -1.000000e+00)
  %517 = fmul double %513, %516
  store double %517, ptr %167, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %168) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %169) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %170) #7
  %518 = load ptr, ptr %8, align 8, !tbaa !11
  %519 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %170, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
  %520 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %169, ptr noundef nonnull align 8 dereferenceable(128) %170, ptr noundef nonnull align 8 dereferenceable(32) %520)
  call void @llvm.lifetime.start.p0(i64 16, ptr %171) #7
  %521 = load ptr, ptr %10, align 8, !tbaa !11
  %522 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %521)
  %523 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %171, i32 0, i32 0
  %524 = getelementptr inbounds %"struct.std::array.4", ptr %523, i32 0, i32 0
  %525 = getelementptr inbounds { double, double }, ptr %524, i32 0, i32 0
  %526 = extractvalue { double, double } %522, 0
  store double %526, ptr %525, align 8
  %527 = getelementptr inbounds { double, double }, ptr %524, i32 0, i32 1
  %528 = extractvalue { double, double } %522, 1
  store double %528, ptr %527, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %168, ptr noundef nonnull align 8 dereferenceable(128) %169, ptr noundef nonnull align 8 dereferenceable(16) %171)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm3EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %166, ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef nonnull align 8 dereferenceable(256) %168)
  %529 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256) %166)
  call void @llvm.lifetime.end.p0(i64 16, ptr %171) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %170) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %168) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %166) #7
  store double %529, ptr %165, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr %173) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr %174) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #7
  %530 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %14)
  %531 = fneg double %530
  store double %531, ptr %175, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %176) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr %177) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %178) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %179) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #7
  store double 2.000000e+00, ptr %180, align 8, !tbaa !5
  %532 = load ptr, ptr %8, align 8, !tbaa !11
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlIdLm3EEENS3_4fvarIT_XT0_EEERKNS7_9root_typeERKS7_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %179, ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef nonnull align 8 dereferenceable(32) %532)
  %533 = load ptr, ptr %10, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %178, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(16) %533)
  %534 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %177, ptr noundef nonnull align 8 dereferenceable(64) %178, ptr noundef nonnull align 8 dereferenceable(32) %534)
  call void @llvm.lifetime.start.p0(i64 16, ptr %181) #7
  %535 = load ptr, ptr %10, align 8, !tbaa !11
  %536 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %535)
  %537 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %181, i32 0, i32 0
  %538 = getelementptr inbounds %"struct.std::array.4", ptr %537, i32 0, i32 0
  %539 = getelementptr inbounds { double, double }, ptr %538, i32 0, i32 0
  %540 = extractvalue { double, double } %536, 0
  store double %540, ptr %539, align 8
  %541 = getelementptr inbounds { double, double }, ptr %538, i32 0, i32 1
  %542 = extractvalue { double, double } %536, 1
  store double %542, ptr %541, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmlINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %176, ptr noundef nonnull align 8 dereferenceable(256) %177, ptr noundef nonnull align 8 dereferenceable(16) %181)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm3EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %174, ptr noundef nonnull align 8 dereferenceable(8) %175, ptr noundef nonnull align 8 dereferenceable(256) %176)
  call void @llvm.lifetime.start.p0(i64 128, ptr %182) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #7
  store double 1.000000e+00, ptr %183, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 128, ptr %184) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %185) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr %186) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %187) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %188) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #7
  store double 2.000000e+00, ptr %189, align 8, !tbaa !5
  %543 = load ptr, ptr %11, align 8, !tbaa !11
  %544 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm0EEELm0EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef nonnull align 8 dereferenceable(16) %543)
  %545 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar", ptr %188, i32 0, i32 0
  %546 = getelementptr inbounds %"struct.std::array", ptr %545, i32 0, i32 0
  %547 = getelementptr inbounds { double, double }, ptr %546, i32 0, i32 0
  %548 = extractvalue { double, double } %544, 0
  store double %548, ptr %547, align 8
  %549 = getelementptr inbounds { double, double }, ptr %546, i32 0, i32 1
  %550 = extractvalue { double, double } %544, 1
  store double %550, ptr %549, align 8
  %551 = load ptr, ptr %10, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %187, ptr noundef nonnull align 8 dereferenceable(16) %188, ptr noundef nonnull align 8 dereferenceable(16) %551)
  call void @llvm.lifetime.start.p0(i64 64, ptr %190) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %191) #7
  %552 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %191, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(32) %552)
  call void @llvm.lifetime.start.p0(i64 16, ptr %192) #7
  %553 = load ptr, ptr %10, align 8, !tbaa !11
  %554 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %553)
  %555 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %192, i32 0, i32 0
  %556 = getelementptr inbounds %"struct.std::array.4", ptr %555, i32 0, i32 0
  %557 = getelementptr inbounds { double, double }, ptr %556, i32 0, i32 0
  %558 = extractvalue { double, double } %554, 0
  store double %558, ptr %557, align 8
  %559 = getelementptr inbounds { double, double }, ptr %556, i32 0, i32 1
  %560 = extractvalue { double, double } %554, 1
  store double %560, ptr %559, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %190, ptr noundef nonnull align 8 dereferenceable(32) %191, ptr noundef nonnull align 8 dereferenceable(16) %192)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmiINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %186, ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull align 8 dereferenceable(64) %190)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEmlERKd(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %185, ptr noundef nonnull align 8 dereferenceable(128) %186, ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @llvm.lifetime.start.p0(i64 64, ptr %193) #7
  %561 = load ptr, ptr %9, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %194) #7
  %562 = load ptr, ptr %10, align 8, !tbaa !11
  %563 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %562)
  %564 = getelementptr inbounds %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", ptr %194, i32 0, i32 0
  %565 = getelementptr inbounds %"struct.std::array.4", ptr %564, i32 0, i32 0
  %566 = getelementptr inbounds { double, double }, ptr %565, i32 0, i32 0
  %567 = extractvalue { double, double } %563, 0
  store double %567, ptr %566, align 8
  %568 = getelementptr inbounds { double, double }, ptr %565, i32 0, i32 1
  %569 = extractvalue { double, double } %563, 1
  store double %569, ptr %568, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %193, ptr noundef nonnull align 8 dereferenceable(32) %561, ptr noundef nonnull align 8 dereferenceable(16) %194)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %184, ptr noundef nonnull align 8 dereferenceable(128) %185, ptr noundef nonnull align 8 dereferenceable(64) %193)
  call void @_ZN5boost4math15differentiation11autodiff_v16detailplINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %182, ptr noundef nonnull align 8 dereferenceable(8) %183, ptr noundef nonnull align 8 dereferenceable(128) %184)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmlINS4_INS4_IS5_Lm1EEELm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %173, ptr noundef nonnull align 8 dereferenceable(256) %174, ptr noundef nonnull align 8 dereferenceable(128) %182)
  %570 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %173)
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %192) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %191) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %190) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %188) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %187) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %186) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %185) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %184) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr %182) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %181) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %179) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %178) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %176) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %174) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %173) #7
  store double %570, ptr %172, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #7
  %571 = load double, ptr %42, align 8, !tbaa !5
  %572 = fneg double %571
  call void @llvm.lifetime.start.p0(i64 32, ptr %196) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #7
  %573 = load double, ptr %14, align 8, !tbaa !5
  %574 = load double, ptr %26, align 8, !tbaa !5
  %575 = fmul double %573, %574
  %576 = load double, ptr %14, align 8, !tbaa !5
  %577 = load double, ptr %26, align 8, !tbaa !5
  %578 = fneg double %576
  %579 = call double @llvm.fmuladd.f64(double %578, double %577, double 1.000000e+00)
  %580 = load double, ptr %14, align 8, !tbaa !5
  %581 = load double, ptr %14, align 8, !tbaa !5
  %582 = fmul double %580, %581
  %583 = call double @llvm.fmuladd.f64(double %575, double %579, double %582)
  %584 = load double, ptr %26, align 8, !tbaa !5
  %585 = load double, ptr %26, align 8, !tbaa !5
  %586 = call double @llvm.fmuladd.f64(double %584, double %585, double %583)
  store double %586, ptr %197, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %198) #7
  %587 = load ptr, ptr %9, align 8, !tbaa !11
  %588 = load ptr, ptr %9, align 8, !tbaa !11
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %198, ptr noundef nonnull align 8 dereferenceable(32) %587, ptr noundef nonnull align 8 dereferenceable(32) %588)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %196, ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull align 8 dereferenceable(32) %198)
  %589 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %196)
  %590 = fmul double %572, %589
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #7
  store double %590, ptr %195, align 8, !tbaa !5
  %591 = call i32 @_ZSt12setprecisioni(i32 noundef 15)
  %592 = getelementptr inbounds %"struct.std::_Setprecision", ptr %199, i32 0, i32 0
  store i32 %591, ptr %592, align 4
  %593 = getelementptr inbounds %"struct.std::_Setprecision", ptr %199, i32 0, i32 0
  %594 = load i32, ptr %593, align 4
  %595 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 %594)
  %596 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %595, ptr noundef @.str)
  %597 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %598 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %596, double noundef %597)
  %599 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %598, i8 noundef signext 10)
  %600 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %599, ptr noundef @.str.1)
  %601 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %602 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %600, double noundef %601)
  %603 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %602, i8 noundef signext 10)
  %604 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %603, ptr noundef @.str.2)
  %605 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %604, ptr noundef @.str.3)
  %606 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %607 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %605, double noundef %606)
  %608 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %607, i8 noundef signext 10)
  %609 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %608, ptr noundef @.str.4)
  %610 = load double, ptr %38, align 8, !tbaa !5
  %611 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %609, double noundef %610)
  %612 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %611, i8 noundef signext 10)
  %613 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %612, ptr noundef @.str.5)
  %614 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %615 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %613, double noundef %614)
  %616 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %615, i8 noundef signext 10)
  %617 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %616, ptr noundef @.str.6)
  %618 = load double, ptr %42, align 8, !tbaa !5
  %619 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %617, double noundef %618)
  %620 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %619, i8 noundef signext 10)
  %621 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef @.str.7)
  %622 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 0, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %623 = fneg double %622
  %624 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %621, double noundef %623)
  %625 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %624, i8 noundef signext 10)
  %626 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %625, ptr noundef @.str.8)
  %627 = load double, ptr %47, align 8, !tbaa !5
  %628 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %626, double noundef %627)
  %629 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %628, i8 noundef signext 10)
  %630 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %629, ptr noundef @.str.9)
  %631 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %632 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %630, double noundef %631)
  %633 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %632, i8 noundef signext 10)
  %634 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %633, ptr noundef @.str.10)
  %635 = load double, ptr %83, align 8, !tbaa !5
  %636 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %634, double noundef %635)
  %637 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %636, i8 noundef signext 10)
  %638 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %637, i8 noundef signext 10)
  %639 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %638, ptr noundef @.str.11)
  %640 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %641 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %639, double noundef %640)
  %642 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %641, i8 noundef signext 10)
  %643 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %642, ptr noundef @.str.12)
  %644 = load double, ptr %40, align 8, !tbaa !5
  %645 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %643, double noundef %644)
  %646 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %645, i8 noundef signext 10)
  %647 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef @.str.13)
  %648 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %649 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %647, double noundef %648)
  %650 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %649, i8 noundef signext 10)
  %651 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %650, ptr noundef @.str.14)
  %652 = load double, ptr %42, align 8, !tbaa !5
  %653 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %651, double noundef %652)
  %654 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %653, i8 noundef signext 10)
  %655 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %654, ptr noundef @.str.15)
  %656 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 0, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %657 = fneg double %656
  %658 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %655, double noundef %657)
  %659 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %658, i8 noundef signext 10)
  %660 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %659, ptr noundef @.str.16)
  %661 = load double, ptr %65, align 8, !tbaa !5
  %662 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %660, double noundef %661)
  %663 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %662, i8 noundef signext 10)
  %664 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %663, ptr noundef @.str.17)
  %665 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %666 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %664, double noundef %665)
  %667 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %666, i8 noundef signext 10)
  %668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %667, ptr noundef @.str.18)
  %669 = load double, ptr %93, align 8, !tbaa !5
  %670 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %668, double noundef %669)
  %671 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %670, i8 noundef signext 10)
  %672 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %671, ptr noundef @.str.19)
  %673 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %672, ptr noundef @.str.20)
  %674 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 2, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %675 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %673, double noundef %674)
  %676 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %675, i8 noundef signext 10)
  %677 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %676, ptr noundef @.str.21)
  %678 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 2, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %679 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %677, double noundef %678)
  %680 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %679, i8 noundef signext 10)
  %681 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %680, ptr noundef @.str.22)
  %682 = load double, ptr %103, align 8, !tbaa !5
  %683 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %681, double noundef %682)
  %684 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %683, i8 noundef signext 10)
  %685 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %684, ptr noundef @.str.23)
  %686 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 1, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %687 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %685, double noundef %686)
  %688 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %687, i8 noundef signext 10)
  %689 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %688, ptr noundef @.str.24)
  %690 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 1, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %691 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %689, double noundef %690)
  %692 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %691, i8 noundef signext 10)
  %693 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %692, ptr noundef @.str.25)
  %694 = load double, ptr %109, align 8, !tbaa !5
  %695 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %693, double noundef %694)
  %696 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %695, i8 noundef signext 10)
  %697 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %696, ptr noundef @.str.26)
  %698 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %699 = fneg double %698
  %700 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %697, double noundef %699)
  %701 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %700, i8 noundef signext 10)
  %702 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %701, ptr noundef @.str.27)
  %703 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %704 = fneg double %703
  %705 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %702, double noundef %704)
  %706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %705, i8 noundef signext 10)
  %707 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %706, ptr noundef @.str.28)
  %708 = load double, ptr %112, align 8, !tbaa !5
  %709 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %707, double noundef %708)
  %710 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %709, i8 noundef signext 10)
  %711 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %710, ptr noundef @.str.29)
  %712 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 0)
  %713 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %711, double noundef %712)
  %714 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %713, i8 noundef signext 10)
  %715 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %714, ptr noundef @.str.30)
  %716 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 0)
  %717 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %715, double noundef %716)
  %718 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %717, i8 noundef signext 10)
  %719 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %718, ptr noundef @.str.31)
  %720 = load double, ptr %128, align 8, !tbaa !5
  %721 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %719, double noundef %720)
  %722 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %721, i8 noundef signext 10)
  %723 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %722, ptr noundef @.str.32)
  %724 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 0, i32 noundef 1, i32 noundef 1, i32 noundef 0)
  %725 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %723, double noundef %724)
  %726 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %725, i8 noundef signext 10)
  %727 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %726, ptr noundef @.str.33)
  %728 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 0, i32 noundef 1, i32 noundef 1, i32 noundef 0)
  %729 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %727, double noundef %728)
  %730 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %729, i8 noundef signext 10)
  %731 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %730, ptr noundef @.str.34)
  %732 = load double, ptr %136, align 8, !tbaa !5
  %733 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %731, double noundef %732)
  %734 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %733, i8 noundef signext 10)
  %735 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %734, ptr noundef @.str.35)
  %736 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %735, ptr noundef @.str.36)
  %737 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 3, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %738 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %736, double noundef %737)
  %739 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %738, i8 noundef signext 10)
  %740 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %739, ptr noundef @.str.37)
  %741 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 3, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %742 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %740, double noundef %741)
  %743 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %742, i8 noundef signext 10)
  %744 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %743, ptr noundef @.str.38)
  %745 = load double, ptr %152, align 8, !tbaa !5
  %746 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %744, double noundef %745)
  %747 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %746, i8 noundef signext 10)
  %748 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %747, ptr noundef @.str.39)
  %749 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 2, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %750 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %748, double noundef %749)
  %751 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %750, i8 noundef signext 10)
  %752 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %751, ptr noundef @.str.40)
  %753 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 2, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %754 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %752, double noundef %753)
  %755 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %754, i8 noundef signext 10)
  %756 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %755, ptr noundef @.str.41)
  %757 = load double, ptr %165, align 8, !tbaa !5
  %758 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %756, double noundef %757)
  %759 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %758, i8 noundef signext 10)
  %760 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %759, ptr noundef @.str.42)
  %761 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 2, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %762 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %760, double noundef %761)
  %763 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %762, i8 noundef signext 10)
  %764 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %763, ptr noundef @.str.43)
  %765 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 2, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %766 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %764, double noundef %765)
  %767 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %766, i8 noundef signext 10)
  %768 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %767, ptr noundef @.str.44)
  %769 = load double, ptr %172, align 8, !tbaa !5
  %770 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %768, double noundef %769)
  %771 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %770, i8 noundef signext 10)
  %772 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %771, ptr noundef @.str.45)
  %773 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %12, i32 noundef 0, i32 noundef 3, i32 noundef 0, i32 noundef 0)
  %774 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %772, double noundef %773)
  %775 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %774, i8 noundef signext 10)
  %776 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %775, ptr noundef @.str.46)
  %777 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %13, i32 noundef 0, i32 noundef 3, i32 noundef 0, i32 noundef 0)
  %778 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %776, double noundef %777)
  %779 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %778, i8 noundef signext 10)
  %780 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %779, ptr noundef @.str.47)
  %781 = load double, ptr %195, align 8, !tbaa !5
  %782 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %780, double noundef %781)
  %783 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %782, i8 noundef signext 10)
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %3) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %2) #7
  ret i32 0
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v111make_ftupleIdJLm3ELm3ELm1ELm1EEJiiddEEEDaDpRKT1_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm2EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm3EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z26black_scholes_option_priceIN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEENS4_14promote_args_nIT_JT0_T1_T2_EE4typeE2CPdRKSD_RKSE_RKSF_RKSG_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, i32 noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detail3logIdLm3EEENS3_4fvarIT_XT0_EEERKS7_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEdvERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEplINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(128)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEplINS4_IdLm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEdvERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm3EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(512), ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16)) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmiINS4_IdLm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEngEv(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEdvINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmiINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlERKd(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSE_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEplINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm3EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(256)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(128)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEmiINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm0EEELm0EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEmlINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(128)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEdvINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlINS4_INS4_IS5_Lm1EEELm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(128)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEmiINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(64)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(64)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEplERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEdvIS6_Lm3EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(256)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIdLm3EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailmlIdLm3EEENS3_4fvarIT_XT0_EEERKNS7_9root_typeERKS7_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmlINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmlINS4_INS4_IS5_Lm1EEELm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(128)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailplINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(128)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmiINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEmlERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) #5

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision(ptr noundef nonnull align 8 dereferenceable(8), i32) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt12setprecisioni(i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512), i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2 align 2

attributes #0 = { mustprogress norecurse 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 = { mustprogress 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 #3 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { inlinehint mustprogress 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 #6 = { inlinehint 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 #7 = { nounwind }

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

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


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Tuple_impl.0", %"struct.std::_Head_base.15" }
%"struct.std::_Tuple_impl.0" = type { %"struct.std::_Tuple_impl.1", %"struct.std::_Head_base.10" }
%"struct.std::_Tuple_impl.1" = type { %"struct.std::_Tuple_impl.2", %"struct.std::_Head_base.9" }
%"struct.std::_Tuple_impl.2" = type { %"struct.std::_Head_base" }
%"struct.std::_Head_base" = type { %"class.boost::math::differentiation::autodiff_v1::detail::fvar" }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar" = type { %"struct.std::array" }
%"struct.std::array" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.3" = type { %"struct.std::array.4" }
%"struct.std::array.4" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.5"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.5" = type { %"struct.std::array.6" }
%"struct.std::array.6" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.7"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.7" = type { %"struct.std::array.8" }
%"struct.std::array.8" = type { [2 x double] }
%"struct.std::_Head_base.9" = type { %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3" }
%"struct.std::_Head_base.10" = type { %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11" }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11" = type { %"struct.std::array.12" }
%"struct.std::array.12" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13" = type { %"struct.std::array.14" }
%"struct.std::array.14" = type { [4 x double] }
%"struct.std::_Head_base.15" = type { %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13" }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16" = type { %"struct.std::array.17" }
%"struct.std::array.17" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.18"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.18" = type { %"struct.std::array.19" }
%"struct.std::array.19" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.20"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.20" = type { %"struct.std::array.21" }
%"struct.std::array.21" = type { [2 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.7"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22" = type { %"struct.std::array.23" }
%"struct.std::array.23" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.18"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24" = type { %"struct.std::array.25" }
%"struct.std::array.25" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26" = type { %"struct.std::array.27" }
%"struct.std::array.27" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.5"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28" = type { %"struct.std::array.29" }
%"struct.std::array.29" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.30"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.30" = type { %"struct.std::array.31" }
%"struct.std::array.31" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.7"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32" = type { %"struct.std::array.33" }
%"struct.std::array.33" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.30"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34" = type { %"struct.std::array.35" }
%"struct.std::array.35" = type { [4 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36" = type { %"struct.std::array.37" }
%"struct.std::array.37" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.38"] }
%"class.boost::math::differentiation::autodiff_v1::detail::fvar.38" = type { %"struct.std::array.39" }
%"struct.std::array.39" = type { [1 x %"class.boost::math::differentiation::autodiff_v1::detail::fvar.20"] }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [37 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [24 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 {
  %1 = alloca double, align 8
  %2 = alloca %"class.std::tuple", align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca double, align 8
  %6 = alloca double, align 8
  %7 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %8 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %9 = alloca double, align 8
  %10 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %11 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %12 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %13 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %14 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %15 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.24", align 8
  %16 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %17 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %18 = alloca double, align 8
  %19 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %20 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %21 = alloca double, align 8
  %22 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %23 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %24 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %25 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %26 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %27 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.24", align 8
  %28 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %29 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %30 = alloca double, align 8
  %31 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %32 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %36 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %37 = alloca double, align 8
  %38 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %39 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %40 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %41 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %42 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %43 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %44 = alloca double, align 8
  %45 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %46 = alloca double, align 8
  %47 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %48 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %49 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %50 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %51 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %52 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %53 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %57 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %58 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %59 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %60 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %61 = alloca double, align 8
  %62 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %63 = alloca double, align 8
  %64 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %65 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %66 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %67 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %68 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %69 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %70 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %74 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %75 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %76 = alloca double, align 8
  %77 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %78 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %79 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %80 = alloca double, align 8
  %81 = alloca double, align 8
  %82 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %83 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %84 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %85 = alloca double, align 8
  %86 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %87 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %88 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %92 = alloca double, align 8
  %93 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %94 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %95 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %96 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %97 = alloca double, align 8
  %98 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %99 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %100 = alloca double, align 8
  %101 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %102 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %103 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %104 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %105 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %106 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %107 = alloca double, align 8
  %108 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %109 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %110 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %111 = alloca double, align 8
  %112 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %113 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %114 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %115 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %116 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %117 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %118 = alloca double, align 8
  %119 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %120 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %121 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %122 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %123 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %124 = alloca double, align 8
  %125 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %126 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %127 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %128 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %129 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %130 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %131 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %132 = alloca double, align 8
  %133 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %134 = alloca double, align 8
  %135 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %136 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %137 = alloca double, align 8
  %138 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %139 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %140 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %141 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %142 = alloca double, align 8
  %143 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %144 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %145 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %146 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %147 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %148 = alloca double, align 8
  %149 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %150 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %151 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.34", align 8
  %152 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %153 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.16", align 8
  %154 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %155 = alloca double, align 8
  %156 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %157 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.32", align 8
  %158 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.26", align 8
  %159 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.13", align 8
  %160 = alloca double, align 8
  %161 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %162 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %163 = alloca double, align 8
  %164 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %165 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %166 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.22", align 8
  %167 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.36", align 8
  %168 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar", align 8
  %169 = alloca double, align 8
  %170 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %171 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %172 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %173 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.28", align 8
  %174 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.3", align 8
  %175 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  %176 = alloca double, align 8
  %177 = alloca %"class.boost::math::differentiation::autodiff_v1::detail::fvar.11", align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1) #7
  store double 1.000000e+02, ptr %1, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %2) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #7
  store i32 105, ptr %3, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #7
  store i32 5, ptr %4, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  store double 0x3FB50A8542A150A8, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  store double 1.250000e-02, ptr %6, align 8, !tbaa !5
  call void @_ZN5boost4math15differentiation11autodiff_v111make_ftupleIdJLm3ELm3ELm1ELm1EEJiiddEEEDaDpRKT1_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple") align 8 %2, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  %178 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96) %2) #7
  %179 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96) %2) #7
  %180 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm2EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96) %2) #7
  %181 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm3EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96) %2) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %7) #7
  call void @_Z26black_scholes_option_priceIN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEENS4_14promote_args_nIT_JT0_T1_T2_EE4typeE2CPdRKSD_RKSE_RKSF_RKSG_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %7, i32 noundef 0, double noundef 1.000000e+02, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(16) %180, ptr noundef nonnull align 8 dereferenceable(16) %181)
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %8) #7
  call void @_Z26black_scholes_option_priceIN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEENS4_14promote_args_nIT_JT0_T1_T2_EE4typeE2CPdRKSD_RKSE_RKSF_RKSG_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %8, i32 noundef 1, double noundef 1.000000e+02, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(16) %180, ptr noundef nonnull align 8 dereferenceable(16) %181)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEdvERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(8) %1)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3logIdLm3EEENS3_4fvarIT_XT0_EEERKS7_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  store double 2.000000e+00, ptr %18, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEdvERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(8) %18)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEplINS4_IdLm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24") align 8 %15, ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull align 8 dereferenceable(32) %16)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm3EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %14, ptr noundef nonnull align 8 dereferenceable(64) %15, ptr noundef nonnull align 8 dereferenceable(16) %180)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEplINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(128) %14)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #7
  %182 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %183 = extractvalue { double, double } %182, 0
  store double %183, ptr %20, align 8
  %184 = getelementptr inbounds i8, ptr %20, i64 8
  %185 = extractvalue { double, double } %182, 1
  store double %185, ptr %184, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(16) %20)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %10, ptr noundef nonnull align 8 dereferenceable(512) %11, ptr noundef nonnull align 8 dereferenceable(64) %19)
  %186 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %10)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %10) #7
  store double %186, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEdvERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(8) %1)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3logIdLm3EEENS3_4fvarIT_XT0_EEERKS7_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  store double 2.000000e+00, ptr %30, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEdvERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmiINS4_IdLm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24") align 8 %27, ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull align 8 dereferenceable(32) %28)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm3EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %26, ptr noundef nonnull align 8 dereferenceable(64) %27, ptr noundef nonnull align 8 dereferenceable(16) %180)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEplINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(128) %26)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #7
  %187 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %188 = extractvalue { double, double } %187, 0
  store double %188, ptr %32, align 8
  %189 = getelementptr inbounds i8, ptr %32, i64 8
  %190 = extractvalue { double, double } %187, 1
  store double %190, ptr %189, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(16) %32)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %22, ptr noundef nonnull align 8 dereferenceable(512) %23, ptr noundef nonnull align 8 dereferenceable(64) %31)
  %191 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %22)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %22) #7
  store double %191, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  store double %186, ptr %33, align 8, !tbaa !5
  %192 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #7
  %193 = fneg double %186
  store double %193, ptr %34, align 8, !tbaa !5
  %194 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %34)
  %195 = fneg double %194
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  %196 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  store double %196, ptr %37, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(8) %37)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #7
  %197 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %198 = extractvalue { double, double } %197, 0
  store double %198, ptr %38, align 8
  %199 = getelementptr inbounds i8, ptr %38, i64 8
  %200 = extractvalue { double, double } %197, 1
  store double %200, ptr %199, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(16) %38)
  %201 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(64) %35)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEngEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %178)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #7
  %202 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  store double %202, ptr %44, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(8) %44)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #7
  store double 2.000000e+00, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #7
  %203 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %204 = extractvalue { double, double } %203, 0
  store double %204, ptr %47, align 8
  %205 = getelementptr inbounds i8, ptr %47, i64 8
  %206 = extractvalue { double, double } %203, 1
  store double %206, ptr %205, align 8
  %207 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(16) %47)
  %208 = extractvalue { double, double } %207, 0
  store double %208, ptr %45, align 8
  %209 = getelementptr inbounds i8, ptr %45, i64 8
  %210 = extractvalue { double, double } %207, 1
  store double %210, ptr %209, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEdvINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %40, ptr noundef nonnull align 8 dereferenceable(128) %41, ptr noundef nonnull align 8 dereferenceable(16) %45)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #7
  %211 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlERKd(ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull align 8 dereferenceable(8) %1)
  %212 = extractvalue { double, double } %211, 0
  store double %212, ptr %50, align 8
  %213 = getelementptr inbounds i8, ptr %50, i64 8
  %214 = extractvalue { double, double } %211, 1
  store double %214, ptr %213, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #7
  %215 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16) %181)
  %216 = extractvalue { double, double } %215, 0
  store double %216, ptr %53, align 8
  %217 = getelementptr inbounds i8, ptr %53, i64 8
  %218 = extractvalue { double, double } %215, 1
  store double %218, ptr %217, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %52, ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 8 dereferenceable(16) %180)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSE_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %49, ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 8 dereferenceable(32) %51)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #7
  store double %191, ptr %55, align 8, !tbaa !5
  %219 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %55)
  store double %219, ptr %54, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(8) %54)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmiINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %39, ptr noundef nonnull align 8 dereferenceable(256) %40, ptr noundef nonnull align 8 dereferenceable(32) %48)
  %220 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %57) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %58) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEngEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %178)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #7
  %221 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  store double %221, ptr %61, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(8) %61)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %58, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %62) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #7
  store double 2.000000e+00, ptr %63, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %64) #7
  %222 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %223 = extractvalue { double, double } %222, 0
  store double %223, ptr %64, align 8
  %224 = getelementptr inbounds i8, ptr %64, i64 8
  %225 = extractvalue { double, double } %222, 1
  store double %225, ptr %224, align 8
  %226 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(16) %64)
  %227 = extractvalue { double, double } %226, 0
  store double %227, ptr %62, align 8
  %228 = getelementptr inbounds i8, ptr %62, i64 8
  %229 = extractvalue { double, double } %226, 1
  store double %229, ptr %228, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEdvINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %57, ptr noundef nonnull align 8 dereferenceable(128) %58, ptr noundef nonnull align 8 dereferenceable(16) %62)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %67) #7
  %230 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlERKd(ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull align 8 dereferenceable(8) %1)
  %231 = extractvalue { double, double } %230, 0
  store double %231, ptr %67, align 8
  %232 = getelementptr inbounds i8, ptr %67, i64 8
  %233 = extractvalue { double, double } %230, 1
  store double %233, ptr %232, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %70) #7
  %234 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16) %181)
  %235 = extractvalue { double, double } %234, 0
  store double %235, ptr %70, align 8
  %236 = getelementptr inbounds i8, ptr %70, i64 8
  %237 = extractvalue { double, double } %234, 1
  store double %237, ptr %236, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %69, ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 8 dereferenceable(16) %180)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %69)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSE_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %66, ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef nonnull align 8 dereferenceable(32) %68)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #7
  %238 = load double, ptr %21, align 8, !tbaa !5
  %239 = fneg double %238
  store double %239, ptr %72, align 8, !tbaa !5
  %240 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %72)
  store double %240, ptr %71, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(8) %71)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEplINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %56, ptr noundef nonnull align 8 dereferenceable(256) %57, ptr noundef nonnull align 8 dereferenceable(32) %65)
  %241 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %56)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %58) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #7
  store double 1.000000e+02, ptr %76, align 8, !tbaa !5
  %242 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(16) %180)
  %243 = extractvalue { double, double } %242, 0
  store double %243, ptr %75, align 8
  %244 = getelementptr inbounds i8, ptr %75, i64 8
  %245 = extractvalue { double, double } %242, 1
  store double %245, ptr %244, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %79) #7
  %246 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16) %181)
  %247 = extractvalue { double, double } %246, 0
  store double %247, ptr %79, align 8
  %248 = getelementptr inbounds i8, ptr %79, i64 8
  %249 = extractvalue { double, double } %246, 1
  store double %249, ptr %248, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %78, ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull align 8 dereferenceable(16) %180)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %74, ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef nonnull align 8 dereferenceable(32) %77)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #7
  store double %238, ptr %81, align 8, !tbaa !5
  %250 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %81)
  store double %250, ptr %80, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(8) %80)
  %251 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %84) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #7
  store double -1.000000e+02, ptr %85, align 8, !tbaa !5
  %252 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(16) %180)
  %253 = extractvalue { double, double } %252, 0
  store double %253, ptr %84, align 8
  %254 = getelementptr inbounds i8, ptr %84, i64 8
  %255 = extractvalue { double, double } %252, 1
  store double %255, ptr %254, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %88) #7
  %256 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16) %181)
  %257 = extractvalue { double, double } %256, 0
  store double %257, ptr %88, align 8
  %258 = getelementptr inbounds i8, ptr %88, i64 8
  %259 = extractvalue { double, double } %256, 1
  store double %259, ptr %258, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %87, ptr noundef nonnull align 8 dereferenceable(16) %88, ptr noundef nonnull align 8 dereferenceable(16) %180)
  call void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %87)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %83, ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 8 dereferenceable(32) %86)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #7
  store double %239, ptr %90, align 8, !tbaa !5
  %260 = call noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %90)
  store double %260, ptr %89, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(8) %89)
  %261 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %82)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %91) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #7
  %262 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  store double %262, ptr %92, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %93) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %94) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %95) #7
  %263 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %264 = extractvalue { double, double } %263, 0
  store double %264, ptr %95, align 8
  %265 = getelementptr inbounds i8, ptr %95, i64 8
  %266 = extractvalue { double, double } %263, 1
  store double %266, ptr %265, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %93, ptr noundef nonnull align 8 dereferenceable(128) %94, ptr noundef nonnull align 8 dereferenceable(16) %95)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm3EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %91, ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(256) %93)
  %267 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256) %91)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %95) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %94) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %93) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %91) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %96) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %97) #7
  %268 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  %269 = fneg double %268
  %270 = load double, ptr %21, align 8, !tbaa !5
  %271 = fmul double %270, %269
  store double %271, ptr %97, align 8, !tbaa !5
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %96, ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(32) %179)
  %272 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %96)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %98) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %99) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #7
  %273 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  store double %273, ptr %100, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %101) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %102) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #7
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %103, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %104) #7
  %274 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %275 = extractvalue { double, double } %274, 0
  store double %275, ptr %104, align 8
  %276 = getelementptr inbounds i8, ptr %104, i64 8
  %277 = extractvalue { double, double } %274, 1
  store double %277, ptr %276, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %102, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(16) %104)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %106) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %107) #7
  store double 2.000000e+00, ptr %107, align 8, !tbaa !5
  %278 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm0EEELm0EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull align 8 dereferenceable(16) %181)
  %279 = extractvalue { double, double } %278, 0
  store double %279, ptr %106, align 8
  %280 = getelementptr inbounds i8, ptr %106, i64 8
  %281 = extractvalue { double, double } %278, 1
  store double %281, ptr %280, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %105, ptr noundef nonnull align 8 dereferenceable(16) %106, ptr noundef nonnull align 8 dereferenceable(16) %180)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEmiINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %101, ptr noundef nonnull align 8 dereferenceable(64) %102, ptr noundef nonnull align 8 dereferenceable(32) %105)
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %99, ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(128) %101)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %108) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %109) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %110) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #7
  store double 2.000000e+00, ptr %111, align 8, !tbaa !5
  %282 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(16) %180)
  %283 = extractvalue { double, double } %282, 0
  store double %283, ptr %110, align 8
  %284 = getelementptr inbounds i8, ptr %110, i64 8
  %285 = extractvalue { double, double } %282, 1
  store double %285, ptr %284, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %109, ptr noundef nonnull align 8 dereferenceable(16) %110, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %112) #7
  %286 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %287 = extractvalue { double, double } %286, 0
  store double %287, ptr %112, align 8
  %288 = getelementptr inbounds i8, ptr %112, i64 8
  %289 = extractvalue { double, double } %286, 1
  store double %289, ptr %288, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEmlINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %108, ptr noundef nonnull align 8 dereferenceable(64) %109, ptr noundef nonnull align 8 dereferenceable(16) %112)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %98, ptr noundef nonnull align 8 dereferenceable(128) %99, ptr noundef nonnull align 8 dereferenceable(64) %108)
  %290 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(128) %98)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %112) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %110) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %109) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %108) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %107) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %106) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %102) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %101) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %99) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %98) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %113) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %114) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %115) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %116) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %118) #7
  %291 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  store double %291, ptr %118, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %117, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(8) %118)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %119) #7
  %292 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %293 = extractvalue { double, double } %292, 0
  store double %293, ptr %119, align 8
  %294 = getelementptr inbounds i8, ptr %119, i64 8
  %295 = extractvalue { double, double } %292, 1
  store double %295, ptr %294, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %116, ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(16) %119)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %115, ptr noundef nonnull align 8 dereferenceable(64) %116, ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %114, ptr noundef nonnull align 8 dereferenceable(64) %115, ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEdvINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %113, ptr noundef nonnull align 8 dereferenceable(64) %114, ptr noundef nonnull align 8 dereferenceable(32) %179)
  %296 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256) %113)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %119) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %116) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %115) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %114) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %113) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %120) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %121) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %122) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %123) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEngEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %123, ptr noundef nonnull align 8 dereferenceable(32) %178)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %124) #7
  %297 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  store double %297, ptr %124, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %122, ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(8) %124)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %125) #7
  %298 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %299 = extractvalue { double, double } %298, 0
  store double %299, ptr %125, align 8
  %300 = getelementptr inbounds i8, ptr %125, i64 8
  %301 = extractvalue { double, double } %298, 1
  store double %301, ptr %300, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %121, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(16) %125)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %126) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %127) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %128) #7
  %302 = call { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlERKd(ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %303 = extractvalue { double, double } %302, 0
  store double %303, ptr %128, align 8
  %304 = getelementptr inbounds i8, ptr %128, i64 8
  %305 = extractvalue { double, double } %302, 1
  store double %305, ptr %304, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %129) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %130) #7
  %306 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %307 = extractvalue { double, double } %306, 0
  store double %307, ptr %130, align 8
  %308 = getelementptr inbounds i8, ptr %130, i64 8
  %309 = extractvalue { double, double } %306, 1
  store double %309, ptr %308, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %129, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(16) %130)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %127, ptr noundef nonnull align 8 dereferenceable(16) %128, ptr noundef nonnull align 8 dereferenceable(64) %129)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %131) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %132) #7
  %310 = load double, ptr %9, align 8, !tbaa !5
  %311 = load double, ptr %21, align 8, !tbaa !5
  %312 = call double @llvm.fmuladd.f64(double %310, double %311, double 1.000000e+00)
  store double %312, ptr %132, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %133) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %134) #7
  store double 2.000000e+00, ptr %134, align 8, !tbaa !5
  %313 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull align 8 dereferenceable(16) %180)
  %314 = extractvalue { double, double } %313, 0
  store double %314, ptr %133, align 8
  %315 = getelementptr inbounds i8, ptr %133, i64 8
  %316 = extractvalue { double, double } %313, 1
  store double %316, ptr %315, align 8
  %317 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull align 8 dereferenceable(16) %133)
  %318 = extractvalue { double, double } %317, 0
  store double %318, ptr %131, align 8
  %319 = getelementptr inbounds i8, ptr %131, i64 8
  %320 = extractvalue { double, double } %317, 1
  store double %320, ptr %319, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEmiINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %126, ptr noundef nonnull align 8 dereferenceable(128) %127, ptr noundef nonnull align 8 dereferenceable(16) %131)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlINS4_INS4_IS5_Lm1EEELm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %120, ptr noundef nonnull align 8 dereferenceable(64) %121, ptr noundef nonnull align 8 dereferenceable(128) %126)
  %321 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %120)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %134) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %133) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %132) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %131) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %130) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %129) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %128) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %127) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %126) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %125) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %121) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %120) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %135) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %136) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %137) #7
  %322 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  %323 = fneg double %322
  store double %323, ptr %137, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %138) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %139) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %140) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %141) #7
  %324 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %325 = extractvalue { double, double } %324, 0
  store double %325, ptr %141, align 8
  %326 = getelementptr inbounds i8, ptr %141, i64 8
  %327 = extractvalue { double, double } %324, 1
  store double %327, ptr %326, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %140, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(16) %141)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %139, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(64) %140)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %142) #7
  store double 1.000000e+00, ptr %142, align 8, !tbaa !5
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEplERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %138, ptr noundef nonnull align 8 dereferenceable(64) %139, ptr noundef nonnull align 8 dereferenceable(8) %142)
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %136, ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 8 dereferenceable(64) %138)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %143) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %144) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %145) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIdLm3EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %145, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(32) %178)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %144, ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %146) #7
  %328 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %329 = extractvalue { double, double } %328, 0
  store double %329, ptr %146, align 8
  %330 = getelementptr inbounds i8, ptr %146, i64 8
  %331 = extractvalue { double, double } %328, 1
  store double %331, ptr %330, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %143, ptr noundef nonnull align 8 dereferenceable(128) %144, ptr noundef nonnull align 8 dereferenceable(16) %146)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEdvIS6_Lm3EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %135, ptr noundef nonnull align 8 dereferenceable(64) %136, ptr noundef nonnull align 8 dereferenceable(256) %143)
  %332 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256) %135)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %146) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %145) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %144) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %143) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %141) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %140) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %139) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %138) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %136) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %135) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %147) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %148) #7
  %333 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  %334 = load double, ptr %9, align 8, !tbaa !5
  %335 = load double, ptr %21, align 8, !tbaa !5
  %336 = call double @llvm.fmuladd.f64(double %334, double %335, double -1.000000e+00)
  %337 = fmul double %333, %336
  store double %337, ptr %148, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %149) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %150) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %151) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %151, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8 %150, ptr noundef nonnull align 8 dereferenceable(128) %151, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %152) #7
  %338 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %339 = extractvalue { double, double } %338, 0
  store double %339, ptr %152, align 8
  %340 = getelementptr inbounds i8, ptr %152, i64 8
  %341 = extractvalue { double, double } %338, 1
  store double %341, ptr %340, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %149, ptr noundef nonnull align 8 dereferenceable(128) %150, ptr noundef nonnull align 8 dereferenceable(16) %152)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm3EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %147, ptr noundef nonnull align 8 dereferenceable(8) %148, ptr noundef nonnull align 8 dereferenceable(256) %149)
  %342 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256) %147)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %152) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %151) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %150) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %149) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %148) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %147) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %153) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %154) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %155) #7
  %343 = call noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8) %9)
  %344 = fneg double %343
  store double %344, ptr %155, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %156) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %157) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %158) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %159) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %160) #7
  store double 2.000000e+00, ptr %160, align 8, !tbaa !5
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlIdLm3EEENS3_4fvarIT_XT0_EEERKNS7_9root_typeERKS7_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8 %159, ptr noundef nonnull align 8 dereferenceable(8) %160, ptr noundef nonnull align 8 dereferenceable(32) %178)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8 %158, ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull align 8 dereferenceable(16) %180)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %157, ptr noundef nonnull align 8 dereferenceable(64) %158, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %161) #7
  %345 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %346 = extractvalue { double, double } %345, 0
  store double %346, ptr %161, align 8
  %347 = getelementptr inbounds i8, ptr %161, i64 8
  %348 = extractvalue { double, double } %345, 1
  store double %348, ptr %347, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmlINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %156, ptr noundef nonnull align 8 dereferenceable(256) %157, ptr noundef nonnull align 8 dereferenceable(16) %161)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm3EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8 %154, ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull align 8 dereferenceable(256) %156)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %162) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %163) #7
  store double 1.000000e+00, ptr %163, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %164) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %165) #7
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %166) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %167) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %168) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %169) #7
  store double 2.000000e+00, ptr %169, align 8, !tbaa !5
  %349 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm0EEELm0EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr noundef nonnull align 8 dereferenceable(8) %169, ptr noundef nonnull align 8 dereferenceable(16) %181)
  %350 = extractvalue { double, double } %349, 0
  store double %350, ptr %168, align 8
  %351 = getelementptr inbounds i8, ptr %168, i64 8
  %352 = extractvalue { double, double } %349, 1
  store double %352, ptr %351, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8 %167, ptr noundef nonnull align 8 dereferenceable(16) %168, ptr noundef nonnull align 8 dereferenceable(16) %180)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %170) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %171) #7
  call void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %171, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %172) #7
  %353 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %354 = extractvalue { double, double } %353, 0
  store double %354, ptr %172, align 8
  %355 = getelementptr inbounds i8, ptr %172, i64 8
  %356 = extractvalue { double, double } %353, 1
  store double %356, ptr %355, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %170, ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef nonnull align 8 dereferenceable(16) %172)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmiINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %166, ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef nonnull align 8 dereferenceable(64) %170)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEmlERKd(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %165, ptr noundef nonnull align 8 dereferenceable(128) %166, ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %173) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %174) #7
  %357 = call { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %180)
  %358 = extractvalue { double, double } %357, 0
  store double %358, ptr %174, align 8
  %359 = getelementptr inbounds i8, ptr %174, i64 8
  %360 = extractvalue { double, double } %357, 1
  store double %360, ptr %359, align 8
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8 %173, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(16) %174)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %164, ptr noundef nonnull align 8 dereferenceable(128) %165, ptr noundef nonnull align 8 dereferenceable(64) %173)
  call void @_ZN5boost4math15differentiation11autodiff_v16detailplINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8 %162, ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(128) %164)
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmlINS4_INS4_IS5_Lm1EEELm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8 %153, ptr noundef nonnull align 8 dereferenceable(256) %154, ptr noundef nonnull align 8 dereferenceable(128) %162)
  %361 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512) %153)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %174) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %173) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %172) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %170) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %169) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %168) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %166) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %165) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %164) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %163) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %162) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %161) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %159) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %158) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %157) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %156) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %155) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %154) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %153) #7
  %362 = fneg double %201
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %175) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %176) #7
  %363 = load double, ptr %9, align 8, !tbaa !5
  %364 = load double, ptr %21, align 8, !tbaa !5
  %365 = fmul double %363, %364
  %366 = fneg double %363
  %367 = call double @llvm.fmuladd.f64(double %366, double %364, double 1.000000e+00)
  %368 = fmul double %363, %363
  %369 = call double @llvm.fmuladd.f64(double %365, double %367, double %368)
  %370 = call double @llvm.fmuladd.f64(double %364, double %364, double %369)
  store double %370, ptr %176, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %177) #7
  call void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %177, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull align 8 dereferenceable(32) %179)
  call void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind nonnull writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8 %175, ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef nonnull align 8 dereferenceable(32) %177)
  %371 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %175)
  %372 = fmul double %371, %362
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %177) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %176) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #7
  %373 = call i32 @_ZSt12setprecisioni(i32 noundef 15)
  %374 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 %373)
  %375 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %374, ptr noundef nonnull @.str)
  %376 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %377 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %375, double noundef %376)
  %378 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %377, i8 noundef signext 10)
  %379 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %378, ptr noundef nonnull @.str.1)
  %380 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %381 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %379, double noundef %380)
  %382 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %381, i8 noundef signext 10)
  %383 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %382, ptr noundef nonnull @.str.2)
  %384 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %383, ptr noundef nonnull @.str.3)
  %385 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %386 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %384, double noundef %385)
  %387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %386, i8 noundef signext 10)
  %388 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef nonnull @.str.4)
  %389 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %388, double noundef %192)
  %390 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %389, i8 noundef signext 10)
  %391 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef nonnull @.str.5)
  %392 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %391, double noundef %392)
  %394 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %393, i8 noundef signext 10)
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %394, ptr noundef nonnull @.str.6)
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %395, double noundef %201)
  %397 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %396, i8 noundef signext 10)
  %398 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %397, ptr noundef nonnull @.str.7)
  %399 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 0, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %400 = fneg double %399
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %398, double noundef %400)
  %402 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %401, i8 noundef signext 10)
  %403 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %402, ptr noundef nonnull @.str.8)
  %404 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %403, double noundef %220)
  %405 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %404, i8 noundef signext 10)
  %406 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %405, ptr noundef nonnull @.str.9)
  %407 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %406, double noundef %407)
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %408, i8 noundef signext 10)
  %410 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %409, ptr noundef nonnull @.str.10)
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %410, double noundef %251)
  %412 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %411, i8 noundef signext 10)
  %413 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %412, i8 noundef signext 10)
  %414 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %413, ptr noundef nonnull @.str.11)
  %415 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %416 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %414, double noundef %415)
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %416, i8 noundef signext 10)
  %418 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %417, ptr noundef nonnull @.str.12)
  %419 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %418, double noundef %195)
  %420 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %419, i8 noundef signext 10)
  %421 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %420, ptr noundef nonnull @.str.13)
  %422 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %423 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %421, double noundef %422)
  %424 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %423, i8 noundef signext 10)
  %425 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %424, ptr noundef nonnull @.str.14)
  %426 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %425, double noundef %201)
  %427 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %426, i8 noundef signext 10)
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %427, ptr noundef nonnull @.str.15)
  %429 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 0, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %430 = fneg double %429
  %431 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %428, double noundef %430)
  %432 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %431, i8 noundef signext 10)
  %433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %432, ptr noundef nonnull @.str.16)
  %434 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %433, double noundef %241)
  %435 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %434, i8 noundef signext 10)
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %435, ptr noundef nonnull @.str.17)
  %437 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %438 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %436, double noundef %437)
  %439 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %438, i8 noundef signext 10)
  %440 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %439, ptr noundef nonnull @.str.18)
  %441 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %440, double noundef %261)
  %442 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %441, i8 noundef signext 10)
  %443 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef nonnull @.str.19)
  %444 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %443, ptr noundef nonnull @.str.20)
  %445 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 2, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %444, double noundef %445)
  %447 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %446, i8 noundef signext 10)
  %448 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %447, ptr noundef nonnull @.str.21)
  %449 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 2, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %450 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %448, double noundef %449)
  %451 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %450, i8 noundef signext 10)
  %452 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %451, ptr noundef nonnull @.str.22)
  %453 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %452, double noundef %267)
  %454 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %453, i8 noundef signext 10)
  %455 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %454, ptr noundef nonnull @.str.23)
  %456 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 1, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %455, double noundef %456)
  %458 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %457, i8 noundef signext 10)
  %459 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %458, ptr noundef nonnull @.str.24)
  %460 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 1, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %461 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %459, double noundef %460)
  %462 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %461, i8 noundef signext 10)
  %463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %462, ptr noundef nonnull @.str.25)
  %464 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %463, double noundef %272)
  %465 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %464, i8 noundef signext 10)
  %466 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef nonnull @.str.26)
  %467 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %468 = fneg double %467
  %469 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %466, double noundef %468)
  %470 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %469, i8 noundef signext 10)
  %471 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %470, ptr noundef nonnull @.str.27)
  %472 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %473 = fneg double %472
  %474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %471, double noundef %473)
  %475 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %474, i8 noundef signext 10)
  %476 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %475, ptr noundef nonnull @.str.28)
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %476, double noundef %290)
  %478 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %477, i8 noundef signext 10)
  %479 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %478, ptr noundef nonnull @.str.29)
  %480 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 0)
  %481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %479, double noundef %480)
  %482 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %481, i8 noundef signext 10)
  %483 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %482, ptr noundef nonnull @.str.30)
  %484 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 0)
  %485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %483, double noundef %484)
  %486 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %485, i8 noundef signext 10)
  %487 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef nonnull @.str.31)
  %488 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %487, double noundef %296)
  %489 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %488, i8 noundef signext 10)
  %490 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %489, ptr noundef nonnull @.str.32)
  %491 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 0, i32 noundef 1, i32 noundef 1, i32 noundef 0)
  %492 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %490, double noundef %491)
  %493 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %492, i8 noundef signext 10)
  %494 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %493, ptr noundef nonnull @.str.33)
  %495 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 0, i32 noundef 1, i32 noundef 1, i32 noundef 0)
  %496 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %494, double noundef %495)
  %497 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %496, i8 noundef signext 10)
  %498 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %497, ptr noundef nonnull @.str.34)
  %499 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %498, double noundef %321)
  %500 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %499, i8 noundef signext 10)
  %501 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %500, ptr noundef nonnull @.str.35)
  %502 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %501, ptr noundef nonnull @.str.36)
  %503 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 3, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %504 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %502, double noundef %503)
  %505 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %504, i8 noundef signext 10)
  %506 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %505, ptr noundef nonnull @.str.37)
  %507 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 3, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %508 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %506, double noundef %507)
  %509 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %508, i8 noundef signext 10)
  %510 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %509, ptr noundef nonnull @.str.38)
  %511 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %510, double noundef %332)
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %511, i8 noundef signext 10)
  %513 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %512, ptr noundef nonnull @.str.39)
  %514 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 2, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %515 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %513, double noundef %514)
  %516 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %515, i8 noundef signext 10)
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %516, ptr noundef nonnull @.str.40)
  %518 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 2, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %517, double noundef %518)
  %520 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %519, i8 noundef signext 10)
  %521 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %520, ptr noundef nonnull @.str.41)
  %522 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %521, double noundef %342)
  %523 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %522, i8 noundef signext 10)
  %524 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %523, ptr noundef nonnull @.str.42)
  %525 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 2, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %524, double noundef %525)
  %527 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %526, i8 noundef signext 10)
  %528 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %527, ptr noundef nonnull @.str.43)
  %529 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 2, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %530 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %528, double noundef %529)
  %531 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %530, i8 noundef signext 10)
  %532 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %531, ptr noundef nonnull @.str.44)
  %533 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %532, double noundef %361)
  %534 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %533, i8 noundef signext 10)
  %535 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %534, ptr noundef nonnull @.str.45)
  %536 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %7, i32 noundef 0, i32 noundef 3, i32 noundef 0, i32 noundef 0)
  %537 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %535, double noundef %536)
  %538 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %537, i8 noundef signext 10)
  %539 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %538, ptr noundef nonnull @.str.46)
  %540 = call noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512) %8, i32 noundef 0, i32 noundef 3, i32 noundef 0, i32 noundef 0)
  %541 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %539, double noundef %540)
  %542 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %541, i8 noundef signext 10)
  %543 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %542, ptr noundef nonnull @.str.47)
  %544 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %543, double noundef %372)
  %545 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %544, i8 noundef signext 10)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %2) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1) #7
  ret i32 0
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v111make_ftupleIdJLm3ELm3ELm1ELm1EEJiiddEEEDaDpRKT1_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm2EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm3EJN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEEERKNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERKSG_(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z26black_scholes_option_priceIN5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEENS5_IS6_Lm0EEENS5_INS5_INS5_IdLm1EEELm0EEELm0EEENS5_ISA_Lm0EEEENS4_14promote_args_nIT_JT0_T1_T2_EE4typeE2CPdRKSD_RKSE_RKSF_RKSG_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, i32 noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detail3logIdLm3EEENS3_4fvarIT_XT0_EEERKS7_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEdvERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEplINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEplINS4_IdLm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEdvERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm3EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(512), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZN5boost4math15differentiation11autodiff_v16detail4sqrtINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(512)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmiINS4_IdLm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.24") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z3PhiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z3phiIdET_RKS0_(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEngEv(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIS5_Lm0EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEdvINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmiINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlERKd(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSE_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detail3expINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm0EEELm0EEENS5_IT_XT0_EEERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEngEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEmlIS6_Lm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmlERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEplINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.36") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm3EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlINS4_INS4_IdLm1EEELm0EEELm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEcvdEv(ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarIdLm3EEELm0EEENS5_IT_XT0_EEERKNS8_9root_typeERKS8_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.11") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEmiINS4_INS4_IS5_Lm1EEELm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_INS5_IdLm1EEELm0EEELm0EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm0EEmlINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEmlINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEcvdEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.26") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEdvINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlINS4_INS4_IS5_Lm1EEELm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm0EEELm0EEELm0EEdvINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEmiINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm0EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailmlINS3_4fvarINS5_IdLm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detaildvINS3_4fvarINS5_IdLm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNS9_9root_typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEplERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.28") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm0EEdvIS6_Lm3EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSB_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarIdLm3EEmlIdLm3EEENS3_14promote_args_nIS5_JNS4_IT_XT0_EEEEE4typeERKS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_IdLm3EEELm3EEmlIS5_Lm0EEENS3_14promote_args_nIS6_JNS4_IT_XT0_EEEEE4typeERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.34") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailmlIdLm3EEENS3_4fvarIT_XT0_EEERKNS7_9root_typeERKS7_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.13") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm0EEELm3EEmlINS4_IdLm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmlINS4_IS5_Lm0EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSC_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.32") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_IdLm1EEELm3EEELm3EEmlINS4_INS4_IS5_Lm1EEELm3EEELm0EEENS3_14promote_args_nIS7_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.16") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4math15differentiation11autodiff_v16detailplINS3_4fvarINS5_INS5_IdLm1EEELm1EEELm3EEELm0EEENS5_IT_XT0_EEERKNSA_9root_typeERKSA_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm0EEELm0EEmiINS4_IS5_Lm3EEELm0EEENS3_14promote_args_nIS8_JNS4_IT_XT0_EEEEE4typeERKSD_(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm0EEmlERKd(ptr dead_on_unwind noalias writable sret(%"class.boost::math::differentiation::autodiff_v1::detail::fvar.22") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision(ptr noundef nonnull align 8 dereferenceable(8), i32) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt12setprecisioni(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK5boost4math15differentiation11autodiff_v16detail4fvarINS4_INS4_INS4_IdLm1EEELm1EEELm3EEELm3EE10derivativeIJiiiiEEENS3_7type_atIS8_XsZT_EE4typeEDpT_(ptr noundef nonnull align 8 dereferenceable(512), i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2 align 2

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

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

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


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,ReassociatePass,SROAPass