; LLVM IR from gem5/gem5 :: ext/dsent/model/optical/RingDetector.ll (ZN5DSENT12RingDetector14precomputeTechEv)

; 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::RingDetector" = type { %"class.DSENT::OpticalModel", %"class.DSENT::OpticalReceiver", double, double, double, double }
%"class.DSENT::OpticalModel" = type { %"class.DSENT::ElectricalModel", ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"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 }
%"class.DSENT::OpticalReceiver" = type { ptr }

@_ZN5DSENT12RingDetector19INTEGRATINGSENSEAMPE = external dso_local global %"class.LibUtil::String", align 8
@.str.2 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTIN7LibUtil9ExceptionE = external constant ptr
@.str.22 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZN5DSENT9Constants2piE = external constant double, align 8
@_ZN5DSENT9Constants1kE = external constant double, align 8
@_ZN5DSENT9Constants1qE = external constant double, align 8
@.str.40 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [20 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(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)) #4

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 align 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 #1

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

declare void @__cxa_throw(ptr, ptr, ptr)

declare noundef ptr @_ZN5DSENT15ElectricalModel9getDriverERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) #0

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5DSENT12RingDetector14precomputeTechEv(ptr noundef nonnull align 8 dereferenceable(336) %0) #5 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca double, align 8
  %4 = alloca %"class.LibUtil::String", align 8
  %5 = alloca %"class.LibUtil::String", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca %"class.LibUtil::String", align 8
  %10 = alloca %"class.LibUtil::String", align 8
  %11 = alloca double, align 8
  %12 = alloca %"class.LibUtil::String", align 8
  %13 = alloca double, align 8
  %14 = alloca %"class.LibUtil::String", align 8
  %15 = alloca double, align 8
  %16 = alloca %"class.LibUtil::String", align 8
  %17 = alloca double, align 8
  %18 = alloca %"class.LibUtil::String", align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca %"class.LibUtil::String", align 8
  %24 = alloca double, align 8
  %25 = alloca %"class.LibUtil::String", align 8
  %26 = alloca double, align 8
  %27 = alloca %"class.LibUtil::String", align 8
  %28 = alloca double, align 8
  %29 = alloca %"class.LibUtil::String", align 8
  %30 = alloca double, align 8
  %31 = alloca %"class.LibUtil::String", align 8
  %32 = alloca double, align 8
  %33 = alloca %"class.LibUtil::String", align 8
  %34 = alloca double, align 8
  %35 = alloca %"class.LibUtil::String", align 8
  %36 = alloca double, align 8
  %37 = alloca %"class.LibUtil::String", align 8
  %38 = alloca double, align 8
  %39 = alloca %"class.LibUtil::String", align 8
  %40 = alloca double, align 8
  %41 = alloca %"class.LibUtil::String", align 8
  %42 = alloca double, align 8
  %43 = alloca %"class.LibUtil::String", align 8
  %44 = alloca %"class.LibUtil::String", align 8
  %45 = alloca double, align 8
  %46 = alloca %"class.LibUtil::String", align 8
  %47 = alloca double, align 8
  %48 = alloca %"class.LibUtil::String", align 8
  %49 = alloca double, align 8
  %50 = alloca %"class.LibUtil::String", align 8
  %51 = alloca double, align 8
  %52 = alloca %"class.LibUtil::String", align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca ptr, align 8
  %61 = alloca %"class.LibUtil::String", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.LibUtil::String", align 8
  %64 = alloca %"class.LibUtil::String", align 8
  %65 = alloca %"class.LibUtil::String", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %70 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #8
  call void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef @.str.2)
  invoke void @_ZNK5DSENT5Model12getParameterERKN7LibUtil6StringE(ptr dead_on_unwind writable sret(%"class.LibUtil::String") align 8 %4, ptr noundef nonnull align 8 dereferenceable(131) %70, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %71 unwind label %334

71:                                               ; preds = %1
  %72 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %73 unwind label %338

73:                                               ; preds = %71
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #8
  store double %72, ptr %3, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #8
  call void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.8)
  invoke void @_ZNK5DSENT5Model12getParameterERKN7LibUtil6StringE(ptr dead_on_unwind writable sret(%"class.LibUtil::String") align 8 %9, ptr noundef nonnull align 8 dereferenceable(131) %70, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %74 unwind label %343

74:                                               ; preds = %73
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  store ptr %9, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %75 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %76 unwind label %347

76:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.37)
          to label %77 unwind label %351

77:                                               ; preds = %76
  %78 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %75, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %79 unwind label %355

79:                                               ; preds = %77
  %80 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %81 unwind label %355

81:                                               ; preds = %79
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  store double %80, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  %82 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %83 unwind label %360

83:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.38)
          to label %84 unwind label %364

84:                                               ; preds = %83
  %85 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %82, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %86 unwind label %368

86:                                               ; preds = %84
  %87 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %88 unwind label %368

88:                                               ; preds = %86
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  store double %87, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %89 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %90 unwind label %373

90:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.39)
          to label %91 unwind label %377

91:                                               ; preds = %90
  %92 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %89, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %93 unwind label %381

93:                                               ; preds = %91
  %94 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %95 unwind label %381

95:                                               ; preds = %93
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  store double %94, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %96 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %97 unwind label %386

97:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.28)
          to label %98 unwind label %390

98:                                               ; preds = %97
  %99 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %96, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %100 unwind label %394

100:                                              ; preds = %98
  %101 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %102 unwind label %394

102:                                              ; preds = %100
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  store double %101, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %103 = load double, ptr @_ZN5DSENT9Constants2piE, align 8, !tbaa !9
  store double %103, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %104 = load double, ptr @_ZN5DSENT9Constants1kE, align 8, !tbaa !9
  store double %104, ptr %20, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %105 = load double, ptr @_ZN5DSENT9Constants1qE, align 8, !tbaa !9
  store double %105, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %106 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %107 unwind label %399

107:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.40)
          to label %108 unwind label %403

108:                                              ; preds = %107
  %109 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %106, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %110 unwind label %407

110:                                              ; preds = %108
  %111 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %112 unwind label %407

112:                                              ; preds = %110
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  store double %111, ptr %22, align 8, !tbaa !9
  %113 = load ptr, ptr %8, align 8, !tbaa !5
  %114 = call noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) @_ZN5DSENT12RingDetector19INTEGRATINGSENSEAMPE) #8
  br i1 %114, label %115, label %618

115:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %116 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %117 unwind label %412

117:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.41)
          to label %118 unwind label %416

118:                                              ; preds = %117
  %119 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %116, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %120 unwind label %420

120:                                              ; preds = %118
  %121 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %119)
          to label %122 unwind label %420

122:                                              ; preds = %120
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  store double %121, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %123 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %124 unwind label %425

124:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.42)
          to label %125 unwind label %429

125:                                              ; preds = %124
  %126 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %123, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %127 unwind label %433

127:                                              ; preds = %125
  %128 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %129 unwind label %433

129:                                              ; preds = %127
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  store double %128, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %130 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %131 unwind label %438

131:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.43)
          to label %132 unwind label %442

132:                                              ; preds = %131
  %133 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %130, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %134 unwind label %446

134:                                              ; preds = %132
  %135 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %136 unwind label %446

136:                                              ; preds = %134
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  store double %135, ptr %28, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %137 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %138 unwind label %451

138:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.44)
          to label %139 unwind label %455

139:                                              ; preds = %138
  %140 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %137, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %141 unwind label %459

141:                                              ; preds = %139
  %142 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %140)
          to label %143 unwind label %459

143:                                              ; preds = %141
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  store double %142, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  %144 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %145 unwind label %464

145:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.45)
          to label %146 unwind label %468

146:                                              ; preds = %145
  %147 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %144, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %148 unwind label %472

148:                                              ; preds = %146
  %149 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %147)
          to label %150 unwind label %472

150:                                              ; preds = %148
  %151 = load double, ptr %17, align 8, !tbaa !9
  %152 = fmul double %149, %151
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  store double %152, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %153 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %154 unwind label %477

154:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.46)
          to label %155 unwind label %481

155:                                              ; preds = %154
  %156 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %153, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %157 unwind label %485

157:                                              ; preds = %155
  %158 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %156)
          to label %159 unwind label %485

159:                                              ; preds = %157
  %160 = load double, ptr %17, align 8, !tbaa !9
  %161 = fmul double %158, %160
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  store double %161, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  %162 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %163 unwind label %490

163:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.47)
          to label %164 unwind label %494

164:                                              ; preds = %163
  %165 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %162, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %166 unwind label %498

166:                                              ; preds = %164
  %167 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %165)
          to label %168 unwind label %498

168:                                              ; preds = %166
  %169 = load double, ptr %17, align 8, !tbaa !9
  %170 = fmul double %167, %169
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  store double %170, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  %171 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %172 unwind label %503

172:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.48)
          to label %173 unwind label %507

173:                                              ; preds = %172
  %174 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %171, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %175 unwind label %511

175:                                              ; preds = %173
  %176 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %177 unwind label %511

177:                                              ; preds = %175
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  store double %176, ptr %38, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %178 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %179 unwind label %516

179:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.49)
          to label %180 unwind label %520

180:                                              ; preds = %179
  %181 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %178, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %182 unwind label %524

182:                                              ; preds = %180
  %183 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %181)
          to label %184 unwind label %524

184:                                              ; preds = %182
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  store double %183, ptr %40, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %185 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %186 unwind label %529

186:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.29)
          to label %187 unwind label %533

187:                                              ; preds = %186
  %188 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %185, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %189 unwind label %537

189:                                              ; preds = %187
  %190 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %188)
          to label %191 unwind label %537

191:                                              ; preds = %189
  %192 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %193 unwind label %537

193:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef @.str.31)
          to label %194 unwind label %541

194:                                              ; preds = %193
  %195 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %192, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %196 unwind label %545

196:                                              ; preds = %194
  %197 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %195)
          to label %198 unwind label %545

198:                                              ; preds = %196
  %199 = fmul double %190, %197
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  store double %199, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %200 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %201 unwind label %552

201:                                              ; preds = %198
  %202 = invoke noundef ptr @_ZNK5DSENT9TechModel13getStdCellLibEv(ptr noundef nonnull align 8 dereferenceable(72) %200)
          to label %203 unwind label %552

203:                                              ; preds = %201
  %204 = invoke noundef ptr @_ZNK5DSENT10StdCellLib15getStdCellCacheEv(ptr noundef nonnull align 8 dereferenceable(40) %202)
          to label %205 unwind label %552

205:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.32)
          to label %206 unwind label %556

206:                                              ; preds = %205
  %207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7LibUtil3MapIdE3getERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(56) %204, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %208 unwind label %560

208:                                              ; preds = %206
  %209 = load double, ptr %207, align 8, !tbaa !9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  store double %209, ptr %45, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %210 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %211 unwind label %565

211:                                              ; preds = %208
  %212 = invoke noundef ptr @_ZNK5DSENT9TechModel13getStdCellLibEv(ptr noundef nonnull align 8 dereferenceable(72) %210)
          to label %213 unwind label %565

213:                                              ; preds = %211
  %214 = invoke noundef ptr @_ZNK5DSENT10StdCellLib15getStdCellCacheEv(ptr noundef nonnull align 8 dereferenceable(40) %212)
          to label %215 unwind label %565

215:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.33)
          to label %216 unwind label %569

216:                                              ; preds = %215
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7LibUtil3MapIdE3getERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(56) %214, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %218 unwind label %573

218:                                              ; preds = %216
  %219 = load double, ptr %217, align 8, !tbaa !9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  store double %219, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  %220 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %221 unwind label %578

221:                                              ; preds = %218
  %222 = invoke noundef ptr @_ZNK5DSENT9TechModel13getStdCellLibEv(ptr noundef nonnull align 8 dereferenceable(72) %220)
          to label %223 unwind label %578

223:                                              ; preds = %221
  %224 = invoke noundef ptr @_ZNK5DSENT10StdCellLib15getStdCellCacheEv(ptr noundef nonnull align 8 dereferenceable(40) %222)
          to label %225 unwind label %578

225:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.50)
          to label %226 unwind label %582

226:                                              ; preds = %225
  %227 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7LibUtil3MapIdE3getERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(56) %224, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %228 unwind label %586

228:                                              ; preds = %226
  %229 = load double, ptr %227, align 8, !tbaa !9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  store double %229, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  %230 = load double, ptr %49, align 8, !tbaa !9
  %231 = load double, ptr %45, align 8, !tbaa !9
  %232 = load double, ptr %47, align 8, !tbaa !9
  %233 = fadd double %231, %232
  %234 = fmul double %230, %233
  store double %234, ptr %51, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.22)
          to label %235 unwind label %591

235:                                              ; preds = %228
  %236 = invoke noundef ptr @_ZN5DSENT15ElectricalModel9getDriverERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %70, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %237 unwind label %595

237:                                              ; preds = %235
  %238 = load double, ptr %49, align 8, !tbaa !9
  invoke void @_ZN5DSENT16ElectricalDriver12setOutputResEd(ptr noundef nonnull align 8 dereferenceable(129) %236, double noundef %238)
          to label %239 unwind label %595

239:                                              ; preds = %237
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  %240 = load double, ptr %42, align 8, !tbaa !9
  %241 = fmul double %240, 1.100000e+01
  store double %241, ptr %53, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  %242 = load double, ptr %32, align 8, !tbaa !9
  %243 = fmul double 3.000000e+00, %242
  %244 = load double, ptr %30, align 8, !tbaa !9
  %245 = call double @pow(double noundef 2.000000e+00, double noundef %244) #8
  %246 = fdiv double %243, %245
  store double %246, ptr %54, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %247 = load double, ptr %34, align 8, !tbaa !9
  %248 = load double, ptr %34, align 8, !tbaa !9
  %249 = fmul double %247, %248
  %250 = load double, ptr %28, align 8, !tbaa !9
  %251 = load double, ptr %28, align 8, !tbaa !9
  %252 = fmul double %250, %251
  %253 = fdiv double %249, %252
  store double %253, ptr %55, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  %254 = load double, ptr %17, align 8, !tbaa !9
  %255 = load double, ptr %24, align 8, !tbaa !9
  %256 = fsub double 1.000000e+00, %255
  %257 = fneg double %256
  %258 = load double, ptr %3, align 8, !tbaa !9
  %259 = load double, ptr %51, align 8, !tbaa !9
  %260 = fmul double %258, %259
  %261 = fdiv double %257, %260
  %262 = call double @exp(double noundef %261) #8
  %263 = load double, ptr %38, align 8, !tbaa !9
  %264 = call double @llvm.fmuladd.f64(double %254, double %262, double %263)
  %265 = load double, ptr %54, align 8, !tbaa !9
  %266 = fadd double %264, %265
  %267 = load double, ptr %36, align 8, !tbaa !9
  %268 = load double, ptr %28, align 8, !tbaa !9
  %269 = fdiv double %267, %268
  %270 = fadd double %266, %269
  store double %270, ptr %56, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %271 = load double, ptr %26, align 8, !tbaa !9
  %272 = invoke noundef double @_ZN5DSENT12RingDetector14calcInvNormCdfEd(ptr noundef nonnull align 8 dereferenceable(336) %70, double noundef %271)
          to label %273 unwind label %600

273:                                              ; preds = %239
  store double %272, ptr %57, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %274 = load double, ptr %53, align 8, !tbaa !9
  %275 = load double, ptr %11, align 8, !tbaa !9
  %276 = fadd double %274, %275
  %277 = load double, ptr %13, align 8, !tbaa !9
  %278 = fadd double %276, %277
  store double %278, ptr %58, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  %279 = load double, ptr %24, align 8, !tbaa !9
  %280 = load double, ptr %3, align 8, !tbaa !9
  %281 = load double, ptr %58, align 8, !tbaa !9
  %282 = fmul double %280, %281
  %283 = fdiv double %279, %282
  store double %283, ptr %59, align 8, !tbaa !9
  %284 = load double, ptr %57, align 8, !tbaa !9
  %285 = load double, ptr %57, align 8, !tbaa !9
  %286 = fmul double %284, %285
  %287 = load double, ptr %40, align 8, !tbaa !9
  %288 = fmul double %286, %287
  %289 = load double, ptr %40, align 8, !tbaa !9
  %290 = fneg double %288
  %291 = call double @llvm.fmuladd.f64(double %290, double %289, double 1.000000e+00)
  %292 = getelementptr inbounds %"class.DSENT::RingDetector", ptr %70, i32 0, i32 2
  store double %291, ptr %292, align 8, !tbaa !11
  %293 = load double, ptr %19, align 8, !tbaa !9
  %294 = fmul double -2.000000e+00, %293
  %295 = fdiv double %294, 2.000000e+00
  %296 = load double, ptr %57, align 8, !tbaa !9
  %297 = fmul double %295, %296
  %298 = load double, ptr %57, align 8, !tbaa !9
  %299 = fmul double %297, %298
  %300 = load double, ptr %21, align 8, !tbaa !9
  %301 = fmul double %299, %300
  %302 = fmul double %301, 0x3FE6666666666666
  %303 = load double, ptr %3, align 8, !tbaa !9
  %304 = fmul double %302, %303
  %305 = getelementptr inbounds %"class.DSENT::RingDetector", ptr %70, i32 0, i32 3
  store double %304, ptr %305, align 8, !tbaa !27
  %306 = load double, ptr %56, align 8, !tbaa !9
  %307 = fmul double -2.000000e+00, %306
  %308 = load double, ptr %59, align 8, !tbaa !9
  %309 = load double, ptr %15, align 8, !tbaa !9
  %310 = fmul double %308, %309
  %311 = fdiv double %307, %310
  %312 = getelementptr inbounds %"class.DSENT::RingDetector", ptr %70, i32 0, i32 4
  store double %311, ptr %312, align 8, !tbaa !28
  %313 = load double, ptr %59, align 8, !tbaa !9
  %314 = load double, ptr %59, align 8, !tbaa !9
  %315 = fmul double %313, %314
  %316 = fdiv double 1.000000e+00, %315
  %317 = load double, ptr %56, align 8, !tbaa !9
  %318 = load double, ptr %56, align 8, !tbaa !9
  %319 = load double, ptr %57, align 8, !tbaa !9
  %320 = load double, ptr %57, align 8, !tbaa !9
  %321 = fmul double %319, %320
  %322 = load double, ptr %20, align 8, !tbaa !9
  %323 = load double, ptr %22, align 8, !tbaa !9
  %324 = fmul double %322, %323
  %325 = load double, ptr %58, align 8, !tbaa !9
  %326 = fdiv double %324, %325
  %327 = load double, ptr %55, align 8, !tbaa !9
  %328 = fadd double %326, %327
  %329 = fmul double %321, %328
  %330 = fneg double %329
  %331 = call double @llvm.fmuladd.f64(double %317, double %318, double %330)
  %332 = fmul double %316, %331
  %333 = getelementptr inbounds %"class.DSENT::RingDetector", ptr %70, i32 0, i32 5
  store double %332, ptr %333, align 8, !tbaa !29
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %685

334:                                              ; preds = %1
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %6, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %7, align 4
  br label %342

338:                                              ; preds = %71
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %6, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  br label %342

342:                                              ; preds = %338, %334
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #8
  br label %692

343:                                              ; preds = %73
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %6, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  br label %691

347:                                              ; preds = %74
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %6, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %7, align 4
  br label %690

351:                                              ; preds = %76
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %6, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %7, align 4
  br label %359

355:                                              ; preds = %79, %77
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %6, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %359

359:                                              ; preds = %355, %351
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  br label %690

360:                                              ; preds = %81
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %6, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %7, align 4
  br label %689

364:                                              ; preds = %83
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %6, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %7, align 4
  br label %372

368:                                              ; preds = %86, %84
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %6, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %372

372:                                              ; preds = %368, %364
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  br label %689

373:                                              ; preds = %88
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %6, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %7, align 4
  br label %688

377:                                              ; preds = %90
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %6, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %7, align 4
  br label %385

381:                                              ; preds = %93, %91
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %6, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %385

385:                                              ; preds = %381, %377
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  br label %688

386:                                              ; preds = %95
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %6, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %7, align 4
  br label %687

390:                                              ; preds = %97
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %6, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %7, align 4
  br label %398

394:                                              ; preds = %100, %98
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %6, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %398

398:                                              ; preds = %394, %390
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  br label %687

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

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

407:                                              ; preds = %110, %108
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %6, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %411

411:                                              ; preds = %407, %403
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %686

412:                                              ; preds = %115
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %6, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %7, align 4
  br label %617

416:                                              ; preds = %117
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %6, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %7, align 4
  br label %424

420:                                              ; preds = %120, %118
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %6, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %424

424:                                              ; preds = %420, %416
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %617

425:                                              ; preds = %122
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %6, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %7, align 4
  br label %616

429:                                              ; preds = %124
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %6, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %7, align 4
  br label %437

433:                                              ; preds = %127, %125
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %6, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %437

437:                                              ; preds = %433, %429
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  br label %616

438:                                              ; preds = %129
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %6, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %7, align 4
  br label %615

442:                                              ; preds = %131
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %6, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %7, align 4
  br label %450

446:                                              ; preds = %134, %132
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %6, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %450

450:                                              ; preds = %446, %442
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  br label %615

451:                                              ; preds = %136
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %6, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %7, align 4
  br label %614

455:                                              ; preds = %138
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %6, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %7, align 4
  br label %463

459:                                              ; preds = %141, %139
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %6, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %463

463:                                              ; preds = %459, %455
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  br label %614

464:                                              ; preds = %143
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %6, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %7, align 4
  br label %613

468:                                              ; preds = %145
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %6, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %7, align 4
  br label %476

472:                                              ; preds = %148, %146
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %6, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %476

476:                                              ; preds = %472, %468
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %613

477:                                              ; preds = %150
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %6, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %7, align 4
  br label %612

481:                                              ; preds = %154
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %6, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %7, align 4
  br label %489

485:                                              ; preds = %157, %155
  %486 = landingpad { ptr, i32 }
          cleanup
  %487 = extractvalue { ptr, i32 } %486, 0
  store ptr %487, ptr %6, align 8
  %488 = extractvalue { ptr, i32 } %486, 1
  store i32 %488, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %489

489:                                              ; preds = %485, %481
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  br label %612

490:                                              ; preds = %159
  %491 = landingpad { ptr, i32 }
          cleanup
  %492 = extractvalue { ptr, i32 } %491, 0
  store ptr %492, ptr %6, align 8
  %493 = extractvalue { ptr, i32 } %491, 1
  store i32 %493, ptr %7, align 4
  br label %611

494:                                              ; preds = %163
  %495 = landingpad { ptr, i32 }
          cleanup
  %496 = extractvalue { ptr, i32 } %495, 0
  store ptr %496, ptr %6, align 8
  %497 = extractvalue { ptr, i32 } %495, 1
  store i32 %497, ptr %7, align 4
  br label %502

498:                                              ; preds = %166, %164
  %499 = landingpad { ptr, i32 }
          cleanup
  %500 = extractvalue { ptr, i32 } %499, 0
  store ptr %500, ptr %6, align 8
  %501 = extractvalue { ptr, i32 } %499, 1
  store i32 %501, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  br label %502

502:                                              ; preds = %498, %494
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  br label %611

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

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

511:                                              ; preds = %175, %173
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %6, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %515

515:                                              ; preds = %511, %507
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  br label %610

516:                                              ; preds = %177
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %6, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %7, align 4
  br label %609

520:                                              ; preds = %179
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %6, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %7, align 4
  br label %528

524:                                              ; preds = %182, %180
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %6, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %528

528:                                              ; preds = %524, %520
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %609

529:                                              ; preds = %184
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %6, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %7, align 4
  br label %608

533:                                              ; preds = %186
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %6, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %7, align 4
  br label %551

537:                                              ; preds = %191, %189, %187
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %6, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %7, align 4
  br label %550

541:                                              ; preds = %193
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %6, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %7, align 4
  br label %549

545:                                              ; preds = %196, %194
  %546 = landingpad { ptr, i32 }
          cleanup
  %547 = extractvalue { ptr, i32 } %546, 0
  store ptr %547, ptr %6, align 8
  %548 = extractvalue { ptr, i32 } %546, 1
  store i32 %548, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %549

549:                                              ; preds = %545, %541
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  br label %550

550:                                              ; preds = %549, %537
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %551

551:                                              ; preds = %550, %533
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  br label %608

552:                                              ; preds = %203, %201, %198
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %6, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %7, align 4
  br label %607

556:                                              ; preds = %205
  %557 = landingpad { ptr, i32 }
          cleanup
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %6, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %7, align 4
  br label %564

560:                                              ; preds = %206
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %6, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %564

564:                                              ; preds = %560, %556
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  br label %607

565:                                              ; preds = %213, %211, %208
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %6, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %7, align 4
  br label %606

569:                                              ; preds = %215
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %6, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %7, align 4
  br label %577

573:                                              ; preds = %216
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %6, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %577

577:                                              ; preds = %573, %569
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  br label %606

578:                                              ; preds = %223, %221, %218
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %6, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %7, align 4
  br label %605

582:                                              ; preds = %225
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %6, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %7, align 4
  br label %590

586:                                              ; preds = %226
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %6, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %590

590:                                              ; preds = %586, %582
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  br label %605

591:                                              ; preds = %228
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %6, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %7, align 4
  br label %599

595:                                              ; preds = %237, %235
  %596 = landingpad { ptr, i32 }
          cleanup
  %597 = extractvalue { ptr, i32 } %596, 0
  store ptr %597, ptr %6, align 8
  %598 = extractvalue { ptr, i32 } %596, 1
  store i32 %598, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %599

599:                                              ; preds = %595, %591
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %604

600:                                              ; preds = %239
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %6, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  br label %604

604:                                              ; preds = %600, %599
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %605

605:                                              ; preds = %604, %590, %578
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %606

606:                                              ; preds = %605, %577, %565
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %607

607:                                              ; preds = %606, %564, %552
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  br label %608

608:                                              ; preds = %607, %551, %529
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %609

609:                                              ; preds = %608, %528, %516
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %610

610:                                              ; preds = %609, %515, %503
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  br label %611

611:                                              ; preds = %610, %502, %490
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  br label %612

612:                                              ; preds = %611, %489, %477
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %613

613:                                              ; preds = %612, %476, %464
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %614

614:                                              ; preds = %613, %463, %451
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %615

615:                                              ; preds = %614, %450, %438
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %616

616:                                              ; preds = %615, %437, %425
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  br label %617

617:                                              ; preds = %616, %424, %412
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %686

618:                                              ; preds = %112
  br label %619

619:                                              ; preds = %618
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #8
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.12)
          to label %620 unwind label %634

620:                                              ; preds = %619
  invoke void (ptr, ptr, ...) @_ZN7LibUtil6String6formatERKS0_z(ptr dead_on_unwind writable sret(%"class.LibUtil::String") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.13, i32 noundef 288)
          to label %621 unwind label %638

621:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #8
  %622 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT5Model15getInstanceNameEv(ptr noundef nonnull align 8 dereferenceable(131) %70)
          to label %623 unwind label %642

623:                                              ; preds = %621
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %622)
          to label %624 unwind label %642

624:                                              ; preds = %623
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.15)
          to label %625 unwind label %646

625:                                              ; preds = %624
  %626 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %626)
          to label %627 unwind label %650

627:                                              ; preds = %625
  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.16)
          to label %628 unwind label %654

628:                                              ; preds = %627
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %629 unwind label %658

629:                                              ; preds = %628
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %630 unwind label %662

630:                                              ; preds = %629
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %631 unwind label %666

631:                                              ; preds = %630
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  store ptr %61, ptr %60, align 8, !tbaa !5
  %632 = call ptr @__cxa_allocate_exception(i64 40) #8
  %633 = load ptr, ptr %60, align 8, !tbaa !5
  call void @_ZN7LibUtil9ExceptionC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(40) %632, ptr noundef nonnull align 8 dereferenceable(32) %633) #8
  invoke void @__cxa_throw(ptr %632, ptr @_ZTIN7LibUtil9ExceptionE, ptr @_ZN7LibUtil9ExceptionD1Ev) #9
          to label %698 unwind label %678

634:                                              ; preds = %619
  %635 = landingpad { ptr, i32 }
          cleanup
  %636 = extractvalue { ptr, i32 } %635, 0
  store ptr %636, ptr %6, align 8
  %637 = extractvalue { ptr, i32 } %635, 1
  store i32 %637, ptr %7, align 4
  br label %677

638:                                              ; preds = %620
  %639 = landingpad { ptr, i32 }
          cleanup
  %640 = extractvalue { ptr, i32 } %639, 0
  store ptr %640, ptr %6, align 8
  %641 = extractvalue { ptr, i32 } %639, 1
  store i32 %641, ptr %7, align 4
  br label %676

642:                                              ; preds = %623, %621
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %6, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %7, align 4
  br label %675

646:                                              ; preds = %624
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %6, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %7, align 4
  br label %674

650:                                              ; preds = %625
  %651 = landingpad { ptr, i32 }
          cleanup
  %652 = extractvalue { ptr, i32 } %651, 0
  store ptr %652, ptr %6, align 8
  %653 = extractvalue { ptr, i32 } %651, 1
  store i32 %653, ptr %7, align 4
  br label %673

654:                                              ; preds = %627
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %6, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %7, align 4
  br label %672

658:                                              ; preds = %628
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %6, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %7, align 4
  br label %671

662:                                              ; preds = %629
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %6, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %7, align 4
  br label %670

666:                                              ; preds = %630
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %6, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %670

670:                                              ; preds = %666, %662
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %671

671:                                              ; preds = %670, %658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %672

672:                                              ; preds = %671, %654
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %673

673:                                              ; preds = %672, %650
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %674

674:                                              ; preds = %673, %646
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %675

675:                                              ; preds = %674, %642
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %676

676:                                              ; preds = %675, %638
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %677

677:                                              ; preds = %676, %634
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  br label %682

678:                                              ; preds = %631
  %679 = landingpad { ptr, i32 }
          cleanup
  %680 = extractvalue { ptr, i32 } %679, 0
  store ptr %680, ptr %6, align 8
  %681 = extractvalue { ptr, i32 } %679, 1
  store i32 %681, ptr %7, align 4
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  br label %682

682:                                              ; preds = %678, %677
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  br label %686

683:                                              ; No predecessors!
  br label %684

684:                                              ; preds = %683
  br label %685

685:                                              ; preds = %684, %273
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #8
  ret void

686:                                              ; preds = %682, %617, %411, %399
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %687

687:                                              ; preds = %686, %398, %386
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %688

688:                                              ; preds = %687, %385, %373
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  br label %689

689:                                              ; preds = %688, %372, %360
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  br label %690

690:                                              ; preds = %689, %359, %347
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #8
  br label %691

691:                                              ; preds = %690, %343
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  br label %692

692:                                              ; preds = %691, %342
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #8
  br label %693

693:                                              ; preds = %692
  %694 = load ptr, ptr %6, align 8
  %695 = load i32, ptr %7, align 4
  %696 = insertvalue { ptr, i32 } poison, ptr %694, 0
  %697 = insertvalue { ptr, i32 } %696, i32 %695, 1
  resume { ptr, i32 } %697

698:                                              ; preds = %631
  unreachable
}

declare noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131)) #0

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(32)) #0

declare noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32)) #0

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

declare noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32)) #0

declare noundef ptr @_ZNK5DSENT9TechModel13getStdCellLibEv(ptr noundef nonnull align 8 dereferenceable(72)) #0

declare noundef ptr @_ZNK5DSENT10StdCellLib15getStdCellCacheEv(ptr noundef nonnull align 8 dereferenceable(40)) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7LibUtil3MapIdE3getERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

declare void @_ZN5DSENT16ElectricalDriver12setOutputResEd(ptr noundef nonnull align 8 dereferenceable(129), double noundef) #0

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN5DSENT12RingDetector14calcInvNormCdfEd(ptr noundef nonnull align 8 dereferenceable(336), double noundef) #6 align 2

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { nounwind }
attributes #9 = { 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 = !{!12, !10, i64 304}
!12 = !{!"_ZTSN5DSENT12RingDetectorE", !13, i64 0, !26, i64 296, !10, i64 304, !10, i64 312, !10, i64 320, !10, i64 328}
!13 = !{!"_ZTSN5DSENT12OpticalModelE", !14, i64 0, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !6, i64 288}
!14 = !{!"_ZTSN5DSENT15ElectricalModelE", !15, i64 0, !21, i64 136, !25, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232}
!15 = !{!"_ZTSN5DSENT5ModelE", !16, i64 8, !20, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !20, i64 128, !20, i64 129, !20, i64 130}
!16 = !{!"_ZTSN7LibUtil6StringE", !17, i64 0}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !18, i64 0, !19, i64 8, !7, i64 16}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"bool", !7, i64 0}
!21 = !{!"_ZTSSt6vectorIdSaIdEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"int", !7, i64 0}
!26 = !{!"_ZTSN5DSENT15OpticalReceiverE"}
!27 = !{!12, !10, i64 312}
!28 = !{!12, !10, i64 320}
!29 = !{!12, !10, i64 328}


; 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] }

@_ZN5DSENT12RingDetector19INTEGRATINGSENSEAMPE = external dso_local global %"class.LibUtil::String", align 8
@.str.2 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTIN7LibUtil9ExceptionE = external constant ptr
@.str.22 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZN5DSENT9Constants2piE = external local_unnamed_addr constant double, align 8
@_ZN5DSENT9Constants1kE = external local_unnamed_addr constant double, align 8
@_ZN5DSENT9Constants1qE = external local_unnamed_addr constant double, align 8
@.str.40 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [20 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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 #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(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 #4

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 align 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 #1

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

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

declare noundef ptr @_ZN5DSENT15ElectricalModel9getDriverERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5DSENT12RingDetector14precomputeTechEv(ptr noundef nonnull align 8 dereferenceable(336) %0) local_unnamed_addr #5 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 %"class.LibUtil::String", align 8
  %6 = alloca %"class.LibUtil::String", align 8
  %7 = alloca %"class.LibUtil::String", align 8
  %8 = alloca %"class.LibUtil::String", align 8
  %9 = alloca %"class.LibUtil::String", align 8
  %10 = alloca %"class.LibUtil::String", align 8
  %11 = alloca %"class.LibUtil::String", align 8
  %12 = alloca %"class.LibUtil::String", align 8
  %13 = alloca %"class.LibUtil::String", align 8
  %14 = alloca %"class.LibUtil::String", align 8
  %15 = alloca %"class.LibUtil::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.LibUtil::String", align 8
  %20 = alloca %"class.LibUtil::String", align 8
  %21 = alloca %"class.LibUtil::String", align 8
  %22 = alloca %"class.LibUtil::String", align 8
  %23 = alloca %"class.LibUtil::String", align 8
  %24 = alloca %"class.LibUtil::String", align 8
  %25 = alloca %"class.LibUtil::String", align 8
  %26 = alloca %"class.LibUtil::String", align 8
  %27 = alloca %"class.std::__cxx11::basic_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.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.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.2)
  invoke void @_ZNK5DSENT5Model12getParameterERKN7LibUtil6StringE(ptr dead_on_unwind nonnull writable sret(%"class.LibUtil::String") align 8 %2, ptr noundef nonnull align 8 dereferenceable(131) %0, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %35 unwind label %242

35:                                               ; preds = %1
  %36 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %37 unwind label %244

37:                                               ; preds = %35
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #9
  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.end.p0(i64 32, ptr nonnull %2) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #9
  call void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.8)
  invoke void @_ZNK5DSENT5Model12getParameterERKN7LibUtil6StringE(ptr dead_on_unwind nonnull writable sret(%"class.LibUtil::String") align 8 %4, ptr noundef nonnull align 8 dereferenceable(131) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %38 unwind label %247

38:                                               ; preds = %37
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #9
  %39 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %40 unwind label %249

40:                                               ; preds = %38
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.37)
          to label %41 unwind label %251

41:                                               ; preds = %40
  %42 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %39, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %43 unwind label %253

43:                                               ; preds = %41
  %44 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %45 unwind label %253

45:                                               ; preds = %43
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  %46 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %47 unwind label %256

47:                                               ; preds = %45
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.38)
          to label %48 unwind label %258

48:                                               ; preds = %47
  %49 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %46, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %50 unwind label %260

50:                                               ; preds = %48
  %51 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %52 unwind label %260

52:                                               ; preds = %50
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  %53 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %54 unwind label %263

54:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.39)
          to label %55 unwind label %265

55:                                               ; preds = %54
  %56 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %53, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %57 unwind label %267

57:                                               ; preds = %55
  %58 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %59 unwind label %267

59:                                               ; preds = %57
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  %60 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %61 unwind label %270

61:                                               ; preds = %59
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.28)
          to label %62 unwind label %272

62:                                               ; preds = %61
  %63 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %60, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %64 unwind label %274

64:                                               ; preds = %62
  %65 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %66 unwind label %274

66:                                               ; preds = %64
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  %67 = load double, ptr @_ZN5DSENT9Constants2piE, align 8, !tbaa !5
  %68 = load double, ptr @_ZN5DSENT9Constants1kE, align 8, !tbaa !5
  %69 = load double, ptr @_ZN5DSENT9Constants1qE, align 8, !tbaa !5
  %70 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %71 unwind label %277

71:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.40)
          to label %72 unwind label %279

72:                                               ; preds = %71
  %73 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %70, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %74 unwind label %281

74:                                               ; preds = %72
  %75 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %76 unwind label %281

76:                                               ; preds = %74
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  %77 = call noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN5DSENT12RingDetector19INTEGRATINGSENSEAMPE) #9
  br i1 %77, label %78, label %386

78:                                               ; preds = %76
  %79 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %80 unwind label %284

80:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.41)
          to label %81 unwind label %286

81:                                               ; preds = %80
  %82 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %79, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %83 unwind label %288

83:                                               ; preds = %81
  %84 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %85 unwind label %288

85:                                               ; preds = %83
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  %86 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %87 unwind label %291

87:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.42)
          to label %88 unwind label %293

88:                                               ; preds = %87
  %89 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %86, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %90 unwind label %295

90:                                               ; preds = %88
  %91 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %92 unwind label %295

92:                                               ; preds = %90
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  %93 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %94 unwind label %298

94:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.43)
          to label %95 unwind label %300

95:                                               ; preds = %94
  %96 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %93, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %97 unwind label %302

97:                                               ; preds = %95
  %98 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %99 unwind label %302

99:                                               ; preds = %97
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  %100 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %101 unwind label %305

101:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.44)
          to label %102 unwind label %307

102:                                              ; preds = %101
  %103 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %100, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %104 unwind label %309

104:                                              ; preds = %102
  %105 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %106 unwind label %309

106:                                              ; preds = %104
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  %107 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %108 unwind label %312

108:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.45)
          to label %109 unwind label %314

109:                                              ; preds = %108
  %110 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %107, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %111 unwind label %316

111:                                              ; preds = %109
  %112 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %113 unwind label %316

113:                                              ; preds = %111
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  %114 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %115 unwind label %319

115:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.46)
          to label %116 unwind label %321

116:                                              ; preds = %115
  %117 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %114, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %118 unwind label %323

118:                                              ; preds = %116
  %119 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %120 unwind label %323

120:                                              ; preds = %118
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  %121 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %122 unwind label %326

122:                                              ; preds = %120
  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.47)
          to label %123 unwind label %328

123:                                              ; preds = %122
  %124 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %121, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %125 unwind label %330

125:                                              ; preds = %123
  %126 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %124)
          to label %127 unwind label %330

127:                                              ; preds = %125
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  %128 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %129 unwind label %333

129:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.48)
          to label %130 unwind label %335

130:                                              ; preds = %129
  %131 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %128, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %132 unwind label %337

132:                                              ; preds = %130
  %133 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %134 unwind label %337

134:                                              ; preds = %132
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  %135 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %136 unwind label %340

136:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.49)
          to label %137 unwind label %342

137:                                              ; preds = %136
  %138 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %135, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %139 unwind label %344

139:                                              ; preds = %137
  %140 = invoke noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32) %138)
          to label %141 unwind label %344

141:                                              ; preds = %139
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  %142 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %143 unwind label %347

143:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.29)
          to label %144 unwind label %349

144:                                              ; preds = %143
  %145 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %142, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %146 unwind label %351

146:                                              ; preds = %144
  %147 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %145)
          to label %148 unwind label %351

148:                                              ; preds = %146
  %149 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %150 unwind label %351

150:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.31)
          to label %151 unwind label %353

151:                                              ; preds = %150
  %152 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72) %149, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %153 unwind label %355

153:                                              ; preds = %151
  %154 = invoke noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32) %152)
          to label %155 unwind label %355

155:                                              ; preds = %153
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  %156 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %157 unwind label %360

157:                                              ; preds = %155
  %158 = invoke noundef ptr @_ZNK5DSENT9TechModel13getStdCellLibEv(ptr noundef nonnull align 8 dereferenceable(72) %156)
          to label %159 unwind label %360

159:                                              ; preds = %157
  %160 = invoke noundef ptr @_ZNK5DSENT10StdCellLib15getStdCellCacheEv(ptr noundef nonnull align 8 dereferenceable(40) %158)
          to label %161 unwind label %360

161:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.32)
          to label %162 unwind label %362

162:                                              ; preds = %161
  %163 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7LibUtil3MapIdE3getERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(56) %160, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %164 unwind label %364

164:                                              ; preds = %162
  %165 = load double, ptr %163, align 8, !tbaa !5
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  %166 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %167 unwind label %367

167:                                              ; preds = %164
  %168 = invoke noundef ptr @_ZNK5DSENT9TechModel13getStdCellLibEv(ptr noundef nonnull align 8 dereferenceable(72) %166)
          to label %169 unwind label %367

169:                                              ; preds = %167
  %170 = invoke noundef ptr @_ZNK5DSENT10StdCellLib15getStdCellCacheEv(ptr noundef nonnull align 8 dereferenceable(40) %168)
          to label %171 unwind label %367

171:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.33)
          to label %172 unwind label %369

172:                                              ; preds = %171
  %173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7LibUtil3MapIdE3getERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(56) %170, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %174 unwind label %371

174:                                              ; preds = %172
  %175 = load double, ptr %173, align 8, !tbaa !5
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  %176 = invoke noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %177 unwind label %374

177:                                              ; preds = %174
  %178 = invoke noundef ptr @_ZNK5DSENT9TechModel13getStdCellLibEv(ptr noundef nonnull align 8 dereferenceable(72) %176)
          to label %179 unwind label %374

179:                                              ; preds = %177
  %180 = invoke noundef ptr @_ZNK5DSENT10StdCellLib15getStdCellCacheEv(ptr noundef nonnull align 8 dereferenceable(40) %178)
          to label %181 unwind label %374

181:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.50)
          to label %182 unwind label %376

182:                                              ; preds = %181
  %183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7LibUtil3MapIdE3getERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(56) %180, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %184 unwind label %378

184:                                              ; preds = %182
  %185 = load double, ptr %183, align 8, !tbaa !5
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.22)
          to label %186 unwind label %381

186:                                              ; preds = %184
  %187 = invoke noundef ptr @_ZN5DSENT15ElectricalModel9getDriverERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %188 unwind label %383

188:                                              ; preds = %186
  invoke void @_ZN5DSENT16ElectricalDriver12setOutputResEd(ptr noundef nonnull align 8 dereferenceable(129) %187, double noundef %185)
          to label %189 unwind label %383

189:                                              ; preds = %188
  %190 = fadd double %165, %175
  %191 = fmul double %190, %185
  %192 = fmul double %147, %154
  %193 = fmul double %65, %126
  %194 = fmul double %65, %119
  %195 = fmul double %65, %112
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  %196 = fmul double %192, 1.100000e+01
  %197 = fmul double %195, 3.000000e+00
  %exp2 = call double @exp2(double %105)
  %198 = fdiv double %197, %exp2
  %199 = fmul double %194, %194
  %200 = fmul double %98, %98
  %201 = fdiv double %199, %200
  %202 = fsub double 1.000000e+00, %84
  %203 = fneg double %202
  %204 = fmul double %36, %191
  %205 = fdiv double %203, %204
  %206 = call double @exp(double noundef %205) #9
  %207 = call double @llvm.fmuladd.f64(double %65, double %206, double %133)
  %208 = fadd double %198, %207
  %209 = fdiv double %193, %98
  %210 = fadd double %209, %208
  %211 = call noundef double @_ZN5DSENT12RingDetector14calcInvNormCdfEd(ptr noundef nonnull align 8 dereferenceable(336) %0, double noundef %91)
  %212 = fadd double %44, %196
  %213 = fadd double %51, %212
  %214 = fmul double %36, %213
  %215 = fdiv double %84, %214
  %216 = fneg double %211
  %217 = fmul double %211, %216
  %218 = fmul double %140, %217
  %219 = call double @llvm.fmuladd.f64(double %218, double %140, double 1.000000e+00)
  %220 = getelementptr inbounds i8, ptr %0, i64 304
  store double %219, ptr %220, align 8, !tbaa !9
  %221 = fmul double %67, -2.000000e+00
  %222 = fmul double %221, 5.000000e-01
  %223 = fmul double %222, %211
  %224 = fmul double %211, %223
  %225 = fmul double %69, %224
  %226 = fmul double %225, 0x3FE6666666666666
  %227 = fmul double %36, %226
  %228 = getelementptr inbounds i8, ptr %0, i64 312
  store double %227, ptr %228, align 8, !tbaa !26
  %229 = fmul double %210, -2.000000e+00
  %230 = fmul double %58, %215
  %231 = fdiv double %229, %230
  %232 = getelementptr inbounds i8, ptr %0, i64 320
  store double %231, ptr %232, align 8, !tbaa !27
  %233 = fmul double %215, %215
  %234 = fdiv double 1.000000e+00, %233
  %235 = fmul double %68, %75
  %236 = fdiv double %235, %213
  %237 = fadd double %201, %236
  %238 = fmul double %237, %217
  %239 = call double @llvm.fmuladd.f64(double %210, double %210, double %238)
  %240 = fmul double %234, %239
  %241 = getelementptr inbounds i8, ptr %0, i64 328
  store double %240, ptr %241, align 8, !tbaa !28
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  ret void

242:                                              ; preds = %1
  %243 = landingpad { ptr, i32 }
          cleanup
  br label %246

244:                                              ; preds = %35
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #9
  br label %246

246:                                              ; preds = %244, %242
  %.pn = phi { ptr, i32 } [ %245, %244 ], [ %243, %242 ]
  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.end.p0(i64 32, ptr nonnull %2) #9
  br label %428

247:                                              ; preds = %37
  %248 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #9
  br label %428

249:                                              ; preds = %38
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %427

251:                                              ; preds = %40
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %255

253:                                              ; preds = %43, %41
  %254 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  br label %255

255:                                              ; preds = %253, %251
  %.pn108 = phi { ptr, i32 } [ %254, %253 ], [ %252, %251 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  br label %427

256:                                              ; preds = %45
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %427

258:                                              ; preds = %47
  %259 = landingpad { ptr, i32 }
          cleanup
  br label %262

260:                                              ; preds = %50, %48
  %261 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  br label %262

262:                                              ; preds = %260, %258
  %.pn110 = phi { ptr, i32 } [ %261, %260 ], [ %259, %258 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  br label %427

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

265:                                              ; preds = %54
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %269

267:                                              ; preds = %57, %55
  %268 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %269

269:                                              ; preds = %267, %265
  %.pn112 = phi { ptr, i32 } [ %268, %267 ], [ %266, %265 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  br label %427

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

272:                                              ; preds = %61
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %276

274:                                              ; preds = %64, %62
  %275 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  br label %276

276:                                              ; preds = %274, %272
  %.pn114 = phi { ptr, i32 } [ %275, %274 ], [ %273, %272 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  br label %427

277:                                              ; preds = %66
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %427

279:                                              ; preds = %71
  %280 = landingpad { ptr, i32 }
          cleanup
  br label %283

281:                                              ; preds = %74, %72
  %282 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  br label %283

283:                                              ; preds = %281, %279
  %.pn116 = phi { ptr, i32 } [ %282, %281 ], [ %280, %279 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  br label %427

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

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

288:                                              ; preds = %83, %81
  %289 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %290

290:                                              ; preds = %288, %286
  %.pn129 = phi { ptr, i32 } [ %289, %288 ], [ %287, %286 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  br label %427

291:                                              ; preds = %85
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %427

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

295:                                              ; preds = %90, %88
  %296 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %297

297:                                              ; preds = %295, %293
  %.pn131 = phi { ptr, i32 } [ %296, %295 ], [ %294, %293 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  br label %427

298:                                              ; preds = %92
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %427

300:                                              ; preds = %94
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %304

302:                                              ; preds = %97, %95
  %303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br label %304

304:                                              ; preds = %302, %300
  %.pn133 = phi { ptr, i32 } [ %303, %302 ], [ %301, %300 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  br label %427

305:                                              ; preds = %99
  %306 = landingpad { ptr, i32 }
          cleanup
  br label %427

307:                                              ; preds = %101
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %311

309:                                              ; preds = %104, %102
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %311

311:                                              ; preds = %309, %307
  %.pn135 = phi { ptr, i32 } [ %310, %309 ], [ %308, %307 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  br label %427

312:                                              ; preds = %106
  %313 = landingpad { ptr, i32 }
          cleanup
  br label %427

314:                                              ; preds = %108
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %318

316:                                              ; preds = %111, %109
  %317 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %318

318:                                              ; preds = %316, %314
  %.pn137 = phi { ptr, i32 } [ %317, %316 ], [ %315, %314 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  br label %427

319:                                              ; preds = %113
  %320 = landingpad { ptr, i32 }
          cleanup
  br label %427

321:                                              ; preds = %115
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %325

323:                                              ; preds = %118, %116
  %324 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %325

325:                                              ; preds = %323, %321
  %.pn139 = phi { ptr, i32 } [ %324, %323 ], [ %322, %321 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  br label %427

326:                                              ; preds = %120
  %327 = landingpad { ptr, i32 }
          cleanup
  br label %427

328:                                              ; preds = %122
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %332

330:                                              ; preds = %125, %123
  %331 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %332

332:                                              ; preds = %330, %328
  %.pn141 = phi { ptr, i32 } [ %331, %330 ], [ %329, %328 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  br label %427

333:                                              ; preds = %127
  %334 = landingpad { ptr, i32 }
          cleanup
  br label %427

335:                                              ; preds = %129
  %336 = landingpad { ptr, i32 }
          cleanup
  br label %339

337:                                              ; preds = %132, %130
  %338 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %339

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

340:                                              ; preds = %134
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %427

342:                                              ; preds = %136
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %346

344:                                              ; preds = %139, %137
  %345 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %346

346:                                              ; preds = %344, %342
  %.pn145 = phi { ptr, i32 } [ %345, %344 ], [ %343, %342 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %427

347:                                              ; preds = %141
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %427

349:                                              ; preds = %143
  %350 = landingpad { ptr, i32 }
          cleanup
  br label %359

351:                                              ; preds = %148, %146, %144
  %352 = landingpad { ptr, i32 }
          cleanup
  br label %358

353:                                              ; preds = %150
  %354 = landingpad { ptr, i32 }
          cleanup
  br label %357

355:                                              ; preds = %153, %151
  %356 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %357

357:                                              ; preds = %355, %353
  %.pn147 = phi { ptr, i32 } [ %356, %355 ], [ %354, %353 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  br label %358

358:                                              ; preds = %357, %351
  %.pn147.pn = phi { ptr, i32 } [ %.pn147, %357 ], [ %352, %351 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %359

359:                                              ; preds = %358, %349
  %.pn147.pn.pn = phi { ptr, i32 } [ %.pn147.pn, %358 ], [ %350, %349 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  br label %427

360:                                              ; preds = %159, %157, %155
  %361 = landingpad { ptr, i32 }
          cleanup
  br label %427

362:                                              ; preds = %161
  %363 = landingpad { ptr, i32 }
          cleanup
  br label %366

364:                                              ; preds = %162
  %365 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %366

366:                                              ; preds = %364, %362
  %.pn151 = phi { ptr, i32 } [ %365, %364 ], [ %363, %362 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br label %427

367:                                              ; preds = %169, %167, %164
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %427

369:                                              ; preds = %171
  %370 = landingpad { ptr, i32 }
          cleanup
  br label %373

371:                                              ; preds = %172
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %373

373:                                              ; preds = %371, %369
  %.pn153 = phi { ptr, i32 } [ %372, %371 ], [ %370, %369 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  br label %427

374:                                              ; preds = %179, %177, %174
  %375 = landingpad { ptr, i32 }
          cleanup
  br label %427

376:                                              ; preds = %181
  %377 = landingpad { ptr, i32 }
          cleanup
  br label %380

378:                                              ; preds = %182
  %379 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %380

380:                                              ; preds = %378, %376
  %.pn155 = phi { ptr, i32 } [ %379, %378 ], [ %377, %376 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  br label %427

381:                                              ; preds = %184
  %382 = landingpad { ptr, i32 }
          cleanup
  br label %385

383:                                              ; preds = %188, %186
  %384 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %385

385:                                              ; preds = %383, %381
  %.pn157 = phi { ptr, i32 } [ %384, %383 ], [ %382, %381 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  br label %427

386:                                              ; preds = %76
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  invoke void @_ZN7LibUtil6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.12)
          to label %387 unwind label %399

387:                                              ; preds = %386
  invoke void (ptr, ptr, ...) @_ZN7LibUtil6String6formatERKS0_z(ptr dead_on_unwind nonnull writable sret(%"class.LibUtil::String") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.13, i32 noundef 288)
          to label %388 unwind label %401

388:                                              ; preds = %387
  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
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  %389 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT5Model15getInstanceNameEv(ptr noundef nonnull align 8 dereferenceable(131) %0)
          to label %390 unwind label %403

390:                                              ; preds = %388
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %389)
          to label %391 unwind label %403

391:                                              ; preds = %390
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.15)
          to label %392 unwind label %405

392:                                              ; preds = %391
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %393 unwind label %407

393:                                              ; preds = %392
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.16)
          to label %394 unwind label %409

394:                                              ; preds = %393
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %395 unwind label %411

395:                                              ; preds = %394
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %396 unwind label %413

396:                                              ; preds = %395
  invoke void @_ZN7LibUtil6StringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %397 unwind label %415

397:                                              ; preds = %396
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  %398 = call ptr @__cxa_allocate_exception(i64 40) #9
  call void @_ZN7LibUtil9ExceptionC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(40) %398, ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  invoke void @__cxa_throw(ptr nonnull %398, ptr nonnull @_ZTIN7LibUtil9ExceptionE, ptr nonnull @_ZN7LibUtil9ExceptionD1Ev) #10
          to label %429 unwind label %425

399:                                              ; preds = %386
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %424

401:                                              ; preds = %387
  %402 = landingpad { ptr, i32 }
          cleanup
  br label %423

403:                                              ; preds = %390, %388
  %404 = landingpad { ptr, i32 }
          cleanup
  br label %422

405:                                              ; preds = %391
  %406 = landingpad { ptr, i32 }
          cleanup
  br label %421

407:                                              ; preds = %392
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %420

409:                                              ; preds = %393
  %410 = landingpad { ptr, i32 }
          cleanup
  br label %419

411:                                              ; preds = %394
  %412 = landingpad { ptr, i32 }
          cleanup
  br label %418

413:                                              ; preds = %395
  %414 = landingpad { ptr, i32 }
          cleanup
  br label %417

415:                                              ; preds = %396
  %416 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %417

417:                                              ; preds = %415, %413
  %.pn118 = phi { ptr, i32 } [ %416, %415 ], [ %414, %413 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %418

418:                                              ; preds = %417, %411
  %.pn118.pn = phi { ptr, i32 } [ %.pn118, %417 ], [ %412, %411 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %419

419:                                              ; preds = %418, %409
  %.pn118.pn.pn = phi { ptr, i32 } [ %.pn118.pn, %418 ], [ %410, %409 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %420

420:                                              ; preds = %419, %407
  %.pn118.pn.pn.pn = phi { ptr, i32 } [ %.pn118.pn.pn, %419 ], [ %408, %407 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %421

421:                                              ; preds = %420, %405
  %.pn118.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn118.pn.pn.pn, %420 ], [ %406, %405 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %422

422:                                              ; preds = %421, %403
  %.pn118.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn118.pn.pn.pn.pn, %421 ], [ %404, %403 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %423

423:                                              ; preds = %422, %401
  %.pn118.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn118.pn.pn.pn.pn.pn, %422 ], [ %402, %401 ]
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %424

424:                                              ; preds = %423, %399
  %.pn118.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn118.pn.pn.pn.pn.pn.pn, %423 ], [ %400, %399 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %427

425:                                              ; preds = %397
  %426 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7LibUtil6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  br label %427

427:                                              ; preds = %256, %262, %270, %276, %424, %425, %284, %290, %298, %304, %312, %318, %326, %332, %340, %346, %360, %366, %374, %380, %385, %373, %367, %359, %347, %339, %333, %325, %319, %311, %305, %297, %291, %283, %277, %269, %263, %255, %249
  %.pn157.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn108, %255 ], [ %250, %249 ], [ %.pn110, %262 ], [ %257, %256 ], [ %.pn112, %269 ], [ %264, %263 ], [ %.pn114, %276 ], [ %271, %270 ], [ %.pn116, %283 ], [ %278, %277 ], [ %.pn129, %290 ], [ %285, %284 ], [ %.pn131, %297 ], [ %292, %291 ], [ %.pn133, %304 ], [ %299, %298 ], [ %.pn135, %311 ], [ %306, %305 ], [ %.pn137, %318 ], [ %313, %312 ], [ %.pn139, %325 ], [ %320, %319 ], [ %.pn141, %332 ], [ %327, %326 ], [ %.pn143, %339 ], [ %334, %333 ], [ %.pn145, %346 ], [ %341, %340 ], [ %.pn147.pn.pn, %359 ], [ %348, %347 ], [ %.pn151, %366 ], [ %361, %360 ], [ %.pn153, %373 ], [ %368, %367 ], [ %.pn157, %385 ], [ %.pn155, %380 ], [ %375, %374 ], [ %426, %425 ], [ %.pn118.pn.pn.pn.pn.pn.pn.pn, %424 ]
  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 %428

428:                                              ; preds = %247, %427, %246
  %.pn157.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn, %246 ], [ %.pn157.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %427 ], [ %248, %247 ]
  resume { ptr, i32 } %.pn157.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn

429:                                              ; preds = %397
  unreachable
}

declare noundef ptr @_ZNK5DSENT5Model12getTechModelEv(ptr noundef nonnull align 8 dereferenceable(131)) local_unnamed_addr #0

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5DSENT9TechModel3getERKN7LibUtil6StringE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

declare noundef double @_ZNK7LibUtil6StringcvdEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

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

declare noundef double @_ZNK7LibUtil6String8toDoubleEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

declare noundef ptr @_ZNK5DSENT9TechModel13getStdCellLibEv(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #0

declare noundef ptr @_ZNK5DSENT10StdCellLib15getStdCellCacheEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7LibUtil3MapIdE3getERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

declare void @_ZN5DSENT16ElectricalDriver12setOutputResEd(ptr noundef nonnull align 8 dereferenceable(129), double noundef) local_unnamed_addr #0

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN5DSENT12RingDetector14calcInvNormCdfEd(ptr noundef nonnull align 8 dereferenceable(336), double noundef) local_unnamed_addr #6 align 2

declare double @exp2(double) local_unnamed_addr

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = !{!10, !6, i64 304}
!10 = !{!"_ZTSN5DSENT12RingDetectorE", !11, i64 0, !25, i64 296, !6, i64 304, !6, i64 312, !6, i64 320, !6, i64 328}
!11 = !{!"_ZTSN5DSENT12OpticalModelE", !12, i64 0, !17, i64 240, !17, i64 248, !17, i64 256, !17, i64 264, !17, i64 272, !17, i64 280, !17, i64 288}
!12 = !{!"_ZTSN5DSENT15ElectricalModelE", !13, i64 0, !20, i64 136, !24, i64 160, !17, i64 168, !17, i64 176, !17, i64 184, !17, i64 192, !17, i64 200, !17, i64 208, !17, i64 216, !17, i64 224, !17, i64 232}
!13 = !{!"_ZTSN5DSENT5ModelE", !14, i64 8, !19, i64 40, !17, i64 48, !17, i64 56, !17, i64 64, !17, i64 72, !17, i64 80, !17, i64 88, !17, i64 96, !17, i64 104, !17, i64 112, !17, i64 120, !19, i64 128, !19, i64 129, !19, i64 130}
!14 = !{!"_ZTSN7LibUtil6StringE", !15, i64 0}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !16, i64 0, !18, i64 8, !7, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !17, i64 0}
!17 = !{!"any pointer", !7, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"_ZTSSt6vectorIdSaIdEE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!24 = !{!"int", !7, i64 0}
!25 = !{!"_ZTSN5DSENT15OpticalReceiverE"}
!26 = !{!10, !6, i64 312}
!27 = !{!10, !6, i64 320}
!28 = !{!10, !6, i64 328}


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