; LLVM IR from sphexa-org/sphexa :: main/src/analytical_solutions/sedov_solution (sedov_solution)

; 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::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::function.0" = type { %"class.std::_Function_base", ptr }

@_ZN13SedovSolution5xgeomE = external dso_local global double, align 8
@_ZN13SedovSolution5omegaE = external dso_local global double, align 8
@_ZN13SedovSolution5gammaE = external dso_local global double, align 8
@_ZN13SedovSolution5gamm1E = external dso_local global double, align 8
@_ZN13SedovSolution5gamp1E = external dso_local global double, align 8
@_ZN13SedovSolution5gpogmE = external dso_local global double, align 8
@_ZN13SedovSolution3xg2E = external dso_local global double, align 8
@_ZN13SedovSolution9lsingularE = external dso_local global i8, align 1
@_ZN13SedovSolution9lstandardE = external dso_local global i8, align 1
@_ZN13SedovSolution7lvacuumE = external dso_local global i8, align 1
@_ZN13SedovSolution7lomega2E = external dso_local global i8, align 1
@_ZN13SedovSolution7lomega3E = external dso_local global i8, align 1
@_ZN13SedovSolution2a0E = external dso_local global double, align 8
@_ZN13SedovSolution2a1E = external dso_local global double, align 8
@_ZN13SedovSolution2a2E = external dso_local global double, align 8
@_ZN13SedovSolution2a3E = external dso_local global double, align 8
@_ZN13SedovSolution2a4E = external dso_local global double, align 8
@_ZN13SedovSolution2a5E = external dso_local global double, align 8
@_ZN13SedovSolution5a_valE = external dso_local global double, align 8
@_ZN13SedovSolution5b_valE = external dso_local global double, align 8
@_ZN13SedovSolution5c_valE = external dso_local global double, align 8
@_ZN13SedovSolution5d_valE = external dso_local global double, align 8
@_ZN13SedovSolution5e_valE = external dso_local global double, align 8
@_ZN13SedovSolution5rwantE = external dso_local global double, align 8
@_ZN13SedovSolution5vwantE = external dso_local global double, align 8
@_ZN13SedovSolution2r2E = external dso_local global double, align 8
@_ZN13SedovSolution2v0E = external dso_local global double, align 8
@_ZN13SedovSolution2vvE = external dso_local global double, align 8
@_ZN13SedovSolution3rvvE = external dso_local global double, align 8
@_ZN13SedovSolution7gam_intE = external dso_local global double, align 8
@_ZN13SedovSolution9rho_shockE = external dso_local global double, align 8
@_ZN13SedovSolution7p_shockE = external dso_local global double, align 8
@_ZN13SedovSolution9vel_shockE = external dso_local global double, align 8
@_ZN13SedovSolution7u_shockE = external dso_local global double, align 8
@_ZN13SedovSolution8cs_shockE = external dso_local global double, align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [35 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZN13SedovSolution8sedovSolEmdddddddddRKSt6vectorIdSaIdEERS2_S5_S5_S5_S5_(i64 noundef %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double noundef %6, double noundef %7, double noundef %8, double noundef %9, ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %15) #0 align 2 personality ptr @__gxx_personality_v0 {
  %17 = alloca i64, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca i64, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca i64, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca %"class.std::function", align 8
  %44 = alloca %"class.std::function.0", align 8
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca %"class.std::function", align 8
  %48 = alloca %"class.std::function.0", align 8
  %49 = alloca %"class.std::function", align 8
  %50 = alloca %"class.std::function.0", align 8
  %51 = alloca %"class.std::function", align 8
  %52 = alloca %"class.std::function.0", align 8
  %53 = alloca %"class.std::function", align 8
  %54 = alloca %"class.std::function.0", align 8
  %55 = alloca %"class.std::function", align 8
  %56 = alloca %"class.std::function.0", align 8
  %57 = alloca %"class.std::function", align 8
  %58 = alloca %"class.std::function.0", align 8
  %59 = alloca %"class.std::function", align 8
  %60 = alloca %"class.std::function.0", align 8
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca %"class.std::function", align 8
  %64 = alloca i64, align 8
  %65 = alloca double, align 8
  %66 = alloca %"class.std::function", align 8
  %67 = alloca %"class.std::function", align 8
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  store i64 %0, ptr %17, align 8, !tbaa !5
  store double %1, ptr %18, align 8, !tbaa !9
  store double %2, ptr %19, align 8, !tbaa !9
  store double %3, ptr %20, align 8, !tbaa !9
  store double %4, ptr %21, align 8, !tbaa !9
  store double %5, ptr %22, align 8, !tbaa !9
  store double %6, ptr %23, align 8, !tbaa !9
  store double %7, ptr %24, align 8, !tbaa !9
  store double %8, ptr %25, align 8, !tbaa !9
  store double %9, ptr %26, align 8, !tbaa !9
  store ptr %10, ptr %27, align 8, !tbaa !11
  store ptr %11, ptr %28, align 8, !tbaa !11
  store ptr %12, ptr %29, align 8, !tbaa !11
  store ptr %13, ptr %30, align 8, !tbaa !11
  store ptr %14, ptr %31, align 8, !tbaa !11
  store ptr %15, ptr %32, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %73 = load ptr, ptr %27, align 8, !tbaa !11
  %74 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  store i64 %74, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  store double 0.000000e+00, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store double 0.000000e+00, ptr %35, align 8, !tbaa !9
  %75 = load double, ptr %20, align 8, !tbaa !9
  store double %75, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %76 = load double, ptr %21, align 8, !tbaa !9
  store double %76, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %77 = load i64, ptr %17, align 8, !tbaa !5
  %78 = uitofp i64 %77 to double
  store double %78, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %79 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %80 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %81 = fcmp oge double %79, %80
  br i1 %81, label %82, label %85

82:                                               ; preds = %16
  %83 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str)
  %84 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #9
  unreachable

85:                                               ; preds = %16
  %86 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %87 = fsub double %86, 1.000000e+00
  store double %87, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %88 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %89 = fadd double %88, 1.000000e+00
  store double %89, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %90 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %91 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %92 = fdiv double %90, %91
  store double %92, ptr @_ZN13SedovSolution5gpogmE, align 8, !tbaa !9
  %93 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %94 = fadd double %93, 2.000000e+00
  %95 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %96 = fsub double %94, %95
  store double %96, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  %97 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %98 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %99 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %97, double %98)
  %100 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %101 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %102 = fneg double %100
  %103 = call double @llvm.fmuladd.f64(double %102, double %101, double %99)
  store double %103, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  %104 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %105 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %106 = fsub double 2.000000e+00, %105
  %107 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %108 = fneg double %107
  %109 = call double @llvm.fmuladd.f64(double %104, double %106, double %108)
  store double %109, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  %110 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %111 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %112 = fmul double %110, %111
  %113 = fdiv double 4.000000e+00, %112
  store double %113, ptr %38, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  %114 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %115 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %116 = call double @llvm.fmuladd.f64(double %114, double %115, double 2.000000e+00)
  %117 = fdiv double 2.000000e+00, %116
  store double %117, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  store i64 0, ptr %40, align 8, !tbaa !5
  br label %118

118:                                              ; preds = %139, %85
  %119 = load i64, ptr %40, align 8, !tbaa !5
  %120 = load i64, ptr %33, align 8, !tbaa !5
  %121 = icmp ult i64 %119, %120
  br i1 %121, label %123, label %122

122:                                              ; preds = %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %142

123:                                              ; preds = %118
  %124 = load ptr, ptr %28, align 8, !tbaa !11
  %125 = load i64, ptr %40, align 8, !tbaa !5
  %126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %124, i64 noundef %125) #8
  store double 0.000000e+00, ptr %126, align 8, !tbaa !9
  %127 = load ptr, ptr %31, align 8, !tbaa !11
  %128 = load i64, ptr %40, align 8, !tbaa !5
  %129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %127, i64 noundef %128) #8
  store double 0.000000e+00, ptr %129, align 8, !tbaa !9
  %130 = load ptr, ptr %29, align 8, !tbaa !11
  %131 = load i64, ptr %40, align 8, !tbaa !5
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %131) #8
  store double 0.000000e+00, ptr %132, align 8, !tbaa !9
  %133 = load ptr, ptr %30, align 8, !tbaa !11
  %134 = load i64, ptr %40, align 8, !tbaa !5
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %134) #8
  store double 0.000000e+00, ptr %135, align 8, !tbaa !9
  %136 = load ptr, ptr %32, align 8, !tbaa !11
  %137 = load i64, ptr %40, align 8, !tbaa !5
  %138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %136, i64 noundef %137) #8
  store double 0.000000e+00, ptr %138, align 8, !tbaa !9
  br label %139

139:                                              ; preds = %123
  %140 = load i64, ptr %40, align 8, !tbaa !5
  %141 = add i64 %140, 1
  store i64 %141, ptr %40, align 8, !tbaa !5
  br label %118, !llvm.loop !13

