; LLVM IR from stonne-simulator/omega :: omega-code/stonne/src/STONNEModel.ll (ZN6StonneC2E6Config)

; 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.Config = type { i32, %class.DSNetworkConfig, %class.DSwitchConfig, %class.MSNetworkConfig, %class.MSwitchConfig, %class.ASNetworkConfig, %class.ASwitchConfig, %class.LookUpTableConfig, %class.SDMemoryConfig }
%class.DSNetworkConfig = type { i32 }
%class.DSwitchConfig = type { i32, i32, i32, i32 }
%class.MSNetworkConfig = type { i32, i32, i32, i32 }
%class.MSwitchConfig = type { i32, i32, i32, i32, i32, i32 }
%class.ASNetworkConfig = type { i32, i32 }
%class.ASwitchConfig = type { i32, i32, i32, i32, i32, i32 }
%class.LookUpTableConfig = type { i32, i32 }
%class.SDMemoryConfig = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%"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.std::allocator.0" = type { i8 }
%class.Stonne = type <{ %class.Config, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, [6 x i8], i64, i64, i64, i64, i64, i32, [4 x i8] }>

@.str = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [94 x i8], align 1
@__PRETTY_FUNCTION__._ZN6StonneC2E6Config = external hidden unnamed_addr constant [23 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [15 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6StonneC2E6Config(ptr noundef nonnull align 8 dereferenceable(316) %0, ptr noundef byval(%class.Config) align 8 %1) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator.0", align 1
  %8 = alloca %class.Config, align 8
  %9 = alloca i1, align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.0", align 1
  %12 = alloca %class.Config, align 8
  %13 = alloca i1, align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.0", align 1
  %16 = alloca %class.Config, align 8
  %17 = alloca i1, align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.0", align 1
  %20 = alloca %class.Config, align 8
  %21 = alloca i1, align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.0", align 1
  %24 = alloca %class.Config, align 8
  %25 = alloca i1, align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator.0", align 1
  %28 = alloca %class.Config, align 8
  %29 = alloca i1, align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.0", align 1
  %32 = alloca %class.Config, align 8
  %33 = alloca i1, align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator.0", align 1
  %36 = alloca %class.Config, align 8
  %37 = alloca i1, align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator.0", align 1
  %40 = alloca %class.Config, align 8
  %41 = alloca i1, align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator.0", align 1
  %44 = alloca %class.Config, align 8
  %45 = alloca i1, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator.0", align 1
  %48 = alloca %class.Config, align 8
  %49 = alloca i1, align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator.0", align 1
  %52 = alloca %class.Config, align 8
  %53 = alloca i1, align 1
  store ptr %0, ptr %3, align 8, !tbaa !5
  %54 = load ptr, ptr %3, align 8
  %55 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 0
  call void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %55)
  %56 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %56, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  %57 = getelementptr inbounds %class.Config, ptr %1, i32 0, i32 3
  %58 = getelementptr inbounds %class.MSNetworkConfig, ptr %57, i32 0, i32 1
  %59 = load i32, ptr %58, align 4, !tbaa !20
  %60 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 1
  store i32 %59, ptr %60, align 8, !tbaa !30
  %61 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 15
  store i8 0, ptr %61, align 8, !tbaa !34
  %62 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 16
  store i8 0, ptr %62, align 1, !tbaa !35
  %63 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #8
  %64 = getelementptr inbounds %class.Config, ptr %1, i32 0, i32 8
  %65 = getelementptr inbounds %class.SDMemoryConfig, ptr %64, i32 0, i32 4
  %66 = load i32, ptr %65, align 8, !tbaa !36
  invoke void @_ZN10ConnectionC1Ei(ptr noundef nonnull align 8 dereferenceable(64) %63, i32 noundef %66)
          to label %67 unwind label %78

67:                                               ; preds = %2
  %68 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 9
  store ptr %63, ptr %68, align 8, !tbaa !37
  %69 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #8
  %70 = getelementptr inbounds %class.Config, ptr %1, i32 0, i32 7
  %71 = getelementptr inbounds %class.LookUpTableConfig, ptr %70, i32 0, i32 1
  %72 = load i32, ptr %71, align 4, !tbaa !38
  invoke void @_ZN10ConnectionC1Ei(ptr noundef nonnull align 8 dereferenceable(64) %69, i32 noundef %72)
          to label %73 unwind label %82

73:                                               ; preds = %67
  %74 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 10
  store ptr %69, ptr %74, align 8, !tbaa !39
  %75 = getelementptr inbounds %class.Config, ptr %1, i32 0, i32 3
  %76 = getelementptr inbounds %class.MSNetworkConfig, ptr %75, i32 0, i32 0
  %77 = load i32, ptr %76, align 8, !tbaa !40
  switch i32 %77, label %120 [
    i32 0, label %86
    i32 1, label %103
  ]

78:                                               ; preds = %2
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %4, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %63, i64 noundef 64) #9
  br label %341

82:                                               ; preds = %67
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %4, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %69, i64 noundef 64) #9
  br label %341

86:                                               ; preds = %73
  %87 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 160) #8
  store i1 true, ptr %9, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %88 unwind label %91

88:                                               ; preds = %86
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %8, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  invoke void @_ZN9MSNetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(156) %87, i32 noundef 2, ptr noundef %6, ptr noundef byval(%class.Config) align 8 %8)
          to label %89 unwind label %95

89:                                               ; preds = %88
  store i1 false, ptr %9, align 1
  %90 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 4
  store ptr %87, ptr %90, align 8, !tbaa !41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #10
  br label %121

91:                                               ; preds = %86
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %4, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %5, align 4
  br label %99

95:                                               ; preds = %88
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %4, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  br label %99

99:                                               ; preds = %95, %91
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #10
  %100 = load i1, ptr %9, align 1
  br i1 %100, label %101, label %102

101:                                              ; preds = %99
  call void @_ZdlPvm(ptr noundef %87, i64 noundef 160) #9
  br label %102

102:                                              ; preds = %101, %99
  br label %341

103:                                              ; preds = %73
  %104 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 264) #8
  store i1 true, ptr %13, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %105 unwind label %108

105:                                              ; preds = %103
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %12, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  invoke void @_ZN8OSMeshMNC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(260) %104, i32 noundef 2, ptr noundef %10, ptr noundef byval(%class.Config) align 8 %12)
          to label %106 unwind label %112

106:                                              ; preds = %105
  store i1 false, ptr %13, align 1
  %107 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 4
  store ptr %104, ptr %107, align 8, !tbaa !41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  br label %121

108:                                              ; preds = %103
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %4, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %5, align 4
  br label %116

112:                                              ; preds = %105
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %4, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  br label %116

116:                                              ; preds = %112, %108
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  %117 = load i1, ptr %13, align 1
  br i1 %117, label %118, label %119

118:                                              ; preds = %116
  call void @_ZdlPvm(ptr noundef %104, i64 noundef 264) #9
  br label %119

119:                                              ; preds = %118, %116
  br label %341

120:                                              ; preds = %73
  call void @__assert_fail(ptr noundef @.str.2, ptr noundef @.str.3, i32 noundef 31, ptr noundef @__PRETTY_FUNCTION__._ZN6StonneC2E6Config) #11
  unreachable

121:                                              ; preds = %106, %89
  %122 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 112) #8
  store i1 true, ptr %17, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %123 unwind label %129

123:                                              ; preds = %121
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  invoke void @_ZN12DSNetworkTopC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(112) %122, i32 noundef 1, ptr noundef %14, ptr noundef byval(%class.Config) align 8 %16)
          to label %124 unwind label %133

124:                                              ; preds = %123
  store i1 false, ptr %17, align 1
  %125 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 3
  store ptr %122, ptr %125, align 8, !tbaa !42
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #10
  %126 = getelementptr inbounds %class.Config, ptr %1, i32 0, i32 5
  %127 = getelementptr inbounds %class.ASNetworkConfig, ptr %126, i32 0, i32 0
  %128 = load i32, ptr %127, align 8, !tbaa !43
  switch i32 %128, label %198 [
    i32 0, label %141
    i32 1, label %160
    i32 2, label %179
  ]

129:                                              ; preds = %121
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %4, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %5, align 4
  br label %137

133:                                              ; preds = %123
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %4, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  br label %137

137:                                              ; preds = %133, %129
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #10
  %138 = load i1, ptr %17, align 1
  br i1 %138, label %139, label %140

139:                                              ; preds = %137
  call void @_ZdlPvm(ptr noundef %122, i64 noundef 112) #9
  br label %140

140:                                              ; preds = %139, %137
  br label %341

141:                                              ; preds = %124
  %142 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 464) #8
  store i1 true, ptr %21, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %143 unwind label %148

143:                                              ; preds = %141
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %20, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  %144 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 9
  %145 = load ptr, ptr %144, align 8, !tbaa !37
  invoke void @_ZN9ASNetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(460) %142, i32 noundef 3, ptr noundef %18, ptr noundef byval(%class.Config) align 8 %20, ptr noundef %145)
          to label %146 unwind label %152

146:                                              ; preds = %143
  store i1 false, ptr %21, align 1
  %147 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 5
  store ptr %142, ptr %147, align 8, !tbaa !44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #10
  br label %199

148:                                              ; preds = %141
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %4, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %5, align 4
  br label %156

152:                                              ; preds = %143
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %4, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  br label %156

156:                                              ; preds = %152, %148
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #10
  %157 = load i1, ptr %21, align 1
  br i1 %157, label %158, label %159

158:                                              ; preds = %156
  call void @_ZdlPvm(ptr noundef %142, i64 noundef 464) #9
  br label %159

159:                                              ; preds = %158, %156
  br label %341

160:                                              ; preds = %124
  %161 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 312) #8
  store i1 true, ptr %25, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %162 unwind label %167

162:                                              ; preds = %160
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  %163 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 9
  %164 = load ptr, ptr %163, align 8, !tbaa !37
  invoke void @_ZN9FENetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(312) %161, i32 noundef 3, ptr noundef %22, ptr noundef byval(%class.Config) align 8 %24, ptr noundef %164)
          to label %165 unwind label %171

165:                                              ; preds = %162
  store i1 false, ptr %25, align 1
  %166 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 5
  store ptr %161, ptr %166, align 8, !tbaa !44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  br label %199

167:                                              ; preds = %160
  %168 = landingpad { ptr, i32 }
          cleanup
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %4, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %5, align 4
  br label %175

171:                                              ; preds = %162
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %4, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %175

175:                                              ; preds = %171, %167
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  %176 = load i1, ptr %25, align 1
  br i1 %176, label %177, label %178

177:                                              ; preds = %175
  call void @_ZdlPvm(ptr noundef %161, i64 noundef 312) #9
  br label %178

178:                                              ; preds = %177, %175
  br label %341

179:                                              ; preds = %124
  %180 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 288) #8
  store i1 true, ptr %29, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %181 unwind label %186

181:                                              ; preds = %179
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %28, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  %182 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 9
  %183 = load ptr, ptr %182, align 8, !tbaa !37
  invoke void @_ZN10TemporalRNC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(284) %180, i32 noundef 3, ptr noundef %26, ptr noundef byval(%class.Config) align 8 %28, ptr noundef %183)
          to label %184 unwind label %190

184:                                              ; preds = %181
  store i1 false, ptr %29, align 1
  %185 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 5
  store ptr %180, ptr %185, align 8, !tbaa !44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #10
  br label %199

186:                                              ; preds = %179
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %4, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %5, align 4
  br label %194

190:                                              ; preds = %181
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %4, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  br label %194

194:                                              ; preds = %190, %186
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #10
  %195 = load i1, ptr %29, align 1
  br i1 %195, label %196, label %197

196:                                              ; preds = %194
  call void @_ZdlPvm(ptr noundef %180, i64 noundef 288) #9
  br label %197

197:                                              ; preds = %196, %194
  br label %341

198:                                              ; preds = %124
  call void @__assert_fail(ptr noundef @.str.2, ptr noundef @.str.3, i32 noundef 48, ptr noundef @__PRETTY_FUNCTION__._ZN6StonneC2E6Config) #11
  unreachable

199:                                              ; preds = %184, %165, %146
  %200 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 88) #8
  store i1 true, ptr %33, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %201 unwind label %215

201:                                              ; preds = %199
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %32, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  invoke void @_ZN3BusC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(88) %200, i32 noundef 4, ptr noundef %30, ptr noundef byval(%class.Config) align 8 %32)
          to label %202 unwind label %219

202:                                              ; preds = %201
  store i1 false, ptr %33, align 1
  %203 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 8
  store ptr %200, ptr %203, align 8, !tbaa !45
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #10
  %204 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #8
  store i1 true, ptr %37, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %205 unwind label %227

205:                                              ; preds = %202
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %36, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  %206 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 9
  %207 = load ptr, ptr %206, align 8, !tbaa !37
  %208 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 10
  %209 = load ptr, ptr %208, align 8, !tbaa !39
  invoke void @_ZN11LookupTableC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10ConnectionS8_(ptr noundef nonnull align 8 dereferenceable(72) %204, i32 noundef 5, ptr noundef %34, ptr noundef byval(%class.Config) align 8 %36, ptr noundef %207, ptr noundef %209)
          to label %210 unwind label %231

210:                                              ; preds = %205
  store i1 false, ptr %37, align 1
  %211 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 6
  store ptr %204, ptr %211, align 8, !tbaa !46
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  %212 = getelementptr inbounds %class.Config, ptr %1, i32 0, i32 8
  %213 = getelementptr inbounds %class.SDMemoryConfig, ptr %212, i32 0, i32 0
  %214 = load i32, ptr %213, align 8, !tbaa !47
  switch i32 %214, label %315 [
    i32 1, label %239
    i32 0, label %258
    i32 2, label %277
    i32 3, label %296
  ]

215:                                              ; preds = %199
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %4, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %5, align 4
  br label %223

219:                                              ; preds = %201
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %4, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  br label %223

223:                                              ; preds = %219, %215
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #10
  %224 = load i1, ptr %33, align 1
  br i1 %224, label %225, label %226

225:                                              ; preds = %223
  call void @_ZdlPvm(ptr noundef %200, i64 noundef 88) #9
  br label %226

226:                                              ; preds = %225, %223
  br label %341

227:                                              ; preds = %202
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %4, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %5, align 4
  br label %235

231:                                              ; preds = %205
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %4, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  br label %235

235:                                              ; preds = %231, %227
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  %236 = load i1, ptr %37, align 1
  br i1 %236, label %237, label %238

237:                                              ; preds = %235
  call void @_ZdlPvm(ptr noundef %204, i64 noundef 72) #9
  br label %238

238:                                              ; preds = %237, %235
  br label %341

239:                                              ; preds = %210
  %240 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 592) #8
  store i1 true, ptr %41, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %241 unwind label %246

241:                                              ; preds = %239
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %40, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  %242 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 10
  %243 = load ptr, ptr %242, align 8, !tbaa !39
  invoke void @_ZN14SparseSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(592) %240, i32 noundef 0, ptr noundef %38, ptr noundef byval(%class.Config) align 8 %40, ptr noundef %243)
          to label %244 unwind label %250

244:                                              ; preds = %241
  store i1 false, ptr %41, align 1
  %245 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 7
  store ptr %240, ptr %245, align 8, !tbaa !48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #10
  br label %316

246:                                              ; preds = %239
  %247 = landingpad { ptr, i32 }
          cleanup
  %248 = extractvalue { ptr, i32 } %247, 0
  store ptr %248, ptr %4, align 8
  %249 = extractvalue { ptr, i32 } %247, 1
  store i32 %249, ptr %5, align 4
  br label %254

250:                                              ; preds = %241
  %251 = landingpad { ptr, i32 }
          cleanup
  %252 = extractvalue { ptr, i32 } %251, 0
  store ptr %252, ptr %4, align 8
  %253 = extractvalue { ptr, i32 } %251, 1
  store i32 %253, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  br label %254

254:                                              ; preds = %250, %246
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #10
  %255 = load i1, ptr %41, align 1
  br i1 %255, label %256, label %257

256:                                              ; preds = %254
  call void @_ZdlPvm(ptr noundef %240, i64 noundef 592) #9
  br label %257

257:                                              ; preds = %256, %254
  br label %341

258:                                              ; preds = %210
  %259 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 568) #8
  store i1 true, ptr %45, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %260 unwind label %265

260:                                              ; preds = %258
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %44, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  %261 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 10
  %262 = load ptr, ptr %261, align 8, !tbaa !39
  invoke void @_ZN8SDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(568) %259, i32 noundef 0, ptr noundef %42, ptr noundef byval(%class.Config) align 8 %44, ptr noundef %262)
          to label %263 unwind label %269

263:                                              ; preds = %260
  store i1 false, ptr %45, align 1
  %264 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 7
  store ptr %259, ptr %264, align 8, !tbaa !48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #10
  br label %316

265:                                              ; preds = %258
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %4, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %5, align 4
  br label %273

269:                                              ; preds = %260
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %4, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  br label %273

273:                                              ; preds = %269, %265
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #10
  %274 = load i1, ptr %45, align 1
  br i1 %274, label %275, label %276

275:                                              ; preds = %273
  call void @_ZdlPvm(ptr noundef %259, i64 noundef 568) #9
  br label %276

276:                                              ; preds = %275, %273
  br label %341

277:                                              ; preds = %210
  %278 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 672) #8
  store i1 true, ptr %49, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %279 unwind label %284

279:                                              ; preds = %277
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %48, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  %280 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 10
  %281 = load ptr, ptr %280, align 8, !tbaa !39
  invoke void @_ZN19SparseDenseSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(672) %278, i32 noundef 0, ptr noundef %46, ptr noundef byval(%class.Config) align 8 %48, ptr noundef %281)
          to label %282 unwind label %288

282:                                              ; preds = %279
  store i1 false, ptr %49, align 1
  %283 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 7
  store ptr %278, ptr %283, align 8, !tbaa !48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #10
  br label %316

284:                                              ; preds = %277
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %4, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %5, align 4
  br label %292

288:                                              ; preds = %279
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %4, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  br label %292

292:                                              ; preds = %288, %284
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #10
  %293 = load i1, ptr %49, align 1
  br i1 %293, label %294, label %295

294:                                              ; preds = %292
  call void @_ZdlPvm(ptr noundef %278, i64 noundef 672) #9
  br label %295

295:                                              ; preds = %294, %292
  br label %341

296:                                              ; preds = %210
  %297 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 552) #8
  store i1 true, ptr %53, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %298 unwind label %303

298:                                              ; preds = %296
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %52, ptr align 8 %1, i64 160, i1 false), !tbaa.struct !9
  %299 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 10
  %300 = load ptr, ptr %299, align 8, !tbaa !39
  invoke void @_ZN14OSMeshSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(552) %297, i32 noundef 0, ptr noundef %50, ptr noundef byval(%class.Config) align 8 %52, ptr noundef %300)
          to label %301 unwind label %307

301:                                              ; preds = %298
  store i1 false, ptr %53, align 1
  %302 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 7
  store ptr %297, ptr %302, align 8, !tbaa !48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #10
  br label %316

303:                                              ; preds = %296
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %4, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %5, align 4
  br label %311

307:                                              ; preds = %298
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %4, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  br label %311

311:                                              ; preds = %307, %303
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #10
  %312 = load i1, ptr %53, align 1
  br i1 %312, label %313, label %314

313:                                              ; preds = %311
  call void @_ZdlPvm(ptr noundef %297, i64 noundef 552) #9
  br label %314

314:                                              ; preds = %313, %311
  br label %341

315:                                              ; preds = %210
  call void @__assert_fail(ptr noundef @.str.2, ptr noundef @.str.3, i32 noundef 69, ptr noundef @__PRETTY_FUNCTION__._ZN6StonneC2E6Config) #11
  unreachable

316:                                              ; preds = %301, %282, %263, %244
  %317 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 7
  %318 = load ptr, ptr %317, align 8, !tbaa !48
  %319 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 5
  %320 = load ptr, ptr %319, align 8, !tbaa !44
  %321 = load ptr, ptr %318, align 8, !tbaa !49
  %322 = getelementptr inbounds ptr, ptr %321, i64 9
  %323 = load ptr, ptr %322, align 8
  call void %323(ptr noundef nonnull align 8 dereferenceable(48) %318, ptr noundef %320)
  %324 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 7
  %325 = load ptr, ptr %324, align 8, !tbaa !48
  %326 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 4
  %327 = load ptr, ptr %326, align 8, !tbaa !41
  %328 = load ptr, ptr %325, align 8, !tbaa !49
  %329 = getelementptr inbounds ptr, ptr %328, i64 10
  %330 = load ptr, ptr %329, align 8
  call void %330(ptr noundef nonnull align 8 dereferenceable(48) %325, ptr noundef %327)
  %331 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 1
  %332 = load i32, ptr %331, align 8, !tbaa !30
  %333 = sub i32 %332, 1
  %334 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 2
  store i32 %333, ptr %334, align 4, !tbaa !51
  call void @_ZN6Stonne19connectMemoryandDSNEv(ptr noundef nonnull align 8 dereferenceable(316) %54)
  call void @_ZN6Stonne16connectMSNandDSNEv(ptr noundef nonnull align 8 dereferenceable(316) %54)
  call void @_ZN6Stonne16connectMSNandASNEv(ptr noundef nonnull align 8 dereferenceable(316) %54)
  call void @_ZN6Stonne16connectASNandBusEv(ptr noundef nonnull align 8 dereferenceable(316) %54)
  call void @_ZN6Stonne19connectBusandMemoryEv(ptr noundef nonnull align 8 dereferenceable(316) %54)
  %335 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 18
  store i64 0, ptr %335, align 8, !tbaa !52
  %336 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 19
  store i64 0, ptr %336, align 8, !tbaa !53
  %337 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 20
  store i64 0, ptr %337, align 8, !tbaa !54
  %338 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 21
  store i64 0, ptr %338, align 8, !tbaa !55
  %339 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 22
  store i64 0, ptr %339, align 8, !tbaa !56
  %340 = getelementptr inbounds %class.Stonne, ptr %54, i32 0, i32 23
  store i32 0, ptr %340, align 8, !tbaa !57
  ret void

341:                                              ; preds = %314, %295, %276, %257, %238, %226, %197, %178, %159, %140, %119, %102, %82, %78
  %342 = load ptr, ptr %4, align 8
  %343 = load i32, ptr %5, align 4
  %344 = insertvalue { ptr, i32 } poison, ptr %342, 0
  %345 = insertvalue { ptr, i32 } %344, i32 %343, 1
  resume { ptr, i32 } %345
}

declare void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160)) unnamed_addr #1

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #3

declare void @_ZN10ConnectionC1Ei(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef) unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #6 align 2

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

declare void @_ZN9MSNetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(156), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8) unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #6 align 2

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

declare void @_ZN8OSMeshMNC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(260), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8) unnamed_addr #1

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #7

declare void @_ZN12DSNetworkTopC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8) unnamed_addr #1

declare void @_ZN9ASNetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(460), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN9FENetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(312), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN10TemporalRNC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(284), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN3BusC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8) unnamed_addr #1

declare void @_ZN11LookupTableC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10ConnectionS8_(ptr noundef nonnull align 8 dereferenceable(72), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef, ptr noundef) unnamed_addr #1

declare void @_ZN14SparseSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(592), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN8SDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(568), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN19SparseDenseSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(672), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN14OSMeshSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(552), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{i64 0, i64 4, !10, i64 4, i64 4, !10, i64 8, i64 4, !10, i64 12, i64 4, !10, i64 16, i64 4, !10, i64 20, i64 4, !10, i64 24, i64 4, !12, i64 28, i64 4, !10, i64 32, i64 4, !10, i64 36, i64 4, !10, i64 40, i64 4, !10, i64 44, i64 4, !10, i64 48, i64 4, !10, i64 52, i64 4, !10, i64 56, i64 4, !10, i64 60, i64 4, !10, i64 64, i64 4, !14, i64 68, i64 4, !10, i64 72, i64 4, !10, i64 76, i64 4, !10, i64 80, i64 4, !10, i64 84, i64 4, !10, i64 88, i64 4, !10, i64 92, i64 4, !10, i64 96, i64 4, !10, i64 100, i64 4, !10, i64 104, i64 4, !16, i64 108, i64 4, !10, i64 112, i64 4, !10, i64 116, i64 4, !10, i64 120, i64 4, !10, i64 124, i64 4, !10, i64 128, i64 4, !10, i64 132, i64 4, !18, i64 136, i64 4, !10, i64 140, i64 4, !10, i64 144, i64 4, !10, i64 148, i64 4, !10, i64 152, i64 4, !10, i64 156, i64 4, !10}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"_ZTS19MultiplierNetwork_t", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"_ZTS15ReduceNetwork_t", !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"_ZTS18MemoryController_t", !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"_ZTS17MemoryHierarchy_t", !7, i64 0}
!20 = !{!21, !11, i64 28}
!21 = !{!"_ZTS6Config", !11, i64 0, !22, i64 4, !23, i64 8, !24, i64 24, !25, i64 40, !26, i64 64, !27, i64 72, !28, i64 96, !29, i64 104}
!22 = !{!"_ZTS15DSNetworkConfig", !11, i64 0}
!23 = !{!"_ZTS13DSwitchConfig", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12}
!24 = !{!"_ZTS15MSNetworkConfig", !13, i64 0, !11, i64 4, !11, i64 8, !11, i64 12}
!25 = !{!"_ZTS13MSwitchConfig", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20}
!26 = !{!"_ZTS15ASNetworkConfig", !15, i64 0, !11, i64 4}
!27 = !{!"_ZTS13ASwitchConfig", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20}
!28 = !{!"_ZTS17LookUpTableConfig", !11, i64 0, !11, i64 4}
!29 = !{!"_ZTS14SDMemoryConfig", !17, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !19, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52}
!30 = !{!31, !11, i64 160}
!31 = !{!"_ZTS6Stonne", !21, i64 0, !11, i64 160, !11, i64 164, !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, !6, i64 240, !6, i64 248, !6, i64 256, !32, i64 264, !32, i64 265, !33, i64 272, !33, i64 280, !33, i64 288, !33, i64 296, !33, i64 304, !11, i64 312}
!32 = !{!"bool", !7, i64 0}
!33 = !{!"long", !7, i64 0}
!34 = !{!31, !32, i64 264}
!35 = !{!31, !32, i64 265}
!36 = !{!21, !11, i64 120}
!37 = !{!31, !6, i64 216}
!38 = !{!21, !11, i64 100}
!39 = !{!31, !6, i64 224}
!40 = !{!21, !13, i64 24}
!41 = !{!31, !6, i64 176}
!42 = !{!31, !6, i64 168}
!43 = !{!21, !15, i64 64}
!44 = !{!31, !6, i64 184}
!45 = !{!31, !6, i64 208}
!46 = !{!31, !6, i64 192}
!47 = !{!21, !17, i64 104}
!48 = !{!31, !6, i64 200}
!49 = !{!50, !50, i64 0}
!50 = !{!"vtable pointer", !8, i64 0}
!51 = !{!31, !11, i64 164}
!52 = !{!31, !33, i64 272}
!53 = !{!31, !33, i64 280}
!54 = !{!31, !33, i64 288}
!55 = !{!31, !33, i64 296}
!56 = !{!31, !33, i64 304}
!57 = !{!31, !11, i64 312}


; 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.Config = type { i32, %class.DSNetworkConfig, %class.DSwitchConfig, %class.MSNetworkConfig, %class.MSwitchConfig, %class.ASNetworkConfig, %class.ASwitchConfig, %class.LookUpTableConfig, %class.SDMemoryConfig }
%class.DSNetworkConfig = type { i32 }
%class.DSwitchConfig = type { i32, i32, i32, i32 }
%class.MSNetworkConfig = type { i32, i32, i32, i32 }
%class.MSwitchConfig = type { i32, i32, i32, i32, i32, i32 }
%class.ASNetworkConfig = type { i32, i32 }
%class.ASwitchConfig = type { i32, i32, i32, i32, i32, i32 }
%class.LookUpTableConfig = type { i32, i32 }
%class.SDMemoryConfig = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%"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.std::allocator.0" = type { i8 }

@.str = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [94 x i8], align 1
@__PRETTY_FUNCTION__._ZN6StonneC2E6Config = external hidden unnamed_addr constant [23 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [15 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6StonneC2E6Config(ptr noundef nonnull align 8 dereferenceable(316) %0, ptr nocapture noundef readonly byval(%class.Config) align 8 %1) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator.0", align 1
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator.0", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator.0", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator.0", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator.0", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.0", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.0", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.0", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.0", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.0", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.0", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.0", align 1
  tail call void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160) %0)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %0, ptr noundef nonnull align 8 dereferenceable(160) %1, i64 160, i1 false), !tbaa.struct !5
  %27 = getelementptr inbounds i8, ptr %1, i64 24
  %28 = getelementptr inbounds i8, ptr %1, i64 28
  %29 = load i32, ptr %28, align 4, !tbaa !18
  %30 = getelementptr inbounds i8, ptr %0, i64 160
  store i32 %29, ptr %30, align 8, !tbaa !28
  %31 = getelementptr inbounds i8, ptr %0, i64 264
  store i8 0, ptr %31, align 8, !tbaa !33
  %32 = getelementptr inbounds i8, ptr %0, i64 265
  store i8 0, ptr %32, align 1, !tbaa !34
  %33 = tail call noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #9
  %34 = getelementptr inbounds i8, ptr %1, i64 104
  %35 = getelementptr inbounds i8, ptr %1, i64 120
  %36 = load i32, ptr %35, align 8, !tbaa !35
  invoke void @_ZN10ConnectionC1Ei(ptr noundef nonnull align 8 dereferenceable(64) %33, i32 noundef %36)
          to label %37 unwind label %45

37:                                               ; preds = %2
  %38 = getelementptr inbounds i8, ptr %0, i64 216
  store ptr %33, ptr %38, align 8, !tbaa !36
  %39 = tail call noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #9
  %40 = getelementptr inbounds i8, ptr %1, i64 100
  %41 = load i32, ptr %40, align 4, !tbaa !37
  invoke void @_ZN10ConnectionC1Ei(ptr noundef nonnull align 8 dereferenceable(64) %39, i32 noundef %41)
          to label %42 unwind label %47

42:                                               ; preds = %37
  %43 = getelementptr inbounds i8, ptr %0, i64 224
  store ptr %39, ptr %43, align 8, !tbaa !38
  %44 = load i32, ptr %27, align 8, !tbaa !39
  switch i32 %44, label %69 [
    i32 0, label %49
    i32 1, label %59
  ]

45:                                               ; preds = %2
  %46 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %33, i64 noundef 64) #10
  br label %201

47:                                               ; preds = %37
  %48 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %39, i64 noundef 64) #10
  br label %201

49:                                               ; preds = %42
  %50 = tail call noalias noundef nonnull dereferenceable(160) ptr @_Znwm(i64 noundef 160) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %51 unwind label %54

51:                                               ; preds = %49
  invoke void @_ZN9MSNetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(156) %50, i32 noundef 2, ptr noundef nonnull %3, ptr noundef nonnull byval(%class.Config) align 8 %1)
          to label %52 unwind label %56

52:                                               ; preds = %51
  %53 = getelementptr inbounds i8, ptr %0, i64 176
  store ptr %50, ptr %53, align 8, !tbaa !40
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #11
  br label %70

54:                                               ; preds = %49
  %55 = landingpad { ptr, i32 }
          cleanup
  br label %58

56:                                               ; preds = %51
  %57 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #11
  br label %58

58:                                               ; preds = %56, %54
  %.pn28 = phi { ptr, i32 } [ %57, %56 ], [ %55, %54 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #11
  call void @_ZdlPvm(ptr noundef nonnull %50, i64 noundef 160) #10
  br label %201

59:                                               ; preds = %42
  %60 = tail call noalias noundef nonnull dereferenceable(264) ptr @_Znwm(i64 noundef 264) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %61 unwind label %64

61:                                               ; preds = %59
  invoke void @_ZN8OSMeshMNC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(260) %60, i32 noundef 2, ptr noundef nonnull %5, ptr noundef nonnull byval(%class.Config) align 8 %1)
          to label %62 unwind label %66

62:                                               ; preds = %61
  %63 = getelementptr inbounds i8, ptr %0, i64 176
  store ptr %60, ptr %63, align 8, !tbaa !40
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #11
  br label %70

64:                                               ; preds = %59
  %65 = landingpad { ptr, i32 }
          cleanup
  br label %68

66:                                               ; preds = %61
  %67 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  br label %68

68:                                               ; preds = %66, %64
  %.pn = phi { ptr, i32 } [ %67, %66 ], [ %65, %64 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #11
  call void @_ZdlPvm(ptr noundef nonnull %60, i64 noundef 264) #10
  br label %201

69:                                               ; preds = %42
  tail call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, i32 noundef 31, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6StonneC2E6Config) #12
  unreachable

70:                                               ; preds = %62, %52
  %71 = call noalias noundef nonnull dereferenceable(112) ptr @_Znwm(i64 noundef 112) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %72 unwind label %77

72:                                               ; preds = %70
  invoke void @_ZN12DSNetworkTopC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(112) %71, i32 noundef 1, ptr noundef nonnull %7, ptr noundef nonnull byval(%class.Config) align 8 %1)
          to label %73 unwind label %79

73:                                               ; preds = %72
  %74 = getelementptr inbounds i8, ptr %0, i64 168
  store ptr %71, ptr %74, align 8, !tbaa !41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #11
  %75 = getelementptr inbounds i8, ptr %1, i64 64
  %76 = load i32, ptr %75, align 8, !tbaa !42
  switch i32 %76, label %115 [
    i32 0, label %82
    i32 1, label %93
    i32 2, label %104
  ]

77:                                               ; preds = %70
  %78 = landingpad { ptr, i32 }
          cleanup
  br label %81

79:                                               ; preds = %72
  %80 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  br label %81

81:                                               ; preds = %79, %77
  %.pn30 = phi { ptr, i32 } [ %80, %79 ], [ %78, %77 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #11
  call void @_ZdlPvm(ptr noundef nonnull %71, i64 noundef 112) #10
  br label %201

82:                                               ; preds = %73
  %83 = call noalias noundef nonnull dereferenceable(464) ptr @_Znwm(i64 noundef 464) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %84 unwind label %88

84:                                               ; preds = %82
  %85 = load ptr, ptr %38, align 8, !tbaa !36
  invoke void @_ZN9ASNetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(460) %83, i32 noundef 3, ptr noundef nonnull %9, ptr noundef nonnull byval(%class.Config) align 8 %1, ptr noundef %85)
          to label %86 unwind label %90

86:                                               ; preds = %84
  %87 = getelementptr inbounds i8, ptr %0, i64 184
  store ptr %83, ptr %87, align 8, !tbaa !43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  br label %116

88:                                               ; preds = %82
  %89 = landingpad { ptr, i32 }
          cleanup
  br label %92

90:                                               ; preds = %84
  %91 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  br label %92

92:                                               ; preds = %90, %88
  %.pn36 = phi { ptr, i32 } [ %91, %90 ], [ %89, %88 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  call void @_ZdlPvm(ptr noundef nonnull %83, i64 noundef 464) #10
  br label %201

93:                                               ; preds = %73
  %94 = call noalias noundef nonnull dereferenceable(312) ptr @_Znwm(i64 noundef 312) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %95 unwind label %99

95:                                               ; preds = %93
  %96 = load ptr, ptr %38, align 8, !tbaa !36
  invoke void @_ZN9FENetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(312) %94, i32 noundef 3, ptr noundef nonnull %11, ptr noundef nonnull byval(%class.Config) align 8 %1, ptr noundef %96)
          to label %97 unwind label %101

97:                                               ; preds = %95
  %98 = getelementptr inbounds i8, ptr %0, i64 184
  store ptr %94, ptr %98, align 8, !tbaa !43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  br label %116

99:                                               ; preds = %93
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %103

101:                                              ; preds = %95
  %102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  br label %103

103:                                              ; preds = %101, %99
  %.pn34 = phi { ptr, i32 } [ %102, %101 ], [ %100, %99 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  call void @_ZdlPvm(ptr noundef nonnull %94, i64 noundef 312) #10
  br label %201

104:                                              ; preds = %73
  %105 = call noalias noundef nonnull dereferenceable(288) ptr @_Znwm(i64 noundef 288) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %106 unwind label %110

106:                                              ; preds = %104
  %107 = load ptr, ptr %38, align 8, !tbaa !36
  invoke void @_ZN10TemporalRNC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(284) %105, i32 noundef 3, ptr noundef nonnull %13, ptr noundef nonnull byval(%class.Config) align 8 %1, ptr noundef %107)
          to label %108 unwind label %112

108:                                              ; preds = %106
  %109 = getelementptr inbounds i8, ptr %0, i64 184
  store ptr %105, ptr %109, align 8, !tbaa !43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #11
  br label %116

110:                                              ; preds = %104
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %114

112:                                              ; preds = %106
  %113 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  br label %114

114:                                              ; preds = %112, %110
  %.pn32 = phi { ptr, i32 } [ %113, %112 ], [ %111, %110 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #11
  call void @_ZdlPvm(ptr noundef nonnull %105, i64 noundef 288) #10
  br label %201

115:                                              ; preds = %73
  call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, i32 noundef 48, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6StonneC2E6Config) #12
  unreachable

116:                                              ; preds = %108, %97, %86
  %117 = call noalias noundef nonnull dereferenceable(88) ptr @_Znwm(i64 noundef 88) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %118 unwind label %128

118:                                              ; preds = %116
  invoke void @_ZN3BusC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(88) %117, i32 noundef 4, ptr noundef nonnull %15, ptr noundef nonnull byval(%class.Config) align 8 %1)
          to label %119 unwind label %130

119:                                              ; preds = %118
  %120 = getelementptr inbounds i8, ptr %0, i64 208
  store ptr %117, ptr %120, align 8, !tbaa !44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #11
  %121 = call noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %122 unwind label %133

122:                                              ; preds = %119
  %123 = load ptr, ptr %38, align 8, !tbaa !36
  %124 = load ptr, ptr %43, align 8, !tbaa !38
  invoke void @_ZN11LookupTableC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10ConnectionS8_(ptr noundef nonnull align 8 dereferenceable(72) %121, i32 noundef 5, ptr noundef nonnull %17, ptr noundef nonnull byval(%class.Config) align 8 %1, ptr noundef %123, ptr noundef %124)
          to label %125 unwind label %135

125:                                              ; preds = %122
  %126 = getelementptr inbounds i8, ptr %0, i64 192
  store ptr %121, ptr %126, align 8, !tbaa !45
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #11
  %127 = load i32, ptr %34, align 8, !tbaa !46
  switch i32 %127, label %182 [
    i32 1, label %138
    i32 0, label %149
    i32 2, label %160
    i32 3, label %171
  ]

128:                                              ; preds = %116
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %132

130:                                              ; preds = %118
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  br label %132

132:                                              ; preds = %130, %128
  %.pn38 = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #11
  call void @_ZdlPvm(ptr noundef nonnull %117, i64 noundef 88) #10
  br label %201

133:                                              ; preds = %119
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %137

135:                                              ; preds = %122
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  br label %137

137:                                              ; preds = %135, %133
  %.pn40 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #11
  call void @_ZdlPvm(ptr noundef nonnull %121, i64 noundef 72) #10
  br label %201

138:                                              ; preds = %125
  %139 = call noalias noundef nonnull dereferenceable(592) ptr @_Znwm(i64 noundef 592) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %140 unwind label %144

140:                                              ; preds = %138
  %141 = load ptr, ptr %43, align 8, !tbaa !38
  invoke void @_ZN14SparseSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(592) %139, i32 noundef 0, ptr noundef nonnull %19, ptr noundef nonnull byval(%class.Config) align 8 %1, ptr noundef %141)
          to label %142 unwind label %146

142:                                              ; preds = %140
  %143 = getelementptr inbounds i8, ptr %0, i64 200
  store ptr %139, ptr %143, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #11
  br label %183

144:                                              ; preds = %138
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %148

146:                                              ; preds = %140
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  br label %148

148:                                              ; preds = %146, %144
  %.pn48 = phi { ptr, i32 } [ %147, %146 ], [ %145, %144 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #11
  call void @_ZdlPvm(ptr noundef nonnull %139, i64 noundef 592) #10
  br label %201

149:                                              ; preds = %125
  %150 = call noalias noundef nonnull dereferenceable(568) ptr @_Znwm(i64 noundef 568) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %151 unwind label %155

151:                                              ; preds = %149
  %152 = load ptr, ptr %43, align 8, !tbaa !38
  invoke void @_ZN8SDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(568) %150, i32 noundef 0, ptr noundef nonnull %21, ptr noundef nonnull byval(%class.Config) align 8 %1, ptr noundef %152)
          to label %153 unwind label %157

153:                                              ; preds = %151
  %154 = getelementptr inbounds i8, ptr %0, i64 200
  store ptr %150, ptr %154, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #11
  br label %183

155:                                              ; preds = %149
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %159

157:                                              ; preds = %151
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  br label %159

159:                                              ; preds = %157, %155
  %.pn46 = phi { ptr, i32 } [ %158, %157 ], [ %156, %155 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #11
  call void @_ZdlPvm(ptr noundef nonnull %150, i64 noundef 568) #10
  br label %201

160:                                              ; preds = %125
  %161 = call noalias noundef nonnull dereferenceable(672) ptr @_Znwm(i64 noundef 672) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %162 unwind label %166

162:                                              ; preds = %160
  %163 = load ptr, ptr %43, align 8, !tbaa !38
  invoke void @_ZN19SparseDenseSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(672) %161, i32 noundef 0, ptr noundef nonnull %23, ptr noundef nonnull byval(%class.Config) align 8 %1, ptr noundef %163)
          to label %164 unwind label %168

164:                                              ; preds = %162
  %165 = getelementptr inbounds i8, ptr %0, i64 200
  store ptr %161, ptr %165, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #11
  br label %183

166:                                              ; preds = %160
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %170

168:                                              ; preds = %162
  %169 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  br label %170

170:                                              ; preds = %168, %166
  %.pn44 = phi { ptr, i32 } [ %169, %168 ], [ %167, %166 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #11
  call void @_ZdlPvm(ptr noundef nonnull %161, i64 noundef 672) #10
  br label %201

171:                                              ; preds = %125
  %172 = call noalias noundef nonnull dereferenceable(552) ptr @_Znwm(i64 noundef 552) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %173 unwind label %177

173:                                              ; preds = %171
  %174 = load ptr, ptr %43, align 8, !tbaa !38
  invoke void @_ZN14OSMeshSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(552) %172, i32 noundef 0, ptr noundef nonnull %25, ptr noundef nonnull byval(%class.Config) align 8 %1, ptr noundef %174)
          to label %175 unwind label %179

175:                                              ; preds = %173
  %176 = getelementptr inbounds i8, ptr %0, i64 200
  store ptr %172, ptr %176, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #11
  br label %183

177:                                              ; preds = %171
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %181

179:                                              ; preds = %173
  %180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  br label %181

181:                                              ; preds = %179, %177
  %.pn42 = phi { ptr, i32 } [ %180, %179 ], [ %178, %177 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #11
  call void @_ZdlPvm(ptr noundef nonnull %172, i64 noundef 552) #10
  br label %201

182:                                              ; preds = %125
  call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, i32 noundef 69, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6StonneC2E6Config) #12
  unreachable

183:                                              ; preds = %175, %164, %153, %142
  %184 = getelementptr inbounds i8, ptr %0, i64 200
  %185 = load ptr, ptr %184, align 8, !tbaa !47
  %186 = getelementptr inbounds i8, ptr %0, i64 184
  %187 = load ptr, ptr %186, align 8, !tbaa !43
  %188 = load ptr, ptr %185, align 8, !tbaa !48
  %189 = getelementptr inbounds i8, ptr %188, i64 72
  %190 = load ptr, ptr %189, align 8
  call void %190(ptr noundef nonnull align 8 dereferenceable(48) %185, ptr noundef %187)
  %191 = load ptr, ptr %184, align 8, !tbaa !47
  %192 = getelementptr inbounds i8, ptr %0, i64 176
  %193 = load ptr, ptr %192, align 8, !tbaa !40
  %194 = load ptr, ptr %191, align 8, !tbaa !48
  %195 = getelementptr inbounds i8, ptr %194, i64 80
  %196 = load ptr, ptr %195, align 8
  call void %196(ptr noundef nonnull align 8 dereferenceable(48) %191, ptr noundef %193)
  %197 = load i32, ptr %30, align 8, !tbaa !28
  %198 = add i32 %197, -1
  %199 = getelementptr inbounds i8, ptr %0, i64 164
  store i32 %198, ptr %199, align 4, !tbaa !50
  call void @_ZN6Stonne19connectMemoryandDSNEv(ptr noundef nonnull align 8 dereferenceable(316) %0)
  call void @_ZN6Stonne16connectMSNandDSNEv(ptr noundef nonnull align 8 dereferenceable(316) %0)
  call void @_ZN6Stonne16connectMSNandASNEv(ptr noundef nonnull align 8 dereferenceable(316) %0)
  call void @_ZN6Stonne16connectASNandBusEv(ptr noundef nonnull align 8 dereferenceable(316) %0)
  call void @_ZN6Stonne19connectBusandMemoryEv(ptr noundef nonnull align 8 dereferenceable(316) %0)
  %200 = getelementptr inbounds i8, ptr %0, i64 272
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(44) %200, i8 0, i64 44, i1 false)
  ret void

201:                                              ; preds = %181, %170, %159, %148, %137, %132, %114, %103, %92, %81, %68, %58, %47, %45
  %.pn42.pn = phi { ptr, i32 } [ %.pn42, %181 ], [ %.pn44, %170 ], [ %.pn46, %159 ], [ %.pn48, %148 ], [ %.pn40, %137 ], [ %.pn38, %132 ], [ %.pn32, %114 ], [ %.pn34, %103 ], [ %.pn36, %92 ], [ %.pn30, %81 ], [ %.pn, %68 ], [ %.pn28, %58 ], [ %48, %47 ], [ %46, %45 ]
  resume { ptr, i32 } %.pn42.pn
}

declare void @_ZN6ConfigC1Ev(ptr noundef nonnull align 4 dereferenceable(160)) unnamed_addr #1

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #3

declare void @_ZN10ConnectionC1Ei(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef) unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #6 align 2

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

declare void @_ZN9MSNetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(156), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8) unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #6 align 2

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

declare void @_ZN8OSMeshMNC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(260), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8) unnamed_addr #1

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #7

declare void @_ZN12DSNetworkTopC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8) unnamed_addr #1

declare void @_ZN9ASNetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(460), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN9FENetworkC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(312), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN10TemporalRNC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(284), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN3BusC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6Config(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8) unnamed_addr #1

declare void @_ZN11LookupTableC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10ConnectionS8_(ptr noundef nonnull align 8 dereferenceable(72), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef, ptr noundef) unnamed_addr #1

declare void @_ZN14SparseSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(592), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN8SDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(568), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN19SparseDenseSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(672), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

declare void @_ZN14OSMeshSDMemoryC1EjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE6ConfigP10Connection(ptr noundef nonnull align 8 dereferenceable(552), i32 noundef, ptr noundef, ptr noundef byval(%class.Config) align 8, ptr noundef) unnamed_addr #1

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{i64 0, i64 4, !6, i64 4, i64 4, !6, i64 8, i64 4, !6, i64 12, i64 4, !6, i64 16, i64 4, !6, i64 20, i64 4, !6, i64 24, i64 4, !10, i64 28, i64 4, !6, i64 32, i64 4, !6, i64 36, i64 4, !6, i64 40, i64 4, !6, i64 44, i64 4, !6, i64 48, i64 4, !6, i64 52, i64 4, !6, i64 56, i64 4, !6, i64 60, i64 4, !6, i64 64, i64 4, !12, i64 68, i64 4, !6, i64 72, i64 4, !6, i64 76, i64 4, !6, i64 80, i64 4, !6, i64 84, i64 4, !6, i64 88, i64 4, !6, i64 92, i64 4, !6, i64 96, i64 4, !6, i64 100, i64 4, !6, i64 104, i64 4, !14, i64 108, i64 4, !6, i64 112, i64 4, !6, i64 116, i64 4, !6, i64 120, i64 4, !6, i64 124, i64 4, !6, i64 128, i64 4, !6, i64 132, i64 4, !16, i64 136, i64 4, !6, i64 140, i64 4, !6, i64 144, i64 4, !6, i64 148, i64 4, !6, i64 152, i64 4, !6, i64 156, i64 4, !6}
!6 = !{!7, !7, i64 0}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !11, i64 0}
!11 = !{!"_ZTS19MultiplierNetwork_t", !8, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"_ZTS15ReduceNetwork_t", !8, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"_ZTS18MemoryController_t", !8, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"_ZTS17MemoryHierarchy_t", !8, i64 0}
!18 = !{!19, !7, i64 28}
!19 = !{!"_ZTS6Config", !7, i64 0, !20, i64 4, !21, i64 8, !22, i64 24, !23, i64 40, !24, i64 64, !25, i64 72, !26, i64 96, !27, i64 104}
!20 = !{!"_ZTS15DSNetworkConfig", !7, i64 0}
!21 = !{!"_ZTS13DSwitchConfig", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12}
!22 = !{!"_ZTS15MSNetworkConfig", !11, i64 0, !7, i64 4, !7, i64 8, !7, i64 12}
!23 = !{!"_ZTS13MSwitchConfig", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20}
!24 = !{!"_ZTS15ASNetworkConfig", !13, i64 0, !7, i64 4}
!25 = !{!"_ZTS13ASwitchConfig", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20}
!26 = !{!"_ZTS17LookUpTableConfig", !7, i64 0, !7, i64 4}
!27 = !{!"_ZTS14SDMemoryConfig", !15, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !17, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52}
!28 = !{!29, !7, i64 160}
!29 = !{!"_ZTS6Stonne", !19, i64 0, !7, i64 160, !7, i64 164, !30, i64 168, !30, i64 176, !30, i64 184, !30, i64 192, !30, i64 200, !30, i64 208, !30, i64 216, !30, i64 224, !30, i64 232, !30, i64 240, !30, i64 248, !30, i64 256, !31, i64 264, !31, i64 265, !32, i64 272, !32, i64 280, !32, i64 288, !32, i64 296, !32, i64 304, !7, i64 312}
!30 = !{!"any pointer", !8, i64 0}
!31 = !{!"bool", !8, i64 0}
!32 = !{!"long", !8, i64 0}
!33 = !{!29, !31, i64 264}
!34 = !{!29, !31, i64 265}
!35 = !{!19, !7, i64 120}
!36 = !{!29, !30, i64 216}
!37 = !{!19, !7, i64 100}
!38 = !{!29, !30, i64 224}
!39 = !{!19, !11, i64 24}
!40 = !{!29, !30, i64 176}
!41 = !{!29, !30, i64 168}
!42 = !{!19, !13, i64 64}
!43 = !{!29, !30, i64 184}
!44 = !{!29, !30, i64 208}
!45 = !{!29, !30, i64 192}
!46 = !{!19, !15, i64 104}
!47 = !{!29, !30, i64 200}
!48 = !{!49, !49, i64 0}
!49 = !{!"vtable pointer", !9, i64 0}
!50 = !{!29, !7, i64 164}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,MemCpyOptPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass