; LLVM IR from gem5/gem5 :: ext/dsent/model/std_cells/ADDF.ll (ZN5DSENT4ADDF23propagateTransitionInfoEv)

; 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.LibUtil::String" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.DSENT::TransitionInfo" = type { double, double, double, double, double, double }
%"class.DSENT::ADDF" = type { %"class.DSENT::StdCell", %"class.DSENT::TransitionInfo", %"class.DSENT::TransitionInfo", %"class.DSENT::TransitionInfo" }
%"class.DSENT::StdCell" = type { %"class.DSENT::ElectricalModel", double, double, double }
%"class.DSENT::ElectricalModel" = type { %"class.DSENT::Model.base", %"class.std::vector", i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.DSENT::Model.base" = type <{ ptr, %"class.LibUtil::String", i8, [7 x i8], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8 }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTIN7LibUtil9ExceptionE = external constant ptr

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nounwind
declare void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0

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

declare void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #2

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

; Function Attrs: nounwind
declare void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0

declare void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32), double noundef) unnamed_addr #2

declare void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

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

declare noundef ptr @_ZN5DSENT15ElectricalModel12getInputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) #2

declare noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5DSENT8PortInfo17getTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(88)) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions01Ev(ptr noundef nonnull align 8 dereferenceable(48)) #4 align 2

declare noundef ptr @_ZN5DSENT15ElectricalModel13getOutputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) #2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5DSENT4ADDF23propagateTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(408) %0) unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca %"class.LibUtil::String", align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca %"class.LibUtil::String", align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.LibUtil::String", align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca ptr, align 8
  %16 = alloca %"class.DSENT::TransitionInfo", align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.DSENT::TransitionInfo", align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"class.DSENT::TransitionInfo", align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca %"class.DSENT::TransitionInfo", align 8
  %52 = alloca %"class.DSENT::TransitionInfo", align 8
  %53 = alloca %"class.DSENT::TransitionInfo", align 8
  %54 = alloca ptr, align 8
  %55 = alloca %"class.LibUtil::String", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.LibUtil::String", align 8
  %58 = alloca %"class.LibUtil::String", align 8
  %59 = alloca %"class.LibUtil::String", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.LibUtil::String", align 8
  %69 = alloca %"class.LibUtil::String", align 8
  %70 = alloca %"class.LibUtil::String", align 8
  %71 = alloca ptr, align 8
  %72 = alloca %"class.LibUtil::String", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.LibUtil::String", align 8
  %75 = alloca %"class.LibUtil::String", align 8
  %76 = alloca %"class.LibUtil::String", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.LibUtil::String", align 8
  %86 = alloca %"class.LibUtil::String", align 8
  %87 = alloca %"class.LibUtil::String", align 8
  %88 = alloca %"class.DSENT::TransitionInfo", align 8
  %89 = alloca %"class.LibUtil::String", align 8
  %90 = alloca %"class.DSENT::TransitionInfo", align 8
  %91 = alloca %"class.LibUtil::String", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %92 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #9
  call void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef @.str)
  %93 = invoke noundef ptr @_ZN5DSENT15ElectricalModel12getInputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %92, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %94 unwind label %387

94:                                               ; preds = %1
  %95 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5DSENT8PortInfo17getTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(88) %93)
          to label %96 unwind label %387

96:                                               ; preds = %94
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #9
  store ptr %95, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #9
  call void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.1)
  %97 = invoke noundef ptr @_ZN5DSENT15ElectricalModel12getInputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %92, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %98 unwind label %391

98:                                               ; preds = %96
  %99 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5DSENT8PortInfo17getTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(88) %97)
          to label %100 unwind label %391

100:                                              ; preds = %98
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #9
  store ptr %99, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #9
  call void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.2)
  %101 = invoke noundef ptr @_ZN5DSENT15ElectricalModel12getInputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %92, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %102 unwind label %395

102:                                              ; preds = %100
  %103 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5DSENT8PortInfo17getTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(88) %101)
          to label %104 unwind label %395

104:                                              ; preds = %102
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #9
  store ptr %103, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %105 = load ptr, ptr %3, align 8, !tbaa !5
  %106 = call noundef double @_ZNK5DSENT14TransitionInfo22getFrequencyMultiplierEv(ptr noundef nonnull align 8 dereferenceable(48) %105)
  store double %106, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %107 = load ptr, ptr %7, align 8, !tbaa !5
  %108 = call noundef double @_ZNK5DSENT14TransitionInfo22getFrequencyMultiplierEv(ptr noundef nonnull align 8 dereferenceable(48) %107)
  store double %108, ptr %13, align 8, !tbaa !9
  %109 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13)
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %110 = load ptr, ptr %9, align 8, !tbaa !5
  %111 = call noundef double @_ZNK5DSENT14TransitionInfo22getFrequencyMultiplierEv(ptr noundef nonnull align 8 dereferenceable(48) %110)
  store double %111, ptr %14, align 8, !tbaa !9
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull align 8 dereferenceable(8) %14)
  %113 = load double, ptr %112, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  store double %113, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr %16) #9
  %114 = load ptr, ptr %3, align 8, !tbaa !5
  %115 = load double, ptr %11, align 8, !tbaa !9
  call void @_ZNK5DSENT14TransitionInfo24scaleFrequencyMultiplierEd(ptr dead_on_unwind writable sret(%"class.DSENT::TransitionInfo") align 8 %16, ptr noundef nonnull align 8 dereferenceable(48) %114, double noundef %115)
  store ptr %16, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr %18) #9
  %116 = load ptr, ptr %7, align 8, !tbaa !5
  %117 = load double, ptr %11, align 8, !tbaa !9
  invoke void @_ZNK5DSENT14TransitionInfo24scaleFrequencyMultiplierEd(ptr dead_on_unwind writable sret(%"class.DSENT::TransitionInfo") align 8 %18, ptr noundef nonnull align 8 dereferenceable(48) %116, double noundef %117)
          to label %118 unwind label %399

118:                                              ; preds = %104
  store ptr %18, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr %20) #9
  %119 = load ptr, ptr %9, align 8, !tbaa !5
  %120 = load double, ptr %11, align 8, !tbaa !9
  invoke void @_ZNK5DSENT14TransitionInfo24scaleFrequencyMultiplierEd(ptr dead_on_unwind writable sret(%"class.DSENT::TransitionInfo") align 8 %20, ptr noundef nonnull align 8 dereferenceable(48) %119, double noundef %120)
          to label %121 unwind label %403

121:                                              ; preds = %118
  store ptr %20, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %122 = load ptr, ptr %15, align 8, !tbaa !5
  %123 = invoke noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions00Ev(ptr noundef nonnull align 8 dereferenceable(48) %122)
          to label %124 unwind label %407

124:                                              ; preds = %121
  %125 = load double, ptr %11, align 8, !tbaa !9
  %126 = fdiv double %123, %125
  store double %126, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %127 = load ptr, ptr %15, align 8, !tbaa !5
  %128 = invoke noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions01Ev(ptr noundef nonnull align 8 dereferenceable(48) %127)
          to label %129 unwind label %411

129:                                              ; preds = %124
  %130 = load double, ptr %11, align 8, !tbaa !9
  %131 = fdiv double %128, %130
  store double %131, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %132 = load double, ptr %22, align 8, !tbaa !9
  store double %132, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %133 = load ptr, ptr %15, align 8, !tbaa !5
  %134 = invoke noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions11Ev(ptr noundef nonnull align 8 dereferenceable(48) %133)
          to label %135 unwind label %415

135:                                              ; preds = %129
  %136 = load double, ptr %11, align 8, !tbaa !9
  %137 = fdiv double %134, %136
  store double %137, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %138 = load ptr, ptr %17, align 8, !tbaa !5
  %139 = invoke noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions00Ev(ptr noundef nonnull align 8 dereferenceable(48) %138)
          to label %140 unwind label %419

140:                                              ; preds = %135
  %141 = load double, ptr %11, align 8, !tbaa !9
  %142 = fdiv double %139, %141
  store double %142, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  %143 = load ptr, ptr %17, align 8, !tbaa !5
  %144 = invoke noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions01Ev(ptr noundef nonnull align 8 dereferenceable(48) %143)
          to label %145 unwind label %423

145:                                              ; preds = %140
  %146 = load double, ptr %11, align 8, !tbaa !9
  %147 = fdiv double %144, %146
  store double %147, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %148 = load double, ptr %26, align 8, !tbaa !9
  store double %148, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %149 = load ptr, ptr %17, align 8, !tbaa !5
  %150 = invoke noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions11Ev(ptr noundef nonnull align 8 dereferenceable(48) %149)
          to label %151 unwind label %427

151:                                              ; preds = %145
  %152 = load double, ptr %11, align 8, !tbaa !9
  %153 = fdiv double %150, %152
  store double %153, ptr %28, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %154 = load ptr, ptr %19, align 8, !tbaa !5
  %155 = invoke noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions00Ev(ptr noundef nonnull align 8 dereferenceable(48) %154)
          to label %156 unwind label %431

156:                                              ; preds = %151
  %157 = load double, ptr %11, align 8, !tbaa !9
  %158 = fdiv double %155, %157
  store double %158, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %159 = load ptr, ptr %19, align 8, !tbaa !5
  %160 = invoke noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions01Ev(ptr noundef nonnull align 8 dereferenceable(48) %159)
          to label %161 unwind label %435

161:                                              ; preds = %156
  %162 = load double, ptr %11, align 8, !tbaa !9
  %163 = fdiv double %160, %162
  store double %163, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %164 = load double, ptr %30, align 8, !tbaa !9
  store double %164, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %165 = load ptr, ptr %19, align 8, !tbaa !5
  %166 = invoke noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions11Ev(ptr noundef nonnull align 8 dereferenceable(48) %165)
          to label %167 unwind label %439

167:                                              ; preds = %161
  %168 = load double, ptr %11, align 8, !tbaa !9
  %169 = fdiv double %166, %168
  store double %169, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %170 = load double, ptr %21, align 8, !tbaa !9
  %171 = load double, ptr %25, align 8, !tbaa !9
  %172 = load double, ptr %22, align 8, !tbaa !9
  %173 = load double, ptr %26, align 8, !tbaa !9
  %174 = fmul double %172, %173
  %175 = call double @llvm.fmuladd.f64(double %170, double %171, double %174)
  %176 = load double, ptr %23, align 8, !tbaa !9
  %177 = load double, ptr %27, align 8, !tbaa !9
  %178 = call double @llvm.fmuladd.f64(double %176, double %177, double %175)
  %179 = load double, ptr %24, align 8, !tbaa !9
  %180 = load double, ptr %28, align 8, !tbaa !9
  %181 = call double @llvm.fmuladd.f64(double %179, double %180, double %178)
  store double %181, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %182 = load double, ptr %21, align 8, !tbaa !9
  %183 = load double, ptr %26, align 8, !tbaa !9
  %184 = load double, ptr %22, align 8, !tbaa !9
  %185 = load double, ptr %25, align 8, !tbaa !9
  %186 = fmul double %184, %185
  %187 = call double @llvm.fmuladd.f64(double %182, double %183, double %186)
  %188 = load double, ptr %23, align 8, !tbaa !9
  %189 = load double, ptr %28, align 8, !tbaa !9
  %190 = call double @llvm.fmuladd.f64(double %188, double %189, double %187)
  %191 = load double, ptr %24, align 8, !tbaa !9
  %192 = load double, ptr %27, align 8, !tbaa !9
  %193 = call double @llvm.fmuladd.f64(double %191, double %192, double %190)
  store double %193, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %194 = load double, ptr %34, align 8, !tbaa !9
  store double %194, ptr %35, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %195 = load double, ptr %21, align 8, !tbaa !9
  %196 = load double, ptr %28, align 8, !tbaa !9
  %197 = load double, ptr %22, align 8, !tbaa !9
  %198 = load double, ptr %27, align 8, !tbaa !9
  %199 = fmul double %197, %198
  %200 = call double @llvm.fmuladd.f64(double %195, double %196, double %199)
  %201 = load double, ptr %23, align 8, !tbaa !9
  %202 = load double, ptr %26, align 8, !tbaa !9
  %203 = call double @llvm.fmuladd.f64(double %201, double %202, double %200)
  %204 = load double, ptr %24, align 8, !tbaa !9
  %205 = load double, ptr %25, align 8, !tbaa !9
  %206 = call double @llvm.fmuladd.f64(double %204, double %205, double %203)
  store double %206, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %207 = load double, ptr %24, align 8, !tbaa !9
  %208 = load double, ptr %28, align 8, !tbaa !9
  %209 = fmul double %207, %208
  store double %209, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %210 = load double, ptr %24, align 8, !tbaa !9
  %211 = load double, ptr %27, align 8, !tbaa !9
  %212 = load double, ptr %23, align 8, !tbaa !9
  %213 = load double, ptr %28, align 8, !tbaa !9
  %214 = load double, ptr %27, align 8, !tbaa !9
  %215 = fadd double %213, %214
  %216 = fmul double %212, %215
  %217 = call double @llvm.fmuladd.f64(double %210, double %211, double %216)
  store double %217, ptr %38, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %218 = load double, ptr %38, align 8, !tbaa !9
  store double %218, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  %219 = load double, ptr %21, align 8, !tbaa !9
  %220 = load double, ptr %22, align 8, !tbaa !9
  %221 = load double, ptr %25, align 8, !tbaa !9
  %222 = load double, ptr %27, align 8, !tbaa !9
  %223 = fadd double %221, %222
  %224 = call double @llvm.fmuladd.f64(double %220, double %223, double %219)
  %225 = load double, ptr %23, align 8, !tbaa !9
  %226 = load double, ptr %25, align 8, !tbaa !9
  %227 = load double, ptr %26, align 8, !tbaa !9
  %228 = fadd double %226, %227
  %229 = call double @llvm.fmuladd.f64(double %225, double %228, double %224)
  %230 = load double, ptr %24, align 8, !tbaa !9
  %231 = load double, ptr %25, align 8, !tbaa !9
  %232 = call double @llvm.fmuladd.f64(double %230, double %231, double %229)
  store double %232, ptr %40, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %233 = load double, ptr %36, align 8, !tbaa !9
  %234 = load double, ptr %32, align 8, !tbaa !9
  %235 = fmul double %233, %234
  store double %235, ptr %41, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %236 = load double, ptr %36, align 8, !tbaa !9
  %237 = load double, ptr %31, align 8, !tbaa !9
  %238 = load double, ptr %35, align 8, !tbaa !9
  %239 = load double, ptr %32, align 8, !tbaa !9
  %240 = load double, ptr %31, align 8, !tbaa !9
  %241 = fadd double %239, %240
  %242 = fmul double %238, %241
  %243 = call double @llvm.fmuladd.f64(double %236, double %237, double %242)
  store double %243, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %244 = load double, ptr %42, align 8, !tbaa !9
  store double %244, ptr %43, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %245 = load double, ptr %33, align 8, !tbaa !9
  %246 = load double, ptr %34, align 8, !tbaa !9
  %247 = load double, ptr %29, align 8, !tbaa !9
  %248 = load double, ptr %31, align 8, !tbaa !9
  %249 = fadd double %247, %248
  %250 = call double @llvm.fmuladd.f64(double %246, double %249, double %245)
  %251 = load double, ptr %35, align 8, !tbaa !9
  %252 = load double, ptr %29, align 8, !tbaa !9
  %253 = load double, ptr %30, align 8, !tbaa !9
  %254 = fadd double %252, %253
  %255 = call double @llvm.fmuladd.f64(double %251, double %254, double %250)
  %256 = load double, ptr %36, align 8, !tbaa !9
  %257 = load double, ptr %29, align 8, !tbaa !9
  %258 = call double @llvm.fmuladd.f64(double %256, double %257, double %255)
  store double %258, ptr %44, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  %259 = load double, ptr %33, align 8, !tbaa !9
  %260 = load double, ptr %29, align 8, !tbaa !9
  %261 = load double, ptr %34, align 8, !tbaa !9
  %262 = load double, ptr %30, align 8, !tbaa !9
  %263 = fmul double %261, %262
  %264 = call double @llvm.fmuladd.f64(double %259, double %260, double %263)
  %265 = load double, ptr %35, align 8, !tbaa !9
  %266 = load double, ptr %31, align 8, !tbaa !9
  %267 = call double @llvm.fmuladd.f64(double %265, double %266, double %264)
  %268 = load double, ptr %36, align 8, !tbaa !9
  %269 = load double, ptr %32, align 8, !tbaa !9
  %270 = call double @llvm.fmuladd.f64(double %268, double %269, double %267)
  store double %270, ptr %45, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  %271 = load double, ptr %33, align 8, !tbaa !9
  %272 = load double, ptr %30, align 8, !tbaa !9
  %273 = load double, ptr %34, align 8, !tbaa !9
  %274 = load double, ptr %29, align 8, !tbaa !9
  %275 = fmul double %273, %274
  %276 = call double @llvm.fmuladd.f64(double %271, double %272, double %275)
  %277 = load double, ptr %35, align 8, !tbaa !9
  %278 = load double, ptr %32, align 8, !tbaa !9
  %279 = call double @llvm.fmuladd.f64(double %277, double %278, double %276)
  %280 = load double, ptr %36, align 8, !tbaa !9
  %281 = load double, ptr %31, align 8, !tbaa !9
  %282 = call double @llvm.fmuladd.f64(double %280, double %281, double %279)
  store double %282, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %283 = load double, ptr %33, align 8, !tbaa !9
  %284 = load double, ptr %32, align 8, !tbaa !9
  %285 = load double, ptr %34, align 8, !tbaa !9
  %286 = load double, ptr %31, align 8, !tbaa !9
  %287 = fmul double %285, %286
  %288 = call double @llvm.fmuladd.f64(double %283, double %284, double %287)
  %289 = load double, ptr %35, align 8, !tbaa !9
  %290 = load double, ptr %30, align 8, !tbaa !9
  %291 = call double @llvm.fmuladd.f64(double %289, double %290, double %288)
  %292 = load double, ptr %36, align 8, !tbaa !9
  %293 = load double, ptr %29, align 8, !tbaa !9
  %294 = call double @llvm.fmuladd.f64(double %292, double %293, double %291)
  store double %294, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %295 = load double, ptr %40, align 8, !tbaa !9
  %296 = load double, ptr %44, align 8, !tbaa !9
  %297 = fmul double %295, %296
  store double %297, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %298 = load double, ptr %40, align 8, !tbaa !9
  %299 = load double, ptr %43, align 8, !tbaa !9
  %300 = load double, ptr %39, align 8, !tbaa !9
  %301 = load double, ptr %44, align 8, !tbaa !9
  %302 = load double, ptr %43, align 8, !tbaa !9
  %303 = fadd double %301, %302
  %304 = fmul double %300, %303
  %305 = call double @llvm.fmuladd.f64(double %298, double %299, double %304)
  store double %305, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %306 = load double, ptr %37, align 8, !tbaa !9
  %307 = load double, ptr %38, align 8, !tbaa !9
  %308 = load double, ptr %41, align 8, !tbaa !9
  %309 = load double, ptr %43, align 8, !tbaa !9
  %310 = fadd double %308, %309
  %311 = call double @llvm.fmuladd.f64(double %307, double %310, double %306)
  %312 = load double, ptr %39, align 8, !tbaa !9
  %313 = load double, ptr %41, align 8, !tbaa !9
  %314 = load double, ptr %42, align 8, !tbaa !9
  %315 = fadd double %313, %314
  %316 = call double @llvm.fmuladd.f64(double %312, double %315, double %311)
  %317 = load double, ptr %40, align 8, !tbaa !9
  %318 = load double, ptr %41, align 8, !tbaa !9
  %319 = call double @llvm.fmuladd.f64(double %317, double %318, double %316)
  store double %319, ptr %50, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %51) #9
  %320 = load double, ptr %33, align 8, !tbaa !9
  %321 = load double, ptr %11, align 8, !tbaa !9
  %322 = fmul double %320, %321
  %323 = load double, ptr %34, align 8, !tbaa !9
  %324 = load double, ptr %11, align 8, !tbaa !9
  %325 = fmul double %323, %324
  %326 = load double, ptr %36, align 8, !tbaa !9
  %327 = load double, ptr %11, align 8, !tbaa !9
  %328 = fmul double %326, %327
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %51, double noundef %322, double noundef %325, double noundef %328)
          to label %329 unwind label %443

329:                                              ; preds = %167
  %330 = getelementptr inbounds %"class.DSENT::ADDF", ptr %92, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %330, ptr align 8 %51, i64 48, i1 false), !tbaa.struct !11
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %51) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %51) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr %52) #9
  %331 = load double, ptr %37, align 8, !tbaa !9
  %332 = load double, ptr %11, align 8, !tbaa !9
  %333 = fmul double %331, %332
  %334 = load double, ptr %38, align 8, !tbaa !9
  %335 = load double, ptr %11, align 8, !tbaa !9
  %336 = fmul double %334, %335
  %337 = load double, ptr %40, align 8, !tbaa !9
  %338 = load double, ptr %11, align 8, !tbaa !9
  %339 = fmul double %337, %338
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %52, double noundef %333, double noundef %336, double noundef %339)
          to label %340 unwind label %447

340:                                              ; preds = %329
  %341 = getelementptr inbounds %"class.DSENT::ADDF", ptr %92, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %341, ptr align 8 %52, i64 48, i1 false), !tbaa.struct !11
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr %53) #9
  %342 = load double, ptr %41, align 8, !tbaa !9
  %343 = load double, ptr %11, align 8, !tbaa !9
  %344 = fmul double %342, %343
  %345 = load double, ptr %42, align 8, !tbaa !9
  %346 = load double, ptr %11, align 8, !tbaa !9
  %347 = fmul double %345, %346
  %348 = load double, ptr %44, align 8, !tbaa !9
  %349 = load double, ptr %11, align 8, !tbaa !9
  %350 = fmul double %348, %349
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %53, double noundef %344, double noundef %347, double noundef %350)
          to label %351 unwind label %451

351:                                              ; preds = %340
  %352 = getelementptr inbounds %"class.DSENT::ADDF", ptr %92, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %352, ptr align 8 %53, i64 48, i1 false), !tbaa.struct !11
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %53) #9
  br label %353

353:                                              ; preds = %351
  %354 = load double, ptr %45, align 8, !tbaa !9
  %355 = load double, ptr %46, align 8, !tbaa !9
  %356 = fadd double %354, %355
  %357 = load double, ptr %46, align 8, !tbaa !9
  %358 = fadd double %356, %357
  %359 = load double, ptr %47, align 8, !tbaa !9
  %360 = fadd double %358, %359
  %361 = invoke noundef zeroext i1 @_ZN7LibUtil4Math7isEqualEdd(double noundef %360, double noundef 1.000000e+00)
          to label %362 unwind label %455

362:                                              ; preds = %353
  br i1 %361, label %543, label %363

363:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.53)
          to label %364 unwind label %459

364:                                              ; preds = %363
  invoke void (ptr, ptr, ...) @_ZN7LibUtil6String6formatERKS0_z(ptr dead_on_unwind writable sret(%"class.LibUtil::String") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.54, i32 noundef 314)
          to label %365 unwind label %463

365:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #9
  %366 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT5Model15getInstanceNameEv(ptr noundef nonnull align 8 dereferenceable(131) %92)
          to label %367 unwind label %467

367:                                              ; preds = %365
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef @.str.55, ptr noundef nonnull align 8 dereferenceable(32) %366)
          to label %368 unwind label %467

368:                                              ; preds = %367
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.56)
          to label %369 unwind label %471

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #9
  %370 = load double, ptr %45, align 8, !tbaa !9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %68, double noundef %370)
          to label %371 unwind label %475

371:                                              ; preds = %369
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %372 unwind label %479

372:                                              ; preds = %371
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.57)
          to label %373 unwind label %483

373:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #9
  %374 = load double, ptr %46, align 8, !tbaa !9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %69, double noundef %374)
          to label %375 unwind label %487

375:                                              ; preds = %373
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %376 unwind label %491

376:                                              ; preds = %375
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.57)
          to label %377 unwind label %495

377:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #9
  %378 = load double, ptr %47, align 8, !tbaa !9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %70, double noundef %378)
          to label %379 unwind label %499

379:                                              ; preds = %377
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %380 unwind label %503

380:                                              ; preds = %379
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.58)
          to label %381 unwind label %507

381:                                              ; preds = %380
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %382 unwind label %511

382:                                              ; preds = %381
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %383 unwind label %515

383:                                              ; preds = %382
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %384 unwind label %519

384:                                              ; preds = %383
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  store ptr %55, ptr %54, align 8, !tbaa !5
  %385 = call ptr @__cxa_allocate_exception(i64 40) #9
  %386 = load ptr, ptr %54, align 8, !tbaa !5
  call void @_ZN7LibUtil9ExceptionC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(40) %385, ptr noundef nonnull align 8 dereferenceable(32) %386) #9
  invoke void @__cxa_throw(ptr %385, ptr @_ZTIN7LibUtil9ExceptionE, ptr @_ZN7LibUtil9ExceptionD1Ev) #10
          to label %744 unwind label %538

387:                                              ; preds = %94, %1
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %5, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %6, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #9
  br label %738

391:                                              ; preds = %98, %96
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %5, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %6, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #9
  br label %737

395:                                              ; preds = %102, %100
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %5, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %6, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #9
  br label %736

399:                                              ; preds = %104
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %5, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %6, align 4
  br label %735

403:                                              ; preds = %118
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %5, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %6, align 4
  br label %734

407:                                              ; preds = %121
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %5, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %6, align 4
  br label %733

411:                                              ; preds = %124
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %5, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %6, align 4
  br label %732

415:                                              ; preds = %129
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %5, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %6, align 4
  br label %731

419:                                              ; preds = %135
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %5, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %6, align 4
  br label %730

423:                                              ; preds = %140
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %5, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %6, align 4
  br label %729

427:                                              ; preds = %145
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %5, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %6, align 4
  br label %728

431:                                              ; preds = %151
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %5, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %6, align 4
  br label %727

435:                                              ; preds = %156
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %5, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %6, align 4
  br label %726

439:                                              ; preds = %161
  %440 = landingpad { ptr, i32 }
          cleanup
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %5, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %6, align 4
  br label %725

443:                                              ; preds = %167
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %5, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %51) #9
  br label %724

447:                                              ; preds = %329
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %5, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %52) #9
  br label %724

451:                                              ; preds = %340
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %5, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %53) #9
  br label %724

455:                                              ; preds = %546, %353
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %5, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %6, align 4
  br label %724

459:                                              ; preds = %363
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %5, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %6, align 4
  br label %537

463:                                              ; preds = %364
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %5, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %6, align 4
  br label %536

467:                                              ; preds = %367, %365
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %5, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %6, align 4
  br label %535

471:                                              ; preds = %368
  %472 = landingpad { ptr, i32 }
          cleanup
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %5, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %6, align 4
  br label %534

475:                                              ; preds = %369
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %5, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %6, align 4
  br label %533

479:                                              ; preds = %371
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %5, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %6, align 4
  br label %532

483:                                              ; preds = %372
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %5, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %6, align 4
  br label %531

487:                                              ; preds = %373
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %5, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %6, align 4
  br label %530

491:                                              ; preds = %375
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %5, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %6, align 4
  br label %529

495:                                              ; preds = %376
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %5, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %6, align 4
  br label %528

499:                                              ; preds = %377
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %5, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %6, align 4
  br label %527

503:                                              ; preds = %379
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %5, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %6, align 4
  br label %526

507:                                              ; preds = %380
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %5, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %6, align 4
  br label %525

511:                                              ; preds = %381
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %5, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %6, align 4
  br label %524

515:                                              ; preds = %382
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %5, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %6, align 4
  br label %523

519:                                              ; preds = %383
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %5, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  br label %523

523:                                              ; preds = %519, %515
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %524

524:                                              ; preds = %523, %511
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  br label %525

525:                                              ; preds = %524, %507
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  br label %526

526:                                              ; preds = %525, %503
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %527

527:                                              ; preds = %526, %499
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %528

528:                                              ; preds = %527, %495
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  br label %529

529:                                              ; preds = %528, %491
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %530

530:                                              ; preds = %529, %487
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  br label %531

531:                                              ; preds = %530, %483
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  br label %532

532:                                              ; preds = %531, %479
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %533

533:                                              ; preds = %532, %475
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  br label %534

534:                                              ; preds = %533, %471
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #9
  br label %535

535:                                              ; preds = %534, %467
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %536

536:                                              ; preds = %535, %463
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  br label %537

537:                                              ; preds = %536, %459
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  br label %542

538:                                              ; preds = %384
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %5, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %6, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  br label %542

542:                                              ; preds = %538, %537
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  br label %724

543:                                              ; preds = %362
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545
  %547 = load double, ptr %48, align 8, !tbaa !9
  %548 = load double, ptr %49, align 8, !tbaa !9
  %549 = fadd double %547, %548
  %550 = load double, ptr %49, align 8, !tbaa !9
  %551 = fadd double %549, %550
  %552 = load double, ptr %50, align 8, !tbaa !9
  %553 = fadd double %551, %552
  %554 = invoke noundef zeroext i1 @_ZN7LibUtil4Math7isEqualEdd(double noundef %553, double noundef 1.000000e+00)
          to label %555 unwind label %455

555:                                              ; preds = %546
  br i1 %554, label %664, label %556

556:                                              ; preds = %555
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.53)
          to label %557 unwind label %580

557:                                              ; preds = %556
  invoke void (ptr, ptr, ...) @_ZN7LibUtil6String6formatERKS0_z(ptr dead_on_unwind writable sret(%"class.LibUtil::String") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.54, i32 noundef 319)
          to label %558 unwind label %584

558:                                              ; preds = %557
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #9
  %559 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT5Model15getInstanceNameEv(ptr noundef nonnull align 8 dereferenceable(131) %92)
          to label %560 unwind label %588

560:                                              ; preds = %558
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef @.str.55, ptr noundef nonnull align 8 dereferenceable(32) %559)
          to label %561 unwind label %588

561:                                              ; preds = %560
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.56)
          to label %562 unwind label %592

562:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #9
  %563 = load double, ptr %48, align 8, !tbaa !9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %85, double noundef %563)
          to label %564 unwind label %596

564:                                              ; preds = %562
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %565 unwind label %600

565:                                              ; preds = %564
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef @.str.57)
          to label %566 unwind label %604

566:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #9
  %567 = load double, ptr %49, align 8, !tbaa !9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %86, double noundef %567)
          to label %568 unwind label %608

568:                                              ; preds = %566
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %569 unwind label %612

569:                                              ; preds = %568
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str.57)
          to label %570 unwind label %616

570:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #9
  %571 = load double, ptr %50, align 8, !tbaa !9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %87, double noundef %571)
          to label %572 unwind label %620

572:                                              ; preds = %570
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %573 unwind label %624

573:                                              ; preds = %572
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.58)
          to label %574 unwind label %628

574:                                              ; preds = %573
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %575 unwind label %632

575:                                              ; preds = %574
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %576 unwind label %636

576:                                              ; preds = %575
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %577 unwind label %640

577:                                              ; preds = %576
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #9
  store ptr %72, ptr %71, align 8, !tbaa !5
  %578 = call ptr @__cxa_allocate_exception(i64 40) #9
  %579 = load ptr, ptr %71, align 8, !tbaa !5
  call void @_ZN7LibUtil9ExceptionC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(40) %578, ptr noundef nonnull align 8 dereferenceable(32) %579) #9
  invoke void @__cxa_throw(ptr %578, ptr @_ZTIN7LibUtil9ExceptionE, ptr @_ZN7LibUtil9ExceptionD1Ev) #10
          to label %744 unwind label %659

580:                                              ; preds = %556
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %5, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %6, align 4
  br label %658

584:                                              ; preds = %557
  %585 = landingpad { ptr, i32 }
          cleanup
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %5, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %6, align 4
  br label %657

588:                                              ; preds = %560, %558
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %5, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %6, align 4
  br label %656

592:                                              ; preds = %561
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %5, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %6, align 4
  br label %655

596:                                              ; preds = %562
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %5, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %6, align 4
  br label %654

600:                                              ; preds = %564
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %5, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %6, align 4
  br label %653

604:                                              ; preds = %565
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %5, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %6, align 4
  br label %652

608:                                              ; preds = %566
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %5, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %6, align 4
  br label %651

612:                                              ; preds = %568
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %5, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %6, align 4
  br label %650

616:                                              ; preds = %569
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %5, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %6, align 4
  br label %649

620:                                              ; preds = %570
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %5, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %6, align 4
  br label %648

624:                                              ; preds = %572
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %5, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %6, align 4
  br label %647

628:                                              ; preds = %573
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %5, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %6, align 4
  br label %646

632:                                              ; preds = %574
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %5, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %6, align 4
  br label %645

636:                                              ; preds = %575
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %5, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %6, align 4
  br label %644

640:                                              ; preds = %576
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %5, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  br label %644

644:                                              ; preds = %640, %636
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %645

645:                                              ; preds = %644, %632
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  br label %646

646:                                              ; preds = %645, %628
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %647

647:                                              ; preds = %646, %624
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  br label %648

648:                                              ; preds = %647, %620
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  br label %649

649:                                              ; preds = %648, %616
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  br label %650

650:                                              ; preds = %649, %612
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #9
  br label %651

651:                                              ; preds = %650, %608
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #9
  br label %652

652:                                              ; preds = %651, %604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  br label %653

653:                                              ; preds = %652, %600
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  br label %654

654:                                              ; preds = %653, %596
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  br label %655

655:                                              ; preds = %654, %592
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #9
  br label %656

656:                                              ; preds = %655, %588
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %657

657:                                              ; preds = %656, %584
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  br label %658

658:                                              ; preds = %657, %580
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #9
  br label %663

659:                                              ; preds = %577
  %660 = landingpad { ptr, i32 }
          cleanup
  %661 = extractvalue { ptr, i32 } %660, 0
  store ptr %661, ptr %5, align 8
  %662 = extractvalue { ptr, i32 } %660, 1
  store i32 %662, ptr %6, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #9
  br label %663

663:                                              ; preds = %659, %658
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  br label %724

664:                                              ; preds = %555
  br label %665

665:                                              ; preds = %664
  br label %666

666:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 48, ptr %88) #9
  %667 = load double, ptr %45, align 8, !tbaa !9
  %668 = load double, ptr %11, align 8, !tbaa !9
  %669 = fmul double %667, %668
  %670 = load double, ptr %46, align 8, !tbaa !9
  %671 = load double, ptr %11, align 8, !tbaa !9
  %672 = fmul double %670, %671
  %673 = load double, ptr %47, align 8, !tbaa !9
  %674 = load double, ptr %11, align 8, !tbaa !9
  %675 = fmul double %673, %674
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %88, double noundef %669, double noundef %672, double noundef %675)
          to label %676 unwind label %695

676:                                              ; preds = %666
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str.3)
          to label %677 unwind label %699

677:                                              ; preds = %676
  %678 = invoke noundef ptr @_ZN5DSENT15ElectricalModel13getOutputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %92, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %679 unwind label %703

679:                                              ; preds = %677
  invoke void @_ZN5DSENT8PortInfo17setTransitionInfoERKNS_14TransitionInfoE(ptr noundef nonnull align 8 dereferenceable(88) %678, ptr noundef nonnull align 8 dereferenceable(48) %88)
          to label %680 unwind label %703

680:                                              ; preds = %679
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr %90) #9
  %681 = load double, ptr %48, align 8, !tbaa !9
  %682 = load double, ptr %11, align 8, !tbaa !9
  %683 = fmul double %681, %682
  %684 = load double, ptr %49, align 8, !tbaa !9
  %685 = load double, ptr %11, align 8, !tbaa !9
  %686 = fmul double %684, %685
  %687 = load double, ptr %50, align 8, !tbaa !9
  %688 = load double, ptr %11, align 8, !tbaa !9
  %689 = fmul double %687, %688
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %90, double noundef %683, double noundef %686, double noundef %689)
          to label %690 unwind label %708

690:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.4)
          to label %691 unwind label %712

691:                                              ; preds = %690
  %692 = invoke noundef ptr @_ZN5DSENT15ElectricalModel13getOutputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %92, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %693 unwind label %716

693:                                              ; preds = %691
  invoke void @_ZN5DSENT8PortInfo17setTransitionInfoERKNS_14TransitionInfoE(ptr noundef nonnull align 8 dereferenceable(88) %692, ptr noundef nonnull align 8 dereferenceable(48) %90)
          to label %694 unwind label %716

694:                                              ; preds = %693
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %90) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %90) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %88) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %18) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %16) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  ret void

695:                                              ; preds = %666
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %5, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %6, align 4
  br label %723

699:                                              ; preds = %676
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %5, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %6, align 4
  br label %707

703:                                              ; preds = %679, %677
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %5, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %6, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  br label %707

707:                                              ; preds = %703, %699
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  br label %722

708:                                              ; preds = %680
  %709 = landingpad { ptr, i32 }
          cleanup
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %5, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %6, align 4
  br label %721

712:                                              ; preds = %690
  %713 = landingpad { ptr, i32 }
          cleanup
  %714 = extractvalue { ptr, i32 } %713, 0
  store ptr %714, ptr %5, align 8
  %715 = extractvalue { ptr, i32 } %713, 1
  store i32 %715, ptr %6, align 4
  br label %720

716:                                              ; preds = %693, %691
  %717 = landingpad { ptr, i32 }
          cleanup
  %718 = extractvalue { ptr, i32 } %717, 0
  store ptr %718, ptr %5, align 8
  %719 = extractvalue { ptr, i32 } %717, 1
  store i32 %719, ptr %6, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #9
  br label %720

720:                                              ; preds = %716, %712
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %90) #9
  br label %721

721:                                              ; preds = %720, %708
  call void @llvm.lifetime.end.p0(i64 48, ptr %90) #9
  br label %722

722:                                              ; preds = %721, %707
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %88) #9
  br label %723

723:                                              ; preds = %722, %695
  call void @llvm.lifetime.end.p0(i64 48, ptr %88) #9
  br label %724

724:                                              ; preds = %723, %663, %542, %455, %451, %447, %443
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %725

725:                                              ; preds = %724, %439
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %726

726:                                              ; preds = %725, %435
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  br label %727

727:                                              ; preds = %726, %431
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %728

728:                                              ; preds = %727, %427
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %729

729:                                              ; preds = %728, %423
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  br label %730

730:                                              ; preds = %729, %419
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %731

731:                                              ; preds = %730, %415
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %732

732:                                              ; preds = %731, %411
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %733

733:                                              ; preds = %732, %407
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #9
  br label %734

734:                                              ; preds = %733, %403
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %18) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %18) #9
  br label %735

735:                                              ; preds = %734, %399
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %16) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  br label %736

736:                                              ; preds = %735, %395
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  br label %737

737:                                              ; preds = %736, %391
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  br label %738

738:                                              ; preds = %737, %387
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  br label %739

739:                                              ; preds = %738
  %740 = load ptr, ptr %5, align 8
  %741 = load i32, ptr %6, align 4
  %742 = insertvalue { ptr, i32 } poison, ptr %740, 0
  %743 = insertvalue { ptr, i32 } %742, i32 %741, 1
  resume { ptr, i32 } %743

744:                                              ; preds = %577, %384
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5DSENT14TransitionInfo22getFrequencyMultiplierEv(ptr noundef nonnull align 8 dereferenceable(48)) #4 align 2

declare void @_ZNK5DSENT14TransitionInfo24scaleFrequencyMultiplierEd(ptr dead_on_unwind writable sret(%"class.DSENT::TransitionInfo") align 8, ptr noundef nonnull align 8 dereferenceable(48), double noundef) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions00Ev(ptr noundef nonnull align 8 dereferenceable(48)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions11Ev(ptr noundef nonnull align 8 dereferenceable(48)) #4 align 2

declare void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef) unnamed_addr #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN7LibUtil4Math7isEqualEdd(double noundef, double noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #8

declare void @_ZN7LibUtil6String6formatERKS0_z(ptr dead_on_unwind writable sret(%"class.LibUtil::String") align 8, ptr noundef nonnull align 8 dereferenceable(32), ...) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #6

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT5Model15getInstanceNameEv(ptr noundef nonnull align 8 dereferenceable(131)) #2

declare ptr @__cxa_allocate_exception(i64)

; Function Attrs: nounwind
declare void @_ZN7LibUtil9ExceptionC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0

; Function Attrs: nounwind
declare void @_ZN7LibUtil9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #0

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @_ZN5DSENT8PortInfo17setTransitionInfoERKNS_14TransitionInfoE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(48)) #2

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

!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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{i64 0, i64 8, !9, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9}


; 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.LibUtil::String" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.DSENT::TransitionInfo" = type { double, double, double, double, double, double }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTIN7LibUtil9ExceptionE = external constant ptr

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nounwind
declare void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0

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

declare void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #2

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

; Function Attrs: nounwind
declare void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0

declare void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32), double noundef) unnamed_addr #2

declare void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

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

declare noundef ptr @_ZN5DSENT15ElectricalModel12getInputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5DSENT8PortInfo17getTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions01Ev(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #4 align 2

declare noundef ptr @_ZN5DSENT15ElectricalModel13getOutputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5DSENT4ADDF23propagateTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(408) %0) unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.LibUtil::String", align 8
  %3 = alloca %"class.LibUtil::String", align 8
  %4 = alloca %"class.LibUtil::String", align 8
  %5 = alloca double, align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca %"class.DSENT::TransitionInfo", align 8
  %9 = alloca %"class.DSENT::TransitionInfo", align 8
  %10 = alloca %"class.DSENT::TransitionInfo", align 8
  %11 = alloca %"class.DSENT::TransitionInfo", align 8
  %12 = alloca %"class.DSENT::TransitionInfo", align 8
  %13 = alloca %"class.DSENT::TransitionInfo", align 8
  %14 = alloca %"class.LibUtil::String", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.LibUtil::String", align 8
  %17 = alloca %"class.LibUtil::String", align 8
  %18 = alloca %"class.LibUtil::String", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.LibUtil::String", align 8
  %28 = alloca %"class.LibUtil::String", align 8
  %29 = alloca %"class.LibUtil::String", align 8
  %30 = alloca %"class.LibUtil::String", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.LibUtil::String", align 8
  %33 = alloca %"class.LibUtil::String", align 8
  %34 = alloca %"class.LibUtil::String", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.LibUtil::String", align 8
  %44 = alloca %"class.LibUtil::String", align 8
  %45 = alloca %"class.LibUtil::String", align 8
  %46 = alloca %"class.DSENT::TransitionInfo", align 8
  %47 = alloca %"class.LibUtil::String", align 8
  %48 = alloca %"class.DSENT::TransitionInfo", align 8
  %49 = alloca %"class.LibUtil::String", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #9
  call void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str)
  %50 = invoke noundef ptr @_ZN5DSENT15ElectricalModel12getInputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %51 unwind label %178

51:                                               ; preds = %1
  %52 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5DSENT8PortInfo17getTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(88) %50)
          to label %53 unwind label %178

53:                                               ; preds = %51
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #9
  call void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.1)
  %54 = invoke noundef ptr @_ZN5DSENT15ElectricalModel12getInputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %55 unwind label %180

55:                                               ; preds = %53
  %56 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5DSENT8PortInfo17getTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(88) %54)
          to label %57 unwind label %180

57:                                               ; preds = %55
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #9
  call void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.2)
  %58 = invoke noundef ptr @_ZN5DSENT15ElectricalModel12getInputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %59 unwind label %182

59:                                               ; preds = %57
  %60 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5DSENT8PortInfo17getTransitionInfoEv(ptr noundef nonnull align 8 dereferenceable(88) %58)
          to label %61 unwind label %182

61:                                               ; preds = %59
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %62 = call noundef double @_ZNK5DSENT14TransitionInfo22getFrequencyMultiplierEv(ptr noundef nonnull align 8 dereferenceable(48) %52)
  store double %62, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %63 = call noundef double @_ZNK5DSENT14TransitionInfo22getFrequencyMultiplierEv(ptr noundef nonnull align 8 dereferenceable(48) %56)
  store double %63, ptr %6, align 8, !tbaa !5
  %64 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %65 = call noundef double @_ZNK5DSENT14TransitionInfo22getFrequencyMultiplierEv(ptr noundef nonnull align 8 dereferenceable(48) %60)
  store double %65, ptr %7, align 8, !tbaa !5
  %66 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %7)
  %67 = load double, ptr %66, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) #9
  call void @_ZNK5DSENT14TransitionInfo24scaleFrequencyMultiplierEd(ptr dead_on_unwind nonnull writable sret(%"class.DSENT::TransitionInfo") align 8 %8, ptr noundef nonnull align 8 dereferenceable(48) %52, double noundef %67)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #9
  invoke void @_ZNK5DSENT14TransitionInfo24scaleFrequencyMultiplierEd(ptr dead_on_unwind nonnull writable sret(%"class.DSENT::TransitionInfo") align 8 %9, ptr noundef nonnull align 8 dereferenceable(48) %56, double noundef %67)
          to label %68 unwind label %184

68:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %10) #9
  invoke void @_ZNK5DSENT14TransitionInfo24scaleFrequencyMultiplierEd(ptr dead_on_unwind nonnull writable sret(%"class.DSENT::TransitionInfo") align 8 %10, ptr noundef nonnull align 8 dereferenceable(48) %60, double noundef %67)
          to label %69 unwind label %186

69:                                               ; preds = %68
  %70 = call noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions00Ev(ptr noundef nonnull align 8 dereferenceable(48) %8)
  %71 = fdiv double %70, %67
  %72 = call noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions01Ev(ptr noundef nonnull align 8 dereferenceable(48) %8)
  %73 = call noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions11Ev(ptr noundef nonnull align 8 dereferenceable(48) %8)
  %74 = fdiv double %73, %67
  %75 = call noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions00Ev(ptr noundef nonnull align 8 dereferenceable(48) %9)
  %76 = fdiv double %75, %67
  %77 = call noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions01Ev(ptr noundef nonnull align 8 dereferenceable(48) %9)
  %78 = insertelement <2 x double> poison, double %72, i64 0
  %79 = insertelement <2 x double> %78, double %77, i64 1
  %80 = insertelement <2 x double> poison, double %67, i64 0
  %81 = shufflevector <2 x double> %80, <2 x double> poison, <2 x i32> zeroinitializer
  %82 = fdiv <2 x double> %79, %81
  %83 = call noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions11Ev(ptr noundef nonnull align 8 dereferenceable(48) %9)
  %84 = fdiv double %83, %67
  %85 = call noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions00Ev(ptr noundef nonnull align 8 dereferenceable(48) %10)
  %86 = fdiv double %85, %67
  %87 = call noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions01Ev(ptr noundef nonnull align 8 dereferenceable(48) %10)
  %88 = fdiv double %87, %67
  %89 = call noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions11Ev(ptr noundef nonnull align 8 dereferenceable(48) %10)
  %90 = fdiv double %89, %67
  %91 = extractelement <2 x double> %82, i64 0
  %92 = extractelement <2 x double> %82, i64 1
  %93 = fmul double %91, %92
  %94 = call double @llvm.fmuladd.f64(double %71, double %76, double %93)
  %95 = call double @llvm.fmuladd.f64(double %91, double %92, double %94)
  %96 = call double @llvm.fmuladd.f64(double %74, double %84, double %95)
  %97 = fmul double %91, %76
  %98 = call double @llvm.fmuladd.f64(double %71, double %92, double %97)
  %99 = call double @llvm.fmuladd.f64(double %91, double %84, double %98)
  %100 = call double @llvm.fmuladd.f64(double %74, double %92, double %99)
  %101 = call double @llvm.fmuladd.f64(double %71, double %84, double %93)
  %102 = call double @llvm.fmuladd.f64(double %91, double %92, double %101)
  %103 = call double @llvm.fmuladd.f64(double %74, double %76, double %102)
  %104 = fmul double %74, %84
  %105 = fadd double %92, %84
  %106 = fmul double %91, %105
  %107 = call double @llvm.fmuladd.f64(double %74, double %92, double %106)
  %108 = fadd double %76, %92
  %109 = call double @llvm.fmuladd.f64(double %91, double %108, double %71)
  %110 = call double @llvm.fmuladd.f64(double %91, double %108, double %109)
  %111 = call double @llvm.fmuladd.f64(double %74, double %76, double %110)
  %112 = fmul double %103, %90
  %113 = fadd double %88, %90
  %114 = fmul double %100, %113
  %115 = call double @llvm.fmuladd.f64(double %103, double %88, double %114)
  %116 = fadd double %86, %88
  %117 = call double @llvm.fmuladd.f64(double %100, double %116, double %96)
  %118 = call double @llvm.fmuladd.f64(double %100, double %116, double %117)
  %119 = call double @llvm.fmuladd.f64(double %103, double %86, double %118)
  %120 = fmul double %100, %88
  %121 = call double @llvm.fmuladd.f64(double %96, double %86, double %120)
  %122 = call double @llvm.fmuladd.f64(double %100, double %88, double %121)
  %123 = call double @llvm.fmuladd.f64(double %103, double %90, double %122)
  %124 = fmul double %86, %100
  %125 = call double @llvm.fmuladd.f64(double %96, double %88, double %124)
  %126 = call double @llvm.fmuladd.f64(double %100, double %90, double %125)
  %127 = call double @llvm.fmuladd.f64(double %103, double %88, double %126)
  %128 = call double @llvm.fmuladd.f64(double %96, double %90, double %120)
  %129 = call double @llvm.fmuladd.f64(double %100, double %88, double %128)
  %130 = call double @llvm.fmuladd.f64(double %103, double %86, double %129)
  %131 = fmul double %111, %119
  %132 = fadd double %119, %115
  %133 = fmul double %107, %132
  %134 = call double @llvm.fmuladd.f64(double %111, double %115, double %133)
  %135 = fadd double %112, %115
  %136 = call double @llvm.fmuladd.f64(double %107, double %135, double %104)
  %137 = call double @llvm.fmuladd.f64(double %107, double %135, double %136)
  %138 = call double @llvm.fmuladd.f64(double %111, double %112, double %137)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) #9
  %139 = fmul double %67, %96
  %140 = fmul double %67, %100
  %141 = fmul double %67, %103
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %11, double noundef %139, double noundef %140, double noundef %141)
          to label %142 unwind label %188

142:                                              ; preds = %69
  %143 = getelementptr inbounds i8, ptr %0, i64 264
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %143, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 48, i1 false), !tbaa.struct !9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %12) #9
  %144 = fmul double %67, %104
  %145 = fmul double %67, %107
  %146 = fmul double %67, %111
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %12, double noundef %144, double noundef %145, double noundef %146)
          to label %147 unwind label %190

147:                                              ; preds = %142
  %148 = getelementptr inbounds i8, ptr %0, i64 312
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %148, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 48, i1 false), !tbaa.struct !9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %13) #9
  %149 = fmul double %67, %112
  %150 = fmul double %67, %115
  %151 = fmul double %67, %119
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %13, double noundef %149, double noundef %150, double noundef %151)
          to label %152 unwind label %192

152:                                              ; preds = %147
  %153 = getelementptr inbounds i8, ptr %0, i64 360
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %153, ptr noundef nonnull align 8 dereferenceable(48) %13, i64 48, i1 false), !tbaa.struct !9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %13) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) #9
  %154 = fadd double %123, %127
  %155 = fadd double %127, %154
  %156 = fadd double %130, %155
  %157 = call noundef zeroext i1 @_ZN7LibUtil4Math7isEqualEdd(double noundef %156, double noundef 1.000000e+00)
  br i1 %157, label %243, label %158

158:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.53)
          to label %159 unwind label %194

159:                                              ; preds = %158
  invoke void (ptr, ptr, ...) @_ZN7LibUtil6String6formatERKS0_z(ptr dead_on_unwind nonnull writable sret(%"class.LibUtil::String") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.54, i32 noundef 314)
          to label %160 unwind label %196

160:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #9
  %161 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT5Model15getInstanceNameEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %162 unwind label %198

162:                                              ; preds = %160
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull @.str.55, ptr noundef nonnull align 8 dereferenceable(32) %161)
          to label %163 unwind label %198

163:                                              ; preds = %162
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.56)
          to label %164 unwind label %200

164:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %27, double noundef %123)
          to label %165 unwind label %202

165:                                              ; preds = %164
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %166 unwind label %204

166:                                              ; preds = %165
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.57)
          to label %167 unwind label %206

167:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %28, double noundef %127)
          to label %168 unwind label %208

168:                                              ; preds = %167
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %169 unwind label %210

169:                                              ; preds = %168
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.57)
          to label %170 unwind label %212

170:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %29, double noundef %130)
          to label %171 unwind label %214

171:                                              ; preds = %170
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %172 unwind label %216

172:                                              ; preds = %171
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.58)
          to label %173 unwind label %218

173:                                              ; preds = %172
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %174 unwind label %220

174:                                              ; preds = %173
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %175 unwind label %222

175:                                              ; preds = %174
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %176 unwind label %224

176:                                              ; preds = %175
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  %177 = call ptr @__cxa_allocate_exception(i64 40) #9
  call void @_ZN7LibUtil9ExceptionC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(40) %177, ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  invoke void @__cxa_throw(ptr nonnull %177, ptr nonnull @_ZTIN7LibUtil9ExceptionE, ptr nonnull @_ZN7LibUtil9ExceptionD1Ev) #10
          to label %355 unwind label %241

178:                                              ; preds = %51, %1
  %179 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #9
  br label %354

180:                                              ; preds = %55, %53
  %181 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  br label %354

182:                                              ; preds = %59, %57
  %183 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  br label %354

184:                                              ; preds = %61
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %353

186:                                              ; preds = %68
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %352

188:                                              ; preds = %69
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #9
  br label %351

190:                                              ; preds = %142
  %191 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #9
  br label %351

192:                                              ; preds = %147
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) #9
  br label %351

194:                                              ; preds = %158
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %240

196:                                              ; preds = %159
  %197 = landingpad { ptr, i32 }
          cleanup
  br label %239

198:                                              ; preds = %162, %160
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %238

200:                                              ; preds = %163
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %237

202:                                              ; preds = %164
  %203 = landingpad { ptr, i32 }
          cleanup
  br label %236

204:                                              ; preds = %165
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %235

206:                                              ; preds = %166
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %234

208:                                              ; preds = %167
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %233

210:                                              ; preds = %168
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %232

212:                                              ; preds = %169
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %231

214:                                              ; preds = %170
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %230

216:                                              ; preds = %171
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %229

218:                                              ; preds = %172
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %228

220:                                              ; preds = %173
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %227

222:                                              ; preds = %174
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %226

224:                                              ; preds = %175
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %226

226:                                              ; preds = %224, %222
  %.pn = phi { ptr, i32 } [ %225, %224 ], [ %223, %222 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %227

227:                                              ; preds = %226, %220
  %.pn.pn = phi { ptr, i32 } [ %.pn, %226 ], [ %221, %220 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %228

228:                                              ; preds = %227, %218
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %227 ], [ %219, %218 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %229

229:                                              ; preds = %228, %216
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %228 ], [ %217, %216 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %230

230:                                              ; preds = %229, %214
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %229 ], [ %215, %214 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %231

231:                                              ; preds = %230, %212
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %230 ], [ %213, %212 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %232

232:                                              ; preds = %231, %210
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %231 ], [ %211, %210 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %233

233:                                              ; preds = %232, %208
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %232 ], [ %209, %208 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %234

234:                                              ; preds = %233, %206
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %233 ], [ %207, %206 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %235

235:                                              ; preds = %234, %204
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %234 ], [ %205, %204 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %236

236:                                              ; preds = %235, %202
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %235 ], [ %203, %202 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %237

237:                                              ; preds = %236, %200
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %236 ], [ %201, %200 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  br label %238

238:                                              ; preds = %237, %198
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %237 ], [ %199, %198 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %239

239:                                              ; preds = %238, %196
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %238 ], [ %197, %196 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %240

240:                                              ; preds = %239, %194
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %239 ], [ %195, %194 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  br label %351

241:                                              ; preds = %176
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  br label %351

243:                                              ; preds = %152
  %244 = fadd double %131, %134
  %245 = fadd double %134, %244
  %246 = fadd double %138, %245
  %247 = call noundef zeroext i1 @_ZN7LibUtil4Math7isEqualEdd(double noundef %246, double noundef 1.000000e+00)
  br i1 %247, label %317, label %248

248:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.53)
          to label %249 unwind label %268

249:                                              ; preds = %248
  invoke void (ptr, ptr, ...) @_ZN7LibUtil6String6formatERKS0_z(ptr dead_on_unwind nonnull writable sret(%"class.LibUtil::String") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.54, i32 noundef 319)
          to label %250 unwind label %270

250:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #9
  %251 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT5Model15getInstanceNameEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %252 unwind label %272

252:                                              ; preds = %250
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull @.str.55, ptr noundef nonnull align 8 dereferenceable(32) %251)
          to label %253 unwind label %272

253:                                              ; preds = %252
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.56)
          to label %254 unwind label %274

254:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %43, double noundef %131)
          to label %255 unwind label %276

255:                                              ; preds = %254
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %256 unwind label %278

256:                                              ; preds = %255
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.57)
          to label %257 unwind label %280

257:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %44, double noundef %134)
          to label %258 unwind label %282

258:                                              ; preds = %257
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %259 unwind label %284

259:                                              ; preds = %258
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.57)
          to label %260 unwind label %286

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #9
  invoke void @_ZN7LibUtil6StringC1Ed(ptr noundef nonnull align 8 dereferenceable(32) %45, double noundef %138)
          to label %261 unwind label %288

261:                                              ; preds = %260
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %262 unwind label %290

262:                                              ; preds = %261
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.58)
          to label %263 unwind label %292

263:                                              ; preds = %262
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %264 unwind label %294

264:                                              ; preds = %263
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %265 unwind label %296

265:                                              ; preds = %264
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %266 unwind label %298

266:                                              ; preds = %265
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  %267 = call ptr @__cxa_allocate_exception(i64 40) #9
  call void @_ZN7LibUtil9ExceptionC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(40) %267, ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  invoke void @__cxa_throw(ptr nonnull %267, ptr nonnull @_ZTIN7LibUtil9ExceptionE, ptr nonnull @_ZN7LibUtil9ExceptionD1Ev) #10
          to label %355 unwind label %315

268:                                              ; preds = %248
  %269 = landingpad { ptr, i32 }
          cleanup
  br label %314

270:                                              ; preds = %249
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %313

272:                                              ; preds = %252, %250
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %312

274:                                              ; preds = %253
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %311

276:                                              ; preds = %254
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %310

278:                                              ; preds = %255
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %309

280:                                              ; preds = %256
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %308

282:                                              ; preds = %257
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %307

284:                                              ; preds = %258
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %306

286:                                              ; preds = %259
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %305

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

290:                                              ; preds = %261
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %303

292:                                              ; preds = %262
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %302

294:                                              ; preds = %263
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %301

296:                                              ; preds = %264
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %300

298:                                              ; preds = %265
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %300

300:                                              ; preds = %298, %296
  %.pn237 = phi { ptr, i32 } [ %299, %298 ], [ %297, %296 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %301

301:                                              ; preds = %300, %294
  %.pn237.pn = phi { ptr, i32 } [ %.pn237, %300 ], [ %295, %294 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  br label %302

302:                                              ; preds = %301, %292
  %.pn237.pn.pn = phi { ptr, i32 } [ %.pn237.pn, %301 ], [ %293, %292 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %303

303:                                              ; preds = %302, %290
  %.pn237.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn, %302 ], [ %291, %290 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %304

304:                                              ; preds = %303, %288
  %.pn237.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn, %303 ], [ %289, %288 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %305

305:                                              ; preds = %304, %286
  %.pn237.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn, %304 ], [ %287, %286 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %306

306:                                              ; preds = %305, %284
  %.pn237.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn, %305 ], [ %285, %284 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %307

307:                                              ; preds = %306, %282
  %.pn237.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn.pn, %306 ], [ %283, %282 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %308

308:                                              ; preds = %307, %280
  %.pn237.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn.pn.pn, %307 ], [ %281, %280 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  br label %309

309:                                              ; preds = %308, %278
  %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn.pn.pn.pn, %308 ], [ %279, %278 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %310

310:                                              ; preds = %309, %276
  %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn, %309 ], [ %277, %276 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  br label %311

311:                                              ; preds = %310, %274
  %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %310 ], [ %275, %274 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %312

312:                                              ; preds = %311, %272
  %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %311 ], [ %273, %272 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %313

313:                                              ; preds = %312, %270
  %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %312 ], [ %271, %270 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %314

314:                                              ; preds = %313, %268
  %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %313 ], [ %269, %268 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  br label %351

315:                                              ; preds = %266
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  br label %351

317:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %46) #9
  %318 = fmul double %67, %123
  %319 = fmul double %67, %127
  %320 = fmul double %67, %130
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %46, double noundef %318, double noundef %319, double noundef %320)
          to label %321 unwind label %334

321:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.3)
          to label %322 unwind label %336

322:                                              ; preds = %321
  %323 = invoke noundef ptr @_ZN5DSENT15ElectricalModel13getOutputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %324 unwind label %338

324:                                              ; preds = %322
  invoke void @_ZN5DSENT8PortInfo17setTransitionInfoERKNS_14TransitionInfoE(ptr noundef nonnull align 8 dereferenceable(88) %323, ptr noundef nonnull align 8 dereferenceable(48) %46)
          to label %325 unwind label %338

325:                                              ; preds = %324
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %48) #9
  %326 = fmul double %67, %131
  %327 = fmul double %67, %134
  %328 = fmul double %67, %138
  invoke void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48) %48, double noundef %326, double noundef %327, double noundef %328)
          to label %329 unwind label %341

329:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.4)
          to label %330 unwind label %343

330:                                              ; preds = %329
  %331 = invoke noundef ptr @_ZN5DSENT15ElectricalModel13getOutputPortERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %332 unwind label %345

332:                                              ; preds = %330
  invoke void @_ZN5DSENT8PortInfo17setTransitionInfoERKNS_14TransitionInfoE(ptr noundef nonnull align 8 dereferenceable(88) %331, ptr noundef nonnull align 8 dereferenceable(48) %48)
          to label %333 unwind label %345

333:                                              ; preds = %332
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %48) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %46) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %46) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #9
  ret void

334:                                              ; preds = %317
  %335 = landingpad { ptr, i32 }
          cleanup
  br label %350

336:                                              ; preds = %321
  %337 = landingpad { ptr, i32 }
          cleanup
  br label %340

338:                                              ; preds = %324, %322
  %339 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %340

340:                                              ; preds = %338, %336
  %.pn255 = phi { ptr, i32 } [ %339, %338 ], [ %337, %336 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  br label %349

341:                                              ; preds = %325
  %342 = landingpad { ptr, i32 }
          cleanup
  br label %348

343:                                              ; preds = %329
  %344 = landingpad { ptr, i32 }
          cleanup
  br label %347

345:                                              ; preds = %332, %330
  %346 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %347

347:                                              ; preds = %345, %343
  %.pn257 = phi { ptr, i32 } [ %346, %345 ], [ %344, %343 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #9
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #9
  br label %348

348:                                              ; preds = %347, %341
  %.pn257.pn = phi { ptr, i32 } [ %.pn257, %347 ], [ %342, %341 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %48) #9
  br label %349

349:                                              ; preds = %348, %340
  %.pn257.pn.pn = phi { ptr, i32 } [ %.pn257.pn, %348 ], [ %.pn255, %340 ]
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %46) #9
  br label %350

350:                                              ; preds = %349, %334
  %.pn257.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn, %349 ], [ %335, %334 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %46) #9
  br label %351

351:                                              ; preds = %314, %315, %240, %241, %350, %192, %190, %188
  %.pn257.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn, %350 ], [ %193, %192 ], [ %191, %190 ], [ %189, %188 ], [ %242, %241 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %240 ], [ %316, %315 ], [ %.pn237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %314 ]
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #9
  br label %352

352:                                              ; preds = %351, %186
  %.pn257.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn.pn, %351 ], [ %187, %186 ]
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #9
  br label %353

353:                                              ; preds = %352, %184
  %.pn257.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn.pn.pn, %352 ], [ %185, %184 ]
  call void @_ZN5DSENT14TransitionInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #9
  br label %354

354:                                              ; preds = %180, %353, %182, %178
  %.pn257.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %179, %178 ], [ %181, %180 ], [ %.pn257.pn.pn.pn.pn.pn.pn, %353 ], [ %183, %182 ]
  resume { ptr, i32 } %.pn257.pn.pn.pn.pn.pn.pn.pn.pn.pn

355:                                              ; preds = %266, %176
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5DSENT14TransitionInfo22getFrequencyMultiplierEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #4 align 2

declare void @_ZNK5DSENT14TransitionInfo24scaleFrequencyMultiplierEd(ptr dead_on_unwind writable sret(%"class.DSENT::TransitionInfo") align 8, ptr noundef nonnull align 8 dereferenceable(48), double noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions00Ev(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5DSENT14TransitionInfo22getNumberTransitions11Ev(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #4 align 2

declare void @_ZN5DSENT14TransitionInfoC1Eddd(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef) unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN7LibUtil4Math7isEqualEdd(double noundef, double noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #8

declare void @_ZN7LibUtil6String6formatERKS0_z(ptr dead_on_unwind writable sret(%"class.LibUtil::String") align 8, ptr noundef nonnull align 8 dereferenceable(32), ...) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT5Model15getInstanceNameEv(ptr noundef nonnull align 8 dereferenceable(131)) local_unnamed_addr #2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

; Function Attrs: nounwind
declare void @_ZN7LibUtil9ExceptionC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0

; Function Attrs: nounwind
declare void @_ZN7LibUtil9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #0

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @_ZN5DSENT8PortInfo17setTransitionInfoERKNS_14TransitionInfoE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2

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

!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 = !{i64 0, i64 8, !5, i64 8, i64 8, !5, i64 16, i64 8, !5, i64 24, i64 8, !5, i64 32, i64 8, !5, i64 40, i64 8, !5}


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