; LLVM IR from gem5/gem5 :: src/systemc/tests/systemc/misc/cae_test/general/arith/divide/divide/divide.l_592fbb65 (ZN6divide5entryEv)

; 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.divide = 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 @_ZN6divide5entryEv(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 %"class.sc_dt::sc_bv", align 8
  %22 = alloca %"class.sc_dt::sc_bv.27", align 8
  %23 = alloca %"class.sc_dt::sc_bv.27", align 8
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  %26 = alloca %"class.sc_dt::sc_signed", align 8
  %27 = alloca %"class.sc_dt::sc_signed", align 8
  %28 = alloca %"class.sc_dt::sc_unsigned", align 8
  %29 = alloca %"class.sc_dt::sc_signed", 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
  store ptr %0, ptr %2, align 8, !tbaa !5
  %35 = 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 %36 unwind label %58

36:                                               ; 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 %37 unwind label %62

37:                                               ; preds = %36
  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 %38 unwind label %66

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

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

50:                                               ; preds = %45
  %51 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 14
  %52 = load ptr, ptr %51, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #5
  store i8 0, ptr %10, align 1, !tbaa !43
  %53 = load ptr, ptr %52, align 8, !tbaa !41
  %54 = getelementptr inbounds ptr, ptr %53, i64 14
  %55 = load ptr, ptr %54, align 8
  invoke void %55(ptr noundef nonnull align 8 dereferenceable(224) %52, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %56 unwind label %74

56:                                               ; preds = %50
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %57 unwind label %70

57:                                               ; preds = %56
  br label %80

58:                                               ; preds = %1
  %59 = landingpad { ptr, i32 }
          cleanup
  %60 = extractvalue { ptr, i32 } %59, 0
  store ptr %60, ptr %6, align 8
  %61 = extractvalue { ptr, i32 } %59, 1
  store i32 %61, ptr %7, align 4
  br label %517

62:                                               ; preds = %36
  %63 = landingpad { ptr, i32 }
          cleanup
  %64 = extractvalue { ptr, i32 } %63, 0
  store ptr %64, ptr %6, align 8
  %65 = extractvalue { ptr, i32 } %63, 1
  store i32 %65, ptr %7, align 4
  br label %516

66:                                               ; preds = %37
  %67 = landingpad { ptr, i32 }
          cleanup
  %68 = extractvalue { ptr, i32 } %67, 0
  store ptr %68, ptr %6, align 8
  %69 = extractvalue { ptr, i32 } %67, 1
  store i32 %69, ptr %7, align 4
  br label %515

70:                                               ; preds = %477, %470, %437, %436, %420, %404, %388, %257, %256, %249, %216, %215, %213, %211, %209, %205, %204, %197, %157, %156, %140, %133, %131, %124, %122, %115, %113, %105, %98, %97, %95, %83, %78, %56, %38
  %71 = landingpad { ptr, i32 }
          cleanup
  %72 = extractvalue { ptr, i32 } %71, 0
  store ptr %72, ptr %6, align 8
  %73 = extractvalue { ptr, i32 } %71, 1
  store i32 %73, ptr %7, align 4
  br label %514

74:                                               ; preds = %50
  %75 = landingpad { ptr, i32 }
          cleanup
  %76 = extractvalue { ptr, i32 } %75, 0
  store ptr %76, ptr %6, align 8
  %77 = extractvalue { ptr, i32 } %75, 1
  store i32 %77, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #5
  br label %514

78:                                               ; preds = %45
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %79 unwind label %70

79:                                               ; preds = %78
  br label %80

80:                                               ; preds = %79, %57
  br label %81

81:                                               ; preds = %478, %80
  br label %82

82:                                               ; preds = %81
  br label %83

83:                                               ; preds = %96, %82
  %84 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 8
  %85 = load ptr, ptr %84, align 8, !tbaa !47
  %86 = load ptr, ptr %85, align 8, !tbaa !41
  %87 = getelementptr inbounds ptr, ptr %86, i64 7
  %88 = load ptr, ptr %87, align 8
  %89 = invoke noundef nonnull align 1 dereferenceable(1) ptr %88(ptr noundef nonnull align 8 dereferenceable(224) %85)
          to label %90 unwind label %70

90:                                               ; preds = %83
  %91 = load i8, ptr %89, align 1, !tbaa !43, !range !44, !noundef !45
  %92 = trunc i8 %91 to i1
  %93 = zext i1 %92 to i32
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %95, label %97

95:                                               ; preds = %90
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %96 unwind label %70

96:                                               ; preds = %95
  br label %83, !llvm.loop !48

97:                                               ; preds = %90
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %98 unwind label %70

98:                                               ; preds = %97
  %99 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 3
  %100 = load ptr, ptr %99, align 8, !tbaa !50
  %101 = load ptr, ptr %100, align 8, !tbaa !41
  %102 = getelementptr inbounds ptr, ptr %101, i64 5
  %103 = load ptr, ptr %102, align 8
  %104 = invoke noundef nonnull align 4 dereferenceable(4) ptr %103(ptr noundef nonnull align 8 dereferenceable(196) %100)
          to label %105 unwind label %70

105:                                              ; preds = %98
  %106 = load i32, ptr %104, align 4, !tbaa !51
  store i32 %106, ptr %3, align 4, !tbaa !51
  %107 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 4
  %108 = load ptr, ptr %107, align 8, !tbaa !52
  %109 = load ptr, ptr %108, align 8, !tbaa !41
  %110 = getelementptr inbounds ptr, ptr %109, i64 5
  %111 = load ptr, ptr %110, align 8
  %112 = invoke noundef nonnull align 8 dereferenceable(24) ptr %111(ptr noundef nonnull align 8 dereferenceable(232) %108)
          to label %113 unwind label %70

113:                                              ; preds = %105
  %114 = 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) %112)
          to label %115 unwind label %70

115:                                              ; preds = %113
  %116 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 5
  %117 = load ptr, ptr %116, align 8, !tbaa !53
  %118 = load ptr, ptr %117, align 8, !tbaa !41
  %119 = getelementptr inbounds ptr, ptr %118, i64 5
  %120 = load ptr, ptr %119, align 8
  %121 = invoke noundef nonnull align 8 dereferenceable(24) ptr %120(ptr noundef nonnull align 8 dereferenceable(232) %117)
          to label %122 unwind label %70

122:                                              ; preds = %115
  %123 = 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) %121)
          to label %124 unwind label %70

124:                                              ; preds = %122
  %125 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 6
  %126 = load ptr, ptr %125, align 8, !tbaa !54
  %127 = load ptr, ptr %126, align 8, !tbaa !41
  %128 = getelementptr inbounds ptr, ptr %127, i64 5
  %129 = load ptr, ptr %128, align 8
  %130 = invoke noundef nonnull align 8 dereferenceable(24) ptr %129(ptr noundef nonnull align 8 dereferenceable(232) %126)
          to label %131 unwind label %70

131:                                              ; preds = %124
  %132 = 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) %130)
          to label %133 unwind label %70

133:                                              ; preds = %131
  %134 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 7
  %135 = load ptr, ptr %134, align 8, !tbaa !55
  %136 = load ptr, ptr %135, align 8, !tbaa !41
  %137 = getelementptr inbounds ptr, ptr %136, i64 5
  %138 = load ptr, ptr %137, align 8
  %139 = invoke noundef nonnull align 8 dereferenceable(24) ptr %138(ptr noundef nonnull align 8 dereferenceable(232) %135)
          to label %140 unwind label %70

140:                                              ; preds = %133
  %141 = 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) %139)
          to label %142 unwind label %70

142:                                              ; preds = %140
  %143 = load i32, ptr %3, align 4, !tbaa !51
  %144 = sdiv i32 %143, 2
  store i32 %144, ptr %3, align 4, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #5
  invoke void @_ZN5sc_dtdvERKNS_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 2)
          to label %145 unwind label %264

145:                                              ; preds = %142
  %146 = 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 %147 unwind label %268

147:                                              ; preds = %145
  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_dtdvERKNS_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 2)
          to label %148 unwind label %273

148:                                              ; preds = %147
  %149 = 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 %150 unwind label %277

150:                                              ; preds = %148
  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_dtdvERKNS_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 2)
          to label %151 unwind label %282

151:                                              ; preds = %150
  %152 = 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 %153 unwind label %286

153:                                              ; preds = %151
  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_dtdvERKNS_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 2)
          to label %154 unwind label %291

154:                                              ; preds = %153
  %155 = 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 %156 unwind label %295

156:                                              ; preds = %154
  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) %35)
          to label %157 unwind label %70

157:                                              ; preds = %156
  %158 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 9
  %159 = load ptr, ptr %158, align 8, !tbaa !56
  %160 = load ptr, ptr %159, align 8, !tbaa !41
  %161 = getelementptr inbounds ptr, ptr %160, i64 9
  %162 = load ptr, ptr %161, align 8
  invoke void %162(ptr noundef nonnull align 8 dereferenceable(196) %159, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %163 unwind label %70

163:                                              ; preds = %157
  %164 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 10
  %165 = load ptr, ptr %164, 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 %166 unwind label %300

166:                                              ; preds = %163
  %167 = load ptr, ptr %165, align 8, !tbaa !41
  %168 = getelementptr inbounds ptr, ptr %167, i64 9
  %169 = load ptr, ptr %168, align 8
  invoke void %169(ptr noundef nonnull align 8 dereferenceable(232) %165, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %170 unwind label %304

170:                                              ; preds = %166
  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
  %171 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 11
  %172 = load ptr, ptr %171, 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 %173 unwind label %309

173:                                              ; preds = %170
  %174 = load ptr, ptr %172, align 8, !tbaa !41
  %175 = getelementptr inbounds ptr, ptr %174, i64 9
  %176 = load ptr, ptr %175, align 8
  invoke void %176(ptr noundef nonnull align 8 dereferenceable(232) %172, ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %177 unwind label %313

177:                                              ; preds = %173
  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
  %178 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 12
  %179 = load ptr, ptr %178, 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 %180 unwind label %318

180:                                              ; preds = %177
  %181 = load ptr, ptr %179, align 8, !tbaa !41
  %182 = getelementptr inbounds ptr, ptr %181, i64 9
  %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) %17)
          to label %184 unwind label %322

184:                                              ; preds = %180
  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
  %185 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 13
  %186 = load ptr, ptr %185, 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 %187 unwind label %327

187:                                              ; preds = %184
  %188 = load ptr, ptr %186, align 8, !tbaa !41
  %189 = getelementptr inbounds ptr, ptr %188, i64 9
  %190 = load ptr, ptr %189, align 8
  invoke void %190(ptr noundef nonnull align 8 dereferenceable(232) %186, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %191 unwind label %331

191:                                              ; preds = %187
  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
  %192 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 14
  %193 = load ptr, ptr %192, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #5
  store i8 1, ptr %19, align 1, !tbaa !43
  %194 = load ptr, ptr %193, align 8, !tbaa !41
  %195 = getelementptr inbounds ptr, ptr %194, i64 14
  %196 = load ptr, ptr %195, align 8
  invoke void %196(ptr noundef nonnull align 8 dereferenceable(224) %193, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %197 unwind label %336

197:                                              ; preds = %191
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %198 unwind label %70

198:                                              ; preds = %197
  %199 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 14
  %200 = load ptr, ptr %199, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #5
  store i8 0, ptr %20, align 1, !tbaa !43
  %201 = load ptr, ptr %200, align 8, !tbaa !41
  %202 = getelementptr inbounds ptr, ptr %201, i64 14
  %203 = load ptr, ptr %202, align 8
  invoke void %203(ptr noundef nonnull align 8 dereferenceable(224) %200, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %204 unwind label %340

204:                                              ; preds = %198
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %205 unwind label %70

205:                                              ; preds = %204
  %206 = load i32, ptr %3, align 4, !tbaa !51
  %207 = sdiv i32 %206, 3
  store i32 %207, ptr %3, align 4, !tbaa !51
  %208 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signeddVEi(ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 3)
          to label %209 unwind label %70

209:                                              ; preds = %205
  %210 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsigneddVEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 3)
          to label %211 unwind label %70

211:                                              ; preds = %209
  %212 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signeddVEi(ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef 3)
          to label %213 unwind label %70

213:                                              ; preds = %211
  %214 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsigneddVEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 3)
          to label %215 unwind label %70

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

216:                                              ; preds = %215
  %217 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 9
  %218 = load ptr, ptr %217, align 8, !tbaa !56
  %219 = load ptr, ptr %218, align 8, !tbaa !41
  %220 = getelementptr inbounds ptr, ptr %219, i64 9
  %221 = load ptr, ptr %220, align 8
  invoke void %221(ptr noundef nonnull align 8 dereferenceable(196) %218, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %222 unwind label %70

222:                                              ; preds = %216
  %223 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 11
  %224 = load ptr, ptr %223, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %225 unwind label %344

225:                                              ; preds = %222
  %226 = load ptr, ptr %224, align 8, !tbaa !41
  %227 = getelementptr inbounds ptr, ptr %226, i64 9
  %228 = load ptr, ptr %227, align 8
  invoke void %228(ptr noundef nonnull align 8 dereferenceable(232) %224, ptr noundef nonnull align 8 dereferenceable(24) %21)
          to label %229 unwind label %348

229:                                              ; preds = %225
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #5
  %230 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 12
  %231 = load ptr, ptr %230, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %232 unwind label %353

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

236:                                              ; preds = %232
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  %237 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 13
  %238 = load ptr, ptr %237, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %239 unwind label %362

239:                                              ; preds = %236
  %240 = load ptr, ptr %238, 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(232) %238, ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %243 unwind label %366

243:                                              ; preds = %239
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #5
  %244 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 14
  %245 = load ptr, ptr %244, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #5
  store i8 1, ptr %24, align 1, !tbaa !43
  %246 = load ptr, ptr %245, align 8, !tbaa !41
  %247 = getelementptr inbounds ptr, ptr %246, i64 14
  %248 = load ptr, ptr %247, align 8
  invoke void %248(ptr noundef nonnull align 8 dereferenceable(224) %245, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %249 unwind label %371

249:                                              ; preds = %243
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %250 unwind label %70

250:                                              ; preds = %249
  %251 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 14
  %252 = load ptr, ptr %251, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #5
  store i8 0, ptr %25, align 1, !tbaa !43
  %253 = load ptr, ptr %252, align 8, !tbaa !41
  %254 = getelementptr inbounds ptr, ptr %253, i64 14
  %255 = load ptr, ptr %254, align 8
  invoke void %255(ptr noundef nonnull align 8 dereferenceable(224) %252, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %256 unwind label %375

256:                                              ; preds = %250
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %257 unwind label %70

257:                                              ; preds = %256
  %258 = invoke noundef zeroext i1 @_ZN5sc_dtneERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 0)
          to label %259 unwind label %70

259:                                              ; preds = %257
  br i1 %258, label %260, label %388

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #5
  invoke void @_ZN5sc_dtdvERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %261 unwind label %379

261:                                              ; preds = %260
  %262 = invoke noundef i32 @_ZNK5sc_dt9sc_signed6to_intEv(ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %263 unwind label %383

263:                                              ; preds = %261
  store i32 %262, ptr %3, align 4, !tbaa !51
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #5
  br label %388

264:                                              ; preds = %142
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %6, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %7, align 4
  br label %272

268:                                              ; preds = %145
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %6, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  br label %272

272:                                              ; preds = %268, %264
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #5
  br label %514

273:                                              ; preds = %147
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %6, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %7, align 4
  br label %281

277:                                              ; preds = %148
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %6, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %281

281:                                              ; preds = %277, %273
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  br label %514

282:                                              ; preds = %150
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %6, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %7, align 4
  br label %290

286:                                              ; preds = %151
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %6, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %290

290:                                              ; preds = %286, %282
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #5
  br label %514

291:                                              ; preds = %153
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %6, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %7, align 4
  br label %299

295:                                              ; preds = %154
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %6, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %299

299:                                              ; preds = %295, %291
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %514

300:                                              ; preds = %163
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %6, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %7, align 4
  br label %308

304:                                              ; preds = %166
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %6, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  br label %308

308:                                              ; preds = %304, %300
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #5
  br label %514

309:                                              ; preds = %170
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %6, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %7, align 4
  br label %317

313:                                              ; preds = %173
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %6, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #5
  br label %317

317:                                              ; preds = %313, %309
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #5
  br label %514

318:                                              ; preds = %177
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %6, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %7, align 4
  br label %326

322:                                              ; preds = %180
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %6, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  br label %326

326:                                              ; preds = %322, %318
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #5
  br label %514

327:                                              ; preds = %184
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %6, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %7, align 4
  br label %335

331:                                              ; preds = %187
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %6, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  br label %335

335:                                              ; preds = %331, %327
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #5
  br label %514

336:                                              ; preds = %191
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %6, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #5
  br label %514

340:                                              ; preds = %198
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %6, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  br label %514

344:                                              ; preds = %222
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %6, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %7, align 4
  br label %352

348:                                              ; preds = %225
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %6, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #5
  br label %352

352:                                              ; preds = %348, %344
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #5
  br label %514

353:                                              ; preds = %229
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %6, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %7, align 4
  br label %361

357:                                              ; preds = %232
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %6, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  br label %361

361:                                              ; preds = %357, %353
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  br label %514

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

366:                                              ; preds = %239
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %6, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #5
  br label %370

370:                                              ; preds = %366, %362
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #5
  br label %514

371:                                              ; preds = %243
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %6, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #5
  br label %514

375:                                              ; preds = %250
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %6, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #5
  br label %514

379:                                              ; preds = %260
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %6, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %7, align 4
  br label %387

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

387:                                              ; preds = %383, %379
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #5
  br label %514

388:                                              ; preds = %263, %259
  %389 = invoke noundef zeroext i1 @_ZN5sc_dtneERKNS_9sc_signedEi(ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef 0)
          to label %390 unwind label %70

390:                                              ; preds = %388
  br i1 %389, label %391, label %404

391:                                              ; preds = %390
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #5
  invoke void @_ZN5sc_dtdvERKNS_9sc_signedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %392 unwind label %395

392:                                              ; preds = %391
  %393 = 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) %27)
          to label %394 unwind label %399

394:                                              ; preds = %392
  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
  br label %404

395:                                              ; preds = %391
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %6, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %7, align 4
  br label %403

399:                                              ; preds = %392
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %6, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br label %403

403:                                              ; preds = %399, %395
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #5
  br label %514

404:                                              ; preds = %394, %390
  %405 = invoke noundef zeroext i1 @_ZN5sc_dtneERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 0)
          to label %406 unwind label %70

406:                                              ; preds = %404
  br i1 %405, label %407, label %420

407:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #5
  invoke void @_ZN5sc_dtdvERKNS_11sc_unsignedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %408 unwind label %411

408:                                              ; preds = %407
  %409 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %410 unwind label %415

410:                                              ; preds = %408
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #5
  br label %420

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

415:                                              ; preds = %408
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %6, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %7, align 4
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %419

419:                                              ; preds = %415, %411
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #5
  br label %514

420:                                              ; preds = %410, %406
  %421 = invoke noundef zeroext i1 @_ZN5sc_dtneERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 0)
          to label %422 unwind label %70

422:                                              ; preds = %420
  br i1 %421, label %423, label %436

423:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #5
  invoke void @_ZN5sc_dtdvERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %424 unwind label %427

424:                                              ; preds = %423
  %425 = 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) %29)
          to label %426 unwind label %431

426:                                              ; preds = %424
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #5
  br label %436

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

431:                                              ; preds = %424
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %6, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %7, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  br label %435

435:                                              ; preds = %431, %427
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #5
  br label %514

436:                                              ; preds = %426, %422
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %437 unwind label %70

437:                                              ; preds = %436
  %438 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 9
  %439 = load ptr, ptr %438, align 8, !tbaa !56
  %440 = load ptr, ptr %439, align 8, !tbaa !41
  %441 = getelementptr inbounds ptr, ptr %440, i64 9
  %442 = load ptr, ptr %441, align 8
  invoke void %442(ptr noundef nonnull align 8 dereferenceable(196) %439, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %443 unwind label %70

443:                                              ; preds = %437
  %444 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 11
  %445 = load ptr, ptr %444, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %446 unwind label %479

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

450:                                              ; preds = %446
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #5
  %451 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 12
  %452 = load ptr, ptr %451, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %453 unwind label %488

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

457:                                              ; preds = %453
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #5
  %458 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 13
  %459 = load ptr, ptr %458, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %460 unwind label %497

460:                                              ; preds = %457
  %461 = load ptr, ptr %459, align 8, !tbaa !41
  %462 = getelementptr inbounds ptr, ptr %461, i64 9
  %463 = load ptr, ptr %462, align 8
  invoke void %463(ptr noundef nonnull align 8 dereferenceable(232) %459, ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %464 unwind label %501

464:                                              ; preds = %460
  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
  %465 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 14
  %466 = load ptr, ptr %465, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #5
  store i8 1, ptr %33, align 1, !tbaa !43
  %467 = load ptr, ptr %466, align 8, !tbaa !41
  %468 = getelementptr inbounds ptr, ptr %467, i64 14
  %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) %33)
          to label %470 unwind label %506

470:                                              ; preds = %464
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %471 unwind label %70

471:                                              ; preds = %470
  %472 = getelementptr inbounds %struct.divide, ptr %35, i32 0, i32 14
  %473 = load ptr, ptr %472, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #5
  store i8 0, ptr %34, align 1, !tbaa !43
  %474 = load ptr, ptr %473, align 8, !tbaa !41
  %475 = getelementptr inbounds ptr, ptr %474, i64 14
  %476 = load ptr, ptr %475, align 8
  invoke void %476(ptr noundef nonnull align 8 dereferenceable(224) %473, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %477 unwind label %510

477:                                              ; preds = %471
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %35)
          to label %478 unwind label %70

478:                                              ; preds = %477
  br label %81, !llvm.loop !61

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

483:                                              ; preds = %446
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %6, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #5
  br label %487

487:                                              ; preds = %483, %479
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #5
  br label %514

488:                                              ; preds = %450
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %6, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %7, align 4
  br label %496

492:                                              ; preds = %453
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %6, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #5
  br label %496

496:                                              ; preds = %492, %488
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #5
  br label %514

497:                                              ; preds = %457
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %6, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %7, align 4
  br label %505

501:                                              ; preds = %460
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %6, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %7, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #5
  br label %505

505:                                              ; preds = %501, %497
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #5
  br label %514

506:                                              ; preds = %464
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %6, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #5
  br label %514

510:                                              ; preds = %471
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %6, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  br label %514

514:                                              ; preds = %510, %506, %505, %496, %487, %435, %419, %403, %387, %375, %371, %370, %361, %352, %340, %336, %335, %326, %317, %308, %299, %290, %281, %272, %74, %70
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  br label %515

515:                                              ; preds = %514, %66
  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 %516

516:                                              ; preds = %515, %62
  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 %517

517:                                              ; preds = %516, %58
  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 %518

518:                                              ; preds = %517
  %519 = load ptr, ptr %6, align 8
  %520 = load i32, ptr %7, align 4
  %521 = insertvalue { ptr, i32 } poison, ptr %519, 0
  %522 = insertvalue { ptr, i32 } %521, i32 %520, 1
  resume { ptr, i32 } %522
}

; 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_dtdvERKNS_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_dtdvERKNS_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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signeddVEi(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_unsigneddVEi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5sc_dtneERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #2

declare void @_ZN5sc_dtdvERKNS_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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5sc_dtneERKNS_9sc_signedEi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #2

declare void @_ZN5sc_dtdvERKNS_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_dtdvERKNS_11sc_unsignedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

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

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 = !{!"_ZTS6divide", !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 @_ZN6divide5entryEv(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 %"class.sc_dt::sc_bv", align 8
  %19 = alloca %"class.sc_dt::sc_bv.27", align 8
  %20 = alloca %"class.sc_dt::sc_bv.27", align 8
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca %"class.sc_dt::sc_signed", align 8
  %24 = alloca %"class.sc_dt::sc_signed", align 8
  %25 = alloca %"class.sc_dt::sc_unsigned", align 8
  %26 = alloca %"class.sc_dt::sc_signed", align 8
  %27 = alloca %"class.sc_dt::sc_bv", align 8
  %28 = alloca %"class.sc_dt::sc_bv.27", align 8
  %29 = alloca %"class.sc_dt::sc_bv.27", align 8
  %30 = alloca i8, align 1
  %31 = 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 %32 unwind label %51

32:                                               ; 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 %33 unwind label %53

33:                                               ; preds = %32
  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 %34 unwind label %55

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

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

44:                                               ; preds = %41
  %45 = getelementptr inbounds i8, ptr %0, i64 512
  %46 = load ptr, ptr %45, 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
  %47 = load ptr, ptr %46, align 8, !tbaa !40
  %48 = getelementptr inbounds i8, ptr %47, i64 112
  %49 = load ptr, ptr %48, align 8
  invoke void %49(ptr noundef nonnull align 8 dereferenceable(224) %46, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %50 unwind label %57

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

51:                                               ; preds = %1
  %52 = landingpad { ptr, i32 }
          cleanup
  br label %392

53:                                               ; preds = %32
  %54 = landingpad { ptr, i32 }
          cleanup
  br label %391

55:                                               ; preds = %33
  %56 = landingpad { ptr, i32 }
          cleanup
  br label %390

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

.loopexit.split-lp.loopexit:                      ; preds = %370, %364, %336, %335, %323, %311, %299, %224, %223, %217, %189, %188, %186, %184, %182, %178, %177, %171, %137, %136, %120, %114, %112, %106, %104, %98, %96, %89, %83, %82
  %lpad.loopexit71 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

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

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

59:                                               ; preds = %.invoke
  %60 = getelementptr inbounds i8, ptr %0, i64 464
  %61 = getelementptr inbounds i8, ptr %0, i64 424
  %62 = getelementptr inbounds i8, ptr %0, i64 432
  %63 = getelementptr inbounds i8, ptr %0, i64 440
  %64 = getelementptr inbounds i8, ptr %0, i64 448
  %65 = getelementptr inbounds i8, ptr %0, i64 456
  %66 = getelementptr inbounds i8, ptr %0, i64 472
  %67 = getelementptr inbounds i8, ptr %0, i64 480
  %68 = getelementptr inbounds i8, ptr %0, i64 488
  %69 = getelementptr inbounds i8, ptr %0, i64 496
  %70 = getelementptr inbounds i8, ptr %0, i64 504
  %71 = getelementptr inbounds i8, ptr %0, i64 512
  br label %72

72:                                               ; preds = %.backedge, %59
  %73 = load ptr, ptr %60, align 8, !tbaa !46
  %74 = load ptr, ptr %73, align 8, !tbaa !40
  %75 = getelementptr inbounds i8, ptr %74, i64 56
  %76 = load ptr, ptr %75, align 8
  %77 = invoke noundef nonnull align 1 dereferenceable(1) ptr %76(ptr noundef nonnull align 8 dereferenceable(224) %73)
          to label %78 unwind label %.loopexit

78:                                               ; preds = %72
  %79 = load i8, ptr %77, align 1, !tbaa !42, !range !43, !noundef !44
  %80 = icmp eq i8 %79, 0
  br i1 %80, label %81, label %82

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

.backedge:                                        ; preds = %81, %370
  br label %72, !llvm.loop !47

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

83:                                               ; preds = %82
  %84 = load ptr, ptr %61, align 8, !tbaa !49
  %85 = load ptr, ptr %84, align 8, !tbaa !40
  %86 = getelementptr inbounds i8, ptr %85, i64 40
  %87 = load ptr, ptr %86, align 8
  %88 = invoke noundef nonnull align 4 dereferenceable(4) ptr %87(ptr noundef nonnull align 8 dereferenceable(196) %84)
          to label %89 unwind label %.loopexit.split-lp.loopexit

89:                                               ; preds = %83
  %90 = load i32, ptr %88, align 4, !tbaa !50
  store i32 %90, ptr %2, align 4, !tbaa !50
  %91 = load ptr, ptr %62, align 8, !tbaa !51
  %92 = load ptr, ptr %91, align 8, !tbaa !40
  %93 = getelementptr inbounds i8, ptr %92, i64 40
  %94 = load ptr, ptr %93, align 8
  %95 = invoke noundef nonnull align 8 dereferenceable(24) ptr %94(ptr noundef nonnull align 8 dereferenceable(232) %91)
          to label %96 unwind label %.loopexit.split-lp.loopexit

96:                                               ; preds = %89
  %97 = 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) %95)
          to label %98 unwind label %.loopexit.split-lp.loopexit

98:                                               ; preds = %96
  %99 = load ptr, ptr %63, align 8, !tbaa !52
  %100 = load ptr, ptr %99, align 8, !tbaa !40
  %101 = getelementptr inbounds i8, ptr %100, i64 40
  %102 = load ptr, ptr %101, align 8
  %103 = invoke noundef nonnull align 8 dereferenceable(24) ptr %102(ptr noundef nonnull align 8 dereferenceable(232) %99)
          to label %104 unwind label %.loopexit.split-lp.loopexit

104:                                              ; preds = %98
  %105 = 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) %103)
          to label %106 unwind label %.loopexit.split-lp.loopexit

106:                                              ; preds = %104
  %107 = load ptr, ptr %64, align 8, !tbaa !53
  %108 = load ptr, ptr %107, align 8, !tbaa !40
  %109 = getelementptr inbounds i8, ptr %108, i64 40
  %110 = load ptr, ptr %109, align 8
  %111 = invoke noundef nonnull align 8 dereferenceable(24) ptr %110(ptr noundef nonnull align 8 dereferenceable(232) %107)
          to label %112 unwind label %.loopexit.split-lp.loopexit

112:                                              ; preds = %106
  %113 = 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) %111)
          to label %114 unwind label %.loopexit.split-lp.loopexit

114:                                              ; preds = %112
  %115 = load ptr, ptr %65, align 8, !tbaa !54
  %116 = load ptr, ptr %115, align 8, !tbaa !40
  %117 = getelementptr inbounds i8, ptr %116, i64 40
  %118 = load ptr, ptr %117, align 8
  %119 = invoke noundef nonnull align 8 dereferenceable(24) ptr %118(ptr noundef nonnull align 8 dereferenceable(232) %115)
          to label %120 unwind label %.loopexit.split-lp.loopexit

120:                                              ; preds = %114
  %121 = 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) %119)
          to label %122 unwind label %.loopexit.split-lp.loopexit

122:                                              ; preds = %120
  %123 = load i32, ptr %2, align 4, !tbaa !50
  %124 = sdiv i32 %123, 2
  store i32 %124, ptr %2, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #6
  invoke void @_ZN5sc_dtdvERKNS_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 2)
          to label %125 unwind label %231

125:                                              ; preds = %122
  %126 = 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 %127 unwind label %233

127:                                              ; preds = %125
  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_dtdvERKNS_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 2)
          to label %128 unwind label %236

128:                                              ; preds = %127
  %129 = 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 %130 unwind label %238

130:                                              ; preds = %128
  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_dtdvERKNS_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 2)
          to label %131 unwind label %241

131:                                              ; preds = %130
  %132 = 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 %133 unwind label %243

133:                                              ; preds = %131
  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_dtdvERKNS_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 2)
          to label %134 unwind label %246

134:                                              ; preds = %133
  %135 = 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 %136 unwind label %248

136:                                              ; preds = %134
  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 %137 unwind label %.loopexit.split-lp.loopexit

137:                                              ; preds = %136
  %138 = load ptr, ptr %66, align 8, !tbaa !55
  %139 = load ptr, ptr %138, align 8, !tbaa !40
  %140 = getelementptr inbounds i8, ptr %139, i64 72
  %141 = load ptr, ptr %140, align 8
  invoke void %141(ptr noundef nonnull align 8 dereferenceable(196) %138, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %142 unwind label %.loopexit.split-lp.loopexit

142:                                              ; preds = %137
  %143 = load ptr, ptr %67, 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 %144 unwind label %251

144:                                              ; preds = %142
  %145 = load ptr, ptr %143, align 8, !tbaa !40
  %146 = getelementptr inbounds i8, ptr %145, i64 72
  %147 = load ptr, ptr %146, align 8
  invoke void %147(ptr noundef nonnull align 8 dereferenceable(232) %143, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %148 unwind label %253

148:                                              ; preds = %144
  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
  %149 = load ptr, ptr %68, 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 %150 unwind label %256

150:                                              ; preds = %148
  %151 = load ptr, ptr %149, align 8, !tbaa !40
  %152 = getelementptr inbounds i8, ptr %151, i64 72
  %153 = load ptr, ptr %152, align 8
  invoke void %153(ptr noundef nonnull align 8 dereferenceable(232) %149, ptr noundef nonnull align 8 dereferenceable(24) %13)
          to label %154 unwind label %258

154:                                              ; preds = %150
  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
  %155 = load ptr, ptr %69, 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 %156 unwind label %261

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

160:                                              ; preds = %156
  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
  %161 = load ptr, ptr %70, 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 %162 unwind label %266

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

166:                                              ; preds = %162
  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
  %167 = load ptr, ptr %71, 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
  %168 = load ptr, ptr %167, align 8, !tbaa !40
  %169 = getelementptr inbounds i8, ptr %168, i64 112
  %170 = load ptr, ptr %169, align 8
  invoke void %170(ptr noundef nonnull align 8 dereferenceable(224) %167, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %171 unwind label %271

171:                                              ; preds = %166
  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 %172 unwind label %.loopexit.split-lp.loopexit

172:                                              ; preds = %171
  %173 = load ptr, ptr %71, 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
  %174 = load ptr, ptr %173, align 8, !tbaa !40
  %175 = getelementptr inbounds i8, ptr %174, i64 112
  %176 = load ptr, ptr %175, align 8
  invoke void %176(ptr noundef nonnull align 8 dereferenceable(224) %173, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %177 unwind label %273

177:                                              ; preds = %172
  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 %178 unwind label %.loopexit.split-lp.loopexit

178:                                              ; preds = %177
  %179 = load i32, ptr %2, align 4, !tbaa !50
  %180 = sdiv i32 %179, 3
  store i32 %180, ptr %2, align 4, !tbaa !50
  %181 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signeddVEi(ptr noundef nonnull align 8 dereferenceable(32) %3, i32 noundef 3)
          to label %182 unwind label %.loopexit.split-lp.loopexit

182:                                              ; preds = %178
  %183 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsigneddVEi(ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 3)
          to label %184 unwind label %.loopexit.split-lp.loopexit

184:                                              ; preds = %182
  %185 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signeddVEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 3)
          to label %186 unwind label %.loopexit.split-lp.loopexit

186:                                              ; preds = %184
  %187 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt11sc_unsigneddVEi(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 3)
          to label %188 unwind label %.loopexit.split-lp.loopexit

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

189:                                              ; preds = %188
  %190 = load ptr, ptr %66, align 8, !tbaa !55
  %191 = load ptr, ptr %190, align 8, !tbaa !40
  %192 = getelementptr inbounds i8, ptr %191, i64 72
  %193 = load ptr, ptr %192, align 8
  invoke void %193(ptr noundef nonnull align 8 dereferenceable(196) %190, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %194 unwind label %.loopexit.split-lp.loopexit

194:                                              ; preds = %189
  %195 = load ptr, ptr %68, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %196 unwind label %275

196:                                              ; preds = %194
  %197 = load ptr, ptr %195, align 8, !tbaa !40
  %198 = getelementptr inbounds i8, ptr %197, i64 72
  %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) %18)
          to label %200 unwind label %277

200:                                              ; preds = %196
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #6
  %201 = load ptr, ptr %69, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %202 unwind label %280

202:                                              ; preds = %200
  %203 = load ptr, ptr %201, align 8, !tbaa !40
  %204 = getelementptr inbounds i8, ptr %203, i64 72
  %205 = load ptr, ptr %204, align 8
  invoke void %205(ptr noundef nonnull align 8 dereferenceable(232) %201, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %206 unwind label %282

206:                                              ; preds = %202
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #6
  %207 = load ptr, ptr %70, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %208 unwind label %285

208:                                              ; preds = %206
  %209 = load ptr, ptr %207, align 8, !tbaa !40
  %210 = getelementptr inbounds i8, ptr %209, i64 72
  %211 = load ptr, ptr %210, align 8
  invoke void %211(ptr noundef nonnull align 8 dereferenceable(232) %207, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %212 unwind label %287

212:                                              ; preds = %208
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #6
  %213 = load ptr, ptr %71, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #6
  store i8 1, ptr %21, align 1, !tbaa !42
  %214 = load ptr, ptr %213, align 8, !tbaa !40
  %215 = getelementptr inbounds i8, ptr %214, i64 112
  %216 = load ptr, ptr %215, align 8
  invoke void %216(ptr noundef nonnull align 8 dereferenceable(224) %213, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %217 unwind label %290

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

218:                                              ; preds = %217
  %219 = load ptr, ptr %71, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #6
  store i8 0, ptr %22, align 1, !tbaa !42
  %220 = load ptr, ptr %219, align 8, !tbaa !40
  %221 = getelementptr inbounds i8, ptr %220, i64 112
  %222 = load ptr, ptr %221, align 8
  invoke void %222(ptr noundef nonnull align 8 dereferenceable(224) %219, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %223 unwind label %292

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

224:                                              ; preds = %223
  %225 = invoke noundef zeroext i1 @_ZN5sc_dtneERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 0)
          to label %226 unwind label %.loopexit.split-lp.loopexit

226:                                              ; preds = %224
  br i1 %225, label %227, label %299

227:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #6
  invoke void @_ZN5sc_dtdvERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %228 unwind label %294

228:                                              ; preds = %227
  %229 = invoke noundef i32 @_ZNK5sc_dt9sc_signed6to_intEv(ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %230 unwind label %296

230:                                              ; preds = %228
  store i32 %229, ptr %2, align 4, !tbaa !50
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  br label %299

231:                                              ; preds = %122
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %235

233:                                              ; preds = %125
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %235

235:                                              ; preds = %233, %231
  %.pn = phi { ptr, i32 } [ %234, %233 ], [ %232, %231 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  br label %.loopexit.split-lp

236:                                              ; preds = %127
  %237 = landingpad { ptr, i32 }
          cleanup
  br label %240

238:                                              ; preds = %128
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %240

240:                                              ; preds = %238, %236
  %.pn32 = phi { ptr, i32 } [ %239, %238 ], [ %237, %236 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br label %.loopexit.split-lp

241:                                              ; preds = %130
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %245

243:                                              ; preds = %131
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %245

245:                                              ; preds = %243, %241
  %.pn34 = phi { ptr, i32 } [ %244, %243 ], [ %242, %241 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  br label %.loopexit.split-lp

246:                                              ; preds = %133
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %250

248:                                              ; preds = %134
  %249 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %250

250:                                              ; preds = %248, %246
  %.pn36 = phi { ptr, i32 } [ %249, %248 ], [ %247, %246 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %.loopexit.split-lp

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

253:                                              ; preds = %144
  %254 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  br label %255

255:                                              ; preds = %253, %251
  %.pn38 = phi { ptr, i32 } [ %254, %253 ], [ %252, %251 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  br label %.loopexit.split-lp

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

258:                                              ; preds = %150
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  br label %260

260:                                              ; preds = %258, %256
  %.pn40 = phi { ptr, i32 } [ %259, %258 ], [ %257, %256 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  br label %.loopexit.split-lp

261:                                              ; preds = %154
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %265

263:                                              ; preds = %156
  %264 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #6
  br label %265

265:                                              ; preds = %263, %261
  %.pn42 = phi { ptr, i32 } [ %264, %263 ], [ %262, %261 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #6
  br label %.loopexit.split-lp

266:                                              ; preds = %160
  %267 = landingpad { ptr, i32 }
          cleanup
  br label %270

268:                                              ; preds = %162
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #6
  br label %270

270:                                              ; preds = %268, %266
  %.pn44 = phi { ptr, i32 } [ %269, %268 ], [ %267, %266 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #6
  br label %.loopexit.split-lp

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

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

275:                                              ; preds = %194
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %279

277:                                              ; preds = %196
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #6
  br label %279

279:                                              ; preds = %277, %275
  %.pn46 = phi { ptr, i32 } [ %278, %277 ], [ %276, %275 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #6
  br label %.loopexit.split-lp

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

282:                                              ; preds = %202
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #6
  br label %284

284:                                              ; preds = %282, %280
  %.pn48 = phi { ptr, i32 } [ %283, %282 ], [ %281, %280 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #6
  br label %.loopexit.split-lp

285:                                              ; preds = %206
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %289

287:                                              ; preds = %208
  %288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #6
  br label %289

289:                                              ; preds = %287, %285
  %.pn50 = phi { ptr, i32 } [ %288, %287 ], [ %286, %285 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #6
  br label %.loopexit.split-lp

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

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

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

296:                                              ; preds = %228
  %297 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %298

298:                                              ; preds = %296, %294
  %.pn52 = phi { ptr, i32 } [ %297, %296 ], [ %295, %294 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  br label %.loopexit.split-lp

299:                                              ; preds = %230, %226
  %300 = invoke noundef zeroext i1 @_ZN5sc_dtneERKNS_9sc_signedEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 0)
          to label %301 unwind label %.loopexit.split-lp.loopexit

301:                                              ; preds = %299
  br i1 %300, label %302, label %311

302:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #6
  invoke void @_ZN5sc_dtdvERKNS_9sc_signedES2_(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %303 unwind label %306

303:                                              ; preds = %302
  %304 = 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) %24)
          to label %305 unwind label %308

305:                                              ; preds = %303
  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
  br label %311

306:                                              ; preds = %302
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %310

308:                                              ; preds = %303
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %310

310:                                              ; preds = %308, %306
  %.pn54 = phi { ptr, i32 } [ %309, %308 ], [ %307, %306 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #6
  br label %.loopexit.split-lp

311:                                              ; preds = %305, %301
  %312 = invoke noundef zeroext i1 @_ZN5sc_dtneERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 0)
          to label %313 unwind label %.loopexit.split-lp.loopexit

313:                                              ; preds = %311
  br i1 %312, label %314, label %323

314:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #6
  invoke void @_ZN5sc_dtdvERKNS_11sc_unsignedES2_(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_unsigned") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %315 unwind label %318

315:                                              ; preds = %314
  %316 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %317 unwind label %320

317:                                              ; preds = %315
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  br label %323

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

320:                                              ; preds = %315
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %322

322:                                              ; preds = %320, %318
  %.pn56 = phi { ptr, i32 } [ %321, %320 ], [ %319, %318 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  br label %.loopexit.split-lp

323:                                              ; preds = %317, %313
  %324 = invoke noundef zeroext i1 @_ZN5sc_dtneERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 0)
          to label %325 unwind label %.loopexit.split-lp.loopexit

325:                                              ; preds = %323
  br i1 %324, label %326, label %335

326:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #6
  invoke void @_ZN5sc_dtdvERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %327 unwind label %330

327:                                              ; preds = %326
  %328 = 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) %26)
          to label %329 unwind label %332

329:                                              ; preds = %327
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br label %335

330:                                              ; preds = %326
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %334

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

334:                                              ; preds = %332, %330
  %.pn58 = phi { ptr, i32 } [ %333, %332 ], [ %331, %330 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br label %.loopexit.split-lp

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

336:                                              ; preds = %335
  %337 = load ptr, ptr %66, align 8, !tbaa !55
  %338 = load ptr, ptr %337, align 8, !tbaa !40
  %339 = getelementptr inbounds i8, ptr %338, i64 72
  %340 = load ptr, ptr %339, align 8
  invoke void %340(ptr noundef nonnull align 8 dereferenceable(196) %337, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %341 unwind label %.loopexit.split-lp.loopexit

341:                                              ; preds = %336
  %342 = load ptr, ptr %68, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %343 unwind label %371

343:                                              ; preds = %341
  %344 = load ptr, ptr %342, align 8, !tbaa !40
  %345 = getelementptr inbounds i8, ptr %344, i64 72
  %346 = load ptr, ptr %345, align 8
  invoke void %346(ptr noundef nonnull align 8 dereferenceable(232) %342, ptr noundef nonnull align 8 dereferenceable(24) %27)
          to label %347 unwind label %373

347:                                              ; preds = %343
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #6
  %348 = load ptr, ptr %69, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %349 unwind label %376

349:                                              ; preds = %347
  %350 = load ptr, ptr %348, align 8, !tbaa !40
  %351 = getelementptr inbounds i8, ptr %350, i64 72
  %352 = load ptr, ptr %351, align 8
  invoke void %352(ptr noundef nonnull align 8 dereferenceable(232) %348, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %353 unwind label %378

353:                                              ; preds = %349
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #6
  %354 = load ptr, ptr %70, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %355 unwind label %381

355:                                              ; preds = %353
  %356 = load ptr, ptr %354, align 8, !tbaa !40
  %357 = getelementptr inbounds i8, ptr %356, i64 72
  %358 = load ptr, ptr %357, align 8
  invoke void %358(ptr noundef nonnull align 8 dereferenceable(232) %354, ptr noundef nonnull align 8 dereferenceable(24) %29)
          to label %359 unwind label %383

359:                                              ; preds = %355
  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
  %360 = load ptr, ptr %71, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #6
  store i8 1, ptr %30, align 1, !tbaa !42
  %361 = load ptr, ptr %360, align 8, !tbaa !40
  %362 = getelementptr inbounds i8, ptr %361, i64 112
  %363 = load ptr, ptr %362, align 8
  invoke void %363(ptr noundef nonnull align 8 dereferenceable(224) %360, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %364 unwind label %386

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

365:                                              ; preds = %364
  %366 = load ptr, ptr %71, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #6
  store i8 0, ptr %31, align 1, !tbaa !42
  %367 = load ptr, ptr %366, align 8, !tbaa !40
  %368 = getelementptr inbounds i8, ptr %367, i64 112
  %369 = load ptr, ptr %368, align 8
  invoke void %369(ptr noundef nonnull align 8 dereferenceable(224) %366, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %370 unwind label %388

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

371:                                              ; preds = %341
  %372 = landingpad { ptr, i32 }
          cleanup
  br label %375

373:                                              ; preds = %343
  %374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #6
  br label %375

375:                                              ; preds = %373, %371
  %.pn60 = phi { ptr, i32 } [ %374, %373 ], [ %372, %371 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #6
  br label %.loopexit.split-lp

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

378:                                              ; preds = %349
  %379 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  br label %380

380:                                              ; preds = %378, %376
  %.pn62 = phi { ptr, i32 } [ %379, %378 ], [ %377, %376 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #6
  br label %.loopexit.split-lp

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

383:                                              ; preds = %355
  %384 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  br label %385

385:                                              ; preds = %383, %381
  %.pn64 = phi { ptr, i32 } [ %384, %383 ], [ %382, %381 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #6
  br label %.loopexit.split-lp

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

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

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %388, %386, %385, %380, %375, %334, %322, %310, %298, %292, %290, %289, %284, %279, %273, %271, %270, %265, %260, %255, %250, %245, %240, %235, %57
  %.pn66 = phi { ptr, i32 } [ %389, %388 ], [ %387, %386 ], [ %.pn64, %385 ], [ %.pn62, %380 ], [ %.pn60, %375 ], [ %.pn58, %334 ], [ %.pn56, %322 ], [ %.pn54, %310 ], [ %.pn52, %298 ], [ %293, %292 ], [ %291, %290 ], [ %.pn50, %289 ], [ %.pn48, %284 ], [ %.pn46, %279 ], [ %274, %273 ], [ %272, %271 ], [ %.pn44, %270 ], [ %.pn42, %265 ], [ %.pn40, %260 ], [ %.pn38, %255 ], [ %.pn36, %250 ], [ %.pn34, %245 ], [ %.pn32, %240 ], [ %.pn, %235 ], [ %58, %57 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit71, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp72, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %390

390:                                              ; preds = %.loopexit.split-lp, %55
  %.pn66.pn = phi { ptr, i32 } [ %.pn66, %.loopexit.split-lp ], [ %56, %55 ]
  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 %391

391:                                              ; preds = %390, %53
  %.pn66.pn.pn = phi { ptr, i32 } [ %.pn66.pn, %390 ], [ %54, %53 ]
  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 %392

392:                                              ; preds = %391, %51
  %.pn66.pn.pn.pn = phi { ptr, i32 } [ %.pn66.pn.pn, %391 ], [ %52, %51 ]
  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 } %.pn66.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_dtdvERKNS_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_dtdvERKNS_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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_signeddVEi(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_unsigneddVEi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #2 align 2

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

declare void @_ZN5sc_dtdvERKNS_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

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

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

declare void @_ZN5sc_dtdvERKNS_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_dtdvERKNS_11sc_unsignedES2_(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8, ptr noundef nonnull align 8 dereferenceable(32), 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_dt10sc_biguintILi4EEaSERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

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

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 = !{!"_ZTS6divide", !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