142:                                              ; preds = %122
  store i8 0, ptr @_ZN13SedovSolution9lsingularE, align 1, !tbaa !15
  store i8 0, ptr @_ZN13SedovSolution9lstandardE, align 1, !tbaa !15
  store i8 0, ptr @_ZN13SedovSolution7lvacuumE, align 1, !tbaa !15
  %143 = load double, ptr %38, align 8, !tbaa !9
  %144 = load double, ptr %39, align 8, !tbaa !9
  %145 = fsub double %143, %144
  %146 = call noundef double @_ZSt3absd(double noundef %145)
  %147 = fcmp ole double %146, 1.000000e-04
  br i1 %147, label %148, label %149

148:                                              ; preds = %142
  store i8 1, ptr @_ZN13SedovSolution9lsingularE, align 1, !tbaa !15
  br label %163

149:                                              ; preds = %142
  %150 = load double, ptr %38, align 8, !tbaa !9
  %151 = load double, ptr %39, align 8, !tbaa !9
  %152 = fsub double %151, 1.000000e-04
  %153 = fcmp olt double %150, %152
  br i1 %153, label %154, label %155

154:                                              ; preds = %149
  store i8 1, ptr @_ZN13SedovSolution9lstandardE, align 1, !tbaa !15
  br label %162

155:                                              ; preds = %149
  %156 = load double, ptr %38, align 8, !tbaa !9
  %157 = load double, ptr %39, align 8, !tbaa !9
  %158 = fadd double %157, 1.000000e-04
  %159 = fcmp ogt double %156, %158
  br i1 %159, label %160, label %161

160:                                              ; preds = %155
  store i8 1, ptr @_ZN13SedovSolution7lvacuumE, align 1, !tbaa !15
  br label %161

161:                                              ; preds = %160, %155
  br label %162

162:                                              ; preds = %161, %154
  br label %163

163:                                              ; preds = %162, %148
  store i8 0, ptr @_ZN13SedovSolution7lomega2E, align 1, !tbaa !15
  store i8 0, ptr @_ZN13SedovSolution7lomega3E, align 1, !tbaa !15
  %164 = load double, ptr %36, align 8, !tbaa !9
  %165 = call noundef double @_ZSt3absd(double noundef %164)
  %166 = fcmp ole double %165, 1.000000e-04
  br i1 %166, label %167, label %168

167:                                              ; preds = %163
  store i8 1, ptr @_ZN13SedovSolution7lomega2E, align 1, !tbaa !15
  store double 1.000000e-08, ptr %36, align 8, !tbaa !9
  br label %174

168:                                              ; preds = %163
  %169 = load double, ptr %37, align 8, !tbaa !9
  %170 = call noundef double @_ZSt3absd(double noundef %169)
  %171 = fcmp ole double %170, 1.000000e-04
  br i1 %171, label %172, label %173

172:                                              ; preds = %168
  store i8 1, ptr @_ZN13SedovSolution7lomega3E, align 1, !tbaa !15
  store double 1.000000e-08, ptr %37, align 8, !tbaa !9
  br label %173

173:                                              ; preds = %172, %168
  br label %174

174:                                              ; preds = %173, %167
  %175 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %176 = fdiv double 2.000000e+00, %175
  store double %176, ptr @_ZN13SedovSolution2a0E, align 8, !tbaa !9
  %177 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %178 = fneg double %177
  %179 = load double, ptr %36, align 8, !tbaa !9
  %180 = fdiv double %178, %179
  store double %180, ptr @_ZN13SedovSolution2a2E, align 8, !tbaa !9
  %181 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %182 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %183 = fmul double %181, %182
  %184 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %185 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %186 = call double @llvm.fmuladd.f64(double %184, double %185, double 2.000000e+00)
  %187 = fdiv double %183, %186
  %188 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %189 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %190 = fsub double 2.000000e+00, %189
  %191 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %192 = fneg double %191
  %193 = call double @llvm.fmuladd.f64(double %188, double %190, double %192)
  %194 = fmul double 2.000000e+00, %193
  %195 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %196 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %197 = fmul double %195, %196
  %198 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %199 = fmul double %197, %198
  %200 = fdiv double %194, %199
  %201 = load double, ptr @_ZN13SedovSolution2a2E, align 8, !tbaa !9
  %202 = fsub double %200, %201
  %203 = fmul double %187, %202
  store double %203, ptr @_ZN13SedovSolution2a1E, align 8, !tbaa !9
  %204 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %205 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %206 = fsub double %204, %205
  %207 = load double, ptr %36, align 8, !tbaa !9
  %208 = fdiv double %206, %207
  store double %208, ptr @_ZN13SedovSolution2a3E, align 8, !tbaa !9
  %209 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %210 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %211 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %212 = fsub double %210, %211
  %213 = fmul double %209, %212
  %214 = load double, ptr @_ZN13SedovSolution2a1E, align 8, !tbaa !9
  %215 = fmul double %213, %214
  %216 = load double, ptr %37, align 8, !tbaa !9
  %217 = fdiv double %215, %216
  store double %217, ptr @_ZN13SedovSolution2a4E, align 8, !tbaa !9
  %218 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %219 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %220 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %221 = fmul double 2.000000e+00, %220
  %222 = fneg double %221
  %223 = call double @llvm.fmuladd.f64(double %218, double %219, double %222)
  %224 = load double, ptr %37, align 8, !tbaa !9
  %225 = fdiv double %223, %224
  store double %225, ptr @_ZN13SedovSolution2a5E, align 8, !tbaa !9
  %226 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %227 = fmul double 2.500000e-01, %226
  %228 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %229 = fmul double %227, %228
  store double %229, ptr @_ZN13SedovSolution5a_valE, align 8, !tbaa !9
  %230 = load double, ptr @_ZN13SedovSolution5gpogmE, align 8, !tbaa !9
  store double %230, ptr @_ZN13SedovSolution5b_valE, align 8, !tbaa !9
  %231 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %232 = fmul double 5.000000e-01, %231
  %233 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %234 = fmul double %232, %233
  store double %234, ptr @_ZN13SedovSolution5c_valE, align 8, !tbaa !9
  %235 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %236 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %237 = fmul double %235, %236
  %238 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %239 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %240 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %241 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %242 = call double @llvm.fmuladd.f64(double %240, double %241, double 2.000000e+00)
  %243 = fmul double 2.000000e+00, %242
  %244 = fneg double %243
  %245 = call double @llvm.fmuladd.f64(double %238, double %239, double %244)
  %246 = fdiv double %237, %245
  store double %246, ptr @_ZN13SedovSolution5d_valE, align 8, !tbaa !9
  %247 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %248 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %249 = call double @llvm.fmuladd.f64(double %247, double %248, double 2.000000e+00)
  %250 = fmul double 5.000000e-01, %249
  store double %250, ptr @_ZN13SedovSolution5e_valE, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %251 = load i8, ptr @_ZN13SedovSolution9lsingularE, align 1, !tbaa !15, !range !17, !noundef !18
  %252 = trunc i8 %251 to i1
  br i1 %252, label %253, label %284

253:                                              ; preds = %174
  %254 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %255 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %256 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %257 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %258 = call double @llvm.fmuladd.f64(double %256, double %257, double 2.000000e+00)
  %259 = call double @pow(double noundef %258, double noundef 2.000000e+00) #8
  %260 = fmul double %255, %259
  %261 = fdiv double %254, %260
  store double %261, ptr %35, align 8, !tbaa !9
  %262 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %263 = fdiv double 2.000000e+00, %262
  %264 = load double, ptr %35, align 8, !tbaa !9
  %265 = fmul double %263, %264
  store double %265, ptr %34, align 8, !tbaa !9
  %266 = load double, ptr @_ZN13SedovSolution5gpogmE, align 8, !tbaa !9
  %267 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %268 = call double @pow(double noundef 2.000000e+00, double noundef %267) #8
  %269 = fmul double %266, %268
  %270 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %271 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %272 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %273 = call double @llvm.fmuladd.f64(double %271, double %272, double 2.000000e+00)
  %274 = call double @pow(double noundef %273, double noundef 2.000000e+00) #8
  %275 = fmul double %270, %274
  %276 = fdiv double %269, %275
  store double %276, ptr %41, align 8, !tbaa !9
  %277 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %278 = fptosi double %277 to i32
  %279 = icmp ne i32 %278, 1
  br i1 %279, label %280, label %283

280:                                              ; preds = %253
  %281 = load double, ptr %41, align 8, !tbaa !9
  %282 = fmul double 0x400921FB54442D18, %281
  store double %282, ptr %41, align 8, !tbaa !9
  br label %283

283:                                              ; preds = %280, %253
  br label %420

284:                                              ; preds = %174
  store double 0.000000e+00, ptr @_ZN13SedovSolution3rvvE, align 8, !tbaa !9
  %285 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %286 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %287 = fmul double %285, %286
  %288 = fdiv double 2.000000e+00, %287
  store double %288, ptr @_ZN13SedovSolution2v0E, align 8, !tbaa !9
  %289 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %290 = fdiv double 2.000000e+00, %289
  store double %290, ptr @_ZN13SedovSolution2vvE, align 8, !tbaa !9
  %291 = load i8, ptr @_ZN13SedovSolution9lstandardE, align 1, !tbaa !15, !range !17, !noundef !18
  %292 = trunc i8 %291 to i1
  br i1 %292, label %293, label %349

293:                                              ; preds = %284
  %294 = load double, ptr @_ZN13SedovSolution2v0E, align 8, !tbaa !9
  store double %294, ptr %42, align 8, !tbaa !9
  %295 = load double, ptr @_ZN13SedovSolution2a3E, align 8, !tbaa !9
  %296 = load double, ptr @_ZN13SedovSolution2a2E, align 8, !tbaa !9
  %297 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %298 = fneg double %296
  %299 = call double @llvm.fmuladd.f64(double %298, double %297, double %295)
  %300 = fsub double %299, 1.000000e+00
  store double %300, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %301 = load double, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %302 = fcmp oge double %301, 0.000000e+00
  br i1 %302, label %303, label %311

303:                                              ; preds = %293
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @_ZN13SedovSolution6efun01Ed) #8
  %304 = load double, ptr %42, align 8, !tbaa !9
  %305 = load double, ptr %38, align 8, !tbaa !9
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef %43, double noundef %304, double noundef %305, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef %44)
          to label %306 unwind label %307

306:                                              ; preds = %303
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %321

307:                                              ; preds = %303
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %45, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %622

311:                                              ; preds = %293
  %312 = load double, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %313 = call noundef double @_ZSt3absd(double noundef %312)
  store double %313, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @_ZN13SedovSolution6efun01Ed) #8
  %314 = load double, ptr %42, align 8, !tbaa !9
  %315 = load double, ptr %38, align 8, !tbaa !9
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull @_ZN13SedovSolution7midpowlEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef %47, double noundef %314, double noundef %315, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef %48)
          to label %316 unwind label %317

316:                                              ; preds = %311
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %321

317:                                              ; preds = %311
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %45, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %622

321:                                              ; preds = %316, %306
  %322 = load double, ptr @_ZN13SedovSolution2a3E, align 8, !tbaa !9
  %323 = load double, ptr @_ZN13SedovSolution2a2E, align 8, !tbaa !9
  %324 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %325 = fneg double %323
  %326 = call double @llvm.fmuladd.f64(double %325, double %324, double %322)
  %327 = fsub double %326, 2.000000e+00
  store double %327, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %328 = load double, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %329 = fcmp oge double %328, 0.000000e+00
  br i1 %329, label %330, label %338

330:                                              ; preds = %321
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @_ZN13SedovSolution6efun02Ed) #8
  %331 = load double, ptr %42, align 8, !tbaa !9
  %332 = load double, ptr %38, align 8, !tbaa !9
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef %49, double noundef %331, double noundef %332, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef %50)
          to label %333 unwind label %334

333:                                              ; preds = %330
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %348

334:                                              ; preds = %330
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %45, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %622

338:                                              ; preds = %321
  %339 = load double, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %340 = call noundef double @_ZSt3absd(double noundef %339)
  store double %340, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @_ZN13SedovSolution6efun02Ed) #8
  %341 = load double, ptr %42, align 8, !tbaa !9
  %342 = load double, ptr %38, align 8, !tbaa !9
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @_ZN13SedovSolution7midpowlEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef %51, double noundef %341, double noundef %342, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef %52)
          to label %343 unwind label %344

343:                                              ; preds = %338
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %348

344:                                              ; preds = %338
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %45, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %622

348:                                              ; preds = %343, %333
  br label %399

349:                                              ; preds = %284
  %350 = load i8, ptr @_ZN13SedovSolution7lvacuumE, align 1, !tbaa !15, !range !17, !noundef !18
  %351 = trunc i8 %350 to i1
  br i1 %351, label %352, label %398

352:                                              ; preds = %349
  %353 = load double, ptr @_ZN13SedovSolution2vvE, align 8, !tbaa !9
  store double %353, ptr %42, align 8, !tbaa !9
  %354 = load double, ptr @_ZN13SedovSolution2a5E, align 8, !tbaa !9
  store double %354, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %355 = load double, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %356 = fcmp oge double %355, 0.000000e+00
  br i1 %356, label %357, label %365

357:                                              ; preds = %352
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @_ZN13SedovSolution6efun01Ed) #8
  %358 = load double, ptr %42, align 8, !tbaa !9
  %359 = load double, ptr %38, align 8, !tbaa !9
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef %53, double noundef %358, double noundef %359, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef %54)
          to label %360 unwind label %361

360:                                              ; preds = %357
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %375

361:                                              ; preds = %357
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %45, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %622

365:                                              ; preds = %352
  %366 = load double, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %367 = call noundef double @_ZSt3absd(double noundef %366)
  store double %367, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @_ZN13SedovSolution6efun01Ed) #8
  %368 = load double, ptr %42, align 8, !tbaa !9
  %369 = load double, ptr %38, align 8, !tbaa !9
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @_ZN13SedovSolution8midpowl2EmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef %55, double noundef %368, double noundef %369, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef %56)
          to label %370 unwind label %371

370:                                              ; preds = %365
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %375

371:                                              ; preds = %365
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %45, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %622

375:                                              ; preds = %370, %360
  %376 = load double, ptr @_ZN13SedovSolution2a5E, align 8, !tbaa !9
  store double %376, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %377 = load double, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %378 = fcmp oge double %377, 0.000000e+00
  br i1 %378, label %379, label %387

379:                                              ; preds = %375
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @_ZN13SedovSolution6efun02Ed) #8
  %380 = load double, ptr %42, align 8, !tbaa !9
  %381 = load double, ptr %38, align 8, !tbaa !9
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef %57, double noundef %380, double noundef %381, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef %58)
          to label %382 unwind label %383

382:                                              ; preds = %379
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %397

383:                                              ; preds = %379
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %45, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %622

387:                                              ; preds = %375
  %388 = load double, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  %389 = call noundef double @_ZSt3absd(double noundef %388)
  store double %389, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !9
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @_ZN13SedovSolution6efun02Ed) #8
  %390 = load double, ptr %42, align 8, !tbaa !9
  %391 = load double, ptr %38, align 8, !tbaa !9
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @_ZN13SedovSolution8midpowl2EmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef %59, double noundef %390, double noundef %391, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef %60)
          to label %392 unwind label %393

392:                                              ; preds = %387
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %397

393:                                              ; preds = %387
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %45, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %622

397:                                              ; preds = %392, %382
  br label %398

398:                                              ; preds = %397, %349
  br label %399

399:                                              ; preds = %398, %348
  %400 = load i64, ptr %17, align 8, !tbaa !5
  %401 = icmp eq i64 %400, 1
  br i1 %401, label %402, label %408

402:                                              ; preds = %399
  %403 = load double, ptr %34, align 8, !tbaa !9
  %404 = load double, ptr %35, align 8, !tbaa !9
  %405 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %406 = fdiv double %404, %405
  %407 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %403, double %406)
  store double %407, ptr %41, align 8, !tbaa !9
  br label %419

408:                                              ; preds = %399
  %409 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !9
  %410 = fsub double %409, 1.000000e+00
  %411 = fmul double %410, 0x400921FB54442D18
  %412 = load double, ptr %34, align 8, !tbaa !9
  %413 = load double, ptr %35, align 8, !tbaa !9
  %414 = fmul double 2.000000e+00, %413
  %415 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %416 = fdiv double %414, %415
  %417 = fadd double %412, %416
  %418 = fmul double %411, %417
  store double %418, ptr %41, align 8, !tbaa !9
  br label %419

419:                                              ; preds = %408, %402
  br label %420

420:                                              ; preds = %419, %283
  %421 = load double, ptr %19, align 8, !tbaa !9
  %422 = load double, ptr %41, align 8, !tbaa !9
  %423 = load double, ptr %22, align 8, !tbaa !9
  %424 = fmul double %422, %423
  %425 = fdiv double %421, %424
  %426 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %427 = fdiv double 1.000000e+00, %426
  %428 = call double @pow(double noundef %425, double noundef %427) #8
  %429 = load double, ptr %18, align 8, !tbaa !9
  %430 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %431 = fdiv double 2.000000e+00, %430
  %432 = call double @pow(double noundef %429, double noundef %431) #8
  %433 = fmul double %428, %432
  store double %433, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #8
  %434 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !9
  %435 = fdiv double 2.000000e+00, %434
  %436 = load double, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !9
  %437 = fmul double %435, %436
  %438 = load double, ptr %18, align 8, !tbaa !9
  %439 = fdiv double %437, %438
  store double %439, ptr %61, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #8
  %440 = load double, ptr %22, align 8, !tbaa !9
  %441 = load double, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !9
  %442 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %443 = fneg double %442
  %444 = call double @pow(double noundef %441, double noundef %443) #8
  %445 = fmul double %440, %444
  store double %445, ptr %62, align 8, !tbaa !9
  %446 = load double, ptr @_ZN13SedovSolution5gpogmE, align 8, !tbaa !9
  %447 = load double, ptr %62, align 8, !tbaa !9
  %448 = fmul double %446, %447
  store double %448, ptr @_ZN13SedovSolution9rho_shockE, align 8, !tbaa !9
  %449 = load double, ptr %62, align 8, !tbaa !9
  %450 = fmul double 2.000000e+00, %449
  %451 = load double, ptr %61, align 8, !tbaa !9
  %452 = call double @pow(double noundef %451, double noundef 2.000000e+00) #8
  %453 = fmul double %450, %452
  %454 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %455 = fdiv double %453, %454
  store double %455, ptr @_ZN13SedovSolution7p_shockE, align 8, !tbaa !9
  %456 = load double, ptr %61, align 8, !tbaa !9
  %457 = fmul double 2.000000e+00, %456
  %458 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !9
  %459 = fdiv double %457, %458
  store double %459, ptr @_ZN13SedovSolution9vel_shockE, align 8, !tbaa !9
  %460 = load double, ptr @_ZN13SedovSolution7p_shockE, align 8, !tbaa !9
  %461 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %462 = load double, ptr @_ZN13SedovSolution9rho_shockE, align 8, !tbaa !9
  %463 = fmul double %461, %462
  %464 = fdiv double %460, %463
  store double %464, ptr @_ZN13SedovSolution7u_shockE, align 8, !tbaa !9
  %465 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %466 = load double, ptr @_ZN13SedovSolution7p_shockE, align 8, !tbaa !9
  %467 = fmul double %465, %466
  %468 = load double, ptr @_ZN13SedovSolution9rho_shockE, align 8, !tbaa !9
  %469 = fdiv double %467, %468
  %470 = call double @sqrt(double noundef %469) #8
  store double %470, ptr @_ZN13SedovSolution8cs_shockE, align 8, !tbaa !9
  %471 = load i8, ptr @_ZN13SedovSolution7lvacuumE, align 1, !tbaa !15, !range !17, !noundef !18
  %472 = trunc i8 %471 to i1
  br i1 %472, label %473, label %482

473:                                              ; preds = %420
  %474 = load double, ptr @_ZN13SedovSolution2vvE, align 8, !tbaa !9
  store double %474, ptr @_ZN13SedovSolution5vwantE, align 8, !tbaa !9
  %475 = load double, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !9
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @_ZN13SedovSolution10sed_r_findEd) #8
  %476 = invoke noundef double @_ZN13SedovSolution6zeroinEddSt8functionIFddEEd(double noundef 0.000000e+00, double noundef %475, ptr noundef %63, double noundef 1.000000e-30)
          to label %477 unwind label %478

477:                                              ; preds = %473
  store double %476, ptr @_ZN13SedovSolution3rvvE, align 8, !tbaa !9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %482

478:                                              ; preds = %473
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %45, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %621

482:                                              ; preds = %477, %420
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #8
  store i64 0, ptr %64, align 8, !tbaa !5
  br label %483

483:                                              ; preds = %616, %482
  %484 = load i64, ptr %64, align 8, !tbaa !5
  %485 = load i64, ptr %33, align 8, !tbaa !5
  %486 = icmp ult i64 %484, %485
  br i1 %486, label %488, label %487

487:                                              ; preds = %483
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  br label %619

488:                                              ; preds = %483
  %489 = load ptr, ptr %27, align 8, !tbaa !11
  %490 = load i64, ptr %64, align 8, !tbaa !5
  %491 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %489, i64 noundef %490) #8
  %492 = load double, ptr %491, align 8, !tbaa !9
  store double %492, ptr @_ZN13SedovSolution5rwantE, align 8, !tbaa !9
  %493 = load double, ptr @_ZN13SedovSolution5rwantE, align 8, !tbaa !9
  %494 = load double, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !9
  %495 = fcmp ogt double %493, %494
  br i1 %495, label %496, label %522

496:                                              ; preds = %488
  %497 = load double, ptr %22, align 8, !tbaa !9
  %498 = load double, ptr @_ZN13SedovSolution5rwantE, align 8, !tbaa !9
  %499 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !9
  %500 = fneg double %499
  %501 = call double @pow(double noundef %498, double noundef %500) #8
  %502 = fmul double %497, %501
  %503 = load ptr, ptr %28, align 8, !tbaa !11
  %504 = load i64, ptr %64, align 8, !tbaa !5
  %505 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %503, i64 noundef %504) #8
  store double %502, ptr %505, align 8, !tbaa !9
  %506 = load double, ptr %25, align 8, !tbaa !9
  %507 = load ptr, ptr %31, align 8, !tbaa !11
  %508 = load i64, ptr %64, align 8, !tbaa !5
  %509 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %507, i64 noundef %508) #8
  store double %506, ptr %509, align 8, !tbaa !9
  %510 = load double, ptr %24, align 8, !tbaa !9
  %511 = load ptr, ptr %29, align 8, !tbaa !11
  %512 = load i64, ptr %64, align 8, !tbaa !5
  %513 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %511, i64 noundef %512) #8
  store double %510, ptr %513, align 8, !tbaa !9
  %514 = load double, ptr %23, align 8, !tbaa !9
  %515 = load ptr, ptr %30, align 8, !tbaa !11
  %516 = load i64, ptr %64, align 8, !tbaa !5
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %515, i64 noundef %516) #8
  store double %514, ptr %517, align 8, !tbaa !9
  %518 = load double, ptr %26, align 8, !tbaa !9
  %519 = load ptr, ptr %32, align 8, !tbaa !11
  %520 = load i64, ptr %64, align 8, !tbaa !5
  %521 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %519, i64 noundef %520) #8
  store double %518, ptr %521, align 8, !tbaa !9
  br label %615

522:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  %523 = load i8, ptr @_ZN13SedovSolution9lstandardE, align 1, !tbaa !15, !range !17, !noundef !18
  %524 = trunc i8 %523 to i1
  br i1 %524, label %525, label %535

525:                                              ; preds = %522
  %526 = load double, ptr @_ZN13SedovSolution2v0E, align 8, !tbaa !9
  %527 = fmul double 9.000000e-01, %526
  %528 = load double, ptr %38, align 8, !tbaa !9
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @_ZN13SedovSolution10sed_v_findEd) #8
  %529 = invoke noundef double @_ZN13SedovSolution6zeroinEddSt8functionIFddEEd(double noundef %527, double noundef %528, ptr noundef %66, double noundef 1.000000e-30)
          to label %530 unwind label %531

530:                                              ; preds = %525
  store double %529, ptr %65, align 8, !tbaa !9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %552

531:                                              ; preds = %525
  %532 = landingpad { ptr, i32 }
          cleanup
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %45, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %614

535:                                              ; preds = %522
  %536 = load i8, ptr @_ZN13SedovSolution7lvacuumE, align 1, !tbaa !15, !range !17, !noundef !18
  %537 = trunc i8 %536 to i1
  br i1 %537, label %538, label %548

538:                                              ; preds = %535
  %539 = load double, ptr %38, align 8, !tbaa !9
  %540 = load double, ptr @_ZN13SedovSolution2vvE, align 8, !tbaa !9
  %541 = fmul double 1.200000e+00, %540
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @_ZN13SedovSolution10sed_v_findEd) #8
  %542 = invoke noundef double @_ZN13SedovSolution6zeroinEddSt8functionIFddEEd(double noundef %539, double noundef %541, ptr noundef %67, double noundef 1.000000e-30)
          to label %543 unwind label %544

543:                                              ; preds = %538
  store double %542, ptr %65, align 8, !tbaa !9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %551

544:                                              ; preds = %538
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %45, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %46, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %614

548:                                              ; preds = %535
  %549 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.1)
  %550 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %549, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #9
  unreachable

551:                                              ; preds = %543
  br label %552

552:                                              ; preds = %551, %530
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  %553 = load double, ptr %65, align 8, !tbaa !9
  call void @_ZN13SedovSolution11sedov_funcsEdRdS0_S0_S0_S0_(double noundef %553, ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %72)
  %554 = load double, ptr @_ZN13SedovSolution9vel_shockE, align 8, !tbaa !9
  %555 = load double, ptr %70, align 8, !tbaa !9
  %556 = fmul double %554, %555
  %557 = load ptr, ptr %31, align 8, !tbaa !11
  %558 = load i64, ptr %64, align 8, !tbaa !5
  %559 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %557, i64 noundef %558) #8
  store double %556, ptr %559, align 8, !tbaa !9
  %560 = load double, ptr @_ZN13SedovSolution9rho_shockE, align 8, !tbaa !9
  %561 = load double, ptr %71, align 8, !tbaa !9
  %562 = fmul double %560, %561
  %563 = load ptr, ptr %28, align 8, !tbaa !11
  %564 = load i64, ptr %64, align 8, !tbaa !5
  %565 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef %564) #8
  store double %562, ptr %565, align 8, !tbaa !9
  %566 = load double, ptr @_ZN13SedovSolution7p_shockE, align 8, !tbaa !9
  %567 = load double, ptr %72, align 8, !tbaa !9
  %568 = fmul double %566, %567
  %569 = load ptr, ptr %29, align 8, !tbaa !11
  %570 = load i64, ptr %64, align 8, !tbaa !5
  %571 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %569, i64 noundef %570) #8
  store double %568, ptr %571, align 8, !tbaa !9
  %572 = load ptr, ptr %30, align 8, !tbaa !11
  %573 = load i64, ptr %64, align 8, !tbaa !5
  %574 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %572, i64 noundef %573) #8
  store double 0.000000e+00, ptr %574, align 8, !tbaa !9
  %575 = load ptr, ptr %32, align 8, !tbaa !11
  %576 = load i64, ptr %64, align 8, !tbaa !5
  %577 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %575, i64 noundef %576) #8
  store double 0.000000e+00, ptr %577, align 8, !tbaa !9
  %578 = load ptr, ptr %28, align 8, !tbaa !11
  %579 = load i64, ptr %64, align 8, !tbaa !5
  %580 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %578, i64 noundef %579) #8
  %581 = load double, ptr %580, align 8, !tbaa !9
  %582 = fcmp une double %581, 0.000000e+00
  br i1 %582, label %583, label %613

583:                                              ; preds = %552
  %584 = load ptr, ptr %29, align 8, !tbaa !11
  %585 = load i64, ptr %64, align 8, !tbaa !5
  %586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %584, i64 noundef %585) #8
  %587 = load double, ptr %586, align 8, !tbaa !9
  %588 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !9
  %589 = load ptr, ptr %28, align 8, !tbaa !11
  %590 = load i64, ptr %64, align 8, !tbaa !5
  %591 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %589, i64 noundef %590) #8
  %592 = load double, ptr %591, align 8, !tbaa !9
  %593 = fmul double %588, %592
  %594 = fdiv double %587, %593
  %595 = load ptr, ptr %30, align 8, !tbaa !11
  %596 = load i64, ptr %64, align 8, !tbaa !5
  %597 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %595, i64 noundef %596) #8
  store double %594, ptr %597, align 8, !tbaa !9
  %598 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !9
  %599 = load ptr, ptr %29, align 8, !tbaa !11
  %600 = load i64, ptr %64, align 8, !tbaa !5
  %601 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %599, i64 noundef %600) #8
  %602 = load double, ptr %601, align 8, !tbaa !9
  %603 = fmul double %598, %602
  %604 = load ptr, ptr %28, align 8, !tbaa !11
  %605 = load i64, ptr %64, align 8, !tbaa !5
  %606 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %604, i64 noundef %605) #8
  %607 = load double, ptr %606, align 8, !tbaa !9
  %608 = fdiv double %603, %607
  %609 = call double @sqrt(double noundef %608) #8
  %610 = load ptr, ptr %32, align 8, !tbaa !11
  %611 = load i64, ptr %64, align 8, !tbaa !5
  %612 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %610, i64 noundef %611) #8
  store double %609, ptr %612, align 8, !tbaa !9
  br label %613

613:                                              ; preds = %583, %552
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  br label %615

614:                                              ; preds = %544, %531
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  br label %621

615:                                              ; preds = %613, %496
  br label %616

616:                                              ; preds = %615
  %617 = load i64, ptr %64, align 8, !tbaa !5
  %618 = add i64 %617, 1
  store i64 %618, ptr %64, align 8, !tbaa !5
  br label %483, !llvm.loop !19

619:                                              ; preds = %487
  %620 = load double, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  ret double %620

621:                                              ; preds = %614, %478
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  br label %622

622:                                              ; preds = %621, %393, %383, %371, %361, %344, %334, %317, %307
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %623

623:                                              ; preds = %622
  %624 = load ptr, ptr %45, align 8
  %625 = load i32, ptr %46, align 4
  %626 = insertvalue { ptr, i32 } poison, ptr %624, 0
  %627 = insertvalue { ptr, i32 } %626, i32 %625, 1
  resume { ptr, i32 } %627
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; 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) #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution6efun01Ed(double noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd(i64 noundef, ptr noundef, double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13SedovSolution7midpowlEmSt8functionIFddEEddRd(i64 noundef, ptr noundef, double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution6efun02Ed(double noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13SedovSolution8midpowl2EmSt8functionIFddEEddRd(i64 noundef, ptr noundef, double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution6zeroinEddSt8functionIFddEEd(double noundef, double noundef, ptr noundef, double noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution10sed_r_findEd(double noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution10sed_v_findEd(double noundef) #0 align 2

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

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


; 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::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::function.0" = type { %"class.std::_Function_base", ptr }

@_ZN13SedovSolution5xgeomE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5omegaE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5gammaE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5gamm1E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5gamp1E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5gpogmE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution3xg2E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution9lsingularE = external dso_local local_unnamed_addr global i8, align 1
@_ZN13SedovSolution9lstandardE = external dso_local local_unnamed_addr global i8, align 1
@_ZN13SedovSolution7lvacuumE = external dso_local local_unnamed_addr global i8, align 1
@_ZN13SedovSolution7lomega2E = external dso_local local_unnamed_addr global i8, align 1
@_ZN13SedovSolution7lomega3E = external dso_local local_unnamed_addr global i8, align 1
@_ZN13SedovSolution2a0E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution2a1E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution2a2E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution2a3E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution2a4E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution2a5E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5a_valE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5b_valE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5c_valE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5d_valE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5e_valE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5rwantE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution5vwantE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution2r2E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution2v0E = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution2vvE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution3rvvE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution7gam_intE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution9rho_shockE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution7p_shockE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution9vel_shockE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution7u_shockE = external dso_local local_unnamed_addr global double, align 8
@_ZN13SedovSolution8cs_shockE = external dso_local local_unnamed_addr global double, align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [35 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZN13SedovSolution8sedovSolEmdddddddddRKSt6vectorIdSaIdEERS2_S5_S5_S5_S5_(i64 noundef %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double noundef %6, double noundef %7, double noundef %8, double noundef %9, ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %15) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca %"class.std::function", align 8
  %20 = alloca %"class.std::function.0", align 8
  %21 = alloca %"class.std::function", align 8
  %22 = alloca %"class.std::function.0", align 8
  %23 = alloca %"class.std::function", align 8
  %24 = alloca %"class.std::function.0", align 8
  %25 = alloca %"class.std::function", align 8
  %26 = alloca %"class.std::function.0", align 8
  %27 = alloca %"class.std::function", align 8
  %28 = alloca %"class.std::function.0", align 8
  %29 = alloca %"class.std::function", align 8
  %30 = alloca %"class.std::function.0", align 8
  %31 = alloca %"class.std::function", align 8
  %32 = alloca %"class.std::function.0", align 8
  %33 = alloca %"class.std::function", align 8
  %34 = alloca %"class.std::function.0", align 8
  %35 = alloca %"class.std::function", align 8
  %36 = alloca %"class.std::function", align 8
  %37 = alloca %"class.std::function", 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 = tail call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  store double 0.000000e+00, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  store double 0.000000e+00, ptr %18, align 8, !tbaa !5
  store double %3, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !5
  store double %4, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !5
  %44 = uitofp i64 %0 to double
  store double %44, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !5
  %45 = fcmp ugt double %44, %3
  br i1 %45, label %49, label %46

46:                                               ; preds = %16
  %47 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str)
  %48 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  tail call void @exit(i32 noundef -1) #9
  unreachable

