; LLVM IR from gem5/gem5 :: src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/subtract/subt_1c242289 (ZN11subtraction5entryEv)

; 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_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_value_base" = type { ptr }
%"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_bigint.0" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_biguint.1" = type { %"class.sc_dt::sc_unsigned" }
%"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 }
%"class.sc_dt::sc_bv.27" = type { %"class.sc_dt::sc_bv_base" }
%struct.subtraction = type { %"class.sc_core::sc_module", %"class.sc_core::sc_in", ptr, ptr, 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.2", %"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.2" = type { %"struct.std::_Vector_base.3" }
%"struct.std::_Vector_base.3" = 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.10" }
%"class.sc_core::sc_port_base" = type { %"class.sc_core::sc_object", ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = 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 @_ZN11subtraction5entryEv(ptr noundef nonnull align 8 dereferenceable(520) %0) #0 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca %"class.sc_dt::sc_bigint", align 8
  %5 = alloca %"class.sc_dt::sc_biguint", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.sc_dt::sc_bigint.0", align 8
  %9 = alloca %"class.sc_dt::sc_biguint.1", align 8
  %10 = alloca i8, align 1
  %11 = alloca %"class.sc_dt::sc_signed", align 8
  %12 = alloca %"class.sc_dt::sc_signed", align 8
  %13 = alloca %"class.sc_dt::sc_signed", align 8
  %14 = alloca %"class.sc_dt::sc_signed", 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.27", align 8
  %18 = alloca %"class.sc_dt::sc_bv.27", align 8
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca i32, align 4
  %22 = alloca %"class.sc_dt::sc_bv", align 8
  %23 = alloca %"class.sc_dt::sc_signed", align 8
  %24 = alloca %"class.sc_dt::sc_bv", align 8
  %25 = alloca %"class.sc_dt::sc_unsigned", align 8
  %26 = alloca %"class.sc_dt::sc_bv.27", align 8
  %27 = alloca %"class.sc_dt::sc_signed", align 8
  %28 = alloca %"class.sc_dt::sc_bv.27", align 8
  %29 = alloca %"class.sc_dt::sc_unsigned", align 8
  %30 = alloca i8, align 1
  %31 = alloca i8, align 1
  %32 = alloca %"class.sc_dt::sc_bv", align 8
  %33 = alloca %"class.sc_dt::sc_bv", align 8
  %34 = alloca %"class.sc_dt::sc_bv.27", align 8
  %35 = alloca %"class.sc_dt::sc_bv.27", align 8
  %36 = alloca i8, align 1
  %37 = alloca i8, align 1
  %38 = alloca %"class.sc_dt::sc_signed", align 8
  %39 = alloca %"class.sc_dt::sc_signed", align 8
  %40 = alloca %"class.sc_dt::sc_signed", align 8
  %41 = alloca %"class.sc_dt::sc_signed", align 8
  %42 = alloca %"class.sc_dt::sc_bv", align 8
  %43 = alloca %"class.sc_dt::sc_bv", align 8
  %44 = alloca %"class.sc_dt::sc_bv.27", align 8
  %45 = alloca %"class.sc_dt::sc_bv.27", align 8
  %46 = alloca i8, align 1
  %47 = alloca i8, align 1
  %48 = alloca %"class.sc_dt::sc_bv", align 8
  %49 = alloca %"class.sc_dt::sc_bv", align 8
  %50 = alloca %"class.sc_dt::sc_bv.27", align 8
  %51 = alloca %"class.sc_dt::sc_bv.27", align 8
  %52 = alloca i8, align 1
  %53 = alloca i8, align 1
  %54 = alloca %"class.sc_dt::sc_signed", align 8
  %55 = alloca %"class.sc_dt::sc_signed", align 8
  %56 = alloca %"class.sc_dt::sc_signed", align 8
  %57 = alloca %"class.sc_dt::sc_signed", align 8
  %58 = alloca %"class.sc_dt::sc_signed", align 8
  %59 = alloca %"class.sc_dt::sc_bv", align 8
  %60 = alloca %"class.sc_dt::sc_bv", align 8
  %61 = alloca %"class.sc_dt::sc_bv.27", align 8
  %62 = alloca %"class.sc_dt::sc_bv.27", align 8
  %63 = alloca i8, align 1
  %64 = alloca i8, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %65 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #5
  call void @_ZN5sc_dt9sc_bigintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4)
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #5
  invoke void @_ZN5sc_dt10sc_biguintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %66 unwind label %88

66:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #5
  invoke void @_ZN5sc_dt9sc_bigintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %67 unwind label %92

67:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #5
  invoke void @_ZN5sc_dt10sc_biguintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %68 unwind label %96

68:                                               ; preds = %67
  %69 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 2
  %70 = load ptr, ptr %69, align 8, !tbaa !9
  %71 = load ptr, ptr %70, align 8, !tbaa !41
  %72 = getelementptr inbounds ptr, ptr %71, i64 7
  %73 = load ptr, ptr %72, align 8
  %74 = invoke noundef nonnull align 1 dereferenceable(1) ptr %73(ptr noundef nonnull align 8 dereferenceable(224) %70)
          to label %75 unwind label %100

75:                                               ; preds = %68
  %76 = load i8, ptr %74, align 1, !tbaa !43, !range !44, !noundef !45
  %77 = trunc i8 %76 to i1
  %78 = zext i1 %77 to i32
  %79 = icmp eq i32 %78, 1
  br i1 %79, label %80, label %108

80:                                               ; preds = %75
  %81 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %82 = load ptr, ptr %81, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #5
  store i8 0, ptr %10, align 1, !tbaa !43
  %83 = load ptr, ptr %82, align 8, !tbaa !41
  %84 = getelementptr inbounds ptr, ptr %83, i64 14
  %85 = load ptr, ptr %84, align 8
  invoke void %85(ptr noundef nonnull align 8 dereferenceable(224) %82, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %86 unwind label %104

86:                                               ; preds = %80
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %87 unwind label %100

87:                                               ; preds = %86
  br label %110

88:                                               ; preds = %1
  %89 = landingpad { ptr, i32 }
          cleanup
  %90 = extractvalue { ptr, i32 } %89, 0
  store ptr %90, ptr %6, align 8
  %91 = extractvalue { ptr, i32 } %89, 1
  store i32 %91, ptr %7, align 4
  br label %942

92:                                               ; preds = %66
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %6, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %7, align 4
  br label %941

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

100:                                              ; preds = %532, %525, %485, %484, %468, %461, %421, %420, %418, %416, %414, %410, %409, %402, %362, %361, %346, %339, %289, %288, %281, %234, %227, %187, %186, %170, %163, %161, %154, %152, %145, %143, %135, %128, %127, %125, %113, %108, %86, %68
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %6, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %7, align 4
  br label %939

104:                                              ; preds = %80
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %6, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #5
  br label %939

108:                                              ; preds = %75
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %109 unwind label %100

109:                                              ; preds = %108
  br label %110

110:                                              ; preds = %109, %87
  br label %111

111:                                              ; preds = %533, %110
  br label %112

112:                                              ; preds = %111
  br label %113

113:                                              ; preds = %126, %112
  %114 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 8
  %115 = load ptr, ptr %114, align 8, !tbaa !47
  %116 = load ptr, ptr %115, align 8, !tbaa !41
  %117 = getelementptr inbounds ptr, ptr %116, i64 7
  %118 = load ptr, ptr %117, align 8
  %119 = invoke noundef nonnull align 1 dereferenceable(1) ptr %118(ptr noundef nonnull align 8 dereferenceable(224) %115)
          to label %120 unwind label %100

120:                                              ; preds = %113
  %121 = load i8, ptr %119, align 1, !tbaa !43, !range !44, !noundef !45
  %122 = trunc i8 %121 to i1
  %123 = zext i1 %122 to i32
  %124 = icmp eq i32 %123, 0
  br i1 %124, label %125, label %127

125:                                              ; preds = %120
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %126 unwind label %100

126:                                              ; preds = %125
  br label %113, !llvm.loop !48

127:                                              ; preds = %120
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %128 unwind label %100

128:                                              ; preds = %127
  %129 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 3
  %130 = load ptr, ptr %129, align 8, !tbaa !50
  %131 = load ptr, ptr %130, align 8, !tbaa !41
  %132 = getelementptr inbounds ptr, ptr %131, i64 5
  %133 = load ptr, ptr %132, align 8
  %134 = invoke noundef nonnull align 4 dereferenceable(4) ptr %133(ptr noundef nonnull align 8 dereferenceable(196) %130)
          to label %135 unwind label %100

135:                                              ; preds = %128
  %136 = load i32, ptr %134, align 4, !tbaa !51
  store i32 %136, ptr %3, align 4, !tbaa !51
  %137 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 4
  %138 = load ptr, ptr %137, align 8, !tbaa !52
  %139 = load ptr, ptr %138, align 8, !tbaa !41
  %140 = getelementptr inbounds ptr, ptr %139, i64 5
  %141 = load ptr, ptr %140, align 8
  %142 = invoke noundef nonnull align 8 dereferenceable(24) ptr %141(ptr noundef nonnull align 8 dereferenceable(232) %138)
          to label %143 unwind label %100

143:                                              ; preds = %135
  %144 = 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) %142)
          to label %145 unwind label %100

145:                                              ; preds = %143
  %146 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 5
  %147 = load ptr, ptr %146, align 8, !tbaa !53
  %148 = load ptr, ptr %147, align 8, !tbaa !41
  %149 = getelementptr inbounds ptr, ptr %148, i64 5
  %150 = load ptr, ptr %149, align 8
  %151 = invoke noundef nonnull align 8 dereferenceable(24) ptr %150(ptr noundef nonnull align 8 dereferenceable(232) %147)
          to label %152 unwind label %100

152:                                              ; preds = %145
  %153 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(24) %151)
          to label %154 unwind label %100

154:                                              ; preds = %152
  %155 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 6
  %156 = load ptr, ptr %155, align 8, !tbaa !54
  %157 = load ptr, ptr %156, align 8, !tbaa !41
  %158 = getelementptr inbounds ptr, ptr %157, i64 5
  %159 = load ptr, ptr %158, align 8
  %160 = invoke noundef nonnull align 8 dereferenceable(24) ptr %159(ptr noundef nonnull align 8 dereferenceable(232) %156)
          to label %161 unwind label %100

161:                                              ; preds = %154
  %162 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(24) %160)
          to label %163 unwind label %100

163:                                              ; preds = %161
  %164 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 7
  %165 = load ptr, ptr %164, align 8, !tbaa !55
  %166 = load ptr, ptr %165, align 8, !tbaa !41
  %167 = getelementptr inbounds ptr, ptr %166, i64 5
  %168 = load ptr, ptr %167, align 8
  %169 = invoke noundef nonnull align 8 dereferenceable(24) ptr %168(ptr noundef nonnull align 8 dereferenceable(232) %165)
          to label %170 unwind label %100

170:                                              ; preds = %163
  %171 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(24) %169)
          to label %172 unwind label %100

172:                                              ; preds = %170
  %173 = load i32, ptr %3, align 4, !tbaa !51
  %174 = sub nsw i32 %173, 1
  store i32 %174, ptr %3, align 4, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #5
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 1)
          to label %175 unwind label %534

175:                                              ; preds = %172
  %176 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %177 unwind label %538

177:                                              ; preds = %175
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #5
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 1)
          to label %178 unwind label %543

178:                                              ; preds = %177
  %179 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %180 unwind label %547

180:                                              ; preds = %178
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #5
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef 1)
          to label %181 unwind label %552

181:                                              ; preds = %180
  %182 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %183 unwind label %556

183:                                              ; preds = %181
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #5
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 1)
          to label %184 unwind label %561

184:                                              ; preds = %183
  %185 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %186 unwind label %565

186:                                              ; preds = %184
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %187 unwind label %100

187:                                              ; preds = %186
  %188 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 9
  %189 = load ptr, ptr %188, align 8, !tbaa !56
  %190 = load ptr, ptr %189, align 8, !tbaa !41
  %191 = getelementptr inbounds ptr, ptr %190, i64 9
  %192 = load ptr, ptr %191, align 8
  invoke void %192(ptr noundef nonnull align 8 dereferenceable(196) %189, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %193 unwind label %100

193:                                              ; preds = %187
  %194 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 10
  %195 = load ptr, ptr %194, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %196 unwind label %570

196:                                              ; preds = %193
  %197 = load ptr, ptr %195, align 8, !tbaa !41
  %198 = getelementptr inbounds ptr, ptr %197, i64 9
  %199 = load ptr, ptr %198, align 8
  invoke void %199(ptr noundef nonnull align 8 dereferenceable(232) %195, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %200 unwind label %574

200:                                              ; preds = %196
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #5
  %201 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 11
  %202 = load ptr, ptr %201, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %203 unwind label %579

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

207:                                              ; preds = %203
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #5
  %208 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 12
  %209 = load ptr, ptr %208, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %210 unwind label %588

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) %17)
          to label %214 unwind label %592

214:                                              ; preds = %210
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #5
  %215 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 13
  %216 = load ptr, ptr %215, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %217 unwind label %597

217:                                              ; preds = %214
  %218 = load ptr, ptr %216, align 8, !tbaa !41
  %219 = getelementptr inbounds ptr, ptr %218, i64 9
  %220 = load ptr, ptr %219, align 8
  invoke void %220(ptr noundef nonnull align 8 dereferenceable(232) %216, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %221 unwind label %601

221:                                              ; preds = %217
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #5
  %222 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %223 = load ptr, ptr %222, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #5
  store i8 1, ptr %19, align 1, !tbaa !43
  %224 = load ptr, ptr %223, align 8, !tbaa !41
  %225 = getelementptr inbounds ptr, ptr %224, i64 14
  %226 = load ptr, ptr %225, align 8
  invoke void %226(ptr noundef nonnull align 8 dereferenceable(224) %223, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %227 unwind label %606

227:                                              ; preds = %221
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %228 unwind label %100

228:                                              ; preds = %227
  %229 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %230 = load ptr, ptr %229, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #5
  store i8 0, ptr %20, align 1, !tbaa !43
  %231 = load ptr, ptr %230, align 8, !tbaa !41
  %232 = getelementptr inbounds ptr, ptr %231, i64 14
  %233 = load ptr, ptr %232, align 8
  invoke void %233(ptr noundef nonnull align 8 dereferenceable(224) %230, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %234 unwind label %610

234:                                              ; preds = %228
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %235 unwind label %100

235:                                              ; preds = %234
  %236 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 9
  %237 = load ptr, ptr %236, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  %238 = load i32, ptr %3, align 4, !tbaa !51
  %239 = add nsw i32 %238, -1
  store i32 %239, ptr %3, align 4, !tbaa !51
  store i32 %238, ptr %21, align 4, !tbaa !51
  %240 = load ptr, ptr %237, align 8, !tbaa !41
  %241 = getelementptr inbounds ptr, ptr %240, i64 9
  %242 = load ptr, ptr %241, align 8
  invoke void %242(ptr noundef nonnull align 8 dereferenceable(196) %237, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %243 unwind label %614

243:                                              ; preds = %235
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  %244 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 10
  %245 = load ptr, ptr %244, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #5
  invoke void @_ZN5sc_dt9sc_signedmmEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 0)
          to label %246 unwind label %618

246:                                              ; preds = %243
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %247 unwind label %622

247:                                              ; preds = %246
  %248 = load ptr, ptr %245, align 8, !tbaa !41
  %249 = getelementptr inbounds ptr, ptr %248, i64 9
  %250 = load ptr, ptr %249, align 8
  invoke void %250(ptr noundef nonnull align 8 dereferenceable(232) %245, ptr noundef nonnull align 8 dereferenceable(24) %22)
          to label %251 unwind label %626

251:                                              ; preds = %247
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  %252 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 11
  %253 = load ptr, ptr %252, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #5
  invoke void @_ZN5sc_dt11sc_unsignedmmEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 0)
          to label %254 unwind label %632

254:                                              ; preds = %251
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %255 unwind label %636

255:                                              ; preds = %254
  %256 = load ptr, ptr %253, align 8, !tbaa !41
  %257 = getelementptr inbounds ptr, ptr %256, i64 9
  %258 = load ptr, ptr %257, align 8
  invoke void %258(ptr noundef nonnull align 8 dereferenceable(232) %253, ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %259 unwind label %640

259:                                              ; preds = %255
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #5
  %260 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 12
  %261 = load ptr, ptr %260, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #5
  invoke void @_ZN5sc_dt9sc_signedmmEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef 0)
          to label %262 unwind label %646

262:                                              ; preds = %259
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %263 unwind label %650

263:                                              ; preds = %262
  %264 = load ptr, ptr %261, align 8, !tbaa !41
  %265 = getelementptr inbounds ptr, ptr %264, i64 9
  %266 = load ptr, ptr %265, align 8
  invoke void %266(ptr noundef nonnull align 8 dereferenceable(232) %261, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %267 unwind label %654

267:                                              ; preds = %263
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %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 %27) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #5
  %268 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 13
  %269 = load ptr, ptr %268, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #5
  invoke void @_ZN5sc_dt11sc_unsignedmmEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 0)
          to label %270 unwind label %660

270:                                              ; preds = %267
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %271 unwind label %664

271:                                              ; preds = %270
  %272 = load ptr, ptr %269, align 8, !tbaa !41
  %273 = getelementptr inbounds ptr, ptr %272, i64 9
  %274 = load ptr, ptr %273, align 8
  invoke void %274(ptr noundef nonnull align 8 dereferenceable(232) %269, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %275 unwind label %668

275:                                              ; preds = %271
  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 %29) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #5
  %276 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %277 = load ptr, ptr %276, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #5
  store i8 1, ptr %30, align 1, !tbaa !43
  %278 = load ptr, ptr %277, align 8, !tbaa !41
  %279 = getelementptr inbounds ptr, ptr %278, i64 14
  %280 = load ptr, ptr %279, align 8
  invoke void %280(ptr noundef nonnull align 8 dereferenceable(224) %277, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %281 unwind label %674

281:                                              ; preds = %275
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %282 unwind label %100

282:                                              ; preds = %281
  %283 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %284 = load ptr, ptr %283, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #5
  store i8 0, ptr %31, align 1, !tbaa !43
  %285 = load ptr, ptr %284, align 8, !tbaa !41
  %286 = getelementptr inbounds ptr, ptr %285, i64 14
  %287 = load ptr, ptr %286, align 8
  invoke void %287(ptr noundef nonnull align 8 dereferenceable(224) %284, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %288 unwind label %678

288:                                              ; preds = %282
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %289 unwind label %100

289:                                              ; preds = %288
  %290 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 9
  %291 = load ptr, ptr %290, align 8, !tbaa !56
  %292 = load i32, ptr %3, align 4, !tbaa !51
  %293 = add nsw i32 %292, -1
  store i32 %293, ptr %3, align 4, !tbaa !51
  %294 = load ptr, ptr %291, align 8, !tbaa !41
  %295 = getelementptr inbounds ptr, ptr %294, i64 9
  %296 = load ptr, ptr %295, align 8
  invoke void %296(ptr noundef nonnull align 8 dereferenceable(196) %291, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %297 unwind label %100

297:                                              ; preds = %289
  %298 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 10
  %299 = load ptr, ptr %298, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #5
  %300 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmmEv(ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %301 unwind label %682

301:                                              ; preds = %297
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(32) %300)
          to label %302 unwind label %682

302:                                              ; preds = %301
  %303 = load ptr, ptr %299, align 8, !tbaa !41
  %304 = getelementptr inbounds ptr, ptr %303, i64 9
  %305 = load ptr, ptr %304, align 8
  invoke void %305(ptr noundef nonnull align 8 dereferenceable(232) %299, ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %306 unwind label %686

306:                                              ; preds = %302
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #5
  %307 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 11
  %308 = load ptr, ptr %307, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %33) #5
  %309 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmmEv(ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %310 unwind label %691

310:                                              ; preds = %306
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(32) %309)
          to label %311 unwind label %691

311:                                              ; preds = %310
  %312 = load ptr, ptr %308, align 8, !tbaa !41
  %313 = getelementptr inbounds ptr, ptr %312, i64 9
  %314 = load ptr, ptr %313, align 8
  invoke void %314(ptr noundef nonnull align 8 dereferenceable(232) %308, ptr noundef nonnull align 8 dereferenceable(24) %33)
          to label %315 unwind label %695

315:                                              ; preds = %311
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #5
  %316 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 12
  %317 = load ptr, ptr %316, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #5
  %318 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmmEv(ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %319 unwind label %700

319:                                              ; preds = %315
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(32) %318)
          to label %320 unwind label %700

320:                                              ; preds = %319
  %321 = load ptr, ptr %317, align 8, !tbaa !41
  %322 = getelementptr inbounds ptr, ptr %321, i64 9
  %323 = load ptr, ptr %322, align 8
  invoke void %323(ptr noundef nonnull align 8 dereferenceable(232) %317, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %324 unwind label %704

324:                                              ; preds = %320
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #5
  %325 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 13
  %326 = load ptr, ptr %325, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #5
  %327 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmmEv(ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %328 unwind label %709

328:                                              ; preds = %324
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 8 dereferenceable(32) %327)
          to label %329 unwind label %709

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

333:                                              ; preds = %329
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #5
  %334 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %335 = load ptr, ptr %334, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #5
  store i8 1, ptr %36, align 1, !tbaa !43
  %336 = load ptr, ptr %335, align 8, !tbaa !41
  %337 = getelementptr inbounds ptr, ptr %336, i64 14
  %338 = load ptr, ptr %337, align 8
  invoke void %338(ptr noundef nonnull align 8 dereferenceable(224) %335, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %339 unwind label %718

339:                                              ; preds = %333
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %340 unwind label %100

340:                                              ; preds = %339
  %341 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %342 = load ptr, ptr %341, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #5
  store i8 0, ptr %37, align 1, !tbaa !43
  %343 = load ptr, ptr %342, align 8, !tbaa !41
  %344 = getelementptr inbounds ptr, ptr %343, i64 14
  %345 = load ptr, ptr %344, align 8
  invoke void %345(ptr noundef nonnull align 8 dereferenceable(224) %342, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %346 unwind label %722

346:                                              ; preds = %340
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %347 unwind label %100

347:                                              ; preds = %346
  %348 = load i32, ptr %3, align 4, !tbaa !51
  %349 = sub nsw i32 %348, 254
  store i32 %349, ptr %3, align 4, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #5
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 14)
          to label %350 unwind label %726

350:                                              ; preds = %347
  %351 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %352 unwind label %730

352:                                              ; preds = %350
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #5
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 14)
          to label %353 unwind label %735

353:                                              ; preds = %352
  %354 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %355 unwind label %739

355:                                              ; preds = %353
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #5
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef 254)
          to label %356 unwind label %744

356:                                              ; preds = %355
  %357 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %358 unwind label %748

358:                                              ; preds = %356
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #5
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 254)
          to label %359 unwind label %753

359:                                              ; preds = %358
  %360 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %361 unwind label %757

361:                                              ; preds = %359
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %362 unwind label %100

362:                                              ; preds = %361
  %363 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 9
  %364 = load ptr, ptr %363, align 8, !tbaa !56
  %365 = load ptr, ptr %364, align 8, !tbaa !41
  %366 = getelementptr inbounds ptr, ptr %365, i64 9
  %367 = load ptr, ptr %366, align 8
  invoke void %367(ptr noundef nonnull align 8 dereferenceable(196) %364, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %368 unwind label %100

368:                                              ; preds = %362
  %369 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 10
  %370 = load ptr, ptr %369, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %371 unwind label %762

371:                                              ; preds = %368
  %372 = load ptr, ptr %370, align 8, !tbaa !41
  %373 = getelementptr inbounds ptr, ptr %372, i64 9
  %374 = load ptr, ptr %373, align 8
  invoke void %374(ptr noundef nonnull align 8 dereferenceable(232) %370, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %375 unwind label %766

375:                                              ; preds = %371
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #5
  %376 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 11
  %377 = load ptr, ptr %376, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %378 unwind label %771

378:                                              ; preds = %375
  %379 = load ptr, ptr %377, align 8, !tbaa !41
  %380 = getelementptr inbounds ptr, ptr %379, i64 9
  %381 = load ptr, ptr %380, align 8
  invoke void %381(ptr noundef nonnull align 8 dereferenceable(232) %377, ptr noundef nonnull align 8 dereferenceable(24) %43)
          to label %382 unwind label %775

382:                                              ; preds = %378
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #5
  %383 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 12
  %384 = load ptr, ptr %383, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %385 unwind label %780

385:                                              ; preds = %382
  %386 = load ptr, ptr %384, align 8, !tbaa !41
  %387 = getelementptr inbounds ptr, ptr %386, i64 9
  %388 = load ptr, ptr %387, align 8
  invoke void %388(ptr noundef nonnull align 8 dereferenceable(232) %384, ptr noundef nonnull align 8 dereferenceable(24) %44)
          to label %389 unwind label %784

389:                                              ; preds = %385
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #5
  %390 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 13
  %391 = load ptr, ptr %390, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %45) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %392 unwind label %789

392:                                              ; preds = %389
  %393 = load ptr, ptr %391, align 8, !tbaa !41
  %394 = getelementptr inbounds ptr, ptr %393, i64 9
  %395 = load ptr, ptr %394, align 8
  invoke void %395(ptr noundef nonnull align 8 dereferenceable(232) %391, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %396 unwind label %793

396:                                              ; preds = %392
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #5
  %397 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %398 = load ptr, ptr %397, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #5
  store i8 1, ptr %46, align 1, !tbaa !43
  %399 = load ptr, ptr %398, align 8, !tbaa !41
  %400 = getelementptr inbounds ptr, ptr %399, i64 14
  %401 = load ptr, ptr %400, align 8
  invoke void %401(ptr noundef nonnull align 8 dereferenceable(224) %398, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %402 unwind label %798

402:                                              ; preds = %396
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %403 unwind label %100

403:                                              ; preds = %402
  %404 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %405 = load ptr, ptr %404, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #5
  store i8 0, ptr %47, align 1, !tbaa !43
  %406 = load ptr, ptr %405, align 8, !tbaa !41
  %407 = getelementptr inbounds ptr, ptr %406, i64 14
  %408 = load ptr, ptr %407, align 8
  invoke void %408(ptr noundef nonnull align 8 dereferenceable(224) %405, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %409 unwind label %802

409:                                              ; preds = %403
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %410 unwind label %100

410:                                              ; preds = %409
  %411 = load i32, ptr %3, align 4, !tbaa !51
  %412 = sub nsw i32 %411, 254
  store i32 %412, ptr %3, align 4, !tbaa !51
  %413 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmIEi(ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 14)
          to label %414 unwind label %100

414:                                              ; preds = %410
  %415 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmIEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 14)
          to label %416 unwind label %100

416:                                              ; preds = %414
  %417 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmIEi(ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef 254)
          to label %418 unwind label %100

418:                                              ; preds = %416
  %419 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmIEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 254)
          to label %420 unwind label %100

420:                                              ; preds = %418
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %421 unwind label %100

421:                                              ; preds = %420
  %422 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 9
  %423 = load ptr, ptr %422, align 8, !tbaa !56
  %424 = load ptr, ptr %423, align 8, !tbaa !41
  %425 = getelementptr inbounds ptr, ptr %424, i64 9
  %426 = load ptr, ptr %425, align 8
  invoke void %426(ptr noundef nonnull align 8 dereferenceable(196) %423, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %427 unwind label %100

427:                                              ; preds = %421
  %428 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 10
  %429 = load ptr, ptr %428, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr %48) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %430 unwind label %806

430:                                              ; preds = %427
  %431 = load ptr, ptr %429, align 8, !tbaa !41
  %432 = getelementptr inbounds ptr, ptr %431, i64 9
  %433 = load ptr, ptr %432, align 8
  invoke void %433(ptr noundef nonnull align 8 dereferenceable(232) %429, ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %434 unwind label %810

434:                                              ; preds = %430
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #5
  %435 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 11
  %436 = load ptr, ptr %435, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %437 unwind label %815

437:                                              ; preds = %434
  %438 = load ptr, ptr %436, align 8, !tbaa !41
  %439 = getelementptr inbounds ptr, ptr %438, i64 9
  %440 = load ptr, ptr %439, align 8
  invoke void %440(ptr noundef nonnull align 8 dereferenceable(232) %436, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %441 unwind label %819

441:                                              ; preds = %437
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #5
  %442 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 12
  %443 = load ptr, ptr %442, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %50, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %444 unwind label %824

444:                                              ; preds = %441
  %445 = load ptr, ptr %443, align 8, !tbaa !41
  %446 = getelementptr inbounds ptr, ptr %445, i64 9
  %447 = load ptr, ptr %446, align 8
  invoke void %447(ptr noundef nonnull align 8 dereferenceable(232) %443, ptr noundef nonnull align 8 dereferenceable(24) %50)
          to label %448 unwind label %828

448:                                              ; preds = %444
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #5
  %449 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 13
  %450 = load ptr, ptr %449, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %451 unwind label %833

451:                                              ; preds = %448
  %452 = load ptr, ptr %450, align 8, !tbaa !41
  %453 = getelementptr inbounds ptr, ptr %452, i64 9
  %454 = load ptr, ptr %453, align 8
  invoke void %454(ptr noundef nonnull align 8 dereferenceable(232) %450, ptr noundef nonnull align 8 dereferenceable(24) %51)
          to label %455 unwind label %837

455:                                              ; preds = %451
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #5
  %456 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %457 = load ptr, ptr %456, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #5
  store i8 1, ptr %52, align 1, !tbaa !43
  %458 = load ptr, ptr %457, align 8, !tbaa !41
  %459 = getelementptr inbounds ptr, ptr %458, i64 14
  %460 = load ptr, ptr %459, align 8
  invoke void %460(ptr noundef nonnull align 8 dereferenceable(224) %457, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %461 unwind label %842

461:                                              ; preds = %455
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %462 unwind label %100

462:                                              ; preds = %461
  %463 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %464 = load ptr, ptr %463, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #5
  store i8 0, ptr %53, align 1, !tbaa !43
  %465 = load ptr, ptr %464, align 8, !tbaa !41
  %466 = getelementptr inbounds ptr, ptr %465, i64 14
  %467 = load ptr, ptr %466, align 8
  invoke void %467(ptr noundef nonnull align 8 dereferenceable(224) %464, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %468 unwind label %846

468:                                              ; preds = %462
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %469 unwind label %100

469:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #5
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedERKNS_9sc_signedE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %470 unwind label %850

470:                                              ; preds = %469
  %471 = invoke noundef i32 @_ZNK5sc_dt9sc_signed6to_intEv(ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %472 unwind label %854

472:                                              ; preds = %470
  store i32 %471, ptr %3, align 4, !tbaa !51
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #5
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %473 unwind label %859

473:                                              ; preds = %472
  %474 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %475 unwind label %863

475:                                              ; preds = %473
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #5
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %476 unwind label %868

476:                                              ; preds = %475
  %477 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %478 unwind label %872

478:                                              ; preds = %476
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #5
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %479 unwind label %877

479:                                              ; preds = %478
  %480 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %481 unwind label %881

481:                                              ; preds = %479
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #5
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %58, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %482 unwind label %886

482:                                              ; preds = %481
  %483 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %484 unwind label %890

484:                                              ; preds = %482
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %485 unwind label %100

485:                                              ; preds = %484
  %486 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 9
  %487 = load ptr, ptr %486, align 8, !tbaa !56
  %488 = load ptr, ptr %487, align 8, !tbaa !41
  %489 = getelementptr inbounds ptr, ptr %488, i64 9
  %490 = load ptr, ptr %489, align 8
  invoke void %490(ptr noundef nonnull align 8 dereferenceable(196) %487, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %491 unwind label %100

491:                                              ; preds = %485
  %492 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 10
  %493 = load ptr, ptr %492, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %59, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %494 unwind label %895

494:                                              ; preds = %491
  %495 = load ptr, ptr %493, align 8, !tbaa !41
  %496 = getelementptr inbounds ptr, ptr %495, i64 9
  %497 = load ptr, ptr %496, align 8
  invoke void %497(ptr noundef nonnull align 8 dereferenceable(232) %493, ptr noundef nonnull align 8 dereferenceable(24) %59)
          to label %498 unwind label %899

498:                                              ; preds = %494
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #5
  %499 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 11
  %500 = load ptr, ptr %499, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %60) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %60, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %501 unwind label %904

501:                                              ; preds = %498
  %502 = load ptr, ptr %500, align 8, !tbaa !41
  %503 = getelementptr inbounds ptr, ptr %502, i64 9
  %504 = load ptr, ptr %503, align 8
  invoke void %504(ptr noundef nonnull align 8 dereferenceable(232) %500, ptr noundef nonnull align 8 dereferenceable(24) %60)
          to label %505 unwind label %908

505:                                              ; preds = %501
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #5
  %506 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 12
  %507 = load ptr, ptr %506, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr %61) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %508 unwind label %913

508:                                              ; preds = %505
  %509 = load ptr, ptr %507, align 8, !tbaa !41
  %510 = getelementptr inbounds ptr, ptr %509, i64 9
  %511 = load ptr, ptr %510, align 8
  invoke void %511(ptr noundef nonnull align 8 dereferenceable(232) %507, ptr noundef nonnull align 8 dereferenceable(24) %61)
          to label %512 unwind label %917

512:                                              ; preds = %508
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #5
  %513 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 13
  %514 = load ptr, ptr %513, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %62) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %62, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %515 unwind label %922

515:                                              ; preds = %512
  %516 = load ptr, ptr %514, align 8, !tbaa !41
  %517 = getelementptr inbounds ptr, ptr %516, i64 9
  %518 = load ptr, ptr %517, align 8
  invoke void %518(ptr noundef nonnull align 8 dereferenceable(232) %514, ptr noundef nonnull align 8 dereferenceable(24) %62)
          to label %519 unwind label %926

519:                                              ; preds = %515
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #5
  %520 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %521 = load ptr, ptr %520, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #5
  store i8 1, ptr %63, align 1, !tbaa !43
  %522 = load ptr, ptr %521, align 8, !tbaa !41
  %523 = getelementptr inbounds ptr, ptr %522, i64 14
  %524 = load ptr, ptr %523, align 8
  invoke void %524(ptr noundef nonnull align 8 dereferenceable(224) %521, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %525 unwind label %931

525:                                              ; preds = %519
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %526 unwind label %100

526:                                              ; preds = %525
  %527 = getelementptr inbounds %struct.subtraction, ptr %65, i32 0, i32 14
  %528 = load ptr, ptr %527, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #5
  store i8 0, ptr %64, align 1, !tbaa !43
  %529 = load ptr, ptr %528, align 8, !tbaa !41
  %530 = getelementptr inbounds ptr, ptr %529, i64 14
  %531 = load ptr, ptr %530, align 8
  invoke void %531(ptr noundef nonnull align 8 dereferenceable(224) %528, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %532 unwind label %935

532:                                              ; preds = %526
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %65)
          to label %533 unwind label %100

533:                                              ; preds = %532
  br label %111, !llvm.loop !61

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

538:                                              ; preds = %175
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %6, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  br label %542

542:                                              ; preds = %538, %534
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #5
  br label %939

543:                                              ; preds = %177
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %6, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %7, align 4
  br label %551

547:                                              ; preds = %178
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %6, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %551

551:                                              ; preds = %547, %543
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  br label %939

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

556:                                              ; preds = %181
  %557 = landingpad { ptr, i32 }
          cleanup
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %6, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %560

560:                                              ; preds = %556, %552
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #5
  br label %939

561:                                              ; preds = %183
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %6, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %7, align 4
  br label %569

565:                                              ; preds = %184
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %6, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %569

569:                                              ; preds = %565, %561
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %939

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

574:                                              ; preds = %196
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %6, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  br label %578

578:                                              ; preds = %574, %570
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #5
  br label %939

579:                                              ; preds = %200
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %6, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %7, align 4
  br label %587

583:                                              ; preds = %203
  %584 = landingpad { ptr, i32 }
          cleanup
  %585 = extractvalue { ptr, i32 } %584, 0
  store ptr %585, ptr %6, align 8
  %586 = extractvalue { ptr, i32 } %584, 1
  store i32 %586, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #5
  br label %587

587:                                              ; preds = %583, %579
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #5
  br label %939

588:                                              ; preds = %207
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %6, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %7, align 4
  br label %596

592:                                              ; preds = %210
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %6, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  br label %596

596:                                              ; preds = %592, %588
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #5
  br label %939

597:                                              ; preds = %214
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %6, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %7, align 4
  br label %605

601:                                              ; preds = %217
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %6, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  br label %605

605:                                              ; preds = %601, %597
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #5
  br label %939

606:                                              ; preds = %221
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %6, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #5
  br label %939

610:                                              ; preds = %228
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %6, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  br label %939

614:                                              ; preds = %235
  %615 = landingpad { ptr, i32 }
          cleanup
  %616 = extractvalue { ptr, i32 } %615, 0
  store ptr %616, ptr %6, align 8
  %617 = extractvalue { ptr, i32 } %615, 1
  store i32 %617, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  br label %939

618:                                              ; preds = %243
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %6, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %7, align 4
  br label %631

622:                                              ; preds = %246
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %6, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %7, align 4
  br label %630

626:                                              ; preds = %247
  %627 = landingpad { ptr, i32 }
          cleanup
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %6, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  br label %630

630:                                              ; preds = %626, %622
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  br label %631

631:                                              ; preds = %630, %618
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  br label %939

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

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

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

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

645:                                              ; preds = %644, %632
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #5
  br label %939

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

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

654:                                              ; preds = %263
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %6, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #5
  br label %658

658:                                              ; preds = %654, %650
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br label %659

659:                                              ; preds = %658, %646
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #5
  br label %939

660:                                              ; preds = %267
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %6, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %7, align 4
  br label %673

664:                                              ; preds = %270
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %6, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %7, align 4
  br label %672

668:                                              ; preds = %271
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %6, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #5
  br label %672

672:                                              ; preds = %668, %664
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  br label %673

673:                                              ; preds = %672, %660
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #5
  br label %939

674:                                              ; preds = %275
  %675 = landingpad { ptr, i32 }
          cleanup
  %676 = extractvalue { ptr, i32 } %675, 0
  store ptr %676, ptr %6, align 8
  %677 = extractvalue { ptr, i32 } %675, 1
  store i32 %677, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #5
  br label %939

678:                                              ; preds = %282
  %679 = landingpad { ptr, i32 }
          cleanup
  %680 = extractvalue { ptr, i32 } %679, 0
  store ptr %680, ptr %6, align 8
  %681 = extractvalue { ptr, i32 } %679, 1
  store i32 %681, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #5
  br label %939

682:                                              ; preds = %301, %297
  %683 = landingpad { ptr, i32 }
          cleanup
  %684 = extractvalue { ptr, i32 } %683, 0
  store ptr %684, ptr %6, align 8
  %685 = extractvalue { ptr, i32 } %683, 1
  store i32 %685, ptr %7, align 4
  br label %690

686:                                              ; preds = %302
  %687 = landingpad { ptr, i32 }
          cleanup
  %688 = extractvalue { ptr, i32 } %687, 0
  store ptr %688, ptr %6, align 8
  %689 = extractvalue { ptr, i32 } %687, 1
  store i32 %689, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #5
  br label %690

690:                                              ; preds = %686, %682
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #5
  br label %939

691:                                              ; preds = %310, %306
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %6, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %7, align 4
  br label %699

695:                                              ; preds = %311
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %6, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #5
  br label %699

699:                                              ; preds = %695, %691
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #5
  br label %939

700:                                              ; preds = %319, %315
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %6, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %7, align 4
  br label %708

704:                                              ; preds = %320
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %6, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #5
  br label %708

708:                                              ; preds = %704, %700
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #5
  br label %939

709:                                              ; preds = %328, %324
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %6, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %7, align 4
  br label %717

713:                                              ; preds = %329
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %6, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #5
  br label %717

717:                                              ; preds = %713, %709
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #5
  br label %939

718:                                              ; preds = %333
  %719 = landingpad { ptr, i32 }
          cleanup
  %720 = extractvalue { ptr, i32 } %719, 0
  store ptr %720, ptr %6, align 8
  %721 = extractvalue { ptr, i32 } %719, 1
  store i32 %721, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #5
  br label %939

722:                                              ; preds = %340
  %723 = landingpad { ptr, i32 }
          cleanup
  %724 = extractvalue { ptr, i32 } %723, 0
  store ptr %724, ptr %6, align 8
  %725 = extractvalue { ptr, i32 } %723, 1
  store i32 %725, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #5
  br label %939

726:                                              ; preds = %347
  %727 = landingpad { ptr, i32 }
          cleanup
  %728 = extractvalue { ptr, i32 } %727, 0
  store ptr %728, ptr %6, align 8
  %729 = extractvalue { ptr, i32 } %727, 1
  store i32 %729, ptr %7, align 4
  br label %734

730:                                              ; preds = %350
  %731 = landingpad { ptr, i32 }
          cleanup
  %732 = extractvalue { ptr, i32 } %731, 0
  store ptr %732, ptr %6, align 8
  %733 = extractvalue { ptr, i32 } %731, 1
  store i32 %733, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #5
  br label %734

734:                                              ; preds = %730, %726
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #5
  br label %939

735:                                              ; preds = %352
  %736 = landingpad { ptr, i32 }
          cleanup
  %737 = extractvalue { ptr, i32 } %736, 0
  store ptr %737, ptr %6, align 8
  %738 = extractvalue { ptr, i32 } %736, 1
  store i32 %738, ptr %7, align 4
  br label %743

739:                                              ; preds = %353
  %740 = landingpad { ptr, i32 }
          cleanup
  %741 = extractvalue { ptr, i32 } %740, 0
  store ptr %741, ptr %6, align 8
  %742 = extractvalue { ptr, i32 } %740, 1
  store i32 %742, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  br label %743

743:                                              ; preds = %739, %735
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #5
  br label %939

744:                                              ; preds = %355
  %745 = landingpad { ptr, i32 }
          cleanup
  %746 = extractvalue { ptr, i32 } %745, 0
  store ptr %746, ptr %6, align 8
  %747 = extractvalue { ptr, i32 } %745, 1
  store i32 %747, ptr %7, align 4
  br label %752

748:                                              ; preds = %356
  %749 = landingpad { ptr, i32 }
          cleanup
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %6, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #5
  br label %752

752:                                              ; preds = %748, %744
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #5
  br label %939

753:                                              ; preds = %358
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %6, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %7, align 4
  br label %761

757:                                              ; preds = %359
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %6, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  br label %761

761:                                              ; preds = %757, %753
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #5
  br label %939

762:                                              ; preds = %368
  %763 = landingpad { ptr, i32 }
          cleanup
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %6, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %7, align 4
  br label %770

766:                                              ; preds = %371
  %767 = landingpad { ptr, i32 }
          cleanup
  %768 = extractvalue { ptr, i32 } %767, 0
  store ptr %768, ptr %6, align 8
  %769 = extractvalue { ptr, i32 } %767, 1
  store i32 %769, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #5
  br label %770

770:                                              ; preds = %766, %762
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #5
  br label %939

771:                                              ; preds = %375
  %772 = landingpad { ptr, i32 }
          cleanup
  %773 = extractvalue { ptr, i32 } %772, 0
  store ptr %773, ptr %6, align 8
  %774 = extractvalue { ptr, i32 } %772, 1
  store i32 %774, ptr %7, align 4
  br label %779

775:                                              ; preds = %378
  %776 = landingpad { ptr, i32 }
          cleanup
  %777 = extractvalue { ptr, i32 } %776, 0
  store ptr %777, ptr %6, align 8
  %778 = extractvalue { ptr, i32 } %776, 1
  store i32 %778, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #5
  br label %779

779:                                              ; preds = %775, %771
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #5
  br label %939

780:                                              ; preds = %382
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %6, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %7, align 4
  br label %788

784:                                              ; preds = %385
  %785 = landingpad { ptr, i32 }
          cleanup
  %786 = extractvalue { ptr, i32 } %785, 0
  store ptr %786, ptr %6, align 8
  %787 = extractvalue { ptr, i32 } %785, 1
  store i32 %787, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #5
  br label %788

788:                                              ; preds = %784, %780
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #5
  br label %939

789:                                              ; preds = %389
  %790 = landingpad { ptr, i32 }
          cleanup
  %791 = extractvalue { ptr, i32 } %790, 0
  store ptr %791, ptr %6, align 8
  %792 = extractvalue { ptr, i32 } %790, 1
  store i32 %792, ptr %7, align 4
  br label %797

793:                                              ; preds = %392
  %794 = landingpad { ptr, i32 }
          cleanup
  %795 = extractvalue { ptr, i32 } %794, 0
  store ptr %795, ptr %6, align 8
  %796 = extractvalue { ptr, i32 } %794, 1
  store i32 %796, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #5
  br label %797

797:                                              ; preds = %793, %789
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #5
  br label %939

798:                                              ; preds = %396
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %6, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #5
  br label %939

802:                                              ; preds = %403
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %6, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #5
  br label %939

806:                                              ; preds = %427
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %6, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %7, align 4
  br label %814

810:                                              ; preds = %430
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %6, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #5
  br label %814

814:                                              ; preds = %810, %806
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #5
  br label %939

815:                                              ; preds = %434
  %816 = landingpad { ptr, i32 }
          cleanup
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %6, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %7, align 4
  br label %823

819:                                              ; preds = %437
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %6, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #5
  br label %823

823:                                              ; preds = %819, %815
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #5
  br label %939

824:                                              ; preds = %441
  %825 = landingpad { ptr, i32 }
          cleanup
  %826 = extractvalue { ptr, i32 } %825, 0
  store ptr %826, ptr %6, align 8
  %827 = extractvalue { ptr, i32 } %825, 1
  store i32 %827, ptr %7, align 4
  br label %832

828:                                              ; preds = %444
  %829 = landingpad { ptr, i32 }
          cleanup
  %830 = extractvalue { ptr, i32 } %829, 0
  store ptr %830, ptr %6, align 8
  %831 = extractvalue { ptr, i32 } %829, 1
  store i32 %831, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #5
  br label %832

832:                                              ; preds = %828, %824
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #5
  br label %939

833:                                              ; preds = %448
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %6, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %7, align 4
  br label %841

837:                                              ; preds = %451
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %6, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #5
  br label %841

841:                                              ; preds = %837, %833
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #5
  br label %939

842:                                              ; preds = %455
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %6, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  br label %939

846:                                              ; preds = %462
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %6, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #5
  br label %939

850:                                              ; preds = %469
  %851 = landingpad { ptr, i32 }
          cleanup
  %852 = extractvalue { ptr, i32 } %851, 0
  store ptr %852, ptr %6, align 8
  %853 = extractvalue { ptr, i32 } %851, 1
  store i32 %853, ptr %7, align 4
  br label %858

854:                                              ; preds = %470
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %6, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #5
  br label %858

858:                                              ; preds = %854, %850
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #5
  br label %939

859:                                              ; preds = %472
  %860 = landingpad { ptr, i32 }
          cleanup
  %861 = extractvalue { ptr, i32 } %860, 0
  store ptr %861, ptr %6, align 8
  %862 = extractvalue { ptr, i32 } %860, 1
  store i32 %862, ptr %7, align 4
  br label %867

863:                                              ; preds = %473
  %864 = landingpad { ptr, i32 }
          cleanup
  %865 = extractvalue { ptr, i32 } %864, 0
  store ptr %865, ptr %6, align 8
  %866 = extractvalue { ptr, i32 } %864, 1
  store i32 %866, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #5
  br label %867

867:                                              ; preds = %863, %859
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #5
  br label %939

868:                                              ; preds = %475
  %869 = landingpad { ptr, i32 }
          cleanup
  %870 = extractvalue { ptr, i32 } %869, 0
  store ptr %870, ptr %6, align 8
  %871 = extractvalue { ptr, i32 } %869, 1
  store i32 %871, ptr %7, align 4
  br label %876

872:                                              ; preds = %476
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %6, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #5
  br label %876

876:                                              ; preds = %872, %868
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #5
  br label %939

877:                                              ; preds = %478
  %878 = landingpad { ptr, i32 }
          cleanup
  %879 = extractvalue { ptr, i32 } %878, 0
  store ptr %879, ptr %6, align 8
  %880 = extractvalue { ptr, i32 } %878, 1
  store i32 %880, ptr %7, align 4
  br label %885

881:                                              ; preds = %479
  %882 = landingpad { ptr, i32 }
          cleanup
  %883 = extractvalue { ptr, i32 } %882, 0
  store ptr %883, ptr %6, align 8
  %884 = extractvalue { ptr, i32 } %882, 1
  store i32 %884, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #5
  br label %885

885:                                              ; preds = %881, %877
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #5
  br label %939

886:                                              ; preds = %481
  %887 = landingpad { ptr, i32 }
          cleanup
  %888 = extractvalue { ptr, i32 } %887, 0
  store ptr %888, ptr %6, align 8
  %889 = extractvalue { ptr, i32 } %887, 1
  store i32 %889, ptr %7, align 4
  br label %894

890:                                              ; preds = %482
  %891 = landingpad { ptr, i32 }
          cleanup
  %892 = extractvalue { ptr, i32 } %891, 0
  store ptr %892, ptr %6, align 8
  %893 = extractvalue { ptr, i32 } %891, 1
  store i32 %893, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #5
  br label %894

894:                                              ; preds = %890, %886
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #5
  br label %939

895:                                              ; preds = %491
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %6, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %7, align 4
  br label %903

899:                                              ; preds = %494
  %900 = landingpad { ptr, i32 }
          cleanup
  %901 = extractvalue { ptr, i32 } %900, 0
  store ptr %901, ptr %6, align 8
  %902 = extractvalue { ptr, i32 } %900, 1
  store i32 %902, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #5
  br label %903

903:                                              ; preds = %899, %895
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #5
  br label %939

904:                                              ; preds = %498
  %905 = landingpad { ptr, i32 }
          cleanup
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %6, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %7, align 4
  br label %912

908:                                              ; preds = %501
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %6, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #5
  br label %912

912:                                              ; preds = %908, %904
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #5
  br label %939

913:                                              ; preds = %505
  %914 = landingpad { ptr, i32 }
          cleanup
  %915 = extractvalue { ptr, i32 } %914, 0
  store ptr %915, ptr %6, align 8
  %916 = extractvalue { ptr, i32 } %914, 1
  store i32 %916, ptr %7, align 4
  br label %921

917:                                              ; preds = %508
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %6, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #5
  br label %921

921:                                              ; preds = %917, %913
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #5
  br label %939

922:                                              ; preds = %512
  %923 = landingpad { ptr, i32 }
          cleanup
  %924 = extractvalue { ptr, i32 } %923, 0
  store ptr %924, ptr %6, align 8
  %925 = extractvalue { ptr, i32 } %923, 1
  store i32 %925, ptr %7, align 4
  br label %930

926:                                              ; preds = %515
  %927 = landingpad { ptr, i32 }
          cleanup
  %928 = extractvalue { ptr, i32 } %927, 0
  store ptr %928, ptr %6, align 8
  %929 = extractvalue { ptr, i32 } %927, 1
  store i32 %929, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #5
  br label %930

930:                                              ; preds = %926, %922
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #5
  br label %939

931:                                              ; preds = %519
  %932 = landingpad { ptr, i32 }
          cleanup
  %933 = extractvalue { ptr, i32 } %932, 0
  store ptr %933, ptr %6, align 8
  %934 = extractvalue { ptr, i32 } %932, 1
  store i32 %934, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #5
  br label %939

935:                                              ; preds = %526
  %936 = landingpad { ptr, i32 }
          cleanup
  %937 = extractvalue { ptr, i32 } %936, 0
  store ptr %937, ptr %6, align 8
  %938 = extractvalue { ptr, i32 } %936, 1
  store i32 %938, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #5
  br label %939

939:                                              ; preds = %935, %931, %930, %921, %912, %903, %894, %885, %876, %867, %858, %846, %842, %841, %832, %823, %814, %802, %798, %797, %788, %779, %770, %761, %752, %743, %734, %722, %718, %717, %708, %699, %690, %678, %674, %673, %659, %645, %631, %614, %610, %606, %605, %596, %587, %578, %569, %560, %551, %542, %104, %100
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  br label %940

940:                                              ; preds = %939, %96
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #5
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %941

941:                                              ; preds = %940, %92
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  br label %942

942:                                              ; preds = %941, %88
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #5
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #5
  br label %943

943:                                              ; preds = %942
  %944 = load ptr, ptr %6, align 8
  %945 = load i32, ptr %7, align 4
  %946 = insertvalue { ptr, i32 } poison, ptr %944, 0
  %947 = insertvalue { ptr, i32 } %946, i32 %945, 1
  resume { ptr, i32 } %947
}

; 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_dt9sc_bigintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5sc_dt10sc_biguintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) 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 void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232)) #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_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_dt9sc_bigintILi8EEaSERKNS_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_biguintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind noalias writable sret(%"class.sc_dt::sc_signed") align 8, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind noalias writable sret(%"class.sc_dt::sc_signed") align 8, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(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 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 void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 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

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

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

declare void @_ZN5sc_dt11sc_unsignedmmEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #4

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmmEv(ptr noundef nonnull align 8 dereferenceable(32)) #4

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmmEv(ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

declare void @_ZN5sc_dtmiERKNS_11sc_unsignedERKNS_9sc_signedE(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)) #4

declare noundef i32 @_ZNK5sc_dt9sc_signed6to_intEv(ptr noundef nonnull align 8 dereferenceable(32)) #4

declare void @_ZN5sc_dtmiERKNS_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)) #4

declare void @_ZN5sc_dtmiERKNS_11sc_unsignedES2_(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)) #4

declare void @_ZN5sc_dtmiERKNS_9sc_signedERKNS_11sc_unsignedE(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)) #4

; 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

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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { "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, !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 = !{!"_ZTS11subtraction", !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, !6, i64 504, !6, i64 512}
!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 512}
!47 = !{!10, !6, i64 464}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = !{!10, !6, i64 424}
!51 = !{!32, !32, i64 0}
!52 = !{!10, !6, i64 432}
!53 = !{!10, !6, i64 440}
!54 = !{!10, !6, i64 448}
!55 = !{!10, !6, i64 456}
!56 = !{!10, !6, i64 472}
!57 = !{!10, !6, i64 480}
!58 = !{!10, !6, i64 488}
!59 = !{!10, !6, i64 496}
!60 = !{!10, !6, i64 504}
!61 = distinct !{!61, !49}


; 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_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_value_base" = type { ptr }
%"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_bigint.0" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_biguint.1" = type { %"class.sc_dt::sc_unsigned" }
%"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 }
%"class.sc_dt::sc_bv.27" = type { %"class.sc_dt::sc_bv_base" }

; Function Attrs: mustprogress noreturn uwtable
define dso_local void @_ZN11subtraction5entryEv(ptr noundef nonnull align 8 dereferenceable(520) %0) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i32, align 4
  %3 = alloca %"class.sc_dt::sc_bigint", align 8
  %4 = alloca %"class.sc_dt::sc_biguint", align 8
  %5 = alloca %"class.sc_dt::sc_bigint.0", align 8
  %6 = alloca %"class.sc_dt::sc_biguint.1", align 8
  %7 = alloca i8, align 1
  %8 = alloca %"class.sc_dt::sc_signed", align 8
  %9 = alloca %"class.sc_dt::sc_signed", align 8
  %10 = alloca %"class.sc_dt::sc_signed", align 8
  %11 = alloca %"class.sc_dt::sc_signed", align 8
  %12 = alloca %"class.sc_dt::sc_bv", align 8
  %13 = alloca %"class.sc_dt::sc_bv", align 8
  %14 = alloca %"class.sc_dt::sc_bv.27", align 8
  %15 = alloca %"class.sc_dt::sc_bv.27", align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i32, align 4
  %19 = alloca %"class.sc_dt::sc_bv", align 8
  %20 = alloca %"class.sc_dt::sc_signed", align 8
  %21 = alloca %"class.sc_dt::sc_bv", align 8
  %22 = alloca %"class.sc_dt::sc_unsigned", align 8
  %23 = alloca %"class.sc_dt::sc_bv.27", align 8
  %24 = alloca %"class.sc_dt::sc_signed", align 8
  %25 = alloca %"class.sc_dt::sc_bv.27", align 8
  %26 = alloca %"class.sc_dt::sc_unsigned", align 8
  %27 = alloca i8, align 1
  %28 = alloca i8, align 1
  %29 = alloca %"class.sc_dt::sc_bv", align 8
  %30 = alloca %"class.sc_dt::sc_bv", align 8
  %31 = alloca %"class.sc_dt::sc_bv.27", align 8
  %32 = alloca %"class.sc_dt::sc_bv.27", align 8
  %33 = alloca i8, align 1
  %34 = alloca i8, align 1
  %35 = alloca %"class.sc_dt::sc_signed", align 8
  %36 = alloca %"class.sc_dt::sc_signed", align 8
  %37 = alloca %"class.sc_dt::sc_signed", align 8
  %38 = alloca %"class.sc_dt::sc_signed", align 8
  %39 = alloca %"class.sc_dt::sc_bv", align 8
  %40 = alloca %"class.sc_dt::sc_bv", align 8
  %41 = alloca %"class.sc_dt::sc_bv.27", align 8
  %42 = alloca %"class.sc_dt::sc_bv.27", align 8
  %43 = alloca i8, align 1
  %44 = alloca i8, align 1
  %45 = alloca %"class.sc_dt::sc_bv", align 8
  %46 = alloca %"class.sc_dt::sc_bv", align 8
  %47 = alloca %"class.sc_dt::sc_bv.27", align 8
  %48 = alloca %"class.sc_dt::sc_bv.27", align 8
  %49 = alloca i8, align 1
  %50 = alloca i8, align 1
  %51 = alloca %"class.sc_dt::sc_signed", align 8
  %52 = alloca %"class.sc_dt::sc_signed", align 8
  %53 = alloca %"class.sc_dt::sc_signed", align 8
  %54 = alloca %"class.sc_dt::sc_signed", align 8
  %55 = alloca %"class.sc_dt::sc_signed", align 8
  %56 = alloca %"class.sc_dt::sc_bv", align 8
  %57 = alloca %"class.sc_dt::sc_bv", align 8
  %58 = alloca %"class.sc_dt::sc_bv.27", align 8
  %59 = alloca %"class.sc_dt::sc_bv.27", align 8
  %60 = alloca i8, align 1
  %61 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  call void @_ZN5sc_dt9sc_bigintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  invoke void @_ZN5sc_dt10sc_biguintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %62 unwind label %81

62:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  invoke void @_ZN5sc_dt9sc_bigintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %63 unwind label %83

63:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #6
  invoke void @_ZN5sc_dt10sc_biguintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %64 unwind label %85

64:                                               ; preds = %63
  %65 = getelementptr inbounds i8, ptr %0, i64 416
  %66 = load ptr, ptr %65, align 8, !tbaa !5
  %67 = load ptr, ptr %66, align 8, !tbaa !40
  %68 = getelementptr inbounds i8, ptr %67, i64 56
  %69 = load ptr, ptr %68, align 8
  %70 = invoke noundef nonnull align 1 dereferenceable(1) ptr %69(ptr noundef nonnull align 8 dereferenceable(224) %66)
          to label %71 unwind label %.loopexit.split-lp.loopexit.split-lp

71:                                               ; preds = %64
  %72 = load i8, ptr %70, align 1, !tbaa !42, !range !43, !noundef !44
  %73 = trunc nuw i8 %72 to i1
  br i1 %73, label %74, label %.invoke

74:                                               ; preds = %71
  %75 = getelementptr inbounds i8, ptr %0, i64 512
  %76 = load ptr, ptr %75, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #6
  store i8 0, ptr %7, align 1, !tbaa !42
  %77 = load ptr, ptr %76, align 8, !tbaa !40
  %78 = getelementptr inbounds i8, ptr %77, i64 112
  %79 = load ptr, ptr %78, align 8
  invoke void %79(ptr noundef nonnull align 8 dereferenceable(224) %76, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %80 unwind label %87

80:                                               ; preds = %74
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  br label %.invoke

81:                                               ; preds = %1
  %82 = landingpad { ptr, i32 }
          cleanup
  br label %696

83:                                               ; preds = %62
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %695

85:                                               ; preds = %63
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %694

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

.loopexit.split-lp.loopexit:                      ; preds = %470, %464, %430, %429, %413, %407, %373, %372, %370, %368, %366, %362, %361, %355, %321, %320, %305, %299, %255, %254, %248, %207, %201, %167, %166, %150, %144, %142, %136, %134, %128, %126, %119, %113, %112
  %lpad.loopexit136 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

87:                                               ; preds = %74
  %88 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  br label %.loopexit.split-lp

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

89:                                               ; preds = %.invoke
  %90 = getelementptr inbounds i8, ptr %0, i64 464
  %91 = getelementptr inbounds i8, ptr %0, i64 424
  %92 = getelementptr inbounds i8, ptr %0, i64 432
  %93 = getelementptr inbounds i8, ptr %0, i64 440
  %94 = getelementptr inbounds i8, ptr %0, i64 448
  %95 = getelementptr inbounds i8, ptr %0, i64 456
  %96 = getelementptr inbounds i8, ptr %0, i64 472
  %97 = getelementptr inbounds i8, ptr %0, i64 480
  %98 = getelementptr inbounds i8, ptr %0, i64 488
  %99 = getelementptr inbounds i8, ptr %0, i64 496
  %100 = getelementptr inbounds i8, ptr %0, i64 504
  %101 = getelementptr inbounds i8, ptr %0, i64 512
  br label %102

102:                                              ; preds = %.backedge, %89
  %103 = load ptr, ptr %90, align 8, !tbaa !46
  %104 = load ptr, ptr %103, align 8, !tbaa !40
  %105 = getelementptr inbounds i8, ptr %104, i64 56
  %106 = load ptr, ptr %105, align 8
  %107 = invoke noundef nonnull align 1 dereferenceable(1) ptr %106(ptr noundef nonnull align 8 dereferenceable(224) %103)
          to label %108 unwind label %.loopexit

108:                                              ; preds = %102
  %109 = load i8, ptr %107, align 1, !tbaa !42, !range !43, !noundef !44
  %110 = icmp eq i8 %109, 0
  br i1 %110, label %111, label %112

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

.backedge:                                        ; preds = %111, %470
  br label %102, !llvm.loop !47

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

113:                                              ; preds = %112
  %114 = load ptr, ptr %91, align 8, !tbaa !49
  %115 = load ptr, ptr %114, align 8, !tbaa !40
  %116 = getelementptr inbounds i8, ptr %115, i64 40
  %117 = load ptr, ptr %116, align 8
  %118 = invoke noundef nonnull align 4 dereferenceable(4) ptr %117(ptr noundef nonnull align 8 dereferenceable(196) %114)
          to label %119 unwind label %.loopexit.split-lp.loopexit

119:                                              ; preds = %113
  %120 = load i32, ptr %118, align 4, !tbaa !50
  store i32 %120, ptr %2, align 4, !tbaa !50
  %121 = load ptr, ptr %92, align 8, !tbaa !51
  %122 = load ptr, ptr %121, align 8, !tbaa !40
  %123 = getelementptr inbounds i8, ptr %122, i64 40
  %124 = load ptr, ptr %123, align 8
  %125 = invoke noundef nonnull align 8 dereferenceable(24) ptr %124(ptr noundef nonnull align 8 dereferenceable(232) %121)
          to label %126 unwind label %.loopexit.split-lp.loopexit

126:                                              ; preds = %119
  %127 = 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) %125)
          to label %128 unwind label %.loopexit.split-lp.loopexit

128:                                              ; preds = %126
  %129 = load ptr, ptr %93, align 8, !tbaa !52
  %130 = load ptr, ptr %129, align 8, !tbaa !40
  %131 = getelementptr inbounds i8, ptr %130, i64 40
  %132 = load ptr, ptr %131, align 8
  %133 = invoke noundef nonnull align 8 dereferenceable(24) ptr %132(ptr noundef nonnull align 8 dereferenceable(232) %129)
          to label %134 unwind label %.loopexit.split-lp.loopexit

134:                                              ; preds = %128
  %135 = 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) %133)
          to label %136 unwind label %.loopexit.split-lp.loopexit

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

142:                                              ; preds = %136
  %143 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(24) %141)
          to label %144 unwind label %.loopexit.split-lp.loopexit

144:                                              ; preds = %142
  %145 = load ptr, ptr %95, align 8, !tbaa !54
  %146 = load ptr, ptr %145, align 8, !tbaa !40
  %147 = getelementptr inbounds i8, ptr %146, i64 40
  %148 = load ptr, ptr %147, align 8
  %149 = invoke noundef nonnull align 8 dereferenceable(24) ptr %148(ptr noundef nonnull align 8 dereferenceable(232) %145)
          to label %150 unwind label %.loopexit.split-lp.loopexit

150:                                              ; preds = %144
  %151 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(24) %149)
          to label %152 unwind label %.loopexit.split-lp.loopexit

152:                                              ; preds = %150
  %153 = load i32, ptr %2, align 4, !tbaa !50
  %154 = add nsw i32 %153, -1
  store i32 %154, ptr %2, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #6
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %3, i32 noundef 1)
          to label %155 unwind label %471

155:                                              ; preds = %152
  %156 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %157 unwind label %473

157:                                              ; preds = %155
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 1)
          to label %158 unwind label %476

158:                                              ; preds = %157
  %159 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %160 unwind label %478

160:                                              ; preds = %158
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 1)
          to label %161 unwind label %481

161:                                              ; preds = %160
  %162 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %163 unwind label %483

163:                                              ; preds = %161
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 1)
          to label %164 unwind label %486

164:                                              ; preds = %163
  %165 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %166 unwind label %488

166:                                              ; preds = %164
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %167 unwind label %.loopexit.split-lp.loopexit

167:                                              ; preds = %166
  %168 = load ptr, ptr %96, align 8, !tbaa !55
  %169 = load ptr, ptr %168, align 8, !tbaa !40
  %170 = getelementptr inbounds i8, ptr %169, i64 72
  %171 = load ptr, ptr %170, align 8
  invoke void %171(ptr noundef nonnull align 8 dereferenceable(196) %168, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %172 unwind label %.loopexit.split-lp.loopexit

172:                                              ; preds = %167
  %173 = load ptr, ptr %97, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %174 unwind label %491

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) %12)
          to label %178 unwind label %493

178:                                              ; preds = %174
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  %179 = load ptr, ptr %98, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %180 unwind label %496

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

184:                                              ; preds = %180
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  %185 = load ptr, ptr %99, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %186 unwind label %501

186:                                              ; preds = %184
  %187 = load ptr, ptr %185, align 8, !tbaa !40
  %188 = getelementptr inbounds i8, ptr %187, i64 72
  %189 = load ptr, ptr %188, align 8
  invoke void %189(ptr noundef nonnull align 8 dereferenceable(232) %185, ptr noundef nonnull align 8 dereferenceable(24) %14)
          to label %190 unwind label %503

190:                                              ; preds = %186
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #6
  %191 = load ptr, ptr %100, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %192 unwind label %506

192:                                              ; preds = %190
  %193 = load ptr, ptr %191, align 8, !tbaa !40
  %194 = getelementptr inbounds i8, ptr %193, i64 72
  %195 = load ptr, ptr %194, align 8
  invoke void %195(ptr noundef nonnull align 8 dereferenceable(232) %191, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %196 unwind label %508

196:                                              ; preds = %192
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #6
  %197 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #6
  store i8 1, ptr %16, align 1, !tbaa !42
  %198 = load ptr, ptr %197, align 8, !tbaa !40
  %199 = getelementptr inbounds i8, ptr %198, i64 112
  %200 = load ptr, ptr %199, align 8
  invoke void %200(ptr noundef nonnull align 8 dereferenceable(224) %197, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %201 unwind label %511

201:                                              ; preds = %196
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %202 unwind label %.loopexit.split-lp.loopexit

202:                                              ; preds = %201
  %203 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #6
  store i8 0, ptr %17, align 1, !tbaa !42
  %204 = load ptr, ptr %203, align 8, !tbaa !40
  %205 = getelementptr inbounds i8, ptr %204, i64 112
  %206 = load ptr, ptr %205, align 8
  invoke void %206(ptr noundef nonnull align 8 dereferenceable(224) %203, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %207 unwind label %513

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

208:                                              ; preds = %207
  %209 = load ptr, ptr %96, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  %210 = load i32, ptr %2, align 4, !tbaa !50
  %211 = add nsw i32 %210, -1
  store i32 %211, ptr %2, align 4, !tbaa !50
  store i32 %210, ptr %18, align 4, !tbaa !50
  %212 = load ptr, ptr %209, align 8, !tbaa !40
  %213 = getelementptr inbounds i8, ptr %212, i64 72
  %214 = load ptr, ptr %213, align 8
  invoke void %214(ptr noundef nonnull align 8 dereferenceable(196) %209, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %215 unwind label %515

215:                                              ; preds = %208
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  %216 = load ptr, ptr %97, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  invoke void @_ZN5sc_dt9sc_signedmmEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %3, i32 noundef 0)
          to label %217 unwind label %517

217:                                              ; preds = %215
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %218 unwind label %519

218:                                              ; preds = %217
  %219 = load ptr, ptr %216, align 8, !tbaa !40
  %220 = getelementptr inbounds i8, ptr %219, i64 72
  %221 = load ptr, ptr %220, align 8
  invoke void %221(ptr noundef nonnull align 8 dereferenceable(232) %216, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %222 unwind label %521

222:                                              ; preds = %218
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #6
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #6
  %223 = load ptr, ptr %98, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #6
  invoke void @_ZN5sc_dt11sc_unsignedmmEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_unsigned") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 0)
          to label %224 unwind label %525

224:                                              ; preds = %222
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %225 unwind label %527

225:                                              ; preds = %224
  %226 = load ptr, ptr %223, align 8, !tbaa !40
  %227 = getelementptr inbounds i8, ptr %226, i64 72
  %228 = load ptr, ptr %227, align 8
  invoke void %228(ptr noundef nonnull align 8 dereferenceable(232) %223, ptr noundef nonnull align 8 dereferenceable(24) %21)
          to label %229 unwind label %529

229:                                              ; preds = %225
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #6
  %230 = load ptr, ptr %99, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #6
  invoke void @_ZN5sc_dt9sc_signedmmEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 0)
          to label %231 unwind label %533

231:                                              ; preds = %229
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %232 unwind label %535

232:                                              ; preds = %231
  %233 = load ptr, ptr %230, align 8, !tbaa !40
  %234 = getelementptr inbounds i8, ptr %233, i64 72
  %235 = load ptr, ptr %234, align 8
  invoke void %235(ptr noundef nonnull align 8 dereferenceable(232) %230, ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %236 unwind label %537

236:                                              ; preds = %232
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #6
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #6
  %237 = load ptr, ptr %100, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #6
  invoke void @_ZN5sc_dt11sc_unsignedmmEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_unsigned") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 0)
          to label %238 unwind label %541

238:                                              ; preds = %236
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %239 unwind label %543

239:                                              ; preds = %238
  %240 = load ptr, ptr %237, align 8, !tbaa !40
  %241 = getelementptr inbounds i8, ptr %240, i64 72
  %242 = load ptr, ptr %241, align 8
  invoke void %242(ptr noundef nonnull align 8 dereferenceable(232) %237, ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %243 unwind label %545

243:                                              ; preds = %239
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #6
  %244 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #6
  store i8 1, ptr %27, align 1, !tbaa !42
  %245 = load ptr, ptr %244, align 8, !tbaa !40
  %246 = getelementptr inbounds i8, ptr %245, i64 112
  %247 = load ptr, ptr %246, align 8
  invoke void %247(ptr noundef nonnull align 8 dereferenceable(224) %244, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %248 unwind label %549

248:                                              ; preds = %243
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #6
  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
  %250 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #6
  store i8 0, ptr %28, align 1, !tbaa !42
  %251 = load ptr, ptr %250, align 8, !tbaa !40
  %252 = getelementptr inbounds i8, ptr %251, i64 112
  %253 = load ptr, ptr %252, align 8
  invoke void %253(ptr noundef nonnull align 8 dereferenceable(224) %250, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %254 unwind label %551

254:                                              ; preds = %249
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %255 unwind label %.loopexit.split-lp.loopexit

255:                                              ; preds = %254
  %256 = load ptr, ptr %96, align 8, !tbaa !55
  %257 = load i32, ptr %2, align 4, !tbaa !50
  %258 = add nsw i32 %257, -1
  store i32 %258, ptr %2, align 4, !tbaa !50
  %259 = load ptr, ptr %256, align 8, !tbaa !40
  %260 = getelementptr inbounds i8, ptr %259, i64 72
  %261 = load ptr, ptr %260, align 8
  invoke void %261(ptr noundef nonnull align 8 dereferenceable(196) %256, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %262 unwind label %.loopexit.split-lp.loopexit

262:                                              ; preds = %255
  %263 = load ptr, ptr %97, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #6
  %264 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmmEv(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %265 unwind label %553

265:                                              ; preds = %262
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(32) %264)
          to label %266 unwind label %553

266:                                              ; preds = %265
  %267 = load ptr, ptr %263, align 8, !tbaa !40
  %268 = getelementptr inbounds i8, ptr %267, i64 72
  %269 = load ptr, ptr %268, align 8
  invoke void %269(ptr noundef nonnull align 8 dereferenceable(232) %263, ptr noundef nonnull align 8 dereferenceable(24) %29)
          to label %270 unwind label %555

270:                                              ; preds = %266
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #6
  %271 = load ptr, ptr %98, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %30) #6
  %272 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmmEv(ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %273 unwind label %558

273:                                              ; preds = %270
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(32) %272)
          to label %274 unwind label %558

274:                                              ; preds = %273
  %275 = load ptr, ptr %271, align 8, !tbaa !40
  %276 = getelementptr inbounds i8, ptr %275, i64 72
  %277 = load ptr, ptr %276, align 8
  invoke void %277(ptr noundef nonnull align 8 dereferenceable(232) %271, ptr noundef nonnull align 8 dereferenceable(24) %30)
          to label %278 unwind label %560

278:                                              ; preds = %274
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #6
  %279 = load ptr, ptr %99, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #6
  %280 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmmEv(ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %281 unwind label %563

281:                                              ; preds = %278
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(32) %280)
          to label %282 unwind label %563

282:                                              ; preds = %281
  %283 = load ptr, ptr %279, align 8, !tbaa !40
  %284 = getelementptr inbounds i8, ptr %283, i64 72
  %285 = load ptr, ptr %284, align 8
  invoke void %285(ptr noundef nonnull align 8 dereferenceable(232) %279, ptr noundef nonnull align 8 dereferenceable(24) %31)
          to label %286 unwind label %565

286:                                              ; preds = %282
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #6
  %287 = load ptr, ptr %100, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #6
  %288 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmmEv(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %289 unwind label %568

289:                                              ; preds = %286
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(32) %288)
          to label %290 unwind label %568

290:                                              ; preds = %289
  %291 = load ptr, ptr %287, align 8, !tbaa !40
  %292 = getelementptr inbounds i8, ptr %291, i64 72
  %293 = load ptr, ptr %292, align 8
  invoke void %293(ptr noundef nonnull align 8 dereferenceable(232) %287, ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %294 unwind label %570

294:                                              ; preds = %290
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #6
  %295 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #6
  store i8 1, ptr %33, align 1, !tbaa !42
  %296 = load ptr, ptr %295, align 8, !tbaa !40
  %297 = getelementptr inbounds i8, ptr %296, i64 112
  %298 = load ptr, ptr %297, align 8
  invoke void %298(ptr noundef nonnull align 8 dereferenceable(224) %295, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %299 unwind label %573

299:                                              ; preds = %294
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %300 unwind label %.loopexit.split-lp.loopexit

300:                                              ; preds = %299
  %301 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #6
  store i8 0, ptr %34, align 1, !tbaa !42
  %302 = load ptr, ptr %301, align 8, !tbaa !40
  %303 = getelementptr inbounds i8, ptr %302, i64 112
  %304 = load ptr, ptr %303, align 8
  invoke void %304(ptr noundef nonnull align 8 dereferenceable(224) %301, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %305 unwind label %575

305:                                              ; preds = %300
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %306 unwind label %.loopexit.split-lp.loopexit

306:                                              ; preds = %305
  %307 = load i32, ptr %2, align 4, !tbaa !50
  %308 = add nsw i32 %307, -254
  store i32 %308, ptr %2, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #6
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %3, i32 noundef 14)
          to label %309 unwind label %577

309:                                              ; preds = %306
  %310 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %311 unwind label %579

311:                                              ; preds = %309
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #6
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 14)
          to label %312 unwind label %582

312:                                              ; preds = %311
  %313 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %314 unwind label %584

314:                                              ; preds = %312
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #6
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 254)
          to label %315 unwind label %587

315:                                              ; preds = %314
  %316 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %317 unwind label %589

317:                                              ; preds = %315
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #6
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 254)
          to label %318 unwind label %592

318:                                              ; preds = %317
  %319 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %320 unwind label %594

320:                                              ; preds = %318
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  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 %96, align 8, !tbaa !55
  %323 = load ptr, ptr %322, align 8, !tbaa !40
  %324 = getelementptr inbounds i8, ptr %323, i64 72
  %325 = load ptr, ptr %324, align 8
  invoke void %325(ptr noundef nonnull align 8 dereferenceable(196) %322, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %326 unwind label %.loopexit.split-lp.loopexit

326:                                              ; preds = %321
  %327 = load ptr, ptr %97, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %39) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %328 unwind label %597

328:                                              ; preds = %326
  %329 = load ptr, ptr %327, align 8, !tbaa !40
  %330 = getelementptr inbounds i8, ptr %329, i64 72
  %331 = load ptr, ptr %330, align 8
  invoke void %331(ptr noundef nonnull align 8 dereferenceable(232) %327, ptr noundef nonnull align 8 dereferenceable(24) %39)
          to label %332 unwind label %599

332:                                              ; preds = %328
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %39) #6
  %333 = load ptr, ptr %98, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %334 unwind label %602

334:                                              ; preds = %332
  %335 = load ptr, ptr %333, align 8, !tbaa !40
  %336 = getelementptr inbounds i8, ptr %335, i64 72
  %337 = load ptr, ptr %336, align 8
  invoke void %337(ptr noundef nonnull align 8 dereferenceable(232) %333, ptr noundef nonnull align 8 dereferenceable(24) %40)
          to label %338 unwind label %604

338:                                              ; preds = %334
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #6
  %339 = load ptr, ptr %99, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %41) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %340 unwind label %607

340:                                              ; preds = %338
  %341 = load ptr, ptr %339, align 8, !tbaa !40
  %342 = getelementptr inbounds i8, ptr %341, i64 72
  %343 = load ptr, ptr %342, align 8
  invoke void %343(ptr noundef nonnull align 8 dereferenceable(232) %339, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %344 unwind label %609

344:                                              ; preds = %340
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #6
  %345 = load ptr, ptr %100, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %42) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %346 unwind label %612

346:                                              ; preds = %344
  %347 = load ptr, ptr %345, align 8, !tbaa !40
  %348 = getelementptr inbounds i8, ptr %347, i64 72
  %349 = load ptr, ptr %348, align 8
  invoke void %349(ptr noundef nonnull align 8 dereferenceable(232) %345, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %350 unwind label %614

350:                                              ; preds = %346
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #6
  %351 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #6
  store i8 1, ptr %43, align 1, !tbaa !42
  %352 = load ptr, ptr %351, align 8, !tbaa !40
  %353 = getelementptr inbounds i8, ptr %352, i64 112
  %354 = load ptr, ptr %353, align 8
  invoke void %354(ptr noundef nonnull align 8 dereferenceable(224) %351, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %355 unwind label %617

355:                                              ; preds = %350
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %356 unwind label %.loopexit.split-lp.loopexit

356:                                              ; preds = %355
  %357 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #6
  store i8 0, ptr %44, align 1, !tbaa !42
  %358 = load ptr, ptr %357, align 8, !tbaa !40
  %359 = getelementptr inbounds i8, ptr %358, i64 112
  %360 = load ptr, ptr %359, align 8
  invoke void %360(ptr noundef nonnull align 8 dereferenceable(224) %357, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %361 unwind label %619

361:                                              ; preds = %356
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %362 unwind label %.loopexit.split-lp.loopexit

362:                                              ; preds = %361
  %363 = load i32, ptr %2, align 4, !tbaa !50
  %364 = add nsw i32 %363, -254
  store i32 %364, ptr %2, align 4, !tbaa !50
  %365 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmIEi(ptr noundef nonnull align 8 dereferenceable(32) %3, i32 noundef 14)
          to label %366 unwind label %.loopexit.split-lp.loopexit

366:                                              ; preds = %362
  %367 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmIEi(ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 14)
          to label %368 unwind label %.loopexit.split-lp.loopexit

368:                                              ; preds = %366
  %369 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmIEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 254)
          to label %370 unwind label %.loopexit.split-lp.loopexit

370:                                              ; preds = %368
  %371 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmIEi(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 254)
          to label %372 unwind label %.loopexit.split-lp.loopexit

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

373:                                              ; preds = %372
  %374 = load ptr, ptr %96, align 8, !tbaa !55
  %375 = load ptr, ptr %374, align 8, !tbaa !40
  %376 = getelementptr inbounds i8, ptr %375, i64 72
  %377 = load ptr, ptr %376, align 8
  invoke void %377(ptr noundef nonnull align 8 dereferenceable(196) %374, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %378 unwind label %.loopexit.split-lp.loopexit

378:                                              ; preds = %373
  %379 = load ptr, ptr %97, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %380 unwind label %621

380:                                              ; preds = %378
  %381 = load ptr, ptr %379, align 8, !tbaa !40
  %382 = getelementptr inbounds i8, ptr %381, i64 72
  %383 = load ptr, ptr %382, align 8
  invoke void %383(ptr noundef nonnull align 8 dereferenceable(232) %379, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %384 unwind label %623

384:                                              ; preds = %380
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #6
  %385 = load ptr, ptr %98, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %46) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %386 unwind label %626

386:                                              ; preds = %384
  %387 = load ptr, ptr %385, align 8, !tbaa !40
  %388 = getelementptr inbounds i8, ptr %387, i64 72
  %389 = load ptr, ptr %388, align 8
  invoke void %389(ptr noundef nonnull align 8 dereferenceable(232) %385, ptr noundef nonnull align 8 dereferenceable(24) %46)
          to label %390 unwind label %628

390:                                              ; preds = %386
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #6
  %391 = load ptr, ptr %99, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %47) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %392 unwind label %631

392:                                              ; preds = %390
  %393 = load ptr, ptr %391, align 8, !tbaa !40
  %394 = getelementptr inbounds i8, ptr %393, i64 72
  %395 = load ptr, ptr %394, align 8
  invoke void %395(ptr noundef nonnull align 8 dereferenceable(232) %391, ptr noundef nonnull align 8 dereferenceable(24) %47)
          to label %396 unwind label %633

396:                                              ; preds = %392
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %47) #6
  %397 = load ptr, ptr %100, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %48) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %398 unwind label %636

398:                                              ; preds = %396
  %399 = load ptr, ptr %397, align 8, !tbaa !40
  %400 = getelementptr inbounds i8, ptr %399, i64 72
  %401 = load ptr, ptr %400, align 8
  invoke void %401(ptr noundef nonnull align 8 dereferenceable(232) %397, ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %402 unwind label %638

402:                                              ; preds = %398
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %48) #6
  %403 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #6
  store i8 1, ptr %49, align 1, !tbaa !42
  %404 = load ptr, ptr %403, align 8, !tbaa !40
  %405 = getelementptr inbounds i8, ptr %404, i64 112
  %406 = load ptr, ptr %405, align 8
  invoke void %406(ptr noundef nonnull align 8 dereferenceable(224) %403, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %407 unwind label %641

407:                                              ; preds = %402
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %408 unwind label %.loopexit.split-lp.loopexit

408:                                              ; preds = %407
  %409 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #6
  store i8 0, ptr %50, align 1, !tbaa !42
  %410 = load ptr, ptr %409, align 8, !tbaa !40
  %411 = getelementptr inbounds i8, ptr %410, i64 112
  %412 = load ptr, ptr %411, align 8
  invoke void %412(ptr noundef nonnull align 8 dereferenceable(224) %409, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %413 unwind label %643

413:                                              ; preds = %408
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %414 unwind label %.loopexit.split-lp.loopexit

414:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #6
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedERKNS_9sc_signedE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %415 unwind label %645

415:                                              ; preds = %414
  %416 = invoke noundef i32 @_ZNK5sc_dt9sc_signed6to_intEv(ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %417 unwind label %647

417:                                              ; preds = %415
  store i32 %416, ptr %2, align 4, !tbaa !50
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #6
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedES2_(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %418 unwind label %650

418:                                              ; preds = %417
  %419 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %420 unwind label %652

420:                                              ; preds = %418
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #6
  invoke void @_ZN5sc_dtmiERKNS_11sc_unsignedES2_(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %421 unwind label %655

421:                                              ; preds = %420
  %422 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %423 unwind label %657

423:                                              ; preds = %421
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #6
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %424 unwind label %660

424:                                              ; preds = %423
  %425 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %426 unwind label %662

426:                                              ; preds = %424
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #6
  invoke void @_ZN5sc_dtmiERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %427 unwind label %665

427:                                              ; preds = %426
  %428 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %429 unwind label %667

429:                                              ; preds = %427
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %430 unwind label %.loopexit.split-lp.loopexit

430:                                              ; preds = %429
  %431 = load ptr, ptr %96, align 8, !tbaa !55
  %432 = load ptr, ptr %431, align 8, !tbaa !40
  %433 = getelementptr inbounds i8, ptr %432, i64 72
  %434 = load ptr, ptr %433, align 8
  invoke void %434(ptr noundef nonnull align 8 dereferenceable(196) %431, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %435 unwind label %.loopexit.split-lp.loopexit

435:                                              ; preds = %430
  %436 = load ptr, ptr %97, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %56) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %56, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %437 unwind label %670

437:                                              ; preds = %435
  %438 = load ptr, ptr %436, align 8, !tbaa !40
  %439 = getelementptr inbounds i8, ptr %438, i64 72
  %440 = load ptr, ptr %439, align 8
  invoke void %440(ptr noundef nonnull align 8 dereferenceable(232) %436, ptr noundef nonnull align 8 dereferenceable(24) %56)
          to label %441 unwind label %672

441:                                              ; preds = %437
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #6
  %442 = load ptr, ptr %98, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %57) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %443 unwind label %675

443:                                              ; preds = %441
  %444 = load ptr, ptr %442, align 8, !tbaa !40
  %445 = getelementptr inbounds i8, ptr %444, i64 72
  %446 = load ptr, ptr %445, align 8
  invoke void %446(ptr noundef nonnull align 8 dereferenceable(232) %442, ptr noundef nonnull align 8 dereferenceable(24) %57)
          to label %447 unwind label %677

447:                                              ; preds = %443
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #6
  %448 = load ptr, ptr %99, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %58) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %58, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %449 unwind label %680

449:                                              ; preds = %447
  %450 = load ptr, ptr %448, align 8, !tbaa !40
  %451 = getelementptr inbounds i8, ptr %450, i64 72
  %452 = load ptr, ptr %451, align 8
  invoke void %452(ptr noundef nonnull align 8 dereferenceable(232) %448, ptr noundef nonnull align 8 dereferenceable(24) %58)
          to label %453 unwind label %682

453:                                              ; preds = %449
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #6
  %454 = load ptr, ptr %100, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %59) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %59, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %455 unwind label %685

455:                                              ; preds = %453
  %456 = load ptr, ptr %454, align 8, !tbaa !40
  %457 = getelementptr inbounds i8, ptr %456, i64 72
  %458 = load ptr, ptr %457, align 8
  invoke void %458(ptr noundef nonnull align 8 dereferenceable(232) %454, ptr noundef nonnull align 8 dereferenceable(24) %59)
          to label %459 unwind label %687

459:                                              ; preds = %455
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #6
  %460 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #6
  store i8 1, ptr %60, align 1, !tbaa !42
  %461 = load ptr, ptr %460, align 8, !tbaa !40
  %462 = getelementptr inbounds i8, ptr %461, i64 112
  %463 = load ptr, ptr %462, align 8
  invoke void %463(ptr noundef nonnull align 8 dereferenceable(224) %460, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %464 unwind label %690

464:                                              ; preds = %459
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %465 unwind label %.loopexit.split-lp.loopexit

465:                                              ; preds = %464
  %466 = load ptr, ptr %101, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #6
  store i8 0, ptr %61, align 1, !tbaa !42
  %467 = load ptr, ptr %466, align 8, !tbaa !40
  %468 = getelementptr inbounds i8, ptr %467, i64 112
  %469 = load ptr, ptr %468, align 8
  invoke void %469(ptr noundef nonnull align 8 dereferenceable(224) %466, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %470 unwind label %692

470:                                              ; preds = %465
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #6
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %.backedge unwind label %.loopexit.split-lp.loopexit

471:                                              ; preds = %152
  %472 = landingpad { ptr, i32 }
          cleanup
  br label %475

473:                                              ; preds = %155
  %474 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %475

475:                                              ; preds = %473, %471
  %.pn = phi { ptr, i32 } [ %474, %473 ], [ %472, %471 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  br label %.loopexit.split-lp

476:                                              ; preds = %157
  %477 = landingpad { ptr, i32 }
          cleanup
  br label %480

478:                                              ; preds = %158
  %479 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %480

480:                                              ; preds = %478, %476
  %.pn55 = phi { ptr, i32 } [ %479, %478 ], [ %477, %476 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br label %.loopexit.split-lp

481:                                              ; preds = %160
  %482 = landingpad { ptr, i32 }
          cleanup
  br label %485

483:                                              ; preds = %161
  %484 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %485

485:                                              ; preds = %483, %481
  %.pn57 = phi { ptr, i32 } [ %484, %483 ], [ %482, %481 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  br label %.loopexit.split-lp

486:                                              ; preds = %163
  %487 = landingpad { ptr, i32 }
          cleanup
  br label %490

488:                                              ; preds = %164
  %489 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %490

490:                                              ; preds = %488, %486
  %.pn59 = phi { ptr, i32 } [ %489, %488 ], [ %487, %486 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %.loopexit.split-lp

491:                                              ; preds = %172
  %492 = landingpad { ptr, i32 }
          cleanup
  br label %495

493:                                              ; preds = %174
  %494 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  br label %495

495:                                              ; preds = %493, %491
  %.pn61 = phi { ptr, i32 } [ %494, %493 ], [ %492, %491 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  br label %.loopexit.split-lp

496:                                              ; preds = %178
  %497 = landingpad { ptr, i32 }
          cleanup
  br label %500

498:                                              ; preds = %180
  %499 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  br label %500

500:                                              ; preds = %498, %496
  %.pn63 = phi { ptr, i32 } [ %499, %498 ], [ %497, %496 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  br label %.loopexit.split-lp

501:                                              ; preds = %184
  %502 = landingpad { ptr, i32 }
          cleanup
  br label %505

503:                                              ; preds = %186
  %504 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #6
  br label %505

505:                                              ; preds = %503, %501
  %.pn65 = phi { ptr, i32 } [ %504, %503 ], [ %502, %501 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #6
  br label %.loopexit.split-lp

506:                                              ; preds = %190
  %507 = landingpad { ptr, i32 }
          cleanup
  br label %510

508:                                              ; preds = %192
  %509 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #6
  br label %510

510:                                              ; preds = %508, %506
  %.pn67 = phi { ptr, i32 } [ %509, %508 ], [ %507, %506 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #6
  br label %.loopexit.split-lp

511:                                              ; preds = %196
  %512 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  br label %.loopexit.split-lp

513:                                              ; preds = %202
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  br label %.loopexit.split-lp

515:                                              ; preds = %208
  %516 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  br label %.loopexit.split-lp

517:                                              ; preds = %215
  %518 = landingpad { ptr, i32 }
          cleanup
  br label %524

519:                                              ; preds = %217
  %520 = landingpad { ptr, i32 }
          cleanup
  br label %523

521:                                              ; preds = %218
  %522 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #6
  br label %523

523:                                              ; preds = %521, %519
  %.pn69 = phi { ptr, i32 } [ %522, %521 ], [ %520, %519 ]
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %524

524:                                              ; preds = %523, %517
  %.pn69.pn = phi { ptr, i32 } [ %.pn69, %523 ], [ %518, %517 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #6
  br label %.loopexit.split-lp

525:                                              ; preds = %222
  %526 = landingpad { ptr, i32 }
          cleanup
  br label %532

527:                                              ; preds = %224
  %528 = landingpad { ptr, i32 }
          cleanup
  br label %531

529:                                              ; preds = %225
  %530 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  br label %531

531:                                              ; preds = %529, %527
  %.pn72 = phi { ptr, i32 } [ %530, %529 ], [ %528, %527 ]
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %532

532:                                              ; preds = %531, %525
  %.pn72.pn = phi { ptr, i32 } [ %.pn72, %531 ], [ %526, %525 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #6
  br label %.loopexit.split-lp

533:                                              ; preds = %229
  %534 = landingpad { ptr, i32 }
          cleanup
  br label %540

535:                                              ; preds = %231
  %536 = landingpad { ptr, i32 }
          cleanup
  br label %539

537:                                              ; preds = %232
  %538 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #6
  br label %539

539:                                              ; preds = %537, %535
  %.pn75 = phi { ptr, i32 } [ %538, %537 ], [ %536, %535 ]
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %540

540:                                              ; preds = %539, %533
  %.pn75.pn = phi { ptr, i32 } [ %.pn75, %539 ], [ %534, %533 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #6
  br label %.loopexit.split-lp

541:                                              ; preds = %236
  %542 = landingpad { ptr, i32 }
          cleanup
  br label %548

543:                                              ; preds = %238
  %544 = landingpad { ptr, i32 }
          cleanup
  br label %547

545:                                              ; preds = %239
  %546 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  br label %547

547:                                              ; preds = %545, %543
  %.pn78 = phi { ptr, i32 } [ %546, %545 ], [ %544, %543 ]
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %548

548:                                              ; preds = %547, %541
  %.pn78.pn = phi { ptr, i32 } [ %.pn78, %547 ], [ %542, %541 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #6
  br label %.loopexit.split-lp

549:                                              ; preds = %243
  %550 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #6
  br label %.loopexit.split-lp

551:                                              ; preds = %249
  %552 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #6
  br label %.loopexit.split-lp

553:                                              ; preds = %265, %262
  %554 = landingpad { ptr, i32 }
          cleanup
  br label %557

555:                                              ; preds = %266
  %556 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  br label %557

557:                                              ; preds = %555, %553
  %.pn81 = phi { ptr, i32 } [ %556, %555 ], [ %554, %553 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #6
  br label %.loopexit.split-lp

558:                                              ; preds = %273, %270
  %559 = landingpad { ptr, i32 }
          cleanup
  br label %562

560:                                              ; preds = %274
  %561 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #6
  br label %562

562:                                              ; preds = %560, %558
  %.pn83 = phi { ptr, i32 } [ %561, %560 ], [ %559, %558 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #6
  br label %.loopexit.split-lp

563:                                              ; preds = %281, %278
  %564 = landingpad { ptr, i32 }
          cleanup
  br label %567

565:                                              ; preds = %282
  %566 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #6
  br label %567

567:                                              ; preds = %565, %563
  %.pn85 = phi { ptr, i32 } [ %566, %565 ], [ %564, %563 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #6
  br label %.loopexit.split-lp

568:                                              ; preds = %289, %286
  %569 = landingpad { ptr, i32 }
          cleanup
  br label %572

570:                                              ; preds = %290
  %571 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #6
  br label %572

572:                                              ; preds = %570, %568
  %.pn87 = phi { ptr, i32 } [ %571, %570 ], [ %569, %568 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #6
  br label %.loopexit.split-lp

573:                                              ; preds = %294
  %574 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #6
  br label %.loopexit.split-lp

575:                                              ; preds = %300
  %576 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #6
  br label %.loopexit.split-lp

577:                                              ; preds = %306
  %578 = landingpad { ptr, i32 }
          cleanup
  br label %581

579:                                              ; preds = %309
  %580 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %581

581:                                              ; preds = %579, %577
  %.pn89 = phi { ptr, i32 } [ %580, %579 ], [ %578, %577 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  br label %.loopexit.split-lp

582:                                              ; preds = %311
  %583 = landingpad { ptr, i32 }
          cleanup
  br label %586

584:                                              ; preds = %312
  %585 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %586

586:                                              ; preds = %584, %582
  %.pn91 = phi { ptr, i32 } [ %585, %584 ], [ %583, %582 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  br label %.loopexit.split-lp

587:                                              ; preds = %314
  %588 = landingpad { ptr, i32 }
          cleanup
  br label %591

589:                                              ; preds = %315
  %590 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %591

591:                                              ; preds = %589, %587
  %.pn93 = phi { ptr, i32 } [ %590, %589 ], [ %588, %587 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  br label %.loopexit.split-lp

592:                                              ; preds = %317
  %593 = landingpad { ptr, i32 }
          cleanup
  br label %596

594:                                              ; preds = %318
  %595 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %596

596:                                              ; preds = %594, %592
  %.pn95 = phi { ptr, i32 } [ %595, %594 ], [ %593, %592 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  br label %.loopexit.split-lp

597:                                              ; preds = %326
  %598 = landingpad { ptr, i32 }
          cleanup
  br label %601

599:                                              ; preds = %328
  %600 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #6
  br label %601

601:                                              ; preds = %599, %597
  %.pn97 = phi { ptr, i32 } [ %600, %599 ], [ %598, %597 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %39) #6
  br label %.loopexit.split-lp

602:                                              ; preds = %332
  %603 = landingpad { ptr, i32 }
          cleanup
  br label %606

604:                                              ; preds = %334
  %605 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #6
  br label %606

606:                                              ; preds = %604, %602
  %.pn99 = phi { ptr, i32 } [ %605, %604 ], [ %603, %602 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #6
  br label %.loopexit.split-lp

607:                                              ; preds = %338
  %608 = landingpad { ptr, i32 }
          cleanup
  br label %611

609:                                              ; preds = %340
  %610 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  br label %611

611:                                              ; preds = %609, %607
  %.pn101 = phi { ptr, i32 } [ %610, %609 ], [ %608, %607 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #6
  br label %.loopexit.split-lp

612:                                              ; preds = %344
  %613 = landingpad { ptr, i32 }
          cleanup
  br label %616

614:                                              ; preds = %346
  %615 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #6
  br label %616

616:                                              ; preds = %614, %612
  %.pn103 = phi { ptr, i32 } [ %615, %614 ], [ %613, %612 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #6
  br label %.loopexit.split-lp

617:                                              ; preds = %350
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #6
  br label %.loopexit.split-lp

619:                                              ; preds = %356
  %620 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  br label %.loopexit.split-lp

621:                                              ; preds = %378
  %622 = landingpad { ptr, i32 }
          cleanup
  br label %625

623:                                              ; preds = %380
  %624 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #6
  br label %625

625:                                              ; preds = %623, %621
  %.pn105 = phi { ptr, i32 } [ %624, %623 ], [ %622, %621 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #6
  br label %.loopexit.split-lp

626:                                              ; preds = %384
  %627 = landingpad { ptr, i32 }
          cleanup
  br label %630

628:                                              ; preds = %386
  %629 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #6
  br label %630

630:                                              ; preds = %628, %626
  %.pn107 = phi { ptr, i32 } [ %629, %628 ], [ %627, %626 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #6
  br label %.loopexit.split-lp

631:                                              ; preds = %390
  %632 = landingpad { ptr, i32 }
          cleanup
  br label %635

633:                                              ; preds = %392
  %634 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #6
  br label %635

635:                                              ; preds = %633, %631
  %.pn109 = phi { ptr, i32 } [ %634, %633 ], [ %632, %631 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %47) #6
  br label %.loopexit.split-lp

636:                                              ; preds = %396
  %637 = landingpad { ptr, i32 }
          cleanup
  br label %640

638:                                              ; preds = %398
  %639 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #6
  br label %640

640:                                              ; preds = %638, %636
  %.pn111 = phi { ptr, i32 } [ %639, %638 ], [ %637, %636 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %48) #6
  br label %.loopexit.split-lp

641:                                              ; preds = %402
  %642 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #6
  br label %.loopexit.split-lp

643:                                              ; preds = %408
  %644 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #6
  br label %.loopexit.split-lp

645:                                              ; preds = %414
  %646 = landingpad { ptr, i32 }
          cleanup
  br label %649

647:                                              ; preds = %415
  %648 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %649

649:                                              ; preds = %647, %645
  %.pn113 = phi { ptr, i32 } [ %648, %647 ], [ %646, %645 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  br label %.loopexit.split-lp

650:                                              ; preds = %417
  %651 = landingpad { ptr, i32 }
          cleanup
  br label %654

652:                                              ; preds = %418
  %653 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  br label %654

654:                                              ; preds = %652, %650
  %.pn115 = phi { ptr, i32 } [ %653, %652 ], [ %651, %650 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #6
  br label %.loopexit.split-lp

655:                                              ; preds = %420
  %656 = landingpad { ptr, i32 }
          cleanup
  br label %659

657:                                              ; preds = %421
  %658 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %659

659:                                              ; preds = %657, %655
  %.pn117 = phi { ptr, i32 } [ %658, %657 ], [ %656, %655 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  br label %.loopexit.split-lp

660:                                              ; preds = %423
  %661 = landingpad { ptr, i32 }
          cleanup
  br label %664

662:                                              ; preds = %424
  %663 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %664

664:                                              ; preds = %662, %660
  %.pn119 = phi { ptr, i32 } [ %663, %662 ], [ %661, %660 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  br label %.loopexit.split-lp

665:                                              ; preds = %426
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %669

667:                                              ; preds = %427
  %668 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %669

669:                                              ; preds = %667, %665
  %.pn121 = phi { ptr, i32 } [ %668, %667 ], [ %666, %665 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  br label %.loopexit.split-lp

670:                                              ; preds = %435
  %671 = landingpad { ptr, i32 }
          cleanup
  br label %674

672:                                              ; preds = %437
  %673 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #6
  br label %674

674:                                              ; preds = %672, %670
  %.pn123 = phi { ptr, i32 } [ %673, %672 ], [ %671, %670 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #6
  br label %.loopexit.split-lp

675:                                              ; preds = %441
  %676 = landingpad { ptr, i32 }
          cleanup
  br label %679

677:                                              ; preds = %443
  %678 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #6
  br label %679

679:                                              ; preds = %677, %675
  %.pn125 = phi { ptr, i32 } [ %678, %677 ], [ %676, %675 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #6
  br label %.loopexit.split-lp

680:                                              ; preds = %447
  %681 = landingpad { ptr, i32 }
          cleanup
  br label %684

682:                                              ; preds = %449
  %683 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #6
  br label %684

684:                                              ; preds = %682, %680
  %.pn127 = phi { ptr, i32 } [ %683, %682 ], [ %681, %680 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #6
  br label %.loopexit.split-lp

685:                                              ; preds = %453
  %686 = landingpad { ptr, i32 }
          cleanup
  br label %689

687:                                              ; preds = %455
  %688 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #6
  br label %689

689:                                              ; preds = %687, %685
  %.pn129 = phi { ptr, i32 } [ %688, %687 ], [ %686, %685 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #6
  br label %.loopexit.split-lp

690:                                              ; preds = %459
  %691 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  br label %.loopexit.split-lp

692:                                              ; preds = %465
  %693 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #6
  br label %.loopexit.split-lp

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %692, %690, %689, %684, %679, %674, %669, %664, %659, %654, %649, %643, %641, %640, %635, %630, %625, %619, %617, %616, %611, %606, %601, %596, %591, %586, %581, %575, %573, %572, %567, %562, %557, %551, %549, %548, %540, %532, %524, %515, %513, %511, %510, %505, %500, %495, %490, %485, %480, %475, %87
  %.pn131 = phi { ptr, i32 } [ %693, %692 ], [ %691, %690 ], [ %.pn129, %689 ], [ %.pn127, %684 ], [ %.pn125, %679 ], [ %.pn123, %674 ], [ %.pn121, %669 ], [ %.pn119, %664 ], [ %.pn117, %659 ], [ %.pn115, %654 ], [ %.pn113, %649 ], [ %644, %643 ], [ %642, %641 ], [ %.pn111, %640 ], [ %.pn109, %635 ], [ %.pn107, %630 ], [ %.pn105, %625 ], [ %620, %619 ], [ %618, %617 ], [ %.pn103, %616 ], [ %.pn101, %611 ], [ %.pn99, %606 ], [ %.pn97, %601 ], [ %.pn95, %596 ], [ %.pn93, %591 ], [ %.pn91, %586 ], [ %.pn89, %581 ], [ %576, %575 ], [ %574, %573 ], [ %.pn87, %572 ], [ %.pn85, %567 ], [ %.pn83, %562 ], [ %.pn81, %557 ], [ %552, %551 ], [ %550, %549 ], [ %.pn78.pn, %548 ], [ %.pn75.pn, %540 ], [ %.pn72.pn, %532 ], [ %.pn69.pn, %524 ], [ %516, %515 ], [ %514, %513 ], [ %512, %511 ], [ %.pn67, %510 ], [ %.pn65, %505 ], [ %.pn63, %500 ], [ %.pn61, %495 ], [ %.pn59, %490 ], [ %.pn57, %485 ], [ %.pn55, %480 ], [ %.pn, %475 ], [ %88, %87 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit136, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp137, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %694

694:                                              ; preds = %.loopexit.split-lp, %85
  %.pn131.pn = phi { ptr, i32 } [ %.pn131, %.loopexit.split-lp ], [ %86, %85 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %695

695:                                              ; preds = %694, %83
  %.pn131.pn.pn = phi { ptr, i32 } [ %.pn131.pn, %694 ], [ %84, %83 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %696

696:                                              ; preds = %695, %81
  %.pn131.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn, %695 ], [ %82, %81 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #6
  resume { ptr, i32 } %.pn131.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_dt9sc_bigintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5sc_dt10sc_biguintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) 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 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 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_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_dt9sc_bigintILi8EEaSERKNS_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_biguintILi8EEaSERKNS_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: inlinehint mustprogress uwtable
declare dso_local void @_ZN5sc_dtmiERKNS_9sc_signedEi(ptr dead_on_unwind noalias writable sret(%"class.sc_dt::sc_signed") align 8, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5sc_dtmiERKNS_11sc_unsignedEi(ptr dead_on_unwind noalias writable sret(%"class.sc_dt::sc_signed") align 8, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #3

; 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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(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 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 void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 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

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

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

declare void @_ZN5sc_dt11sc_unsignedmmEi(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #5

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signedmmEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsignedmmEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

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

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

declare void @_ZN5sc_dtmiERKNS_11sc_unsignedERKNS_9sc_signedE(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 #5

declare noundef i32 @_ZNK5sc_dt9sc_signed6to_intEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

declare void @_ZN5sc_dtmiERKNS_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 #5

declare void @_ZN5sc_dtmiERKNS_11sc_unsignedES2_(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 #5

declare void @_ZN5sc_dtmiERKNS_9sc_signedERKNS_11sc_unsignedE(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 #5

; 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

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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = !{!"_ZTS11subtraction", !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, !9, i64 504, !9, i64 512}
!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 512}
!46 = !{!6, !9, i64 464}
!47 = distinct !{!47, !48}
!48 = !{!"llvm.loop.mustprogress"}
!49 = !{!6, !9, i64 424}
!50 = !{!31, !31, i64 0}
!51 = !{!6, !9, i64 432}
!52 = !{!6, !9, i64 440}
!53 = !{!6, !9, i64 448}
!54 = !{!6, !9, i64 456}
!55 = !{!6, !9, i64 472}
!56 = !{!6, !9, i64 480}
!57 = !{!6, !9, i64 488}
!58 = !{!6, !9, i64 496}
!59 = !{!6, !9, i64 504}


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