; LLVM IR from gem5/gem5 :: src/systemc/tests/systemc/misc/cae_test/general/bitwise/not/not_1 (not_1)

; 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_lv" = type { %"class.sc_dt::sc_lv_base" }
%"class.sc_dt::sc_lv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }
%"class.sc_dt::sc_bigint" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_signed" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_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_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy.26", i32, i32, ptr }
%"class.sc_dt::sc_proxy.26" = type { ptr }
%struct.not_1 = 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.0", %"class.std::__cxx11::basic_string", ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.sc_core::sc_process_host" = type { ptr }
%"class.sc_core::sc_sensitive" = type { ptr, i32, ptr }
%"class.sc_core::sc_sensitive_pos" = type { ptr, i32, ptr }
%"class.sc_core::sc_sensitive_neg" = type { ptr, i32, ptr }
%"class.sc_core::sc_in" = type { %"class.sc_core::sc_port", ptr, ptr, ptr, ptr }
%"class.sc_core::sc_port" = type { %"class.sc_core::sc_port_b" }
%"class.sc_core::sc_port_b" = type { %"class.sc_core::sc_port_base", ptr, %"class.std::vector.8" }
%"class.sc_core::sc_port_base" = type { %"class.sc_core::sc_object", ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<sc_core::sc_signal_in_if<bool> *, std::allocator<sc_core::sc_signal_in_if<bool> *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_signal_in_if<bool> *, std::allocator<sc_core::sc_signal_in_if<bool> *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_signal_in_if<bool> *, std::allocator<sc_core::sc_signal_in_if<bool> *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_signal_in_if<bool> *, std::allocator<sc_core::sc_signal_in_if<bool> *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5not_15entryEv(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 i32, align 4
  %5 = alloca %"class.sc_dt::sc_lv", align 8
  %6 = alloca %"class.sc_dt::sc_lv", align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.sc_dt::sc_bigint", align 8
  %10 = alloca %"class.sc_dt::sc_biguint", align 8
  %11 = alloca i8, align 1
  %12 = alloca %"class.sc_dt::sc_lv_base", align 8
  %13 = alloca %"class.sc_dt::sc_signed", align 8
  %14 = alloca %"class.sc_dt::sc_unsigned", align 8
  %15 = alloca %"class.sc_dt::sc_bv", align 8
  %16 = alloca %"class.sc_dt::sc_bv", align 8
  %17 = alloca %"class.sc_dt::sc_bv", align 8
  %18 = alloca i8, align 1
  %19 = alloca i8, align 1
  %20 = alloca %"class.sc_dt::sc_lv_base", align 8
  %21 = alloca %"class.sc_dt::sc_bv", align 8
  %22 = alloca %"class.sc_dt::sc_bv", align 8
  %23 = alloca %"class.sc_dt::sc_bv", align 8
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %26 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #5
  call void @_ZN5sc_dt5sc_lvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5)
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #5
  invoke void @_ZN5sc_dt5sc_lvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %27 unwind label %49

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

28:                                               ; preds = %27
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #5
  invoke void @_ZN5sc_dt10sc_biguintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %29 unwind label %57

29:                                               ; preds = %28
  %30 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 2
  %31 = load ptr, ptr %30, align 8, !tbaa !9
  %32 = load ptr, ptr %31, align 8, !tbaa !41
  %33 = getelementptr inbounds ptr, ptr %32, i64 7
  %34 = load ptr, ptr %33, align 8
  %35 = invoke noundef nonnull align 1 dereferenceable(1) ptr %34(ptr noundef nonnull align 8 dereferenceable(224) %31)
          to label %36 unwind label %61

36:                                               ; preds = %29
  %37 = load i8, ptr %35, align 1, !tbaa !43, !range !44, !noundef !45
  %38 = trunc i8 %37 to i1
  %39 = zext i1 %38 to i32
  %40 = icmp eq i32 %39, 1
  br i1 %40, label %41, label %69

41:                                               ; preds = %36
  %42 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 14
  %43 = load ptr, ptr %42, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #5
  store i8 0, ptr %11, align 1, !tbaa !43
  %44 = load ptr, ptr %43, align 8, !tbaa !41
  %45 = getelementptr inbounds ptr, ptr %44, i64 14
  %46 = load ptr, ptr %45, align 8
  invoke void %46(ptr noundef nonnull align 8 dereferenceable(224) %43, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %47 unwind label %65

47:                                               ; preds = %41
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %26)
          to label %48 unwind label %61

48:                                               ; preds = %47
  br label %71

49:                                               ; preds = %1
  %50 = landingpad { ptr, i32 }
          cleanup
  %51 = extractvalue { ptr, i32 } %50, 0
  store ptr %51, ptr %7, align 8
  %52 = extractvalue { ptr, i32 } %50, 1
  store i32 %52, ptr %8, align 4
  br label %362

53:                                               ; preds = %27
  %54 = landingpad { ptr, i32 }
          cleanup
  %55 = extractvalue { ptr, i32 } %54, 0
  store ptr %55, ptr %7, align 8
  %56 = extractvalue { ptr, i32 } %54, 1
  store i32 %56, ptr %8, align 4
  br label %361

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

61:                                               ; preds = %251, %244, %211, %205, %204, %202, %200, %195, %194, %187, %154, %148, %147, %132, %130, %123, %121, %114, %112, %104, %96, %89, %88, %86, %74, %69, %47, %29
  %62 = landingpad { ptr, i32 }
          cleanup
  %63 = extractvalue { ptr, i32 } %62, 0
  store ptr %63, ptr %7, align 8
  %64 = extractvalue { ptr, i32 } %62, 1
  store i32 %64, ptr %8, align 4
  br label %359

65:                                               ; preds = %41
  %66 = landingpad { ptr, i32 }
          cleanup
  %67 = extractvalue { ptr, i32 } %66, 0
  store ptr %67, ptr %7, align 8
  %68 = extractvalue { ptr, i32 } %66, 1
  store i32 %68, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #5
  br label %359

69:                                               ; preds = %36
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %26)
          to label %70 unwind label %61

70:                                               ; preds = %69
  br label %71

71:                                               ; preds = %70, %48
  br label %72

72:                                               ; preds = %252, %71
  br label %73

73:                                               ; preds = %72
  br label %74

74:                                               ; preds = %87, %73
  %75 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 8
  %76 = load ptr, ptr %75, align 8, !tbaa !47
  %77 = load ptr, ptr %76, align 8, !tbaa !41
  %78 = getelementptr inbounds ptr, ptr %77, i64 7
  %79 = load ptr, ptr %78, align 8
  %80 = invoke noundef nonnull align 1 dereferenceable(1) ptr %79(ptr noundef nonnull align 8 dereferenceable(224) %76)
          to label %81 unwind label %61

81:                                               ; preds = %74
  %82 = load i8, ptr %80, align 1, !tbaa !43, !range !44, !noundef !45
  %83 = trunc i8 %82 to i1
  %84 = zext i1 %83 to i32
  %85 = icmp eq i32 %84, 0
  br i1 %85, label %86, label %88

86:                                               ; preds = %81
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %26)
          to label %87 unwind label %61

87:                                               ; preds = %86
  br label %74, !llvm.loop !48

88:                                               ; preds = %81
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %26)
          to label %89 unwind label %61

89:                                               ; preds = %88
  %90 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 3
  %91 = load ptr, ptr %90, align 8, !tbaa !50
  %92 = load ptr, ptr %91, align 8, !tbaa !41
  %93 = getelementptr inbounds ptr, ptr %92, i64 5
  %94 = load ptr, ptr %93, align 8
  %95 = invoke noundef nonnull align 4 dereferenceable(4) ptr %94(ptr noundef nonnull align 8 dereferenceable(196) %91)
          to label %96 unwind label %61

96:                                               ; preds = %89
  %97 = load i32, ptr %95, align 4, !tbaa !51
  store i32 %97, ptr %3, align 4, !tbaa !51
  %98 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 4
  %99 = load ptr, ptr %98, align 8, !tbaa !52
  %100 = load ptr, ptr %99, align 8, !tbaa !41
  %101 = getelementptr inbounds ptr, ptr %100, i64 5
  %102 = load ptr, ptr %101, align 8
  %103 = invoke noundef nonnull align 4 dereferenceable(4) ptr %102(ptr noundef nonnull align 8 dereferenceable(196) %99)
          to label %104 unwind label %61

104:                                              ; preds = %96
  %105 = load i32, ptr %103, align 4, !tbaa !51
  store i32 %105, ptr %4, align 4, !tbaa !51
  %106 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 5
  %107 = load ptr, ptr %106, align 8, !tbaa !53
  %108 = load ptr, ptr %107, align 8, !tbaa !41
  %109 = getelementptr inbounds ptr, ptr %108, i64 5
  %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 %61

112:                                              ; preds = %104
  %113 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSINS_10sc_bv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %114 unwind label %61

114:                                              ; preds = %112
  %115 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 6
  %116 = load ptr, ptr %115, align 8, !tbaa !54
  %117 = load ptr, ptr %116, align 8, !tbaa !41
  %118 = getelementptr inbounds ptr, ptr %117, i64 5
  %119 = load ptr, ptr %118, align 8
  %120 = invoke noundef nonnull align 8 dereferenceable(24) ptr %119(ptr noundef nonnull align 8 dereferenceable(232) %116)
          to label %121 unwind label %61

121:                                              ; preds = %114
  %122 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(24) %120)
          to label %123 unwind label %61

123:                                              ; preds = %121
  %124 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 7
  %125 = load ptr, ptr %124, align 8, !tbaa !55
  %126 = load ptr, ptr %125, align 8, !tbaa !41
  %127 = getelementptr inbounds ptr, ptr %126, i64 5
  %128 = load ptr, ptr %127, align 8
  %129 = invoke noundef nonnull align 8 dereferenceable(24) ptr %128(ptr noundef nonnull align 8 dereferenceable(232) %125)
          to label %130 unwind label %61

130:                                              ; preds = %123
  %131 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(24) %129)
          to label %132 unwind label %61

132:                                              ; preds = %130
  %133 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 15)
          to label %134 unwind label %61

134:                                              ; preds = %132
  %135 = load i32, ptr %3, align 4, !tbaa !51
  %136 = xor i32 %135, -1
  store i32 %136, ptr %3, align 4, !tbaa !51
  %137 = load i32, ptr %4, align 4, !tbaa !51
  %138 = xor i32 %137, -1
  store i32 %138, ptr %4, align 4, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #5
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_lv_baseEEcoEv(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_lv_base") align 8 %12, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %139 unwind label %253

139:                                              ; preds = %134
  %140 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSINS_10sc_lv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %141 unwind label %257

141:                                              ; preds = %139
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(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_dtcoERKNS_9sc_signedE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %142 unwind label %262

142:                                              ; preds = %141
  %143 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %144 unwind label %266

144:                                              ; preds = %142
  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_dtcoERKNS_11sc_unsignedE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %145 unwind label %271

145:                                              ; preds = %144
  %146 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %147 unwind label %275

147:                                              ; preds = %145
  call void @_ZN5sc_dt11sc_unsignedD2Ev(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) %26)
          to label %148 unwind label %61

148:                                              ; preds = %147
  %149 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 9
  %150 = load ptr, ptr %149, align 8, !tbaa !56
  %151 = load ptr, ptr %150, align 8, !tbaa !41
  %152 = getelementptr inbounds ptr, ptr %151, i64 9
  %153 = load ptr, ptr %152, align 8
  invoke void %153(ptr noundef nonnull align 8 dereferenceable(196) %150, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %154 unwind label %61

154:                                              ; preds = %148
  %155 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 10
  %156 = load ptr, ptr %155, align 8, !tbaa !57
  %157 = load ptr, ptr %156, align 8, !tbaa !41
  %158 = getelementptr inbounds ptr, ptr %157, i64 9
  %159 = load ptr, ptr %158, align 8
  invoke void %159(ptr noundef nonnull align 8 dereferenceable(196) %156, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %160 unwind label %61

160:                                              ; preds = %154
  %161 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 11
  %162 = load ptr, ptr %161, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2INS_10sc_lv_baseEEERKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %163 unwind label %280

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

167:                                              ; preds = %163
  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
  %168 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 12
  %169 = load ptr, ptr %168, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %170 unwind label %289

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

174:                                              ; preds = %170
  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
  %175 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 13
  %176 = load ptr, ptr %175, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %177 unwind label %298

177:                                              ; preds = %174
  %178 = load ptr, ptr %176, align 8, !tbaa !41
  %179 = getelementptr inbounds ptr, ptr %178, i64 9
  %180 = load ptr, ptr %179, align 8
  invoke void %180(ptr noundef nonnull align 8 dereferenceable(232) %176, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %181 unwind label %302

181:                                              ; preds = %177
  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
  %182 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 14
  %183 = load ptr, ptr %182, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #5
  store i8 1, ptr %18, align 1, !tbaa !43
  %184 = load ptr, ptr %183, align 8, !tbaa !41
  %185 = getelementptr inbounds ptr, ptr %184, i64 14
  %186 = load ptr, ptr %185, align 8
  invoke void %186(ptr noundef nonnull align 8 dereferenceable(224) %183, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %187 unwind label %307

187:                                              ; preds = %181
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %26)
          to label %188 unwind label %61

188:                                              ; preds = %187
  %189 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 14
  %190 = load ptr, ptr %189, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #5
  store i8 0, ptr %19, align 1, !tbaa !43
  %191 = load ptr, ptr %190, align 8, !tbaa !41
  %192 = getelementptr inbounds ptr, ptr %191, i64 14
  %193 = load ptr, ptr %192, align 8
  invoke void %193(ptr noundef nonnull align 8 dereferenceable(224) %190, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %194 unwind label %311

194:                                              ; preds = %188
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %26)
          to label %195 unwind label %61

195:                                              ; preds = %194
  %196 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 3)
          to label %197 unwind label %61

197:                                              ; preds = %195
  store i32 -4, ptr %3, align 4, !tbaa !51
  store i32 -4, ptr %4, align 4, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #5
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_lv_baseEEcoEv(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_lv_base") align 8 %20, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %198 unwind label %315

198:                                              ; preds = %197
  %199 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSINS_10sc_lv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %200 unwind label %319

200:                                              ; preds = %198
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #5
  %201 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef -4)
          to label %202 unwind label %61

202:                                              ; preds = %200
  %203 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32) %10, i32 noundef -4)
          to label %204 unwind label %61

204:                                              ; preds = %202
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %26)
          to label %205 unwind label %61

205:                                              ; preds = %204
  %206 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 9
  %207 = load ptr, ptr %206, align 8, !tbaa !56
  %208 = load ptr, ptr %207, align 8, !tbaa !41
  %209 = getelementptr inbounds ptr, ptr %208, i64 9
  %210 = load ptr, ptr %209, align 8
  invoke void %210(ptr noundef nonnull align 8 dereferenceable(196) %207, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %211 unwind label %61

211:                                              ; preds = %205
  %212 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 10
  %213 = load ptr, ptr %212, align 8, !tbaa !57
  %214 = load ptr, ptr %213, align 8, !tbaa !41
  %215 = getelementptr inbounds ptr, ptr %214, i64 9
  %216 = load ptr, ptr %215, align 8
  invoke void %216(ptr noundef nonnull align 8 dereferenceable(196) %213, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %217 unwind label %61

217:                                              ; preds = %211
  %218 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 11
  %219 = load ptr, ptr %218, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2INS_10sc_lv_baseEEERKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %220 unwind label %324

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

224:                                              ; preds = %220
  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
  %225 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 12
  %226 = load ptr, ptr %225, 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) %9)
          to label %227 unwind label %333

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

231:                                              ; preds = %227
  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
  %232 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 13
  %233 = load ptr, ptr %232, 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) %10)
          to label %234 unwind label %342

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

238:                                              ; preds = %234
  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
  %239 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 14
  %240 = load ptr, ptr %239, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #5
  store i8 1, ptr %24, align 1, !tbaa !43
  %241 = load ptr, ptr %240, align 8, !tbaa !41
  %242 = getelementptr inbounds ptr, ptr %241, i64 14
  %243 = load ptr, ptr %242, align 8
  invoke void %243(ptr noundef nonnull align 8 dereferenceable(224) %240, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %244 unwind label %351

244:                                              ; preds = %238
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %26)
          to label %245 unwind label %61

245:                                              ; preds = %244
  %246 = getelementptr inbounds %struct.not_1, ptr %26, i32 0, i32 14
  %247 = load ptr, ptr %246, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #5
  store i8 0, ptr %25, align 1, !tbaa !43
  %248 = load ptr, ptr %247, align 8, !tbaa !41
  %249 = getelementptr inbounds ptr, ptr %248, i64 14
  %250 = load ptr, ptr %249, align 8
  invoke void %250(ptr noundef nonnull align 8 dereferenceable(224) %247, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %251 unwind label %355

251:                                              ; preds = %245
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %26)
          to label %252 unwind label %61

252:                                              ; preds = %251
  br label %72, !llvm.loop !61

253:                                              ; preds = %134
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %7, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %8, align 4
  br label %261

257:                                              ; preds = %139
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %7, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %8, align 4
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %261

261:                                              ; preds = %257, %253
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  br label %359

262:                                              ; preds = %141
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %7, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %8, align 4
  br label %270

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

270:                                              ; preds = %266, %262
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #5
  br label %359

271:                                              ; preds = %144
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %7, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %8, align 4
  br label %279

275:                                              ; preds = %145
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %7, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %8, align 4
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %279

279:                                              ; preds = %275, %271
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %359

280:                                              ; preds = %160
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %7, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %8, align 4
  br label %288

284:                                              ; preds = %163
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %7, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %8, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  br label %288

288:                                              ; preds = %284, %280
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #5
  br label %359

289:                                              ; preds = %167
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %7, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %8, align 4
  br label %297

293:                                              ; preds = %170
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %7, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %8, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #5
  br label %297

297:                                              ; preds = %293, %289
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #5
  br label %359

298:                                              ; preds = %174
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %7, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %8, align 4
  br label %306

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

306:                                              ; preds = %302, %298
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #5
  br label %359

307:                                              ; preds = %181
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %7, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #5
  br label %359

311:                                              ; preds = %188
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %7, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #5
  br label %359

315:                                              ; preds = %197
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %7, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %8, align 4
  br label %323

319:                                              ; preds = %198
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %7, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %8, align 4
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  br label %323

323:                                              ; preds = %319, %315
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #5
  br label %359

324:                                              ; preds = %217
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %7, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %8, align 4
  br label %332

328:                                              ; preds = %220
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %7, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %8, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #5
  br label %332

332:                                              ; preds = %328, %324
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #5
  br label %359

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

337:                                              ; preds = %227
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %7, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %8, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  br label %341

341:                                              ; preds = %337, %333
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  br label %359

342:                                              ; preds = %231
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %7, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %8, align 4
  br label %350

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

350:                                              ; preds = %346, %342
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #5
  br label %359

351:                                              ; preds = %238
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %7, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #5
  br label %359

355:                                              ; preds = %245
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %7, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #5
  br label %359

359:                                              ; preds = %355, %351, %350, %341, %332, %323, %311, %307, %306, %297, %288, %279, %270, %261, %65, %61
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %360

360:                                              ; preds = %359, %57
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #5
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  br label %361

361:                                              ; preds = %360, %53
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #5
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  br label %362

362:                                              ; preds = %361, %49
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #5
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #5
  br label %363

363:                                              ; preds = %362
  %364 = load ptr, ptr %7, align 8
  %365 = load i32, ptr %8, align 4
  %366 = insertvalue { ptr, i32 } poison, ptr %364, 0
  %367 = insertvalue { ptr, i32 } %366, i32 %365, 1
  resume { ptr, i32 } %367
}

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

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

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

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

; 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

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

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

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

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

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

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

attributes #0 = { mustprogress 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !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 = !{!"_ZTS5not_1", !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_lv" = type { %"class.sc_dt::sc_lv_base" }
%"class.sc_dt::sc_lv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }
%"class.sc_dt::sc_bigint" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_signed" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_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_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy.26", i32, i32, ptr }
%"class.sc_dt::sc_proxy.26" = type { ptr }

; Function Attrs: mustprogress noreturn uwtable
define dso_local void @_ZN5not_15entryEv(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 i32, align 4
  %4 = alloca %"class.sc_dt::sc_lv", align 8
  %5 = alloca %"class.sc_dt::sc_lv", align 8
  %6 = alloca %"class.sc_dt::sc_bigint", align 8
  %7 = alloca %"class.sc_dt::sc_biguint", align 8
  %8 = alloca i8, align 1
  %9 = alloca %"class.sc_dt::sc_lv_base", align 8
  %10 = alloca %"class.sc_dt::sc_signed", align 8
  %11 = alloca %"class.sc_dt::sc_unsigned", 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", align 8
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca %"class.sc_dt::sc_lv_base", align 8
  %18 = alloca %"class.sc_dt::sc_bv", align 8
  %19 = alloca %"class.sc_dt::sc_bv", align 8
  %20 = alloca %"class.sc_dt::sc_bv", align 8
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  call void @_ZN5sc_dt5sc_lvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  invoke void @_ZN5sc_dt5sc_lvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %23 unwind label %42

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

24:                                               ; preds = %23
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  invoke void @_ZN5sc_dt10sc_biguintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %25 unwind label %46

25:                                               ; preds = %24
  %26 = getelementptr inbounds i8, ptr %0, i64 416
  %27 = load ptr, ptr %26, align 8, !tbaa !5
  %28 = load ptr, ptr %27, align 8, !tbaa !40
  %29 = getelementptr inbounds i8, ptr %28, i64 56
  %30 = load ptr, ptr %29, align 8
  %31 = invoke noundef nonnull align 1 dereferenceable(1) ptr %30(ptr noundef nonnull align 8 dereferenceable(224) %27)
          to label %32 unwind label %.loopexit.split-lp.loopexit.split-lp

32:                                               ; preds = %25
  %33 = load i8, ptr %31, align 1, !tbaa !42, !range !43, !noundef !44
  %34 = trunc nuw i8 %33 to i1
  br i1 %34, label %35, label %.invoke

35:                                               ; preds = %32
  %36 = getelementptr inbounds i8, ptr %0, i64 512
  %37 = load ptr, ptr %36, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #6
  store i8 0, ptr %8, align 1, !tbaa !42
  %38 = load ptr, ptr %37, align 8, !tbaa !40
  %39 = getelementptr inbounds i8, ptr %38, i64 112
  %40 = load ptr, ptr %39, align 8
  invoke void %40(ptr noundef nonnull align 8 dereferenceable(224) %37, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %41 unwind label %48

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

42:                                               ; preds = %1
  %43 = landingpad { ptr, i32 }
          cleanup
  br label %278

44:                                               ; preds = %23
  %45 = landingpad { ptr, i32 }
          cleanup
  br label %277

46:                                               ; preds = %24
  %47 = landingpad { ptr, i32 }
          cleanup
  br label %276

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

.loopexit.split-lp.loopexit:                      ; preds = %217, %211, %183, %178, %177, %175, %173, %168, %167, %161, %133, %128, %127, %112, %110, %104, %102, %96, %94, %87, %80, %74, %73
  %lpad.loopexit41 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

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

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

50:                                               ; preds = %.invoke
  %51 = getelementptr inbounds i8, ptr %0, i64 464
  %52 = getelementptr inbounds i8, ptr %0, i64 424
  %53 = getelementptr inbounds i8, ptr %0, i64 432
  %54 = getelementptr inbounds i8, ptr %0, i64 440
  %55 = getelementptr inbounds i8, ptr %0, i64 448
  %56 = getelementptr inbounds i8, ptr %0, i64 456
  %57 = getelementptr inbounds i8, ptr %0, i64 472
  %58 = getelementptr inbounds i8, ptr %0, i64 480
  %59 = getelementptr inbounds i8, ptr %0, i64 488
  %60 = getelementptr inbounds i8, ptr %0, i64 496
  %61 = getelementptr inbounds i8, ptr %0, i64 504
  %62 = getelementptr inbounds i8, ptr %0, i64 512
  br label %63

63:                                               ; preds = %.backedge, %50
  %64 = load ptr, ptr %51, align 8, !tbaa !46
  %65 = load ptr, ptr %64, align 8, !tbaa !40
  %66 = getelementptr inbounds i8, ptr %65, i64 56
  %67 = load ptr, ptr %66, align 8
  %68 = invoke noundef nonnull align 1 dereferenceable(1) ptr %67(ptr noundef nonnull align 8 dereferenceable(224) %64)
          to label %69 unwind label %.loopexit

69:                                               ; preds = %63
  %70 = load i8, ptr %68, align 1, !tbaa !42, !range !43, !noundef !44
  %71 = icmp eq i8 %70, 0
  br i1 %71, label %72, label %73

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

.backedge:                                        ; preds = %72, %217
  br label %63, !llvm.loop !47

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

74:                                               ; preds = %73
  %75 = load ptr, ptr %52, align 8, !tbaa !49
  %76 = load ptr, ptr %75, align 8, !tbaa !40
  %77 = getelementptr inbounds i8, ptr %76, i64 40
  %78 = load ptr, ptr %77, align 8
  %79 = invoke noundef nonnull align 4 dereferenceable(4) ptr %78(ptr noundef nonnull align 8 dereferenceable(196) %75)
          to label %80 unwind label %.loopexit.split-lp.loopexit

80:                                               ; preds = %74
  %81 = load i32, ptr %79, align 4, !tbaa !50
  store i32 %81, ptr %2, align 4, !tbaa !50
  %82 = load ptr, ptr %53, align 8, !tbaa !51
  %83 = load ptr, ptr %82, align 8, !tbaa !40
  %84 = getelementptr inbounds i8, ptr %83, i64 40
  %85 = load ptr, ptr %84, align 8
  %86 = invoke noundef nonnull align 4 dereferenceable(4) ptr %85(ptr noundef nonnull align 8 dereferenceable(196) %82)
          to label %87 unwind label %.loopexit.split-lp.loopexit

87:                                               ; preds = %80
  %88 = load i32, ptr %86, align 4, !tbaa !50
  store i32 %88, ptr %3, align 4, !tbaa !50
  %89 = load ptr, ptr %54, align 8, !tbaa !52
  %90 = load ptr, ptr %89, align 8, !tbaa !40
  %91 = getelementptr inbounds i8, ptr %90, i64 40
  %92 = load ptr, ptr %91, align 8
  %93 = invoke noundef nonnull align 8 dereferenceable(24) ptr %92(ptr noundef nonnull align 8 dereferenceable(232) %89)
          to label %94 unwind label %.loopexit.split-lp.loopexit

94:                                               ; preds = %87
  %95 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSINS_10sc_bv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(8) %93)
          to label %96 unwind label %.loopexit.split-lp.loopexit

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

102:                                              ; preds = %96
  %103 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(24) %101)
          to label %104 unwind label %.loopexit.split-lp.loopexit

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

110:                                              ; preds = %104
  %111 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(24) %109)
          to label %112 unwind label %.loopexit.split-lp.loopexit

112:                                              ; preds = %110
  %113 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 15)
          to label %114 unwind label %.loopexit.split-lp.loopexit

114:                                              ; preds = %112
  %115 = load i32, ptr %2, align 4, !tbaa !50
  %116 = xor i32 %115, -1
  store i32 %116, ptr %2, align 4, !tbaa !50
  %117 = load i32, ptr %3, align 4, !tbaa !50
  %118 = xor i32 %117, -1
  store i32 %118, ptr %3, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_lv_baseEEcoEv(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_lv_base") align 8 %9, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %119 unwind label %218

119:                                              ; preds = %114
  %120 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSINS_10sc_lv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %121 unwind label %220

121:                                              ; preds = %119
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(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_dtcoERKNS_9sc_signedE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %122 unwind label %223

122:                                              ; preds = %121
  %123 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %124 unwind label %225

124:                                              ; preds = %122
  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_dtcoERKNS_11sc_unsignedE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_unsigned") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %125 unwind label %228

125:                                              ; preds = %124
  %126 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %127 unwind label %230

127:                                              ; preds = %125
  call void @_ZN5sc_dt11sc_unsignedD2Ev(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 %128 unwind label %.loopexit.split-lp.loopexit

128:                                              ; preds = %127
  %129 = load ptr, ptr %57, align 8, !tbaa !55
  %130 = load ptr, ptr %129, align 8, !tbaa !40
  %131 = getelementptr inbounds i8, ptr %130, i64 72
  %132 = load ptr, ptr %131, align 8
  invoke void %132(ptr noundef nonnull align 8 dereferenceable(196) %129, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %133 unwind label %.loopexit.split-lp.loopexit

133:                                              ; preds = %128
  %134 = load ptr, ptr %58, align 8, !tbaa !56
  %135 = load ptr, ptr %134, align 8, !tbaa !40
  %136 = getelementptr inbounds i8, ptr %135, i64 72
  %137 = load ptr, ptr %136, align 8
  invoke void %137(ptr noundef nonnull align 8 dereferenceable(196) %134, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %138 unwind label %.loopexit.split-lp.loopexit

138:                                              ; preds = %133
  %139 = load ptr, ptr %59, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2INS_10sc_lv_baseEEERKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %140 unwind label %233

140:                                              ; preds = %138
  %141 = load ptr, ptr %139, align 8, !tbaa !40
  %142 = getelementptr inbounds i8, ptr %141, i64 72
  %143 = load ptr, ptr %142, align 8
  invoke void %143(ptr noundef nonnull align 8 dereferenceable(232) %139, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %144 unwind label %235

144:                                              ; preds = %140
  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
  %145 = load ptr, ptr %60, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %146 unwind label %238

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

150:                                              ; preds = %146
  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
  %151 = load ptr, ptr %61, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %152 unwind label %243

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

156:                                              ; preds = %152
  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
  %157 = load ptr, ptr %62, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #6
  store i8 1, ptr %15, align 1, !tbaa !42
  %158 = load ptr, ptr %157, align 8, !tbaa !40
  %159 = getelementptr inbounds i8, ptr %158, i64 112
  %160 = load ptr, ptr %159, align 8
  invoke void %160(ptr noundef nonnull align 8 dereferenceable(224) %157, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %161 unwind label %248

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

162:                                              ; preds = %161
  %163 = load ptr, ptr %62, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #6
  store i8 0, ptr %16, align 1, !tbaa !42
  %164 = load ptr, ptr %163, align 8, !tbaa !40
  %165 = getelementptr inbounds i8, ptr %164, i64 112
  %166 = load ptr, ptr %165, align 8
  invoke void %166(ptr noundef nonnull align 8 dereferenceable(224) %163, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %167 unwind label %250

167:                                              ; preds = %162
  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 %168 unwind label %.loopexit.split-lp.loopexit

168:                                              ; preds = %167
  %169 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 3)
          to label %170 unwind label %.loopexit.split-lp.loopexit

170:                                              ; preds = %168
  store i32 -4, ptr %2, align 4, !tbaa !50
  store i32 -4, ptr %3, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #6
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_lv_baseEEcoEv(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_lv_base") align 8 %17, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %171 unwind label %252

171:                                              ; preds = %170
  %172 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSINS_10sc_lv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %173 unwind label %254

173:                                              ; preds = %171
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  %174 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef -4)
          to label %175 unwind label %.loopexit.split-lp.loopexit

175:                                              ; preds = %173
  %176 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32) %7, i32 noundef -4)
          to label %177 unwind label %.loopexit.split-lp.loopexit

177:                                              ; preds = %175
  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 ptr, ptr %57, align 8, !tbaa !55
  %180 = load ptr, ptr %179, align 8, !tbaa !40
  %181 = getelementptr inbounds i8, ptr %180, i64 72
  %182 = load ptr, ptr %181, align 8
  invoke void %182(ptr noundef nonnull align 8 dereferenceable(196) %179, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %183 unwind label %.loopexit.split-lp.loopexit

183:                                              ; preds = %178
  %184 = load ptr, ptr %58, align 8, !tbaa !56
  %185 = load ptr, ptr %184, align 8, !tbaa !40
  %186 = getelementptr inbounds i8, ptr %185, i64 72
  %187 = load ptr, ptr %186, align 8
  invoke void %187(ptr noundef nonnull align 8 dereferenceable(196) %184, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %188 unwind label %.loopexit.split-lp.loopexit

188:                                              ; preds = %183
  %189 = load ptr, ptr %59, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2INS_10sc_lv_baseEEERKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %190 unwind label %257

190:                                              ; preds = %188
  %191 = load ptr, ptr %189, 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(232) %189, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %194 unwind label %259

194:                                              ; preds = %190
  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
  %195 = load ptr, ptr %60, 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) %6)
          to label %196 unwind label %262

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) %19)
          to label %200 unwind label %264

200:                                              ; preds = %196
  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
  %201 = load ptr, ptr %61, 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) %7)
          to label %202 unwind label %267

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) %20)
          to label %206 unwind label %269

206:                                              ; preds = %202
  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
  %207 = load ptr, ptr %62, 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
  %208 = load ptr, ptr %207, align 8, !tbaa !40
  %209 = getelementptr inbounds i8, ptr %208, i64 112
  %210 = load ptr, ptr %209, align 8
  invoke void %210(ptr noundef nonnull align 8 dereferenceable(224) %207, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %211 unwind label %272

211:                                              ; preds = %206
  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 %212 unwind label %.loopexit.split-lp.loopexit

212:                                              ; preds = %211
  %213 = load ptr, ptr %62, 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
  %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) %22)
          to label %217 unwind label %274

217:                                              ; preds = %212
  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 %.backedge unwind label %.loopexit.split-lp.loopexit

218:                                              ; preds = %114
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %222

220:                                              ; preds = %119
  %221 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %222

222:                                              ; preds = %220, %218
  %.pn = phi { ptr, i32 } [ %221, %220 ], [ %219, %218 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br label %.loopexit.split-lp

223:                                              ; preds = %121
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %227

225:                                              ; preds = %122
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %227

227:                                              ; preds = %225, %223
  %.pn18 = phi { ptr, i32 } [ %226, %225 ], [ %224, %223 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  br label %.loopexit.split-lp

228:                                              ; preds = %124
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %232

230:                                              ; preds = %125
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %232

232:                                              ; preds = %230, %228
  %.pn20 = phi { ptr, i32 } [ %231, %230 ], [ %229, %228 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %.loopexit.split-lp

233:                                              ; preds = %138
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %237

235:                                              ; preds = %140
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  br label %237

237:                                              ; preds = %235, %233
  %.pn22 = phi { ptr, i32 } [ %236, %235 ], [ %234, %233 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  br label %.loopexit.split-lp

238:                                              ; preds = %144
  %239 = landingpad { ptr, i32 }
          cleanup
  br label %242

240:                                              ; preds = %146
  %241 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  br label %242

242:                                              ; preds = %240, %238
  %.pn24 = phi { ptr, i32 } [ %241, %240 ], [ %239, %238 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  br label %.loopexit.split-lp

243:                                              ; preds = %150
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %247

245:                                              ; preds = %152
  %246 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #6
  br label %247

247:                                              ; preds = %245, %243
  %.pn26 = phi { ptr, i32 } [ %246, %245 ], [ %244, %243 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #6
  br label %.loopexit.split-lp

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

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

252:                                              ; preds = %170
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %256

254:                                              ; preds = %171
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %256

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

257:                                              ; preds = %188
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %261

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

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

262:                                              ; preds = %194
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %266

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

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

267:                                              ; preds = %200
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %271

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

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

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

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

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %274, %272, %271, %266, %261, %256, %250, %248, %247, %242, %237, %232, %227, %222, %48
  %.pn36 = phi { ptr, i32 } [ %275, %274 ], [ %273, %272 ], [ %.pn34, %271 ], [ %.pn32, %266 ], [ %.pn30, %261 ], [ %.pn28, %256 ], [ %251, %250 ], [ %249, %248 ], [ %.pn26, %247 ], [ %.pn24, %242 ], [ %.pn22, %237 ], [ %.pn20, %232 ], [ %.pn18, %227 ], [ %.pn, %222 ], [ %49, %48 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit41, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp42, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %276

276:                                              ; preds = %.loopexit.split-lp, %46
  %.pn36.pn = phi { ptr, i32 } [ %.pn36, %.loopexit.split-lp ], [ %47, %46 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %277

277:                                              ; preds = %276, %44
  %.pn36.pn.pn = phi { ptr, i32 } [ %.pn36.pn, %276 ], [ %45, %44 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %278

278:                                              ; preds = %277, %42
  %.pn36.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn, %277 ], [ %43, %42 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #6
  resume { ptr, i32 } %.pn36.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_dt5sc_lvILi8EEC2Ev(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_dt5sc_lvILi8EEaSINS_10sc_bv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) 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: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #2 align 2

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

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

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

; 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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_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 uwtable
declare dso_local void @_ZN5sc_dt5sc_bvILi8EEC2INS_10sc_lv_baseEEERKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) 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 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_bigintILi8EEaSEi(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_dt10sc_biguintILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) 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 #5 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress 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 #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 = !{!"_ZTS5not_1", !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