49:                                               ; preds = %16
  %50 = fadd double %4, -1.000000e+00
  store double %50, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !5
  %51 = fadd double %4, 1.000000e+00
  store double %51, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !5
  %52 = fdiv double %51, %50
  store double %52, ptr @_ZN13SedovSolution5gpogmE, align 8, !tbaa !5
  %53 = fadd double %44, 2.000000e+00
  %54 = fsub double %53, %3
  store double %54, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !5
  %55 = tail call double @llvm.fmuladd.f64(double %50, double 2.000000e+00, double %44)
  %56 = fneg double %4
  %57 = tail call double @llvm.fmuladd.f64(double %56, double %3, double %55)
  %58 = fsub double 2.000000e+00, %4
  %59 = fneg double %3
  %60 = tail call double @llvm.fmuladd.f64(double %44, double %58, double %59)
  %61 = fmul double %54, %51
  %62 = fdiv double 4.000000e+00, %61
  %63 = tail call double @llvm.fmuladd.f64(double %50, double %44, double 2.000000e+00)
  %64 = fdiv double 2.000000e+00, %63
  %.not131 = icmp eq i64 %43, 0
  br i1 %.not131, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %49
  store i8 0, ptr @_ZN13SedovSolution9lsingularE, align 1, !tbaa !9
  store i8 0, ptr @_ZN13SedovSolution9lstandardE, align 1, !tbaa !9
  store i8 0, ptr @_ZN13SedovSolution7lvacuumE, align 1, !tbaa !9
  %65 = fsub double %62, %64
  %66 = tail call noundef double @_ZSt3absd(double noundef %65)
  %67 = fcmp ugt double %66, 1.000000e-04
  br i1 %67, label %74, label %.sink.split

.lr.ph:                                           ; preds = %49, %.lr.ph
  %.0113126 = phi i64 [ %73, %.lr.ph ], [ 0, %49 ]
  %68 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0113126) #8
  store double 0.000000e+00, ptr %68, align 8, !tbaa !5
  %69 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %.0113126) #8
  store double 0.000000e+00, ptr %69, align 8, !tbaa !5
  %70 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %.0113126) #8
  store double 0.000000e+00, ptr %70, align 8, !tbaa !5
  %71 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %.0113126) #8
  store double 0.000000e+00, ptr %71, align 8, !tbaa !5
  %72 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0113126) #8
  store double 0.000000e+00, ptr %72, align 8, !tbaa !5
  %73 = add nuw i64 %.0113126, 1
  %exitcond.not = icmp eq i64 %73, %43
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !11

74:                                               ; preds = %._crit_edge
  %75 = fadd double %64, -1.000000e-04
  %76 = fcmp olt double %62, %75
  br i1 %76, label %.sink.split, label %77

77:                                               ; preds = %74
  %78 = fadd double %64, 1.000000e-04
  %79 = fcmp ogt double %62, %78
  br i1 %79, label %.sink.split, label %80

.sink.split:                                      ; preds = %77, %74, %._crit_edge
  %_ZN13SedovSolution9lstandardE.sink = phi ptr [ @_ZN13SedovSolution9lsingularE, %._crit_edge ], [ @_ZN13SedovSolution9lstandardE, %74 ], [ @_ZN13SedovSolution7lvacuumE, %77 ]
  store i8 1, ptr %_ZN13SedovSolution9lstandardE.sink, align 1, !tbaa !9
  br label %80

80:                                               ; preds = %.sink.split, %77
  store i8 0, ptr @_ZN13SedovSolution7lomega2E, align 1, !tbaa !9
  store i8 0, ptr @_ZN13SedovSolution7lomega3E, align 1, !tbaa !9
  %81 = tail call noundef double @_ZSt3absd(double noundef %57)
  %82 = fcmp ugt double %81, 1.000000e-04
  br i1 %82, label %83, label %.sink.split134

83:                                               ; preds = %80
  %84 = tail call noundef double @_ZSt3absd(double noundef %60)
  %85 = fcmp ugt double %84, 1.000000e-04
  br i1 %85, label %86, label %.sink.split134

.sink.split134:                                   ; preds = %83, %80
  %_ZN13SedovSolution7lomega3E.sink = phi ptr [ @_ZN13SedovSolution7lomega2E, %80 ], [ @_ZN13SedovSolution7lomega3E, %83 ]
  %.0107.ph = phi double [ %60, %80 ], [ 1.000000e-08, %83 ]
  %.0106.ph = phi double [ 1.000000e-08, %80 ], [ %57, %83 ]
  store i8 1, ptr %_ZN13SedovSolution7lomega3E.sink, align 1, !tbaa !9
  br label %86

86:                                               ; preds = %.sink.split134, %83
  %.0107 = phi double [ %60, %83 ], [ %.0107.ph, %.sink.split134 ]
  %.0106 = phi double [ %57, %83 ], [ %.0106.ph, %.sink.split134 ]
  %87 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !5
  %88 = fdiv double 2.000000e+00, %87
  store double %88, ptr @_ZN13SedovSolution2a0E, align 8, !tbaa !5
  %89 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !5
  %90 = fneg double %89
  %91 = fdiv double %90, %.0106
  store double %91, ptr @_ZN13SedovSolution2a2E, align 8, !tbaa !5
  %92 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !5
  %93 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !5
  %94 = tail call double @llvm.fmuladd.f64(double %93, double %89, double 2.000000e+00)
  %95 = fsub double 2.000000e+00, %92
  %96 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !5
  %97 = fneg double %96
  %98 = tail call double @llvm.fmuladd.f64(double %93, double %95, double %97)
  %99 = insertelement <2 x double> poison, double %87, i64 0
  %100 = insertelement <2 x double> %99, double %98, i64 1
  %101 = insertelement <2 x double> <double poison, double 2.000000e+00>, double %92, i64 0
  %102 = fmul <2 x double> %100, %101
  %103 = extractelement <2 x double> %102, i64 0
  %104 = fmul double %87, %103
  %105 = insertelement <2 x double> poison, double %94, i64 0
  %106 = insertelement <2 x double> %105, double %104, i64 1
  %107 = fdiv <2 x double> %102, %106
  %108 = extractelement <2 x double> %107, i64 1
  %109 = fsub double %108, %91
  %110 = extractelement <2 x double> %107, i64 0
  %111 = fmul double %110, %109
  store double %111, ptr @_ZN13SedovSolution2a1E, align 8, !tbaa !5
  %112 = fsub double %93, %96
  %113 = fdiv double %112, %.0106
  store double %113, ptr @_ZN13SedovSolution2a3E, align 8, !tbaa !5
  %114 = fmul double %87, %112
  %115 = fmul double %114, %111
  %116 = fdiv double %115, %.0107
  store double %116, ptr @_ZN13SedovSolution2a4E, align 8, !tbaa !5
  %117 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !5
  %118 = fmul double %93, -2.000000e+00
  %119 = tail call double @llvm.fmuladd.f64(double %96, double %117, double %118)
  %120 = fdiv double %119, %.0107
  store double %120, ptr @_ZN13SedovSolution2a5E, align 8, !tbaa !5
  %121 = fmul double %87, 2.500000e-01
  %122 = fmul double %121, %117
  store double %122, ptr @_ZN13SedovSolution5a_valE, align 8, !tbaa !5
  %123 = load double, ptr @_ZN13SedovSolution5gpogmE, align 8, !tbaa !5
  store double %123, ptr @_ZN13SedovSolution5b_valE, align 8, !tbaa !5
  %124 = fmul double %87, 5.000000e-01
  %125 = fmul double %124, %92
  store double %125, ptr @_ZN13SedovSolution5c_valE, align 8, !tbaa !5
  %126 = fmul double %87, %117
  %127 = fmul double %94, -2.000000e+00
  %128 = tail call double @llvm.fmuladd.f64(double %87, double %117, double %127)
  %129 = fdiv double %126, %128
  store double %129, ptr @_ZN13SedovSolution5d_valE, align 8, !tbaa !5
  %130 = fmul double %94, 5.000000e-01
  store double %130, ptr @_ZN13SedovSolution5e_valE, align 8, !tbaa !5
  %131 = load i8, ptr @_ZN13SedovSolution9lsingularE, align 1, !tbaa !9, !range !13, !noundef !14
  %132 = trunc nuw i8 %131 to i1
  br i1 %132, label %133, label %151

133:                                              ; preds = %86
  %square = fmul double %94, %94
  %134 = fmul double %93, %square
  %135 = insertelement <2 x double> <double 2.000000e+00, double poison>, double %117, i64 1
  %136 = insertelement <2 x double> poison, double %89, i64 0
  %137 = insertelement <2 x double> %136, double %134, i64 1
  %138 = fdiv <2 x double> %135, %137
  %139 = extractelement <2 x double> %138, i64 1
  store double %139, ptr %18, align 8, !tbaa !5
  %140 = extractelement <2 x double> %138, i64 0
  %141 = fmul double %140, %139
  store double %141, ptr %17, align 8, !tbaa !5
  %exp2 = tail call double @exp2(double %93)
  %142 = fmul double %123, %exp2
  %143 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !5
  %144 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !5
  %145 = tail call double @llvm.fmuladd.f64(double %144, double %143, double 2.000000e+00)
  %square121 = fmul double %145, %145
  %146 = fmul double %143, %square121
  %147 = fdiv double %142, %146
  %148 = fptosi double %143 to i32
  %.not = icmp eq i32 %148, 1
  br i1 %.not, label %223, label %149

149:                                              ; preds = %133
  %150 = fmul double %147, 0x400921FB54442D18
  br label %223

151:                                              ; preds = %86
  store double 0.000000e+00, ptr @_ZN13SedovSolution3rvvE, align 8, !tbaa !5
  %152 = fdiv double 2.000000e+00, %103
  store double %152, ptr @_ZN13SedovSolution2v0E, align 8, !tbaa !5
  store double %88, ptr @_ZN13SedovSolution2vvE, align 8, !tbaa !5
  %153 = load i8, ptr @_ZN13SedovSolution9lstandardE, align 1, !tbaa !9, !range !13, !noundef !14
  %154 = trunc nuw i8 %153 to i1
  br i1 %154, label %155, label %182

155:                                              ; preds = %151
  %156 = fneg double %91
  %157 = tail call double @llvm.fmuladd.f64(double %156, double %87, double %113)
  %158 = fadd double %157, -1.000000e+00
  store double %158, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !5
  %159 = fcmp ult double %158, 0.000000e+00
  br i1 %159, label %163, label %160

160:                                              ; preds = %155
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @_ZN13SedovSolution6efun01Ed) #8
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef nonnull %19, double noundef %152, double noundef %62, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull %20)
          to label %167 unwind label %161

161:                                              ; preds = %160
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %341

163:                                              ; preds = %155
  %164 = tail call noundef double @_ZSt3absd(double noundef %158)
  store double %164, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !5
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @_ZN13SedovSolution6efun01Ed) #8
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @_ZN13SedovSolution7midpowlEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef nonnull %21, double noundef %152, double noundef %62, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull %22)
          to label %167 unwind label %165

165:                                              ; preds = %163
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %341

167:                                              ; preds = %163, %160
  %.sink135 = phi ptr [ %20, %160 ], [ %22, %163 ]
  %.sink = phi ptr [ %19, %160 ], [ %21, %163 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink135) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink) #8
  %168 = load double, ptr @_ZN13SedovSolution2a3E, align 8, !tbaa !5
  %169 = load double, ptr @_ZN13SedovSolution2a2E, align 8, !tbaa !5
  %170 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !5
  %171 = fneg double %169
  %172 = call double @llvm.fmuladd.f64(double %171, double %170, double %168)
  %173 = fadd double %172, -2.000000e+00
  store double %173, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !5
  %174 = fcmp ult double %173, 0.000000e+00
  br i1 %174, label %178, label %175

175:                                              ; preds = %167
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @_ZN13SedovSolution6efun02Ed) #8
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef nonnull %23, double noundef %152, double noundef %62, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull %24)
          to label %.sink.split138 unwind label %176

176:                                              ; preds = %175
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %341

178:                                              ; preds = %167
  %179 = call noundef double @_ZSt3absd(double noundef %173)
  store double %179, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !5
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @_ZN13SedovSolution6efun02Ed) #8
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @_ZN13SedovSolution7midpowlEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef nonnull %25, double noundef %152, double noundef %62, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull %26)
          to label %.sink.split138 unwind label %180

180:                                              ; preds = %178
  %181 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %341

182:                                              ; preds = %151
  %183 = load i8, ptr @_ZN13SedovSolution7lvacuumE, align 1, !tbaa !9, !range !13, !noundef !14
  %184 = trunc nuw i8 %183 to i1
  br i1 %184, label %185, label %204

185:                                              ; preds = %182
  store double %120, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !5
  %186 = fcmp ult double %120, 0.000000e+00
  br i1 %186, label %190, label %187

187:                                              ; preds = %185
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @_ZN13SedovSolution6efun01Ed) #8
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef nonnull %27, double noundef %88, double noundef %62, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull %28)
          to label %194 unwind label %188

188:                                              ; preds = %187
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %341

190:                                              ; preds = %185
  %191 = tail call noundef double @_ZSt3absd(double noundef %120)
  store double %191, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !5
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @_ZN13SedovSolution6efun01Ed) #8
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @_ZN13SedovSolution8midpowl2EmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef nonnull %29, double noundef %88, double noundef %62, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull %30)
          to label %194 unwind label %192

192:                                              ; preds = %190
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %341

194:                                              ; preds = %190, %187
  %.sink137 = phi ptr [ %28, %187 ], [ %30, %190 ]
  %.sink136 = phi ptr [ %27, %187 ], [ %29, %190 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink137) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink136) #8
  %195 = load double, ptr @_ZN13SedovSolution2a5E, align 8, !tbaa !5
  store double %195, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !5
  %196 = fcmp ult double %195, 0.000000e+00
  br i1 %196, label %200, label %197

197:                                              ; preds = %194
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @_ZN13SedovSolution6efun02Ed) #8
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef nonnull %31, double noundef %88, double noundef %62, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull %32)
          to label %.sink.split138 unwind label %198

198:                                              ; preds = %197
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %341

200:                                              ; preds = %194
  %201 = call noundef double @_ZSt3absd(double noundef %195)
  store double %201, ptr @_ZN13SedovSolution7gam_intE, align 8, !tbaa !5
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @_ZN13SedovSolution6efun02Ed) #8
  call void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @_ZN13SedovSolution8midpowl2EmSt8functionIFddEEddRd) #8
  invoke void @_ZN13SedovSolution5qromoESt8functionIFddEEdddRdS0_IFvmS2_ddS3_EE(ptr noundef nonnull %33, double noundef %88, double noundef %62, double noundef 1.000000e-10, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull %34)
          to label %.sink.split138 unwind label %202

202:                                              ; preds = %200
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %341

.sink.split138:                                   ; preds = %200, %197, %178, %175
  %.sink140 = phi ptr [ %24, %175 ], [ %26, %178 ], [ %32, %197 ], [ %34, %200 ]
  %.sink139 = phi ptr [ %23, %175 ], [ %25, %178 ], [ %31, %197 ], [ %33, %200 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink140) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink139) #8
  br label %204

204:                                              ; preds = %.sink.split138, %182
  %205 = icmp eq i64 %0, 1
  br i1 %205, label %206, label %212

206:                                              ; preds = %204
  %207 = load double, ptr %17, align 8, !tbaa !5
  %208 = load double, ptr %18, align 8, !tbaa !5
  %209 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !5
  %210 = fdiv double %208, %209
  %211 = call double @llvm.fmuladd.f64(double %207, double 5.000000e-01, double %210)
  br label %223

212:                                              ; preds = %204
  %213 = load double, ptr @_ZN13SedovSolution5xgeomE, align 8, !tbaa !5
  %214 = fadd double %213, -1.000000e+00
  %215 = fmul double %214, 0x400921FB54442D18
  %216 = load double, ptr %17, align 8, !tbaa !5
  %217 = load double, ptr %18, align 8, !tbaa !5
  %218 = fmul double %217, 2.000000e+00
  %219 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !5
  %220 = fdiv double %218, %219
  %221 = fadd double %216, %220
  %222 = fmul double %215, %221
  br label %223

223:                                              ; preds = %206, %212, %133, %149
  %.0112 = phi double [ %150, %149 ], [ %147, %133 ], [ %211, %206 ], [ %222, %212 ]
  %224 = fmul double %.0112, %5
  %225 = fdiv double %2, %224
  %226 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !5
  %227 = fdiv double 1.000000e+00, %226
  %228 = call double @pow(double noundef %225, double noundef %227) #8
  %229 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !5
  %230 = fdiv double 2.000000e+00, %229
  %231 = call double @pow(double noundef %1, double noundef %230) #8
  %232 = fmul double %228, %231
  store double %232, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !5
  %233 = load double, ptr @_ZN13SedovSolution3xg2E, align 8, !tbaa !5
  %234 = fdiv double 2.000000e+00, %233
  %235 = fmul double %232, %234
  %236 = fdiv double %235, %1
  %237 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !5
  %238 = fneg double %237
  %239 = call double @pow(double noundef %232, double noundef %238) #8
  %240 = fmul double %239, %5
  %241 = load double, ptr @_ZN13SedovSolution5gpogmE, align 8, !tbaa !5
  %242 = fmul double %241, %240
  store double %242, ptr @_ZN13SedovSolution9rho_shockE, align 8, !tbaa !5
  %243 = fmul double %240, 2.000000e+00
  %square122 = fmul double %236, %236
  %244 = fmul double %243, %square122
  %245 = load double, ptr @_ZN13SedovSolution5gamp1E, align 8, !tbaa !5
  %246 = fdiv double %244, %245
  store double %246, ptr @_ZN13SedovSolution7p_shockE, align 8, !tbaa !5
  %247 = fmul double %236, 2.000000e+00
  %248 = fdiv double %247, %245
  store double %248, ptr @_ZN13SedovSolution9vel_shockE, align 8, !tbaa !5
  %249 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !5
  %250 = fmul double %242, %249
  %251 = fdiv double %246, %250
  store double %251, ptr @_ZN13SedovSolution7u_shockE, align 8, !tbaa !5
  %252 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !5
  %253 = fmul double %246, %252
  %254 = fdiv double %253, %242
  %255 = call double @sqrt(double noundef %254) #8
  store double %255, ptr @_ZN13SedovSolution8cs_shockE, align 8, !tbaa !5
  %256 = load i8, ptr @_ZN13SedovSolution7lvacuumE, align 1, !tbaa !9, !range !13, !noundef !14
  %257 = trunc nuw i8 %256 to i1
  br i1 %257, label %258, label %265

258:                                              ; preds = %223
  %259 = load double, ptr @_ZN13SedovSolution2vvE, align 8, !tbaa !5
  store double %259, ptr @_ZN13SedovSolution5vwantE, align 8, !tbaa !5
  %260 = load double, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !5
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @_ZN13SedovSolution10sed_r_findEd) #8
  %261 = invoke noundef double @_ZN13SedovSolution6zeroinEddSt8functionIFddEEd(double noundef 0.000000e+00, double noundef %260, ptr noundef nonnull %35, double noundef 1.000000e-30)
          to label %262 unwind label %263

262:                                              ; preds = %258
  store double %261, ptr @_ZN13SedovSolution3rvvE, align 8, !tbaa !5
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %265

263:                                              ; preds = %258
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %341

265:                                              ; preds = %262, %223
  br i1 %.not131, label %._crit_edge130, label %.lr.ph129

._crit_edge130:                                   ; preds = %339, %265
  %266 = load double, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  ret double %266

.lr.ph129:                                        ; preds = %265, %339
  %.0105127 = phi i64 [ %340, %339 ], [ 0, %265 ]
  %267 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %.0105127) #8
  %268 = load double, ptr %267, align 8, !tbaa !5
  store double %268, ptr @_ZN13SedovSolution5rwantE, align 8, !tbaa !5
  %269 = load double, ptr @_ZN13SedovSolution2r2E, align 8, !tbaa !5
  %270 = fcmp ogt double %268, %269
  br i1 %270, label %271, label %281

271:                                              ; preds = %.lr.ph129
  %272 = load double, ptr @_ZN13SedovSolution5omegaE, align 8, !tbaa !5
  %273 = fneg double %272
  %274 = call double @pow(double noundef %268, double noundef %273) #8
  %275 = fmul double %274, %5
  %276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0105127) #8
  store double %275, ptr %276, align 8, !tbaa !5
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %.0105127) #8
  store double %8, ptr %277, align 8, !tbaa !5
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %.0105127) #8
  store double %7, ptr %278, align 8, !tbaa !5
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %.0105127) #8
  store double %6, ptr %279, align 8, !tbaa !5
  %280 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0105127) #8
  store double %9, ptr %280, align 8, !tbaa !5
  br label %339

281:                                              ; preds = %.lr.ph129
  %282 = load i8, ptr @_ZN13SedovSolution9lstandardE, align 1, !tbaa !9, !range !13, !noundef !14
  %283 = trunc nuw i8 %282 to i1
  br i1 %283, label %284, label %290

284:                                              ; preds = %281
  %285 = load double, ptr @_ZN13SedovSolution2v0E, align 8, !tbaa !5
  %286 = fmul double %285, 9.000000e-01
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @_ZN13SedovSolution10sed_v_findEd) #8
  %287 = invoke noundef double @_ZN13SedovSolution6zeroinEddSt8functionIFddEEd(double noundef %286, double noundef %62, ptr noundef nonnull %36, double noundef 1.000000e-30)
          to label %302 unwind label %288

288:                                              ; preds = %284
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %341

290:                                              ; preds = %281
  %291 = load i8, ptr @_ZN13SedovSolution7lvacuumE, align 1, !tbaa !9, !range !13, !noundef !14
  %292 = trunc nuw i8 %291 to i1
  br i1 %292, label %293, label %299

293:                                              ; preds = %290
  %294 = load double, ptr @_ZN13SedovSolution2vvE, align 8, !tbaa !5
  %295 = fmul double %294, 1.200000e+00
  call void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @_ZN13SedovSolution10sed_v_findEd) #8
  %296 = invoke noundef double @_ZN13SedovSolution6zeroinEddSt8functionIFddEEd(double noundef %62, double noundef %295, ptr noundef nonnull %37, double noundef 1.000000e-30)
          to label %302 unwind label %297

297:                                              ; preds = %293
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %341

299:                                              ; preds = %290
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #9
  unreachable

302:                                              ; preds = %293, %284
  %.sink141 = phi ptr [ %36, %284 ], [ %37, %293 ]
  %.0 = phi double [ %287, %284 ], [ %296, %293 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink141) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #8
  call void @_ZN13SedovSolution11sedov_funcsEdRdS0_S0_S0_S0_(double noundef %.0, ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42)
  %303 = load double, ptr @_ZN13SedovSolution9vel_shockE, align 8, !tbaa !5
  %304 = load double, ptr %40, align 8, !tbaa !5
  %305 = fmul double %303, %304
  %306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %.0105127) #8
  store double %305, ptr %306, align 8, !tbaa !5
  %307 = load double, ptr @_ZN13SedovSolution9rho_shockE, align 8, !tbaa !5
  %308 = load double, ptr %41, align 8, !tbaa !5
  %309 = fmul double %307, %308
  %310 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0105127) #8
  store double %309, ptr %310, align 8, !tbaa !5
  %311 = load double, ptr @_ZN13SedovSolution7p_shockE, align 8, !tbaa !5
  %312 = load double, ptr %42, align 8, !tbaa !5
  %313 = fmul double %311, %312
  %314 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %.0105127) #8
  store double %313, ptr %314, align 8, !tbaa !5
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %.0105127) #8
  store double 0.000000e+00, ptr %315, align 8, !tbaa !5
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0105127) #8
  store double 0.000000e+00, ptr %316, align 8, !tbaa !5
  %317 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0105127) #8
  %318 = load double, ptr %317, align 8, !tbaa !5
  %319 = fcmp une double %318, 0.000000e+00
  br i1 %319, label %320, label %338

320:                                              ; preds = %302
  %321 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %.0105127) #8
  %322 = load double, ptr %321, align 8, !tbaa !5
  %323 = load double, ptr @_ZN13SedovSolution5gamm1E, align 8, !tbaa !5
  %324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0105127) #8
  %325 = load double, ptr %324, align 8, !tbaa !5
  %326 = fmul double %323, %325
  %327 = fdiv double %322, %326
  %328 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %.0105127) #8
  store double %327, ptr %328, align 8, !tbaa !5
  %329 = load double, ptr @_ZN13SedovSolution5gammaE, align 8, !tbaa !5
  %330 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %.0105127) #8
  %331 = load double, ptr %330, align 8, !tbaa !5
  %332 = fmul double %329, %331
  %333 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %.0105127) #8
  %334 = load double, ptr %333, align 8, !tbaa !5
  %335 = fdiv double %332, %334
  %336 = call double @sqrt(double noundef %335) #8
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0105127) #8
  store double %336, ptr %337, align 8, !tbaa !5
  br label %338

338:                                              ; preds = %320, %302
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  br label %339

339:                                              ; preds = %271, %338
  %340 = add nuw i64 %.0105127, 1
  %exitcond133.not = icmp eq i64 %340, %43
  br i1 %exitcond133.not, label %._crit_edge130, label %.lr.ph129, !llvm.loop !15

341:                                              ; preds = %263, %297, %288, %202, %198, %192, %188, %180, %176, %165, %161
  %.sink142 = phi ptr [ %35, %263 ], [ %37, %297 ], [ %36, %288 ], [ %33, %202 ], [ %31, %198 ], [ %29, %192 ], [ %27, %188 ], [ %25, %180 ], [ %23, %176 ], [ %21, %165 ], [ %19, %161 ]
  %.pn.pn.pn = phi { ptr, i32 } [ %264, %263 ], [ %298, %297 ], [ %289, %288 ], [ %203, %202 ], [ %199, %198 ], [ %193, %192 ], [ %189, %188 ], [ %181, %180 ], [ %177, %176 ], [ %166, %165 ], [ %162, %161 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink142) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  resume { ptr, i32 } %.pn.pn.pn
}

; 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 nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; 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 #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #6

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution6efun01Ed(double noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt8functionIFddEEC2IRS0_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13SedovSolution6midpntEmSt8functionIFddEEddRd(i64 noundef, ptr noundef, double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt8functionIFvmS_IFddEEddRdEEC2IRS3_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13SedovSolution7midpowlEmSt8functionIFddEEddRd(i64 noundef, ptr noundef, double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution6efun02Ed(double noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13SedovSolution8midpowl2EmSt8functionIFddEEddRd(i64 noundef, ptr noundef, double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution6zeroinEddSt8functionIFddEEd(double noundef, double noundef, ptr noundef, double noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution10sed_r_findEd(double noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13SedovSolution10sed_v_findEd(double noundef) #0 align 2

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

declare double @exp2(double) local_unnamed_addr

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn 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 = !{!"bool", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = distinct !{!15, !12}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass