; LLVM IR from gem5/gem5 :: src/systemc/tests/systemc/misc/cae_test/general/control/case/balancing/balan_c3937301 (ZN9balancing5entryEv)

; 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.sc_dt::sc_biguint" = type { %"class.sc_dt::sc_unsigned" }
%"class.sc_dt::sc_unsigned" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_value_base" = type { ptr }
%"class.sc_dt::sc_bigint" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_signed" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }
%struct.balancing = type { %"class.sc_core::sc_module", %"class.sc_core::sc_in", ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.sc_core::sc_module" = type { %"class.sc_core::sc_object", %"class.sc_core::sc_process_host", %"class.sc_core::sc_sensitive", %"class.sc_core::sc_sensitive_pos", %"class.sc_core::sc_sensitive_neg", i8, ptr, i32, ptr, ptr }
%"class.sc_core::sc_object" = type { ptr, ptr, %"class.std::vector", %"class.std::vector.0", %"class.std::__cxx11::basic_string", ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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.sc_core::sc_process_host" = type { ptr }
%"class.sc_core::sc_sensitive" = type { ptr, i32, ptr }
%"class.sc_core::sc_sensitive_pos" = type { ptr, i32, ptr }
%"class.sc_core::sc_sensitive_neg" = type { ptr, i32, ptr }
%"class.sc_core::sc_in" = type { %"class.sc_core::sc_port", ptr, ptr, ptr, ptr }
%"class.sc_core::sc_port" = type { %"class.sc_core::sc_port_b" }
%"class.sc_core::sc_port_b" = type { %"class.sc_core::sc_port_base", ptr, %"class.std::vector.8" }
%"class.sc_core::sc_port_base" = type { %"class.sc_core::sc_object", ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<sc_core::sc_signal_in_if<bool> *, std::allocator<sc_core::sc_signal_in_if<bool> *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_signal_in_if<bool> *, std::allocator<sc_core::sc_signal_in_if<bool> *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_signal_in_if<bool> *, std::allocator<sc_core::sc_signal_in_if<bool> *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_signal_in_if<bool> *, std::allocator<sc_core::sc_signal_in_if<bool> *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9balancing5entryEv(ptr noundef nonnull align 8 dereferenceable(504) %0) #0 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.sc_dt::sc_biguint", align 8
  %4 = alloca %"class.sc_dt::sc_bigint", align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.sc_dt::sc_biguint", align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.sc_dt::sc_unsigned", align 8
  %10 = alloca %"class.sc_dt::sc_unsigned", align 8
  %11 = alloca %"class.sc_dt::sc_bv", align 8
  %12 = alloca %"class.sc_dt::sc_bv", align 8
  %13 = alloca %"class.sc_dt::sc_bv", align 8
  %14 = alloca i8, align 1
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca %"class.sc_dt::sc_bv", align 8
  %19 = alloca %"class.sc_dt::sc_bv", align 8
  %20 = alloca %"class.sc_dt::sc_bv", align 8
  %21 = alloca %"class.sc_dt::sc_bv", align 8
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca %"class.sc_dt::sc_signed", align 8
  %25 = alloca %"class.sc_dt::sc_signed", align 8
  %26 = alloca %"class.sc_dt::sc_bv", align 8
  %27 = alloca %"class.sc_dt::sc_biguint", align 8
  %28 = alloca i8, align 1
  %29 = alloca i8, align 1
  %30 = alloca %"class.sc_dt::sc_signed", align 8
  %31 = alloca %"class.sc_dt::sc_signed", align 8
  %32 = alloca %"class.sc_dt::sc_bv", align 8
  %33 = alloca %"class.sc_dt::sc_biguint", align 8
  %34 = alloca i8, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %35 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %3) #4
  call void @_ZN5sc_dt10sc_biguintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3)
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #4
  invoke void @_ZN5sc_dt9sc_bigintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %36 unwind label %96

36:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #4
  invoke void @_ZN5sc_dt10sc_biguintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %37 unwind label %100

37:                                               ; preds = %36
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #4
  invoke void @_ZN5sc_dt11sc_unsignedC1Ei(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 12)
          to label %38 unwind label %104

38:                                               ; preds = %37
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #4
  invoke void @_ZN5sc_dt11sc_unsignedC1Ei(ptr noundef nonnull align 8 dereferenceable(32) %10, i32 noundef 12)
          to label %39 unwind label %108

39:                                               ; preds = %38
  %40 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 2
  %41 = load ptr, ptr %40, align 8, !tbaa !9
  %42 = load ptr, ptr %41, align 8, !tbaa !41
  %43 = getelementptr inbounds ptr, ptr %42, i64 7
  %44 = load ptr, ptr %43, align 8
  %45 = invoke noundef nonnull align 1 dereferenceable(1) ptr %44(ptr noundef nonnull align 8 dereferenceable(224) %41)
          to label %46 unwind label %112

46:                                               ; preds = %39
  %47 = load i8, ptr %45, align 1, !tbaa !43, !range !44, !noundef !45
  %48 = trunc i8 %47 to i1
  %49 = zext i1 %48 to i32
  %50 = icmp eq i32 %49, 1
  br i1 %50, label %51, label %155

51:                                               ; preds = %46
  %52 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 7
  %53 = load ptr, ptr %52, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #4
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %11, i32 noundef 0)
          to label %54 unwind label %116

54:                                               ; preds = %51
  %55 = load ptr, ptr %53, align 8, !tbaa !41
  %56 = getelementptr inbounds ptr, ptr %55, i64 9
  %57 = load ptr, ptr %56, align 8
  invoke void %57(ptr noundef nonnull align 8 dereferenceable(232) %53, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %58 unwind label %120

58:                                               ; preds = %54
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #4
  %59 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 8
  %60 = load ptr, ptr %59, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #4
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %12, i32 noundef 0)
          to label %61 unwind label %125

61:                                               ; preds = %58
  %62 = load ptr, ptr %60, align 8, !tbaa !41
  %63 = getelementptr inbounds ptr, ptr %62, i64 9
  %64 = load ptr, ptr %63, align 8
  invoke void %64(ptr noundef nonnull align 8 dereferenceable(232) %60, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %65 unwind label %129

65:                                               ; preds = %61
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #4
  %66 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 9
  %67 = load ptr, ptr %66, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #4
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %13, i32 noundef 0)
          to label %68 unwind label %134

68:                                               ; preds = %65
  %69 = load ptr, ptr %67, align 8, !tbaa !41
  %70 = getelementptr inbounds ptr, ptr %69, i64 9
  %71 = load ptr, ptr %70, align 8
  invoke void %71(ptr noundef nonnull align 8 dereferenceable(232) %67, ptr noundef nonnull align 8 dereferenceable(24) %13)
          to label %72 unwind label %138

72:                                               ; preds = %68
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #4
  %73 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 10
  %74 = load ptr, ptr %73, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #4
  store i8 0, ptr %14, align 1, !tbaa !43
  %75 = load ptr, ptr %74, align 8, !tbaa !41
  %76 = getelementptr inbounds ptr, ptr %75, i64 14
  %77 = load ptr, ptr %76, align 8
  invoke void %77(ptr noundef nonnull align 8 dereferenceable(224) %74, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %78 unwind label %143

78:                                               ; preds = %72
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #4
  %79 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 11
  %80 = load ptr, ptr %79, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #4
  store i8 0, ptr %15, align 1, !tbaa !43
  %81 = load ptr, ptr %80, align 8, !tbaa !41
  %82 = getelementptr inbounds ptr, ptr %81, i64 14
  %83 = load ptr, ptr %82, align 8
  invoke void %83(ptr noundef nonnull align 8 dereferenceable(224) %80, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %84 unwind label %147

84:                                               ; preds = %78
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  %85 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 12
  %86 = load ptr, ptr %85, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #4
  store i8 0, ptr %16, align 1, !tbaa !43
  %87 = load ptr, ptr %86, align 8, !tbaa !41
  %88 = getelementptr inbounds ptr, ptr %87, i64 14
  %89 = load ptr, ptr %88, align 8
  invoke void %89(ptr noundef nonnull align 8 dereferenceable(224) %86, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %90 unwind label %151

90:                                               ; preds = %84
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #4
  %91 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 0)
          to label %92 unwind label %112

92:                                               ; preds = %90
  %93 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %10, i32 noundef 0)
          to label %94 unwind label %112

94:                                               ; preds = %92
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %95 unwind label %112

95:                                               ; preds = %94
  br label %157

96:                                               ; preds = %1
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %5, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %6, align 4
  br label %466

100:                                              ; preds = %36
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %5, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %6, align 4
  br label %465

104:                                              ; preds = %37
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %5, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %6, align 4
  br label %464

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

112:                                              ; preds = %422, %413, %411, %410, %409, %407, %404, %402, %358, %357, %349, %342, %341, %326, %324, %323, %322, %320, %318, %316, %314, %262, %261, %253, %251, %244, %243, %235, %226, %225, %216, %215, %214, %205, %197, %196, %195, %194, %186, %178, %171, %162, %160, %155, %94, %92, %90, %39
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %5, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %6, align 4
  br label %462

116:                                              ; preds = %51
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %5, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %6, align 4
  br label %124

120:                                              ; preds = %54
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %5, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #4
  br label %124

124:                                              ; preds = %120, %116
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #4
  br label %462

125:                                              ; preds = %58
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %5, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %6, align 4
  br label %133

129:                                              ; preds = %61
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %5, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #4
  br label %133

133:                                              ; preds = %129, %125
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #4
  br label %462

134:                                              ; preds = %65
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %5, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %6, align 4
  br label %142

138:                                              ; preds = %68
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %5, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  br label %142

142:                                              ; preds = %138, %134
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #4
  br label %462

143:                                              ; preds = %72
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %5, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #4
  br label %462

147:                                              ; preds = %78
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %5, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  br label %462

151:                                              ; preds = %84
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %5, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #4
  br label %462

155:                                              ; preds = %46
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %156 unwind label %112

156:                                              ; preds = %155
  br label %157

157:                                              ; preds = %156, %95
  br label %158

158:                                              ; preds = %429, %157
  br label %159

159:                                              ; preds = %158
  br label %160

160:                                              ; preds = %166, %159
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %161 unwind label %112

161:                                              ; preds = %160
  br label %162

162:                                              ; preds = %161
  %163 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 6
  %164 = load ptr, ptr %163, align 8, !tbaa !52
  %165 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %164)
          to label %166 unwind label %112

166:                                              ; preds = %162
  %167 = load i8, ptr %165, align 1, !tbaa !43, !range !44, !noundef !45
  %168 = trunc i8 %167 to i1
  %169 = zext i1 %168 to i32
  %170 = icmp eq i32 %169, 0
  br i1 %170, label %160, label %171, !llvm.loop !53

171:                                              ; preds = %166
  %172 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 3
  %173 = load ptr, ptr %172, align 8, !tbaa !55
  %174 = load ptr, ptr %173, align 8, !tbaa !41
  %175 = getelementptr inbounds ptr, ptr %174, i64 5
  %176 = load ptr, ptr %175, align 8
  %177 = invoke noundef nonnull align 8 dereferenceable(24) ptr %176(ptr noundef nonnull align 8 dereferenceable(232) %173)
          to label %178 unwind label %112

178:                                              ; preds = %171
  %179 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(24) %177)
          to label %180 unwind label %112

180:                                              ; preds = %178
  %181 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 10
  %182 = load ptr, ptr %181, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #4
  store i8 1, ptr %17, align 1, !tbaa !43
  %183 = load ptr, ptr %182, align 8, !tbaa !41
  %184 = getelementptr inbounds ptr, ptr %183, i64 14
  %185 = load ptr, ptr %184, align 8
  invoke void %185(ptr noundef nonnull align 8 dereferenceable(224) %182, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %186 unwind label %190

186:                                              ; preds = %180
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #4
  %187 = invoke noundef i32 @_ZNK5sc_dt11sc_unsigned7to_uintEv(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %188 unwind label %112

188:                                              ; preds = %186
  store i32 %187, ptr %8, align 4, !tbaa !56
  %189 = load i32, ptr %8, align 4, !tbaa !56
  switch i32 %189, label %228 [
    i32 4, label %194
    i32 3, label %207
    i32 2, label %218
  ]

190:                                              ; preds = %180
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %5, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #4
  br label %462

194:                                              ; preds = %188
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %195 unwind label %112

195:                                              ; preds = %194
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %196 unwind label %112

196:                                              ; preds = %195
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %197 unwind label %112

197:                                              ; preds = %196
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %198 unwind label %112

198:                                              ; preds = %197
  %199 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 7
  %200 = load ptr, ptr %199, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #4
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %18, i32 noundef 3)
          to label %201 unwind label %266

201:                                              ; preds = %198
  %202 = load ptr, ptr %200, align 8, !tbaa !41
  %203 = getelementptr inbounds ptr, ptr %202, i64 9
  %204 = load ptr, ptr %203, align 8
  invoke void %204(ptr noundef nonnull align 8 dereferenceable(232) %200, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %205 unwind label %270

205:                                              ; preds = %201
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %206 unwind label %112

206:                                              ; preds = %205
  br label %207

207:                                              ; preds = %206, %188
  %208 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 7
  %209 = load ptr, ptr %208, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #4
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %19, i32 noundef 2)
          to label %210 unwind label %275

210:                                              ; preds = %207
  %211 = load ptr, ptr %209, align 8, !tbaa !41
  %212 = getelementptr inbounds ptr, ptr %211, i64 9
  %213 = load ptr, ptr %212, align 8
  invoke void %213(ptr noundef nonnull align 8 dereferenceable(232) %209, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %214 unwind label %279

214:                                              ; preds = %210
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %215 unwind label %112

215:                                              ; preds = %214
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %216 unwind label %112

216:                                              ; preds = %215
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %217 unwind label %112

217:                                              ; preds = %216
  br label %218

218:                                              ; preds = %217, %188
  %219 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 7
  %220 = load ptr, ptr %219, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #4
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %20, i32 noundef 1)
          to label %221 unwind label %284

221:                                              ; preds = %218
  %222 = load ptr, ptr %220, align 8, !tbaa !41
  %223 = getelementptr inbounds ptr, ptr %222, i64 9
  %224 = load ptr, ptr %223, align 8
  invoke void %224(ptr noundef nonnull align 8 dereferenceable(232) %220, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %225 unwind label %288

225:                                              ; preds = %221
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %226 unwind label %112

226:                                              ; preds = %225
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %227 unwind label %112

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %227, %188
  %229 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 7
  %230 = load ptr, ptr %229, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #4
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %231 unwind label %293

231:                                              ; preds = %228
  %232 = load ptr, ptr %230, align 8, !tbaa !41
  %233 = getelementptr inbounds ptr, ptr %232, i64 9
  %234 = load ptr, ptr %233, align 8
  invoke void %234(ptr noundef nonnull align 8 dereferenceable(232) %230, ptr noundef nonnull align 8 dereferenceable(24) %21)
          to label %235 unwind label %297

235:                                              ; preds = %231
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %236 unwind label %112

236:                                              ; preds = %235
  br label %237

237:                                              ; preds = %236
  %238 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 10
  %239 = load ptr, ptr %238, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #4
  store i8 0, ptr %22, align 1, !tbaa !43
  %240 = load ptr, ptr %239, align 8, !tbaa !41
  %241 = getelementptr inbounds ptr, ptr %240, i64 14
  %242 = load ptr, ptr %241, align 8
  invoke void %242(ptr noundef nonnull align 8 dereferenceable(224) %239, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %243 unwind label %302

243:                                              ; preds = %237
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %244 unwind label %112

244:                                              ; preds = %243
  %245 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 4
  %246 = load ptr, ptr %245, align 8, !tbaa !57
  %247 = load ptr, ptr %246, align 8, !tbaa !41
  %248 = getelementptr inbounds ptr, ptr %247, i64 5
  %249 = load ptr, ptr %248, align 8
  %250 = invoke noundef nonnull align 8 dereferenceable(24) ptr %249(ptr noundef nonnull align 8 dereferenceable(232) %246)
          to label %251 unwind label %112

251:                                              ; preds = %244
  %252 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(24) %250)
          to label %253 unwind label %112

253:                                              ; preds = %251
  %254 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %255 unwind label %112

255:                                              ; preds = %253
  %256 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 11
  %257 = load ptr, ptr %256, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #4
  store i8 1, ptr %23, align 1, !tbaa !43
  %258 = load ptr, ptr %257, align 8, !tbaa !41
  %259 = getelementptr inbounds ptr, ptr %258, i64 14
  %260 = load ptr, ptr %259, align 8
  invoke void %260(ptr noundef nonnull align 8 dereferenceable(224) %257, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %261 unwind label %306

261:                                              ; preds = %255
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %262 unwind label %112

262:                                              ; preds = %261
  %263 = invoke noundef i32 @_ZNK5sc_dt11sc_unsigned7to_uintEv(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %264 unwind label %112

264:                                              ; preds = %262
  store i32 %263, ptr %8, align 4, !tbaa !56
  %265 = load i32, ptr %8, align 4, !tbaa !56
  switch i32 %265, label %326 [
    i32 0, label %310
    i32 1, label %310
    i32 2, label %310
    i32 3, label %310
    i32 4, label %316
    i32 5, label %316
    i32 6, label %316
    i32 7, label %316
    i32 11, label %320
  ]

266:                                              ; preds = %198
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %5, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %6, align 4
  br label %274

270:                                              ; preds = %201
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %5, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #4
  br label %274

274:                                              ; preds = %270, %266
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #4
  br label %462

275:                                              ; preds = %207
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %5, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %6, align 4
  br label %283

279:                                              ; preds = %210
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %5, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #4
  br label %283

283:                                              ; preds = %279, %275
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #4
  br label %462

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

288:                                              ; preds = %221
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %5, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #4
  br label %292

292:                                              ; preds = %288, %284
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #4
  br label %462

293:                                              ; preds = %228
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %5, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %6, align 4
  br label %301

297:                                              ; preds = %231
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %5, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #4
  br label %301

301:                                              ; preds = %297, %293
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #4
  br label %462

302:                                              ; preds = %237
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %5, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #4
  br label %462

306:                                              ; preds = %255
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %5, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #4
  br label %462

310:                                              ; preds = %264, %264, %264, %264
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #4
  invoke void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %311 unwind label %362

311:                                              ; preds = %310
  invoke void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %312 unwind label %366

312:                                              ; preds = %311
  %313 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %314 unwind label %370

314:                                              ; preds = %312
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %315 unwind label %112

315:                                              ; preds = %314
  br label %316

316:                                              ; preds = %315, %264, %264, %264, %264
  %317 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 4)
          to label %318 unwind label %112

318:                                              ; preds = %316
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %319 unwind label %112

319:                                              ; preds = %318
  br label %320

320:                                              ; preds = %319, %264
  %321 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 1)
          to label %322 unwind label %112

322:                                              ; preds = %320
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %323 unwind label %112

323:                                              ; preds = %322
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %324 unwind label %112

324:                                              ; preds = %323
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %325 unwind label %112

325:                                              ; preds = %324
  br label %326

326:                                              ; preds = %325, %264
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %327 unwind label %112

327:                                              ; preds = %326
  %328 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 8
  %329 = load ptr, ptr %328, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #4
  invoke void @_ZN5sc_dt10sc_biguintILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %330 unwind label %376

330:                                              ; preds = %327
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %331 unwind label %380

331:                                              ; preds = %330
  %332 = load ptr, ptr %329, align 8, !tbaa !41
  %333 = getelementptr inbounds ptr, ptr %332, i64 9
  %334 = load ptr, ptr %333, align 8
  invoke void %334(ptr noundef nonnull align 8 dereferenceable(232) %329, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %335 unwind label %384

335:                                              ; preds = %331
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #4
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #4
  %336 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 11
  %337 = load ptr, ptr %336, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #4
  store i8 0, ptr %28, align 1, !tbaa !43
  %338 = load ptr, ptr %337, align 8, !tbaa !41
  %339 = getelementptr inbounds ptr, ptr %338, i64 14
  %340 = load ptr, ptr %339, align 8
  invoke void %340(ptr noundef nonnull align 8 dereferenceable(224) %337, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %341 unwind label %390

341:                                              ; preds = %335
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %342 unwind label %112

342:                                              ; preds = %341
  %343 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 5
  %344 = load ptr, ptr %343, align 8, !tbaa !58
  %345 = load ptr, ptr %344, align 8, !tbaa !41
  %346 = getelementptr inbounds ptr, ptr %345, i64 5
  %347 = load ptr, ptr %346, align 8
  %348 = invoke noundef nonnull align 8 dereferenceable(24) ptr %347(ptr noundef nonnull align 8 dereferenceable(232) %344)
          to label %349 unwind label %112

349:                                              ; preds = %342
  %350 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(24) %348)
          to label %351 unwind label %112

351:                                              ; preds = %349
  %352 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 12
  %353 = load ptr, ptr %352, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #4
  store i8 1, ptr %29, align 1, !tbaa !43
  %354 = load ptr, ptr %353, align 8, !tbaa !41
  %355 = getelementptr inbounds ptr, ptr %354, i64 14
  %356 = load ptr, ptr %355, align 8
  invoke void %356(ptr noundef nonnull align 8 dereferenceable(224) %353, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %357 unwind label %394

357:                                              ; preds = %351
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %358 unwind label %112

358:                                              ; preds = %357
  %359 = invoke noundef i32 @_ZNK5sc_dt11sc_unsigned7to_uintEv(ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %360 unwind label %112

360:                                              ; preds = %358
  store i32 %359, ptr %8, align 4, !tbaa !56
  %361 = load i32, ptr %8, align 4, !tbaa !56
  switch i32 %361, label %413 [
    i32 0, label %398
    i32 1, label %398
    i32 2, label %398
    i32 3, label %398
    i32 4, label %404
    i32 5, label %404
    i32 6, label %404
    i32 7, label %404
    i32 8, label %407
    i32 9, label %407
    i32 10, label %407
    i32 11, label %407
  ]

362:                                              ; preds = %310
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %5, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %6, align 4
  br label %375

366:                                              ; preds = %311
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %5, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %6, align 4
  br label %374

370:                                              ; preds = %312
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %5, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %6, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #4
  br label %374

374:                                              ; preds = %370, %366
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  br label %375

375:                                              ; preds = %374, %362
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #4
  br label %462

376:                                              ; preds = %327
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %5, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %6, align 4
  br label %389

380:                                              ; preds = %330
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %5, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %6, align 4
  br label %388

384:                                              ; preds = %331
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %5, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #4
  br label %388

388:                                              ; preds = %384, %380
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  br label %389

389:                                              ; preds = %388, %376
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #4
  br label %462

390:                                              ; preds = %335
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %5, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  br label %462

394:                                              ; preds = %351
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %5, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #4
  br label %462

398:                                              ; preds = %360, %360, %360, %360
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #4
  invoke void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %399 unwind label %430

399:                                              ; preds = %398
  invoke void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %400 unwind label %434

400:                                              ; preds = %399
  %401 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %402 unwind label %438

402:                                              ; preds = %400
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %403 unwind label %112

403:                                              ; preds = %402
  br label %404

404:                                              ; preds = %403, %360, %360, %360, %360
  %405 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 4)
          to label %406 unwind label %112

406:                                              ; preds = %404
  br label %407

407:                                              ; preds = %406, %360, %360, %360, %360
  %408 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 1)
          to label %409 unwind label %112

409:                                              ; preds = %407
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %410 unwind label %112

410:                                              ; preds = %409
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %411 unwind label %112

411:                                              ; preds = %410
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %412 unwind label %112

412:                                              ; preds = %411
  br label %413

413:                                              ; preds = %412, %360
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %414 unwind label %112

414:                                              ; preds = %413
  %415 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 9
  %416 = load ptr, ptr %415, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #4
  invoke void @_ZN5sc_dt10sc_biguintILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %417 unwind label %444

417:                                              ; preds = %414
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %418 unwind label %448

418:                                              ; preds = %417
  %419 = load ptr, ptr %416, align 8, !tbaa !41
  %420 = getelementptr inbounds ptr, ptr %419, i64 9
  %421 = load ptr, ptr %420, align 8
  invoke void %421(ptr noundef nonnull align 8 dereferenceable(232) %416, ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %422 unwind label %452

422:                                              ; preds = %418
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #4
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %423 unwind label %112

423:                                              ; preds = %422
  %424 = getelementptr inbounds %struct.balancing, ptr %35, i32 0, i32 12
  %425 = load ptr, ptr %424, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #4
  store i8 0, ptr %34, align 1, !tbaa !43
  %426 = load ptr, ptr %425, align 8, !tbaa !41
  %427 = getelementptr inbounds ptr, ptr %426, i64 14
  %428 = load ptr, ptr %427, align 8
  invoke void %428(ptr noundef nonnull align 8 dereferenceable(224) %425, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %429 unwind label %458

429:                                              ; preds = %423
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  br label %158, !llvm.loop !59

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

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

438:                                              ; preds = %400
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %5, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %6, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #4
  br label %442

442:                                              ; preds = %438, %434
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  br label %443

443:                                              ; preds = %442, %430
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #4
  br label %462

444:                                              ; preds = %414
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %5, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %6, align 4
  br label %457

448:                                              ; preds = %417
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %5, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %6, align 4
  br label %456

452:                                              ; preds = %418
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %5, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #4
  br label %456

456:                                              ; preds = %452, %448
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  br label %457

457:                                              ; preds = %456, %444
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #4
  br label %462

458:                                              ; preds = %423
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %5, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  br label %462

462:                                              ; preds = %458, %457, %443, %394, %390, %389, %375, %306, %302, %301, %292, %283, %274, %190, %151, %147, %143, %142, %133, %124, %112
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #4
  br label %463

463:                                              ; preds = %462, %108
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #4
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #4
  br label %464

464:                                              ; preds = %463, %104
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  br label %465

465:                                              ; preds = %464, %100
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #4
  br label %466

466:                                              ; preds = %465, %96
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #4
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #4
  br label %467

467:                                              ; preds = %466
  %468 = load ptr, ptr %5, align 8
  %469 = load i32, ptr %6, align 4
  %470 = insertvalue { ptr, i32 } poison, ptr %468, 0
  %471 = insertvalue { ptr, i32 } %470, i32 %469, 1
  resume { ptr, i32 } %471
}

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

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224)) #0 align 2

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

declare noundef i32 @_ZNK5sc_dt11sc_unsigned7to_uintEv(ptr noundef nonnull align 8 dereferenceable(32)) #2

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

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

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

declare void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2

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

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

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = !{!10, !6, i64 416}
!10 = !{!"_ZTS9balancing", !11, i64 0, !33, i64 232, !6, i64 416, !6, i64 424, !6, i64 432, !6, i64 440, !6, i64 448, !6, i64 456, !6, i64 464, !6, i64 472, !6, i64 480, !6, i64 488, !6, i64 496}
!11 = !{!"_ZTSN7sc_core9sc_moduleE", !12, i64 0, !24, i64 112, !25, i64 120, !27, i64 144, !29, i64 168, !31, i64 192, !6, i64 200, !32, i64 208, !6, i64 216, !6, i64 224}
!12 = !{!"_ZTSN7sc_core9sc_objectE", !6, i64 8, !13, i64 16, !17, i64 40, !21, i64 64, !6, i64 96, !6, i64 104}
!13 = !{!"_ZTSSt6vectorIPN7sc_core8sc_eventESaIS2_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!17 = !{!"_ZTSSt6vectorIPN7sc_core9sc_objectESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !23, i64 8, !7, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = !{!"_ZTSN7sc_core15sc_process_hostE"}
!25 = !{!"_ZTSN7sc_core12sc_sensitiveE", !6, i64 0, !26, i64 8, !6, i64 16}
!26 = !{!"_ZTSN7sc_core12sc_sensitiveUt_E", !7, i64 0}
!27 = !{!"_ZTSN7sc_core16sc_sensitive_posE", !6, i64 0, !28, i64 8, !6, i64 16}
!28 = !{!"_ZTSN7sc_core16sc_sensitive_posUt_E", !7, i64 0}
!29 = !{!"_ZTSN7sc_core16sc_sensitive_negE", !6, i64 0, !30, i64 8, !6, i64 16}
!30 = !{!"_ZTSN7sc_core16sc_sensitive_negUt_E", !7, i64 0}
!31 = !{!"bool", !7, i64 0}
!32 = !{!"int", !7, i64 0}
!33 = !{!"_ZTSN7sc_core5sc_inIbEE", !34, i64 0, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176}
!34 = !{!"_ZTSN7sc_core7sc_portINS_15sc_signal_in_ifIbEELi1ELNS_14sc_port_policyE0EEE", !35, i64 0}
!35 = !{!"_ZTSN7sc_core9sc_port_bINS_15sc_signal_in_ifIbEEEE", !36, i64 0, !6, i64 120, !37, i64 128}
!36 = !{!"_ZTSN7sc_core12sc_port_baseE", !12, i64 0, !6, i64 112}
!37 = !{!"_ZTSSt6vectorIPN7sc_core15sc_signal_in_ifIbEESaIS3_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseIPN7sc_core15sc_signal_in_ifIbEESaIS3_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core15sc_signal_in_ifIbEESaIS3_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core15sc_signal_in_ifIbEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!42, !42, i64 0}
!42 = !{!"vtable pointer", !8, i64 0}
!43 = !{!31, !31, i64 0}
!44 = !{i8 0, i8 2}
!45 = !{}
!46 = !{!10, !6, i64 456}
!47 = !{!10, !6, i64 464}
!48 = !{!10, !6, i64 472}
!49 = !{!10, !6, i64 480}
!50 = !{!10, !6, i64 488}
!51 = !{!10, !6, i64 496}
!52 = !{!10, !6, i64 448}
!53 = distinct !{!53, !54}
!54 = !{!"llvm.loop.mustprogress"}
!55 = !{!10, !6, i64 424}
!56 = !{!32, !32, i64 0}
!57 = !{!10, !6, i64 432}
!58 = !{!10, !6, i64 440}
!59 = distinct !{!59, !54}


; 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.sc_dt::sc_biguint" = type { %"class.sc_dt::sc_unsigned" }
%"class.sc_dt::sc_unsigned" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_value_base" = type { ptr }
%"class.sc_dt::sc_bigint" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_signed" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }

; Function Attrs: mustprogress noreturn uwtable
define dso_local void @_ZN9balancing5entryEv(ptr noundef nonnull align 8 dereferenceable(504) %0) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.sc_dt::sc_biguint", align 8
  %3 = alloca %"class.sc_dt::sc_bigint", align 8
  %4 = alloca %"class.sc_dt::sc_biguint", align 8
  %5 = alloca %"class.sc_dt::sc_unsigned", align 8
  %6 = alloca %"class.sc_dt::sc_unsigned", align 8
  %7 = alloca %"class.sc_dt::sc_bv", align 8
  %8 = alloca %"class.sc_dt::sc_bv", align 8
  %9 = alloca %"class.sc_dt::sc_bv", align 8
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca i8, align 1
  %14 = alloca %"class.sc_dt::sc_bv", align 8
  %15 = alloca %"class.sc_dt::sc_bv", align 8
  %16 = alloca %"class.sc_dt::sc_bv", align 8
  %17 = alloca %"class.sc_dt::sc_bv", align 8
  %18 = alloca i8, align 1
  %19 = alloca i8, align 1
  %20 = alloca %"class.sc_dt::sc_signed", align 8
  %21 = alloca %"class.sc_dt::sc_signed", align 8
  %22 = alloca %"class.sc_dt::sc_bv", align 8
  %23 = alloca %"class.sc_dt::sc_biguint", align 8
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  %26 = alloca %"class.sc_dt::sc_signed", align 8
  %27 = alloca %"class.sc_dt::sc_signed", align 8
  %28 = alloca %"class.sc_dt::sc_bv", align 8
  %29 = alloca %"class.sc_dt::sc_biguint", align 8
  %30 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #5
  call void @_ZN5sc_dt10sc_biguintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #5
  invoke void @_ZN5sc_dt9sc_bigintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %31 unwind label %87

31:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #5
  invoke void @_ZN5sc_dt10sc_biguintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %32 unwind label %89

32:                                               ; preds = %31
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #5
  invoke void @_ZN5sc_dt11sc_unsignedC1Ei(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 12)
          to label %33 unwind label %91

33:                                               ; preds = %32
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #5
  invoke void @_ZN5sc_dt11sc_unsignedC1Ei(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 12)
          to label %34 unwind label %93

34:                                               ; preds = %33
  %35 = getelementptr inbounds i8, ptr %0, i64 416
  %36 = load ptr, ptr %35, align 8, !tbaa !5
  %37 = load ptr, ptr %36, align 8, !tbaa !40
  %38 = getelementptr inbounds i8, ptr %37, i64 56
  %39 = load ptr, ptr %38, align 8
  %40 = invoke noundef nonnull align 1 dereferenceable(1) ptr %39(ptr noundef nonnull align 8 dereferenceable(224) %36)
          to label %41 unwind label %.loopexit.split-lp.loopexit.split-lp

41:                                               ; preds = %34
  %42 = load i8, ptr %40, align 1, !tbaa !42, !range !43, !noundef !44
  %43 = trunc nuw i8 %42 to i1
  br i1 %43, label %44, label %.invoke

44:                                               ; preds = %41
  %45 = getelementptr inbounds i8, ptr %0, i64 456
  %46 = load ptr, ptr %45, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef 0)
          to label %47 unwind label %95

47:                                               ; preds = %44
  %48 = load ptr, ptr %46, align 8, !tbaa !40
  %49 = getelementptr inbounds i8, ptr %48, i64 72
  %50 = load ptr, ptr %49, align 8
  invoke void %50(ptr noundef nonnull align 8 dereferenceable(232) %46, ptr noundef nonnull align 8 dereferenceable(24) %7)
          to label %51 unwind label %97

51:                                               ; preds = %47
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #5
  %52 = getelementptr inbounds i8, ptr %0, i64 464
  %53 = load ptr, ptr %52, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %8, i32 noundef 0)
          to label %54 unwind label %100

54:                                               ; preds = %51
  %55 = load ptr, ptr %53, align 8, !tbaa !40
  %56 = getelementptr inbounds i8, ptr %55, i64 72
  %57 = load ptr, ptr %56, align 8
  invoke void %57(ptr noundef nonnull align 8 dereferenceable(232) %53, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %58 unwind label %102

58:                                               ; preds = %54
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #5
  %59 = getelementptr inbounds i8, ptr %0, i64 472
  %60 = load ptr, ptr %59, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %9, i32 noundef 0)
          to label %61 unwind label %105

61:                                               ; preds = %58
  %62 = load ptr, ptr %60, align 8, !tbaa !40
  %63 = getelementptr inbounds i8, ptr %62, i64 72
  %64 = load ptr, ptr %63, align 8
  invoke void %64(ptr noundef nonnull align 8 dereferenceable(232) %60, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %65 unwind label %107

65:                                               ; preds = %61
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #5
  %66 = getelementptr inbounds i8, ptr %0, i64 480
  %67 = load ptr, ptr %66, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #5
  store i8 0, ptr %10, align 1, !tbaa !42
  %68 = load ptr, ptr %67, align 8, !tbaa !40
  %69 = getelementptr inbounds i8, ptr %68, i64 112
  %70 = load ptr, ptr %69, align 8
  invoke void %70(ptr noundef nonnull align 8 dereferenceable(224) %67, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %71 unwind label %110

71:                                               ; preds = %65
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  %72 = getelementptr inbounds i8, ptr %0, i64 488
  %73 = load ptr, ptr %72, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #5
  store i8 0, ptr %11, align 1, !tbaa !42
  %74 = load ptr, ptr %73, align 8, !tbaa !40
  %75 = getelementptr inbounds i8, ptr %74, i64 112
  %76 = load ptr, ptr %75, align 8
  invoke void %76(ptr noundef nonnull align 8 dereferenceable(224) %73, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %77 unwind label %112

77:                                               ; preds = %71
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #5
  %78 = getelementptr inbounds i8, ptr %0, i64 496
  %79 = load ptr, ptr %78, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #5
  store i8 0, ptr %12, align 1, !tbaa !42
  %80 = load ptr, ptr %79, align 8, !tbaa !40
  %81 = getelementptr inbounds i8, ptr %80, i64 112
  %82 = load ptr, ptr %81, align 8
  invoke void %82(ptr noundef nonnull align 8 dereferenceable(224) %79, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %83 unwind label %114

83:                                               ; preds = %77
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #5
  %84 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 0)
          to label %85 unwind label %.loopexit.split-lp.loopexit.split-lp

85:                                               ; preds = %83
  %86 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 0)
          to label %.invoke unwind label %.loopexit.split-lp.loopexit.split-lp

87:                                               ; preds = %1
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %348

89:                                               ; preds = %31
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %347

91:                                               ; preds = %32
  %92 = landingpad { ptr, i32 }
          cleanup
  br label %346

93:                                               ; preds = %33
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %345

.loopexit:                                        ; preds = %127, %128
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit:                      ; preds = %320, %312, %311, %310, %309, %307, %305, %304, %277, %276, %269, %263, %262, %249, %248, %247, %246, %244, %243, %241, %240, %209, %208, %201, %199, %193, %192, %186, %179, %178, %171, %170, %169, %162, %155, %154, %153, %152, %147, %140, %134
  %lpad.loopexit60 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp:             ; preds = %.invoke, %85, %83, %34
  %lpad.loopexit.split-lp61 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

95:                                               ; preds = %44
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %99

97:                                               ; preds = %47
  %98 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  br label %99

99:                                               ; preds = %97, %95
  %.pn = phi { ptr, i32 } [ %98, %97 ], [ %96, %95 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #5
  br label %.loopexit.split-lp

100:                                              ; preds = %51
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %104

102:                                              ; preds = %54
  %103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  br label %104

104:                                              ; preds = %102, %100
  %.pn30 = phi { ptr, i32 } [ %103, %102 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #5
  br label %.loopexit.split-lp

105:                                              ; preds = %58
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %109

107:                                              ; preds = %61
  %108 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  br label %109

109:                                              ; preds = %107, %105
  %.pn32 = phi { ptr, i32 } [ %108, %107 ], [ %106, %105 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #5
  br label %.loopexit.split-lp

110:                                              ; preds = %65
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  br label %.loopexit.split-lp

112:                                              ; preds = %71
  %113 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #5
  br label %.loopexit.split-lp

114:                                              ; preds = %77
  %115 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #5
  br label %.loopexit.split-lp

.invoke:                                          ; preds = %85, %41
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %116 unwind label %.loopexit.split-lp.loopexit.split-lp

116:                                              ; preds = %.invoke
  %117 = getelementptr inbounds i8, ptr %0, i64 448
  %118 = getelementptr inbounds i8, ptr %0, i64 424
  %119 = getelementptr inbounds i8, ptr %0, i64 480
  %120 = getelementptr inbounds i8, ptr %0, i64 456
  %121 = getelementptr inbounds i8, ptr %0, i64 432
  %122 = getelementptr inbounds i8, ptr %0, i64 488
  %123 = getelementptr inbounds i8, ptr %0, i64 464
  %124 = getelementptr inbounds i8, ptr %0, i64 440
  %125 = getelementptr inbounds i8, ptr %0, i64 496
  %126 = getelementptr inbounds i8, ptr %0, i64 472
  br label %127

127:                                              ; preds = %.backedge, %116
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %128 unwind label %.loopexit

128:                                              ; preds = %127
  %129 = load ptr, ptr %117, align 8, !tbaa !51
  %130 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %129)
          to label %131 unwind label %.loopexit

131:                                              ; preds = %128
  %132 = load i8, ptr %130, align 1, !tbaa !42, !range !43, !noundef !44
  %133 = icmp eq i8 %132, 0
  br i1 %133, label %.backedge, label %134

.backedge:                                        ; preds = %131, %326
  br label %127, !llvm.loop !52

134:                                              ; preds = %131
  %135 = load ptr, ptr %118, align 8, !tbaa !54
  %136 = load ptr, ptr %135, align 8, !tbaa !40
  %137 = getelementptr inbounds i8, ptr %136, i64 40
  %138 = load ptr, ptr %137, align 8
  %139 = invoke noundef nonnull align 8 dereferenceable(24) ptr %138(ptr noundef nonnull align 8 dereferenceable(232) %135)
          to label %140 unwind label %.loopexit.split-lp.loopexit

140:                                              ; preds = %134
  %141 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(24) %139)
          to label %142 unwind label %.loopexit.split-lp.loopexit

142:                                              ; preds = %140
  %143 = load ptr, ptr %119, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #5
  store i8 1, ptr %13, align 1, !tbaa !42
  %144 = load ptr, ptr %143, align 8, !tbaa !40
  %145 = getelementptr inbounds i8, ptr %144, i64 112
  %146 = load ptr, ptr %145, align 8
  invoke void %146(ptr noundef nonnull align 8 dereferenceable(224) %143, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %147 unwind label %150

147:                                              ; preds = %142
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #5
  %148 = invoke noundef i32 @_ZNK5sc_dt11sc_unsigned7to_uintEv(ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %149 unwind label %.loopexit.split-lp.loopexit

149:                                              ; preds = %147
  switch i32 %148, label %180 [
    i32 4, label %152
    i32 3, label %163
    i32 2, label %172
  ]

150:                                              ; preds = %142
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #5
  br label %.loopexit.split-lp

152:                                              ; preds = %149
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %153 unwind label %.loopexit.split-lp.loopexit

153:                                              ; preds = %152
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %154 unwind label %.loopexit.split-lp.loopexit

154:                                              ; preds = %153
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %155 unwind label %.loopexit.split-lp.loopexit

155:                                              ; preds = %154
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %156 unwind label %.loopexit.split-lp.loopexit

156:                                              ; preds = %155
  %157 = load ptr, ptr %120, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %14, i32 noundef 3)
          to label %158 unwind label %212

158:                                              ; preds = %156
  %159 = load ptr, ptr %157, align 8, !tbaa !40
  %160 = getelementptr inbounds i8, ptr %159, i64 72
  %161 = load ptr, ptr %160, align 8
  invoke void %161(ptr noundef nonnull align 8 dereferenceable(232) %157, ptr noundef nonnull align 8 dereferenceable(24) %14)
          to label %162 unwind label %214

162:                                              ; preds = %158
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %163 unwind label %.loopexit.split-lp.loopexit

163:                                              ; preds = %162, %149
  %164 = load ptr, ptr %120, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %15, i32 noundef 2)
          to label %165 unwind label %217

165:                                              ; preds = %163
  %166 = load ptr, ptr %164, align 8, !tbaa !40
  %167 = getelementptr inbounds i8, ptr %166, i64 72
  %168 = load ptr, ptr %167, align 8
  invoke void %168(ptr noundef nonnull align 8 dereferenceable(232) %164, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %169 unwind label %219

169:                                              ; preds = %165
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %170 unwind label %.loopexit.split-lp.loopexit

170:                                              ; preds = %169
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %171 unwind label %.loopexit.split-lp.loopexit

171:                                              ; preds = %170
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %172 unwind label %.loopexit.split-lp.loopexit

172:                                              ; preds = %171, %149
  %173 = load ptr, ptr %120, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %16, i32 noundef 1)
          to label %174 unwind label %222

174:                                              ; preds = %172
  %175 = load ptr, ptr %173, align 8, !tbaa !40
  %176 = getelementptr inbounds i8, ptr %175, i64 72
  %177 = load ptr, ptr %176, align 8
  invoke void %177(ptr noundef nonnull align 8 dereferenceable(232) %173, ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %178 unwind label %224

178:                                              ; preds = %174
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %179 unwind label %.loopexit.split-lp.loopexit

179:                                              ; preds = %178
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %180 unwind label %.loopexit.split-lp.loopexit

180:                                              ; preds = %179, %149
  %181 = load ptr, ptr %120, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %182 unwind label %227

182:                                              ; preds = %180
  %183 = load ptr, ptr %181, align 8, !tbaa !40
  %184 = getelementptr inbounds i8, ptr %183, i64 72
  %185 = load ptr, ptr %184, align 8
  invoke void %185(ptr noundef nonnull align 8 dereferenceable(232) %181, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %186 unwind label %229

186:                                              ; preds = %182
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %187 unwind label %.loopexit.split-lp.loopexit

187:                                              ; preds = %186
  %188 = load ptr, ptr %119, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #5
  store i8 0, ptr %18, align 1, !tbaa !42
  %189 = load ptr, ptr %188, align 8, !tbaa !40
  %190 = getelementptr inbounds i8, ptr %189, i64 112
  %191 = load ptr, ptr %190, align 8
  invoke void %191(ptr noundef nonnull align 8 dereferenceable(224) %188, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %192 unwind label %232

192:                                              ; preds = %187
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %193 unwind label %.loopexit.split-lp.loopexit

193:                                              ; preds = %192
  %194 = load ptr, ptr %121, align 8, !tbaa !55
  %195 = load ptr, ptr %194, align 8, !tbaa !40
  %196 = getelementptr inbounds i8, ptr %195, i64 40
  %197 = load ptr, ptr %196, align 8
  %198 = invoke noundef nonnull align 8 dereferenceable(24) ptr %197(ptr noundef nonnull align 8 dereferenceable(232) %194)
          to label %199 unwind label %.loopexit.split-lp.loopexit

199:                                              ; preds = %193
  %200 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(24) %198)
          to label %201 unwind label %.loopexit.split-lp.loopexit

201:                                              ; preds = %199
  %202 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %203 unwind label %.loopexit.split-lp.loopexit

203:                                              ; preds = %201
  %204 = load ptr, ptr %122, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #5
  store i8 1, ptr %19, align 1, !tbaa !42
  %205 = load ptr, ptr %204, align 8, !tbaa !40
  %206 = getelementptr inbounds i8, ptr %205, i64 112
  %207 = load ptr, ptr %206, align 8
  invoke void %207(ptr noundef nonnull align 8 dereferenceable(224) %204, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %208 unwind label %234

208:                                              ; preds = %203
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %209 unwind label %.loopexit.split-lp.loopexit

209:                                              ; preds = %208
  %210 = invoke noundef i32 @_ZNK5sc_dt11sc_unsigned7to_uintEv(ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %211 unwind label %.loopexit.split-lp.loopexit

211:                                              ; preds = %209
  switch i32 %210, label %249 [
    i32 0, label %236
    i32 1, label %236
    i32 2, label %236
    i32 3, label %236
    i32 4, label %241
    i32 5, label %241
    i32 6, label %241
    i32 7, label %241
    i32 11, label %244
  ]

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

214:                                              ; preds = %158
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #5
  br label %216

216:                                              ; preds = %214, %212
  %.pn34 = phi { ptr, i32 } [ %215, %214 ], [ %213, %212 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #5
  br label %.loopexit.split-lp

217:                                              ; preds = %163
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %221

219:                                              ; preds = %165
  %220 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  br label %221

221:                                              ; preds = %219, %217
  %.pn36 = phi { ptr, i32 } [ %220, %219 ], [ %218, %217 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #5
  br label %.loopexit.split-lp

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

224:                                              ; preds = %174
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #5
  br label %226

226:                                              ; preds = %224, %222
  %.pn38 = phi { ptr, i32 } [ %225, %224 ], [ %223, %222 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #5
  br label %.loopexit.split-lp

227:                                              ; preds = %180
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %231

229:                                              ; preds = %182
  %230 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  br label %231

231:                                              ; preds = %229, %227
  %.pn40 = phi { ptr, i32 } [ %230, %229 ], [ %228, %227 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #5
  br label %.loopexit.split-lp

232:                                              ; preds = %187
  %233 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #5
  br label %.loopexit.split-lp

234:                                              ; preds = %203
  %235 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #5
  br label %.loopexit.split-lp

236:                                              ; preds = %211, %211, %211, %211
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #5
  invoke void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %237 unwind label %280

237:                                              ; preds = %236
  invoke void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %238 unwind label %282

238:                                              ; preds = %237
  %239 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %240 unwind label %284

240:                                              ; preds = %238
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %241 unwind label %.loopexit.split-lp.loopexit

241:                                              ; preds = %240, %211, %211, %211, %211
  %242 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 4)
          to label %243 unwind label %.loopexit.split-lp.loopexit

243:                                              ; preds = %241
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %244 unwind label %.loopexit.split-lp.loopexit

244:                                              ; preds = %243, %211
  %245 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 1)
          to label %246 unwind label %.loopexit.split-lp.loopexit

246:                                              ; preds = %244
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %247 unwind label %.loopexit.split-lp.loopexit

247:                                              ; preds = %246
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %248 unwind label %.loopexit.split-lp.loopexit

248:                                              ; preds = %247
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %249 unwind label %.loopexit.split-lp.loopexit

249:                                              ; preds = %248, %211
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %250 unwind label %.loopexit.split-lp.loopexit

250:                                              ; preds = %249
  %251 = load ptr, ptr %123, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #5
  invoke void @_ZN5sc_dt10sc_biguintILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %252 unwind label %288

252:                                              ; preds = %250
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %253 unwind label %290

253:                                              ; preds = %252
  %254 = load ptr, ptr %251, align 8, !tbaa !40
  %255 = getelementptr inbounds i8, ptr %254, i64 72
  %256 = load ptr, ptr %255, align 8
  invoke void %256(ptr noundef nonnull align 8 dereferenceable(232) %251, ptr noundef nonnull align 8 dereferenceable(24) %22)
          to label %257 unwind label %292

257:                                              ; preds = %253
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #5
  %258 = load ptr, ptr %122, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #5
  store i8 0, ptr %24, align 1, !tbaa !42
  %259 = load ptr, ptr %258, align 8, !tbaa !40
  %260 = getelementptr inbounds i8, ptr %259, i64 112
  %261 = load ptr, ptr %260, align 8
  invoke void %261(ptr noundef nonnull align 8 dereferenceable(224) %258, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %262 unwind label %296

262:                                              ; preds = %257
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %263 unwind label %.loopexit.split-lp.loopexit

263:                                              ; preds = %262
  %264 = load ptr, ptr %124, align 8, !tbaa !56
  %265 = load ptr, ptr %264, align 8, !tbaa !40
  %266 = getelementptr inbounds i8, ptr %265, i64 40
  %267 = load ptr, ptr %266, align 8
  %268 = invoke noundef nonnull align 8 dereferenceable(24) ptr %267(ptr noundef nonnull align 8 dereferenceable(232) %264)
          to label %269 unwind label %.loopexit.split-lp.loopexit

269:                                              ; preds = %263
  %270 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(24) %268)
          to label %271 unwind label %.loopexit.split-lp.loopexit

271:                                              ; preds = %269
  %272 = load ptr, ptr %125, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #5
  store i8 1, ptr %25, align 1, !tbaa !42
  %273 = load ptr, ptr %272, align 8, !tbaa !40
  %274 = getelementptr inbounds i8, ptr %273, i64 112
  %275 = load ptr, ptr %274, align 8
  invoke void %275(ptr noundef nonnull align 8 dereferenceable(224) %272, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %276 unwind label %298

276:                                              ; preds = %271
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %277 unwind label %.loopexit.split-lp.loopexit

277:                                              ; preds = %276
  %278 = invoke noundef i32 @_ZNK5sc_dt11sc_unsigned7to_uintEv(ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %279 unwind label %.loopexit.split-lp.loopexit

279:                                              ; preds = %277
  switch i32 %278, label %312 [
    i32 0, label %300
    i32 1, label %300
    i32 2, label %300
    i32 3, label %300
    i32 4, label %305
    i32 5, label %305
    i32 6, label %305
    i32 7, label %305
    i32 8, label %307
    i32 9, label %307
    i32 10, label %307
    i32 11, label %307
  ]

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

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

284:                                              ; preds = %238
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  br label %286

286:                                              ; preds = %284, %282
  %.pn42 = phi { ptr, i32 } [ %285, %284 ], [ %283, %282 ]
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  br label %287

287:                                              ; preds = %286, %280
  %.pn42.pn = phi { ptr, i32 } [ %.pn42, %286 ], [ %281, %280 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  br label %.loopexit.split-lp

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

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

292:                                              ; preds = %253
  %293 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  br label %294

294:                                              ; preds = %292, %290
  %.pn45 = phi { ptr, i32 } [ %293, %292 ], [ %291, %290 ]
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  br label %295

295:                                              ; preds = %294, %288
  %.pn45.pn = phi { ptr, i32 } [ %.pn45, %294 ], [ %289, %288 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #5
  br label %.loopexit.split-lp

296:                                              ; preds = %257
  %297 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #5
  br label %.loopexit.split-lp

298:                                              ; preds = %271
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #5
  br label %.loopexit.split-lp

300:                                              ; preds = %279, %279, %279, %279
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #5
  invoke void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %301 unwind label %327

301:                                              ; preds = %300
  invoke void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %302 unwind label %329

302:                                              ; preds = %301
  %303 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %304 unwind label %331

304:                                              ; preds = %302
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %305 unwind label %.loopexit.split-lp.loopexit

305:                                              ; preds = %304, %279, %279, %279, %279
  %306 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 4)
          to label %307 unwind label %.loopexit.split-lp.loopexit

307:                                              ; preds = %305, %279, %279, %279, %279
  %308 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 1)
          to label %309 unwind label %.loopexit.split-lp.loopexit

309:                                              ; preds = %307
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %310 unwind label %.loopexit.split-lp.loopexit

310:                                              ; preds = %309
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %311 unwind label %.loopexit.split-lp.loopexit

311:                                              ; preds = %310
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %312 unwind label %.loopexit.split-lp.loopexit

312:                                              ; preds = %311, %279
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %313 unwind label %.loopexit.split-lp.loopexit

313:                                              ; preds = %312
  %314 = load ptr, ptr %126, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #5
  invoke void @_ZN5sc_dt10sc_biguintILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %315 unwind label %335

315:                                              ; preds = %313
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %316 unwind label %337

316:                                              ; preds = %315
  %317 = load ptr, ptr %314, align 8, !tbaa !40
  %318 = getelementptr inbounds i8, ptr %317, i64 72
  %319 = load ptr, ptr %318, align 8
  invoke void %319(ptr noundef nonnull align 8 dereferenceable(232) %314, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %320 unwind label %339

320:                                              ; preds = %316
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %321 unwind label %.loopexit.split-lp.loopexit

321:                                              ; preds = %320
  %322 = load ptr, ptr %125, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #5
  store i8 0, ptr %30, align 1, !tbaa !42
  %323 = load ptr, ptr %322, align 8, !tbaa !40
  %324 = getelementptr inbounds i8, ptr %323, i64 112
  %325 = load ptr, ptr %324, align 8
  invoke void %325(ptr noundef nonnull align 8 dereferenceable(224) %322, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %326 unwind label %343

326:                                              ; preds = %321
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #5
  br label %.backedge

327:                                              ; preds = %300
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %334

329:                                              ; preds = %301
  %330 = landingpad { ptr, i32 }
          cleanup
  br label %333

331:                                              ; preds = %302
  %332 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  br label %333

333:                                              ; preds = %331, %329
  %.pn48 = phi { ptr, i32 } [ %332, %331 ], [ %330, %329 ]
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br label %334

334:                                              ; preds = %333, %327
  %.pn48.pn = phi { ptr, i32 } [ %.pn48, %333 ], [ %328, %327 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  br label %.loopexit.split-lp

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

337:                                              ; preds = %315
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %341

339:                                              ; preds = %316
  %340 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #5
  br label %341

341:                                              ; preds = %339, %337
  %.pn51 = phi { ptr, i32 } [ %340, %339 ], [ %338, %337 ]
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  br label %342

342:                                              ; preds = %341, %335
  %.pn51.pn = phi { ptr, i32 } [ %.pn51, %341 ], [ %336, %335 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #5
  br label %.loopexit.split-lp

343:                                              ; preds = %321
  %344 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #5
  br label %.loopexit.split-lp

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %343, %342, %334, %298, %296, %295, %287, %234, %232, %231, %226, %221, %216, %150, %114, %112, %110, %109, %104, %99
  %.pn54 = phi { ptr, i32 } [ %344, %343 ], [ %.pn51.pn, %342 ], [ %.pn48.pn, %334 ], [ %299, %298 ], [ %297, %296 ], [ %.pn45.pn, %295 ], [ %.pn42.pn, %287 ], [ %235, %234 ], [ %233, %232 ], [ %.pn40, %231 ], [ %.pn38, %226 ], [ %.pn36, %221 ], [ %.pn34, %216 ], [ %151, %150 ], [ %115, %114 ], [ %113, %112 ], [ %111, %110 ], [ %.pn32, %109 ], [ %.pn30, %104 ], [ %.pn, %99 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit60, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp61, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  br label %345

345:                                              ; preds = %.loopexit.split-lp, %93
  %.pn54.pn = phi { ptr, i32 } [ %.pn54, %.loopexit.split-lp ], [ %94, %93 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  br label %346

346:                                              ; preds = %345, %91
  %.pn54.pn.pn = phi { ptr, i32 } [ %.pn54.pn, %345 ], [ %92, %91 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #5
  br label %347

347:                                              ; preds = %346, %89
  %.pn54.pn.pn.pn = phi { ptr, i32 } [ %.pn54.pn.pn, %346 ], [ %90, %89 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #5
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  br label %348

348:                                              ; preds = %347, %87
  %.pn54.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn54.pn.pn.pn, %347 ], [ %88, %87 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #5
  resume { ptr, i32 } %.pn54.pn.pn.pn.pn
}

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

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

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

declare i32 @__gxx_personality_v0(...)

declare void @_ZN5sc_dt11sc_unsignedC1Ei(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #3

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224)) local_unnamed_addr #2 align 2

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

declare noundef i32 @_ZNK5sc_dt11sc_unsigned7to_uintEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

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

declare void @_ZN5sc_dtmlERKNS_9sc_signedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

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

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

attributes #0 = { mustprogress noreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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, !9, i64 416}
!6 = !{!"_ZTS9balancing", !7, i64 0, !32, i64 232, !9, i64 416, !9, i64 424, !9, i64 432, !9, i64 440, !9, i64 448, !9, i64 456, !9, i64 464, !9, i64 472, !9, i64 480, !9, i64 488, !9, i64 496}
!7 = !{!"_ZTSN7sc_core9sc_moduleE", !8, i64 0, !23, i64 112, !24, i64 120, !26, i64 144, !28, i64 168, !30, i64 192, !9, i64 200, !31, i64 208, !9, i64 216, !9, i64 224}
!8 = !{!"_ZTSN7sc_core9sc_objectE", !9, i64 8, !12, i64 16, !16, i64 40, !20, i64 64, !9, i64 96, !9, i64 104}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"_ZTSSt6vectorIPN7sc_core8sc_eventESaIS2_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!16 = !{!"_ZTSSt6vectorIPN7sc_core9sc_objectESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !22, i64 8, !10, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!22 = !{!"long", !10, i64 0}
!23 = !{!"_ZTSN7sc_core15sc_process_hostE"}
!24 = !{!"_ZTSN7sc_core12sc_sensitiveE", !9, i64 0, !25, i64 8, !9, i64 16}
!25 = !{!"_ZTSN7sc_core12sc_sensitiveUt_E", !10, i64 0}
!26 = !{!"_ZTSN7sc_core16sc_sensitive_posE", !9, i64 0, !27, i64 8, !9, i64 16}
!27 = !{!"_ZTSN7sc_core16sc_sensitive_posUt_E", !10, i64 0}
!28 = !{!"_ZTSN7sc_core16sc_sensitive_negE", !9, i64 0, !29, i64 8, !9, i64 16}
!29 = !{!"_ZTSN7sc_core16sc_sensitive_negUt_E", !10, i64 0}
!30 = !{!"bool", !10, i64 0}
!31 = !{!"int", !10, i64 0}
!32 = !{!"_ZTSN7sc_core5sc_inIbEE", !33, i64 0, !9, i64 152, !9, i64 160, !9, i64 168, !9, i64 176}
!33 = !{!"_ZTSN7sc_core7sc_portINS_15sc_signal_in_ifIbEELi1ELNS_14sc_port_policyE0EEE", !34, i64 0}
!34 = !{!"_ZTSN7sc_core9sc_port_bINS_15sc_signal_in_ifIbEEEE", !35, i64 0, !9, i64 120, !36, i64 128}
!35 = !{!"_ZTSN7sc_core12sc_port_baseE", !8, i64 0, !9, i64 112}
!36 = !{!"_ZTSSt6vectorIPN7sc_core15sc_signal_in_ifIbEESaIS3_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseIPN7sc_core15sc_signal_in_ifIbEESaIS3_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core15sc_signal_in_ifIbEESaIS3_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core15sc_signal_in_ifIbEESaIS3_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!40 = !{!41, !41, i64 0}
!41 = !{!"vtable pointer", !11, i64 0}
!42 = !{!30, !30, i64 0}
!43 = !{i8 0, i8 2}
!44 = !{}
!45 = !{!6, !9, i64 456}
!46 = !{!6, !9, i64 464}
!47 = !{!6, !9, i64 472}
!48 = !{!6, !9, i64 480}
!49 = !{!6, !9, i64 488}
!50 = !{!6, !9, i64 496}
!51 = !{!6, !9, i64 448}
!52 = distinct !{!52, !53}
!53 = !{!"llvm.loop.mustprogress"}
!54 = !{!6, !9, i64 424}
!55 = !{!6, !9, i64 432}
!56 = !{!6, !9, i64 440}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass