; LLVM IR from gem5/gem5 :: src/systemc/tests/systemc/misc/cae_test/general/bitwise/and/datatypes/dataty_bfaf3067 (ZN9datatypes5entryEv)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.sc_dt::sc_bigint" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_signed" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_value_base" = type { ptr }
%"class.sc_dt::sc_biguint" = type { %"class.sc_dt::sc_unsigned" }
%"class.sc_dt::sc_unsigned" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }
%"class.sc_dt::sc_lv" = type { %"class.sc_dt::sc_lv_base" }
%"class.sc_dt::sc_lv_base" = type { %"class.sc_dt::sc_proxy.0", i32, i32, ptr, ptr }
%"class.sc_dt::sc_proxy.0" = type { ptr }
%"class.sc_dt::sc_bv.18" = type { %"class.sc_dt::sc_bv_base" }
%struct.datatypes = type { %"class.sc_core::sc_module", %"class.sc_core::sc_in", ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, 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.1", %"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.1" = type { %"struct.std::_Vector_base.2" }
%"struct.std::_Vector_base.2" = 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.9" }
%"class.sc_core::sc_port_base" = type { %"class.sc_core::sc_object", ptr }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = 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 }

@.str = external hidden unnamed_addr constant [5 x i8], align 1

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

38:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #5
  invoke void @_ZN5sc_dt10sc_biguintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %39 unwind label %74

39:                                               ; preds = %38
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #5
  invoke void @_ZN5sc_dt10sc_biguintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %40 unwind label %78

40:                                               ; preds = %39
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %41 unwind label %82

41:                                               ; preds = %40
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %42 unwind label %86

42:                                               ; preds = %41
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #5
  invoke void @_ZN5sc_dt5sc_lvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %43 unwind label %90

43:                                               ; preds = %42
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #5
  invoke void @_ZN5sc_dt5sc_lvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %44 unwind label %94

44:                                               ; preds = %43
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %24) #5
  %45 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 2
  %46 = load ptr, ptr %45, align 8, !tbaa !9
  %47 = load ptr, ptr %46, align 8, !tbaa !41
  %48 = getelementptr inbounds ptr, ptr %47, i64 7
  %49 = load ptr, ptr %48, align 8
  %50 = invoke noundef nonnull align 1 dereferenceable(1) ptr %49(ptr noundef nonnull align 8 dereferenceable(224) %46)
          to label %51 unwind label %98

51:                                               ; preds = %44
  %52 = load i8, ptr %50, align 1, !tbaa !43, !range !44, !noundef !45
  %53 = trunc i8 %52 to i1
  %54 = zext i1 %53 to i32
  %55 = icmp eq i32 %54, 1
  br i1 %55, label %56, label %110

56:                                               ; preds = %51
  %57 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 24
  %58 = load ptr, ptr %57, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #5
  store i8 0, ptr %25, align 1, !tbaa !43
  %59 = load ptr, ptr %58, align 8, !tbaa !41
  %60 = getelementptr inbounds ptr, ptr %59, i64 14
  %61 = load ptr, ptr %60, align 8
  invoke void %61(ptr noundef nonnull align 8 dereferenceable(224) %58, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %62 unwind label %102

62:                                               ; preds = %56
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #5
  %63 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 14
  %64 = load ptr, ptr %63, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #5
  store i8 0, ptr %26, align 1, !tbaa !43
  %65 = load ptr, ptr %64, align 8, !tbaa !41
  %66 = getelementptr inbounds ptr, ptr %65, i64 14
  %67 = load ptr, ptr %66, align 8
  invoke void %67(ptr noundef nonnull align 8 dereferenceable(224) %64, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %68 unwind label %106

68:                                               ; preds = %62
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %37)
          to label %69 unwind label %98

69:                                               ; preds = %68
  br label %112

70:                                               ; preds = %1
  %71 = landingpad { ptr, i32 }
          cleanup
  %72 = extractvalue { ptr, i32 } %71, 0
  store ptr %72, ptr %5, align 8
  %73 = extractvalue { ptr, i32 } %71, 1
  store i32 %73, ptr %6, align 4
  br label %419

74:                                               ; preds = %38
  %75 = landingpad { ptr, i32 }
          cleanup
  %76 = extractvalue { ptr, i32 } %75, 0
  store ptr %76, ptr %5, align 8
  %77 = extractvalue { ptr, i32 } %75, 1
  store i32 %77, ptr %6, align 4
  br label %418

78:                                               ; preds = %39
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %5, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %6, align 4
  br label %417

82:                                               ; preds = %40
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %5, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %6, align 4
  br label %416

86:                                               ; preds = %41
  %87 = landingpad { ptr, i32 }
          cleanup
  %88 = extractvalue { ptr, i32 } %87, 0
  store ptr %88, ptr %5, align 8
  %89 = extractvalue { ptr, i32 } %87, 1
  store i32 %89, ptr %6, align 4
  br label %415

90:                                               ; preds = %42
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %5, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %6, align 4
  br label %414

94:                                               ; preds = %43
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %5, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %6, align 4
  br label %413

98:                                               ; preds = %332, %320, %314, %308, %302, %296, %290, %284, %228, %217, %210, %208, %198, %189, %181, %173, %165, %157, %150, %148, %141, %139, %132, %130, %118, %110, %68, %44
  %99 = landingpad { ptr, i32 }
          cleanup
  %100 = extractvalue { ptr, i32 } %99, 0
  store ptr %100, ptr %5, align 8
  %101 = extractvalue { ptr, i32 } %99, 1
  store i32 %101, ptr %6, align 4
  br label %412

102:                                              ; preds = %56
  %103 = landingpad { ptr, i32 }
          cleanup
  %104 = extractvalue { ptr, i32 } %103, 0
  store ptr %104, ptr %5, align 8
  %105 = extractvalue { ptr, i32 } %103, 1
  store i32 %105, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #5
  br label %412

106:                                              ; preds = %62
  %107 = landingpad { ptr, i32 }
          cleanup
  %108 = extractvalue { ptr, i32 } %107, 0
  store ptr %108, ptr %5, align 8
  %109 = extractvalue { ptr, i32 } %107, 1
  store i32 %109, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #5
  br label %412

110:                                              ; preds = %51
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %37)
          to label %111 unwind label %98

111:                                              ; preds = %110
  br label %112

112:                                              ; preds = %111, %69
  %113 = getelementptr inbounds [2 x i32], ptr %23, i64 0, i64 0
  store i32 12, ptr %113, align 4, !tbaa !48
  %114 = getelementptr inbounds [2 x i32], ptr %23, i64 0, i64 1
  store i32 127, ptr %114, align 4, !tbaa !48
  %115 = getelementptr inbounds [2 x i8], ptr %24, i64 0, i64 1
  store i8 71, ptr %115, align 1, !tbaa !49
  br label %116

116:                                              ; preds = %345, %112
  br label %117

117:                                              ; preds = %116
  br label %118

118:                                              ; preds = %131, %117
  %119 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 13
  %120 = load ptr, ptr %119, align 8, !tbaa !50
  %121 = load ptr, ptr %120, align 8, !tbaa !41
  %122 = getelementptr inbounds ptr, ptr %121, i64 7
  %123 = load ptr, ptr %122, align 8
  %124 = invoke noundef nonnull align 1 dereferenceable(1) ptr %123(ptr noundef nonnull align 8 dereferenceable(224) %120)
          to label %125 unwind label %98

125:                                              ; preds = %118
  %126 = load i8, ptr %124, align 1, !tbaa !43, !range !44, !noundef !45
  %127 = trunc i8 %126 to i1
  %128 = zext i1 %127 to i32
  %129 = icmp eq i32 %128, 0
  br i1 %129, label %130, label %132

130:                                              ; preds = %125
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %37)
          to label %131 unwind label %98

131:                                              ; preds = %130
  br label %118, !llvm.loop !51

132:                                              ; preds = %125
  %133 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 3
  %134 = load ptr, ptr %133, align 8, !tbaa !53
  %135 = load ptr, ptr %134, align 8, !tbaa !41
  %136 = getelementptr inbounds ptr, ptr %135, i64 5
  %137 = load ptr, ptr %136, align 8
  %138 = invoke noundef nonnull align 8 dereferenceable(24) ptr %137(ptr noundef nonnull align 8 dereferenceable(232) %134)
          to label %139 unwind label %98

139:                                              ; preds = %132
  %140 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(24) %138)
          to label %141 unwind label %98

141:                                              ; preds = %139
  %142 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 4
  %143 = load ptr, ptr %142, align 8, !tbaa !54
  %144 = load ptr, ptr %143, align 8, !tbaa !41
  %145 = getelementptr inbounds ptr, ptr %144, i64 5
  %146 = load ptr, ptr %145, align 8
  %147 = invoke noundef nonnull align 8 dereferenceable(24) ptr %146(ptr noundef nonnull align 8 dereferenceable(232) %143)
          to label %148 unwind label %98

148:                                              ; preds = %141
  %149 = 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) %147)
          to label %150 unwind label %98

150:                                              ; preds = %148
  %151 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 5
  %152 = load ptr, ptr %151, align 8, !tbaa !55
  %153 = load ptr, ptr %152, align 8, !tbaa !41
  %154 = getelementptr inbounds ptr, ptr %153, i64 5
  %155 = load ptr, ptr %154, align 8
  %156 = invoke noundef nonnull align 8 dereferenceable(8) ptr %155(ptr noundef nonnull align 8 dereferenceable(200) %152)
          to label %157 unwind label %98

157:                                              ; preds = %150
  %158 = load i64, ptr %156, align 8, !tbaa !56
  store i64 %158, ptr %9, align 8, !tbaa !56
  %159 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 6
  %160 = load ptr, ptr %159, align 8, !tbaa !57
  %161 = load ptr, ptr %160, align 8, !tbaa !41
  %162 = getelementptr inbounds ptr, ptr %161, i64 5
  %163 = load ptr, ptr %162, align 8
  %164 = invoke noundef nonnull align 4 dereferenceable(4) ptr %163(ptr noundef nonnull align 8 dereferenceable(196) %160)
          to label %165 unwind label %98

165:                                              ; preds = %157
  %166 = load i32, ptr %164, align 4, !tbaa !48
  store i32 %166, ptr %11, align 4, !tbaa !48
  %167 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 7
  %168 = load ptr, ptr %167, align 8, !tbaa !58
  %169 = load ptr, ptr %168, align 8, !tbaa !41
  %170 = getelementptr inbounds ptr, ptr %169, i64 5
  %171 = load ptr, ptr %170, align 8
  %172 = invoke noundef nonnull align 2 dereferenceable(2) ptr %171(ptr noundef nonnull align 8 dereferenceable(194) %168)
          to label %173 unwind label %98

173:                                              ; preds = %165
  %174 = load i16, ptr %172, align 2, !tbaa !59
  store i16 %174, ptr %13, align 2, !tbaa !59
  %175 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 8
  %176 = load ptr, ptr %175, align 8, !tbaa !61
  %177 = load ptr, ptr %176, align 8, !tbaa !41
  %178 = getelementptr inbounds ptr, ptr %177, i64 5
  %179 = load ptr, ptr %178, align 8
  %180 = invoke noundef nonnull align 1 dereferenceable(1) ptr %179(ptr noundef nonnull align 8 dereferenceable(193) %176)
          to label %181 unwind label %98

181:                                              ; preds = %173
  %182 = load i8, ptr %180, align 1, !tbaa !49
  store i8 %182, ptr %15, align 1, !tbaa !49
  %183 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 9
  %184 = load ptr, ptr %183, align 8, !tbaa !62
  %185 = load ptr, ptr %184, align 8, !tbaa !41
  %186 = getelementptr inbounds ptr, ptr %185, i64 5
  %187 = load ptr, ptr %186, align 8
  %188 = invoke noundef nonnull align 1 dereferenceable(1) ptr %187(ptr noundef nonnull align 8 dereferenceable(193) %184)
          to label %189 unwind label %98

189:                                              ; preds = %181
  %190 = load i8, ptr %188, align 1, !tbaa !49
  %191 = getelementptr inbounds [2 x i8], ptr %24, i64 0, i64 0
  store i8 %190, ptr %191, align 1, !tbaa !49
  %192 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 10
  %193 = load ptr, ptr %192, align 8, !tbaa !63
  %194 = load ptr, ptr %193, align 8, !tbaa !41
  %195 = getelementptr inbounds ptr, ptr %194, i64 7
  %196 = load ptr, ptr %195, align 8
  %197 = invoke noundef nonnull align 1 dereferenceable(1) ptr %196(ptr noundef nonnull align 8 dereferenceable(224) %193)
          to label %198 unwind label %98

198:                                              ; preds = %189
  %199 = load i8, ptr %197, align 1, !tbaa !43, !range !44, !noundef !45
  %200 = trunc i8 %199 to i1
  %201 = zext i1 %200 to i8
  store i8 %201, ptr %17, align 1, !tbaa !43
  %202 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 11
  %203 = load ptr, ptr %202, align 8, !tbaa !64
  %204 = load ptr, ptr %203, align 8, !tbaa !41
  %205 = getelementptr inbounds ptr, ptr %204, i64 5
  %206 = load ptr, ptr %205, align 8
  %207 = invoke noundef nonnull align 8 dereferenceable(24) ptr %206(ptr noundef nonnull align 8 dereferenceable(232) %203)
          to label %208 unwind label %98

208:                                              ; preds = %198
  %209 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi4EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(24) %207)
          to label %210 unwind label %98

210:                                              ; preds = %208
  %211 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 12
  %212 = load ptr, ptr %211, align 8, !tbaa !65
  %213 = load ptr, ptr %212, align 8, !tbaa !41
  %214 = getelementptr inbounds ptr, ptr %213, i64 5
  %215 = load ptr, ptr %214, align 8
  %216 = invoke noundef nonnull align 8 dereferenceable(32) ptr %215(ptr noundef nonnull align 8 dereferenceable(248) %212)
          to label %217 unwind label %98

217:                                              ; preds = %210
  %218 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi4EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %216)
          to label %219 unwind label %98

219:                                              ; preds = %217
  %220 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 14
  %221 = load ptr, ptr %220, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #5
  store i8 1, ptr %27, align 1, !tbaa !43
  %222 = load ptr, ptr %221, align 8, !tbaa !41
  %223 = getelementptr inbounds ptr, ptr %222, i64 14
  %224 = load ptr, ptr %223, align 8
  invoke void %224(ptr noundef nonnull align 8 dereferenceable(224) %221, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %225 unwind label %346

225:                                              ; preds = %219
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #5
  invoke void @_ZN5sc_dtanERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_signed") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %226 unwind label %350

226:                                              ; preds = %225
  %227 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %228 unwind label %354

228:                                              ; preds = %226
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #5
  %229 = load i8, ptr %15, align 1, !tbaa !49
  %230 = sext i8 %229 to i64
  %231 = load i64, ptr %9, align 8, !tbaa !56
  %232 = and i64 %230, %231
  %233 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSEl(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %232)
          to label %234 unwind label %98

234:                                              ; preds = %228
  %235 = load i32, ptr %11, align 4, !tbaa !48
  %236 = load i8, ptr %15, align 1, !tbaa !49
  %237 = sext i8 %236 to i32
  %238 = and i32 %235, %237
  %239 = sext i32 %238 to i64
  store i64 %239, ptr %10, align 8, !tbaa !56
  %240 = load i32, ptr %11, align 4, !tbaa !48
  %241 = load i16, ptr %13, align 2, !tbaa !59
  %242 = sext i16 %241 to i32
  %243 = and i32 %240, %242
  store i32 %243, ptr %12, align 4, !tbaa !48
  %244 = load i16, ptr %13, align 2, !tbaa !59
  %245 = sext i16 %244 to i32
  %246 = and i32 %245, 5
  %247 = trunc i32 %246 to i16
  store i16 %247, ptr %14, align 2, !tbaa !59
  %248 = getelementptr inbounds [2 x i8], ptr %24, i64 0, i64 0
  %249 = load i8, ptr %248, align 1, !tbaa !49
  %250 = sext i8 %249 to i32
  %251 = getelementptr inbounds [2 x i32], ptr %23, i64 0, i64 1
  %252 = load i32, ptr %251, align 4, !tbaa !48
  %253 = and i32 %250, %252
  %254 = trunc i32 %253 to i8
  store i8 %254, ptr %16, align 1, !tbaa !49
  %255 = load i8, ptr %17, align 1, !tbaa !43, !range !44, !noundef !45
  %256 = trunc i8 %255 to i1
  %257 = zext i1 %256 to i32
  %258 = load i8, ptr %17, align 1, !tbaa !43, !range !44, !noundef !45
  %259 = trunc i8 %258 to i1
  %260 = zext i1 %259 to i32
  %261 = and i32 %257, %260
  %262 = icmp ne i32 %261, 0
  %263 = zext i1 %262 to i8
  store i8 %263, ptr %18, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #5
  invoke void @_ZN5sc_dtanINS_10sc_bv_baseENS_10sc_lv_baseEEEKS2_RKNS_8sc_proxyIT_EERKNS4_IT0_EE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_lv_base") align 8 %29, ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %264 unwind label %359

264:                                              ; preds = %234
  %265 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi4EEaSINS_10sc_lv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %266 unwind label %363

266:                                              ; preds = %264
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2EPKc(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef @.str)
          to label %267 unwind label %368

267:                                              ; preds = %266
  invoke void @_ZN5sc_dtanINS_10sc_lv_baseENS_10sc_bv_baseEEEKS1_RKNS_8sc_proxyIT_EERKNS4_IT0_EE(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_lv_base") align 8 %30, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %268 unwind label %372

268:                                              ; preds = %267
  %269 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi4EEaSINS_10sc_lv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %270 unwind label %376

270:                                              ; preds = %268
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #5
  %271 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 15
  %272 = load ptr, ptr %271, align 8, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %273 unwind label %382

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

277:                                              ; preds = %273
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #5
  %278 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 16
  %279 = load ptr, ptr %278, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 24, ptr %33) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %280 unwind label %391

280:                                              ; preds = %277
  %281 = load ptr, ptr %279, align 8, !tbaa !41
  %282 = getelementptr inbounds ptr, ptr %281, i64 9
  %283 = load ptr, ptr %282, align 8
  invoke void %283(ptr noundef nonnull align 8 dereferenceable(232) %279, ptr noundef nonnull align 8 dereferenceable(24) %33)
          to label %284 unwind label %395

284:                                              ; preds = %280
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #5
  %285 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 17
  %286 = load ptr, ptr %285, align 8, !tbaa !68
  %287 = load ptr, ptr %286, align 8, !tbaa !41
  %288 = getelementptr inbounds ptr, ptr %287, i64 9
  %289 = load ptr, ptr %288, align 8
  invoke void %289(ptr noundef nonnull align 8 dereferenceable(200) %286, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %290 unwind label %98

290:                                              ; preds = %284
  %291 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 18
  %292 = load ptr, ptr %291, align 8, !tbaa !69
  %293 = load ptr, ptr %292, align 8, !tbaa !41
  %294 = getelementptr inbounds ptr, ptr %293, i64 9
  %295 = load ptr, ptr %294, align 8
  invoke void %295(ptr noundef nonnull align 8 dereferenceable(196) %292, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %296 unwind label %98

296:                                              ; preds = %290
  %297 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 19
  %298 = load ptr, ptr %297, align 8, !tbaa !70
  %299 = load ptr, ptr %298, align 8, !tbaa !41
  %300 = getelementptr inbounds ptr, ptr %299, i64 9
  %301 = load ptr, ptr %300, align 8
  invoke void %301(ptr noundef nonnull align 8 dereferenceable(194) %298, ptr noundef nonnull align 2 dereferenceable(2) %14)
          to label %302 unwind label %98

302:                                              ; preds = %296
  %303 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 20
  %304 = load ptr, ptr %303, align 8, !tbaa !71
  %305 = load ptr, ptr %304, align 8, !tbaa !41
  %306 = getelementptr inbounds ptr, ptr %305, i64 9
  %307 = load ptr, ptr %306, align 8
  invoke void %307(ptr noundef nonnull align 8 dereferenceable(193) %304, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %308 unwind label %98

308:                                              ; preds = %302
  %309 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 21
  %310 = load ptr, ptr %309, align 8, !tbaa !72
  %311 = load ptr, ptr %310, align 8, !tbaa !41
  %312 = getelementptr inbounds ptr, ptr %311, i64 14
  %313 = load ptr, ptr %312, align 8
  invoke void %313(ptr noundef nonnull align 8 dereferenceable(224) %310, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %314 unwind label %98

314:                                              ; preds = %308
  %315 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 22
  %316 = load ptr, ptr %315, align 8, !tbaa !73
  %317 = load ptr, ptr %316, align 8, !tbaa !41
  %318 = getelementptr inbounds ptr, ptr %317, i64 9
  %319 = load ptr, ptr %318, align 8
  invoke void %319(ptr noundef nonnull align 8 dereferenceable(232) %316, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %320 unwind label %98

320:                                              ; preds = %314
  %321 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 23
  %322 = load ptr, ptr %321, align 8, !tbaa !74
  %323 = load ptr, ptr %322, align 8, !tbaa !41
  %324 = getelementptr inbounds ptr, ptr %323, i64 9
  %325 = load ptr, ptr %324, align 8
  invoke void %325(ptr noundef nonnull align 8 dereferenceable(248) %322, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %326 unwind label %98

326:                                              ; preds = %320
  %327 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 24
  %328 = load ptr, ptr %327, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #5
  store i8 1, ptr %34, align 1, !tbaa !43
  %329 = load ptr, ptr %328, align 8, !tbaa !41
  %330 = getelementptr inbounds ptr, ptr %329, i64 14
  %331 = load ptr, ptr %330, align 8
  invoke void %331(ptr noundef nonnull align 8 dereferenceable(224) %328, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %332 unwind label %400

332:                                              ; preds = %326
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %37)
          to label %333 unwind label %98

333:                                              ; preds = %332
  %334 = getelementptr inbounds %struct.datatypes, ptr %37, i32 0, i32 14
  %335 = load ptr, ptr %334, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #5
  store i8 0, ptr %35, align 1, !tbaa !43
  %336 = load ptr, ptr %335, align 8, !tbaa !41
  %337 = getelementptr inbounds ptr, ptr %336, i64 14
  %338 = load ptr, ptr %337, align 8
  invoke void %338(ptr noundef nonnull align 8 dereferenceable(224) %335, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %339 unwind label %404

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

345:                                              ; preds = %339
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #5
  br label %116, !llvm.loop !75

346:                                              ; preds = %219
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %5, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  br label %412

350:                                              ; preds = %225
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %5, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %6, align 4
  br label %358

354:                                              ; preds = %226
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %5, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %6, align 4
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %358

358:                                              ; preds = %354, %350
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #5
  br label %412

359:                                              ; preds = %234
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %5, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %6, align 4
  br label %367

363:                                              ; preds = %264
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %5, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %6, align 4
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  br label %367

367:                                              ; preds = %363, %359
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #5
  br label %412

368:                                              ; preds = %266
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %5, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %6, align 4
  br label %381

372:                                              ; preds = %267
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %5, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %6, align 4
  br label %380

376:                                              ; preds = %268
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %5, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %6, align 4
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  br label %380

380:                                              ; preds = %376, %372
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #5
  br label %381

381:                                              ; preds = %380, %368
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #5
  br label %412

382:                                              ; preds = %270
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %5, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %6, align 4
  br label %390

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

390:                                              ; preds = %386, %382
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #5
  br label %412

391:                                              ; preds = %277
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %5, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %6, align 4
  br label %399

395:                                              ; preds = %280
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %5, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #5
  br label %399

399:                                              ; preds = %395, %391
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #5
  br label %412

400:                                              ; preds = %326
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %5, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  br label %412

404:                                              ; preds = %333
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %5, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #5
  br label %412

408:                                              ; preds = %339
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %5, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #5
  br label %412

412:                                              ; preds = %408, %404, %400, %399, %390, %381, %367, %358, %346, %106, %102, %98
  call void @llvm.lifetime.end.p0(i64 2, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br label %413

413:                                              ; preds = %412, %94
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  br label %414

414:                                              ; preds = %413, %90
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #5
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #5
  br label %415

415:                                              ; preds = %414, %86
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #5
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #5
  br label %416

416:                                              ; preds = %415, %82
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %417

417:                                              ; preds = %416, %78
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  br label %418

418:                                              ; preds = %417, %74
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #5
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #5
  br label %419

419:                                              ; preds = %418, %70
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #5
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #5
  br label %420

420:                                              ; preds = %419
  %421 = load ptr, ptr %5, align 8
  %422 = load i32, ptr %6, align 4
  %423 = insertvalue { ptr, i32 } poison, ptr %421, 0
  %424 = insertvalue { ptr, i32 } %423, i32 %422, 1
  resume { ptr, i32 } %424
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 = !{!"_ZTS9datatypes", !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, !6, i64 520, !6, i64 528, !6, i64 536, !6, i64 544, !6, i64 552, !6, i64 560, !6, i64 568, !6, i64 576, !6, i64 584, !6, i64 592}
!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 592}
!47 = !{!10, !6, i64 512}
!48 = !{!32, !32, i64 0}
!49 = !{!7, !7, i64 0}
!50 = !{!10, !6, i64 504}
!51 = distinct !{!51, !52}
!52 = !{!"llvm.loop.mustprogress"}
!53 = !{!10, !6, i64 424}
!54 = !{!10, !6, i64 432}
!55 = !{!10, !6, i64 440}
!56 = !{!23, !23, i64 0}
!57 = !{!10, !6, i64 448}
!58 = !{!10, !6, i64 456}
!59 = !{!60, !60, i64 0}
!60 = !{!"short", !7, i64 0}
!61 = !{!10, !6, i64 464}
!62 = !{!10, !6, i64 472}
!63 = !{!10, !6, i64 480}
!64 = !{!10, !6, i64 488}
!65 = !{!10, !6, i64 496}
!66 = !{!10, !6, i64 520}
!67 = !{!10, !6, i64 528}
!68 = !{!10, !6, i64 536}
!69 = !{!10, !6, i64 544}
!70 = !{!10, !6, i64 552}
!71 = !{!10, !6, i64 560}
!72 = !{!10, !6, i64 568}
!73 = !{!10, !6, i64 576}
!74 = !{!10, !6, i64 584}
!75 = distinct !{!75, !52}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.sc_dt::sc_bigint" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_signed" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_value_base" = type { ptr }
%"class.sc_dt::sc_biguint" = type { %"class.sc_dt::sc_unsigned" }
%"class.sc_dt::sc_unsigned" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }
%"class.sc_dt::sc_lv" = type { %"class.sc_dt::sc_lv_base" }
%"class.sc_dt::sc_lv_base" = type { %"class.sc_dt::sc_proxy.0", i32, i32, ptr, ptr }
%"class.sc_dt::sc_proxy.0" = type { ptr }
%"class.sc_dt::sc_bv.18" = type { %"class.sc_dt::sc_bv_base" }

@.str = external hidden unnamed_addr constant [5 x i8], align 1

; Function Attrs: mustprogress noreturn uwtable
define dso_local void @_ZN9datatypes5entryEv(ptr noundef nonnull align 8 dereferenceable(600) %0) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.sc_dt::sc_bigint", align 8
  %3 = alloca %"class.sc_dt::sc_bigint", align 8
  %4 = alloca %"class.sc_dt::sc_biguint", align 8
  %5 = alloca %"class.sc_dt::sc_biguint", align 8
  %6 = alloca i64, align 8
  %7 = alloca i32, align 4
  %8 = alloca i16, align 2
  %9 = alloca i8, align 1
  %10 = alloca i8, align 1
  %11 = alloca %"class.sc_dt::sc_bv", align 8
  %12 = alloca %"class.sc_dt::sc_bv", align 8
  %13 = alloca %"class.sc_dt::sc_lv", align 8
  %14 = alloca %"class.sc_dt::sc_lv", align 8
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca %"class.sc_dt::sc_signed", align 8
  %19 = alloca %"class.sc_dt::sc_lv_base", align 8
  %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.18", align 8
  %23 = alloca %"class.sc_dt::sc_bv.18", align 8
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  %26 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #6
  call void @_ZN5sc_dt9sc_bigintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  invoke void @_ZN5sc_dt9sc_bigintILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %27 unwind label %56

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

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

29:                                               ; preds = %28
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %30 unwind label %62

30:                                               ; preds = %29
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %31 unwind label %64

31:                                               ; preds = %30
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  invoke void @_ZN5sc_dt5sc_lvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %32 unwind label %66

32:                                               ; preds = %31
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  invoke void @_ZN5sc_dt5sc_lvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %33 unwind label %68

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

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

43:                                               ; preds = %40
  %44 = getelementptr inbounds i8, ptr %0, i64 592
  %45 = load ptr, ptr %44, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #6
  store i8 0, ptr %15, align 1, !tbaa !42
  %46 = load ptr, ptr %45, align 8, !tbaa !40
  %47 = getelementptr inbounds i8, ptr %46, i64 112
  %48 = load ptr, ptr %47, align 8
  invoke void %48(ptr noundef nonnull align 8 dereferenceable(224) %45, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %49 unwind label %70

49:                                               ; preds = %43
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #6
  %50 = getelementptr inbounds i8, ptr %0, i64 512
  %51 = load ptr, ptr %50, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #6
  store i8 0, ptr %16, align 1, !tbaa !42
  %52 = load ptr, ptr %51, align 8, !tbaa !40
  %53 = getelementptr inbounds i8, ptr %52, i64 112
  %54 = load ptr, ptr %53, align 8
  invoke void %54(ptr noundef nonnull align 8 dereferenceable(224) %51, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %55 unwind label %72

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

56:                                               ; preds = %1
  %57 = landingpad { ptr, i32 }
          cleanup
  br label %313

58:                                               ; preds = %27
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %312

60:                                               ; preds = %28
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %311

62:                                               ; preds = %29
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %310

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

66:                                               ; preds = %31
  %67 = landingpad { ptr, i32 }
          cleanup
  br label %308

68:                                               ; preds = %32
  %69 = landingpad { ptr, i32 }
          cleanup
  br label %307

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

.loopexit.split-lp.loopexit:                      ; preds = %259, %249, %244, %239, %234, %229, %224, %219, %189, %179, %173, %171, %164, %157, %150, %143, %136, %129, %123, %121, %115, %113, %107
  %lpad.loopexit45 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

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

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

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

74:                                               ; preds = %.invoke
  %75 = getelementptr inbounds i8, ptr %0, i64 504
  %76 = getelementptr inbounds i8, ptr %0, i64 424
  %77 = getelementptr inbounds i8, ptr %0, i64 432
  %78 = getelementptr inbounds i8, ptr %0, i64 440
  %79 = getelementptr inbounds i8, ptr %0, i64 448
  %80 = getelementptr inbounds i8, ptr %0, i64 456
  %81 = getelementptr inbounds i8, ptr %0, i64 464
  %82 = getelementptr inbounds i8, ptr %0, i64 472
  %83 = getelementptr inbounds i8, ptr %0, i64 480
  %84 = getelementptr inbounds i8, ptr %0, i64 488
  %85 = getelementptr inbounds i8, ptr %0, i64 496
  %86 = getelementptr inbounds i8, ptr %0, i64 512
  %87 = getelementptr inbounds i8, ptr %0, i64 520
  %88 = getelementptr inbounds i8, ptr %0, i64 528
  %89 = getelementptr inbounds i8, ptr %0, i64 536
  %90 = getelementptr inbounds i8, ptr %0, i64 544
  %91 = getelementptr inbounds i8, ptr %0, i64 552
  %92 = getelementptr inbounds i8, ptr %0, i64 560
  %93 = getelementptr inbounds i8, ptr %0, i64 568
  %94 = getelementptr inbounds i8, ptr %0, i64 576
  %95 = getelementptr inbounds i8, ptr %0, i64 584
  %96 = getelementptr inbounds i8, ptr %0, i64 592
  br label %97

97:                                               ; preds = %.backedge, %74
  %98 = load ptr, ptr %75, align 8, !tbaa !47
  %99 = load ptr, ptr %98, align 8, !tbaa !40
  %100 = getelementptr inbounds i8, ptr %99, i64 56
  %101 = load ptr, ptr %100, align 8
  %102 = invoke noundef nonnull align 1 dereferenceable(1) ptr %101(ptr noundef nonnull align 8 dereferenceable(224) %98)
          to label %103 unwind label %.loopexit

103:                                              ; preds = %97
  %104 = load i8, ptr %102, align 1, !tbaa !42, !range !43, !noundef !44
  %105 = icmp eq i8 %104, 0
  br i1 %105, label %106, label %107

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

.backedge:                                        ; preds = %106, %270
  br label %97, !llvm.loop !48

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

113:                                              ; preds = %107
  %114 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(24) %112)
          to label %115 unwind label %.loopexit.split-lp.loopexit

115:                                              ; preds = %113
  %116 = load ptr, ptr %77, align 8, !tbaa !51
  %117 = load ptr, ptr %116, align 8, !tbaa !40
  %118 = getelementptr inbounds i8, ptr %117, i64 40
  %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 %.loopexit.split-lp.loopexit

121:                                              ; preds = %115
  %122 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(24) %120)
          to label %123 unwind label %.loopexit.split-lp.loopexit

123:                                              ; preds = %121
  %124 = load ptr, ptr %78, align 8, !tbaa !52
  %125 = load ptr, ptr %124, align 8, !tbaa !40
  %126 = getelementptr inbounds i8, ptr %125, i64 40
  %127 = load ptr, ptr %126, align 8
  %128 = invoke noundef nonnull align 8 dereferenceable(8) ptr %127(ptr noundef nonnull align 8 dereferenceable(200) %124)
          to label %129 unwind label %.loopexit.split-lp.loopexit

129:                                              ; preds = %123
  %130 = load i64, ptr %128, align 8, !tbaa !53
  %131 = load ptr, ptr %79, align 8, !tbaa !54
  %132 = load ptr, ptr %131, align 8, !tbaa !40
  %133 = getelementptr inbounds i8, ptr %132, i64 40
  %134 = load ptr, ptr %133, align 8
  %135 = invoke noundef nonnull align 4 dereferenceable(4) ptr %134(ptr noundef nonnull align 8 dereferenceable(196) %131)
          to label %136 unwind label %.loopexit.split-lp.loopexit

136:                                              ; preds = %129
  %137 = load i32, ptr %135, align 4, !tbaa !55
  %138 = load ptr, ptr %80, align 8, !tbaa !56
  %139 = load ptr, ptr %138, align 8, !tbaa !40
  %140 = getelementptr inbounds i8, ptr %139, i64 40
  %141 = load ptr, ptr %140, align 8
  %142 = invoke noundef nonnull align 2 dereferenceable(2) ptr %141(ptr noundef nonnull align 8 dereferenceable(194) %138)
          to label %143 unwind label %.loopexit.split-lp.loopexit

143:                                              ; preds = %136
  %144 = load i16, ptr %142, align 2, !tbaa !57
  %145 = load ptr, ptr %81, align 8, !tbaa !59
  %146 = load ptr, ptr %145, align 8, !tbaa !40
  %147 = getelementptr inbounds i8, ptr %146, i64 40
  %148 = load ptr, ptr %147, align 8
  %149 = invoke noundef nonnull align 1 dereferenceable(1) ptr %148(ptr noundef nonnull align 8 dereferenceable(193) %145)
          to label %150 unwind label %.loopexit.split-lp.loopexit

150:                                              ; preds = %143
  %151 = load i8, ptr %149, align 1, !tbaa !60
  %152 = load ptr, ptr %82, align 8, !tbaa !61
  %153 = load ptr, ptr %152, align 8, !tbaa !40
  %154 = getelementptr inbounds i8, ptr %153, i64 40
  %155 = load ptr, ptr %154, align 8
  %156 = invoke noundef nonnull align 1 dereferenceable(1) ptr %155(ptr noundef nonnull align 8 dereferenceable(193) %152)
          to label %157 unwind label %.loopexit.split-lp.loopexit

157:                                              ; preds = %150
  %158 = load i8, ptr %156, align 1, !tbaa !60
  %159 = load ptr, ptr %83, align 8, !tbaa !62
  %160 = load ptr, ptr %159, align 8, !tbaa !40
  %161 = getelementptr inbounds i8, ptr %160, i64 56
  %162 = load ptr, ptr %161, align 8
  %163 = invoke noundef nonnull align 1 dereferenceable(1) ptr %162(ptr noundef nonnull align 8 dereferenceable(224) %159)
          to label %164 unwind label %.loopexit.split-lp.loopexit

164:                                              ; preds = %157
  %165 = load i8, ptr %163, align 1, !tbaa !42, !range !43, !noundef !44
  %166 = load ptr, ptr %84, align 8, !tbaa !63
  %167 = load ptr, ptr %166, align 8, !tbaa !40
  %168 = getelementptr inbounds i8, ptr %167, i64 40
  %169 = load ptr, ptr %168, align 8
  %170 = invoke noundef nonnull align 8 dereferenceable(24) ptr %169(ptr noundef nonnull align 8 dereferenceable(232) %166)
          to label %171 unwind label %.loopexit.split-lp.loopexit

171:                                              ; preds = %164
  %172 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi4EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %170)
          to label %173 unwind label %.loopexit.split-lp.loopexit

173:                                              ; preds = %171
  %174 = load ptr, ptr %85, align 8, !tbaa !64
  %175 = load ptr, ptr %174, align 8, !tbaa !40
  %176 = getelementptr inbounds i8, ptr %175, i64 40
  %177 = load ptr, ptr %176, align 8
  %178 = invoke noundef nonnull align 8 dereferenceable(32) ptr %177(ptr noundef nonnull align 8 dereferenceable(248) %174)
          to label %179 unwind label %.loopexit.split-lp.loopexit

179:                                              ; preds = %173
  %180 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi4EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %178)
          to label %181 unwind label %.loopexit.split-lp.loopexit

181:                                              ; preds = %179
  %182 = load ptr, ptr %86, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #6
  store i8 1, ptr %17, align 1, !tbaa !42
  %183 = load ptr, ptr %182, align 8, !tbaa !40
  %184 = getelementptr inbounds i8, ptr %183, i64 112
  %185 = load ptr, ptr %184, align 8
  invoke void %185(ptr noundef nonnull align 8 dereferenceable(224) %182, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %186 unwind label %271

186:                                              ; preds = %181
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #6
  invoke void @_ZN5sc_dtanERKNS_9sc_signedERKNS_11sc_unsignedE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_signed") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %187 unwind label %273

187:                                              ; preds = %186
  %188 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi8EEaSERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %189 unwind label %275

189:                                              ; preds = %187
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  %190 = sext i8 %151 to i64
  %191 = and i64 %130, %190
  %192 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSEl(ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %191)
          to label %193 unwind label %.loopexit.split-lp.loopexit

193:                                              ; preds = %189
  %194 = sext i8 %151 to i32
  %195 = and i32 %137, %194
  %196 = sext i32 %195 to i64
  store i64 %196, ptr %6, align 8, !tbaa !53
  %197 = sext i16 %144 to i32
  %198 = and i32 %137, %197
  store i32 %198, ptr %7, align 4, !tbaa !55
  %199 = and i16 %144, 5
  store i16 %199, ptr %8, align 2, !tbaa !57
  %200 = and i8 %158, 127
  store i8 %200, ptr %9, align 1, !tbaa !60
  store i8 %165, ptr %10, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #6
  invoke void @_ZN5sc_dtanINS_10sc_bv_baseENS_10sc_lv_baseEEEKS2_RKNS_8sc_proxyIT_EERKNS4_IT0_EE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_lv_base") align 8 %19, ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %201 unwind label %278

201:                                              ; preds = %193
  %202 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi4EEaSINS_10sc_lv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %203 unwind label %280

203:                                              ; preds = %201
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2EPKc(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull @.str)
          to label %204 unwind label %283

204:                                              ; preds = %203
  invoke void @_ZN5sc_dtanINS_10sc_lv_baseENS_10sc_bv_baseEEEKS1_RKNS_8sc_proxyIT_EERKNS4_IT0_EE(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_lv_base") align 8 %20, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %205 unwind label %285

205:                                              ; preds = %204
  %206 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi4EEaSINS_10sc_lv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %207 unwind label %287

207:                                              ; preds = %205
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  %208 = load ptr, ptr %87, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %209 unwind label %291

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

213:                                              ; preds = %209
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #6
  %214 = load ptr, ptr %88, align 8, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #6
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %215 unwind label %296

215:                                              ; preds = %213
  %216 = load ptr, ptr %214, align 8, !tbaa !40
  %217 = getelementptr inbounds i8, ptr %216, i64 72
  %218 = load ptr, ptr %217, align 8
  invoke void %218(ptr noundef nonnull align 8 dereferenceable(232) %214, ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %219 unwind label %298

219:                                              ; preds = %215
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #6
  %220 = load ptr, ptr %89, align 8, !tbaa !67
  %221 = load ptr, ptr %220, align 8, !tbaa !40
  %222 = getelementptr inbounds i8, ptr %221, i64 72
  %223 = load ptr, ptr %222, align 8
  invoke void %223(ptr noundef nonnull align 8 dereferenceable(200) %220, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %224 unwind label %.loopexit.split-lp.loopexit

224:                                              ; preds = %219
  %225 = load ptr, ptr %90, align 8, !tbaa !68
  %226 = load ptr, ptr %225, align 8, !tbaa !40
  %227 = getelementptr inbounds i8, ptr %226, i64 72
  %228 = load ptr, ptr %227, align 8
  invoke void %228(ptr noundef nonnull align 8 dereferenceable(196) %225, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %229 unwind label %.loopexit.split-lp.loopexit

229:                                              ; preds = %224
  %230 = load ptr, ptr %91, align 8, !tbaa !69
  %231 = load ptr, ptr %230, align 8, !tbaa !40
  %232 = getelementptr inbounds i8, ptr %231, i64 72
  %233 = load ptr, ptr %232, align 8
  invoke void %233(ptr noundef nonnull align 8 dereferenceable(194) %230, ptr noundef nonnull align 2 dereferenceable(2) %8)
          to label %234 unwind label %.loopexit.split-lp.loopexit

234:                                              ; preds = %229
  %235 = load ptr, ptr %92, align 8, !tbaa !70
  %236 = load ptr, ptr %235, align 8, !tbaa !40
  %237 = getelementptr inbounds i8, ptr %236, i64 72
  %238 = load ptr, ptr %237, align 8
  invoke void %238(ptr noundef nonnull align 8 dereferenceable(193) %235, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %239 unwind label %.loopexit.split-lp.loopexit

239:                                              ; preds = %234
  %240 = load ptr, ptr %93, align 8, !tbaa !71
  %241 = load ptr, ptr %240, align 8, !tbaa !40
  %242 = getelementptr inbounds i8, ptr %241, i64 112
  %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) %10)
          to label %244 unwind label %.loopexit.split-lp.loopexit

244:                                              ; preds = %239
  %245 = load ptr, ptr %94, align 8, !tbaa !72
  %246 = load ptr, ptr %245, align 8, !tbaa !40
  %247 = getelementptr inbounds i8, ptr %246, i64 72
  %248 = load ptr, ptr %247, align 8
  invoke void %248(ptr noundef nonnull align 8 dereferenceable(232) %245, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %249 unwind label %.loopexit.split-lp.loopexit

249:                                              ; preds = %244
  %250 = load ptr, ptr %95, align 8, !tbaa !73
  %251 = load ptr, ptr %250, align 8, !tbaa !40
  %252 = getelementptr inbounds i8, ptr %251, i64 72
  %253 = load ptr, ptr %252, align 8
  invoke void %253(ptr noundef nonnull align 8 dereferenceable(248) %250, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %254 unwind label %.loopexit.split-lp.loopexit

254:                                              ; preds = %249
  %255 = load ptr, ptr %96, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #6
  store i8 1, ptr %24, align 1, !tbaa !42
  %256 = load ptr, ptr %255, align 8, !tbaa !40
  %257 = getelementptr inbounds i8, ptr %256, i64 112
  %258 = load ptr, ptr %257, align 8
  invoke void %258(ptr noundef nonnull align 8 dereferenceable(224) %255, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %259 unwind label %301

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

260:                                              ; preds = %259
  %261 = load ptr, ptr %86, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #6
  store i8 0, ptr %25, align 1, !tbaa !42
  %262 = load ptr, ptr %261, align 8, !tbaa !40
  %263 = getelementptr inbounds i8, ptr %262, i64 112
  %264 = load ptr, ptr %263, align 8
  invoke void %264(ptr noundef nonnull align 8 dereferenceable(224) %261, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %265 unwind label %303

265:                                              ; preds = %260
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #6
  %266 = load ptr, ptr %96, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #6
  store i8 0, ptr %26, align 1, !tbaa !42
  %267 = load ptr, ptr %266, align 8, !tbaa !40
  %268 = getelementptr inbounds i8, ptr %267, i64 112
  %269 = load ptr, ptr %268, align 8
  invoke void %269(ptr noundef nonnull align 8 dereferenceable(224) %266, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %270 unwind label %305

270:                                              ; preds = %265
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #6
  br label %.backedge

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

273:                                              ; preds = %186
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %277

275:                                              ; preds = %187
  %276 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %277

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

278:                                              ; preds = %193
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %282

280:                                              ; preds = %201
  %281 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %282

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

283:                                              ; preds = %203
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %290

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

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

289:                                              ; preds = %287, %285
  %.pn29 = phi { ptr, i32 } [ %288, %287 ], [ %286, %285 ]
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  br label %290

290:                                              ; preds = %289, %283
  %.pn29.pn = phi { ptr, i32 } [ %.pn29, %289 ], [ %284, %283 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  br label %.loopexit.split-lp

291:                                              ; preds = %207
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %295

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

295:                                              ; preds = %293, %291
  %.pn32 = phi { ptr, i32 } [ %294, %293 ], [ %292, %291 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #6
  br label %.loopexit.split-lp

296:                                              ; preds = %213
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %300

298:                                              ; preds = %215
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #6
  br label %300

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

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

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

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

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %305, %303, %301, %300, %295, %290, %282, %277, %271, %72, %70
  %.pn36 = phi { ptr, i32 } [ %306, %305 ], [ %304, %303 ], [ %302, %301 ], [ %.pn34, %300 ], [ %.pn32, %295 ], [ %.pn29.pn, %290 ], [ %.pn27, %282 ], [ %.pn, %277 ], [ %272, %271 ], [ %73, %72 ], [ %71, %70 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit45, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp46, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %307

307:                                              ; preds = %.loopexit.split-lp, %68
  %.pn36.pn = phi { ptr, i32 } [ %.pn36, %.loopexit.split-lp ], [ %69, %68 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %308

308:                                              ; preds = %307, %66
  %.pn36.pn.pn = phi { ptr, i32 } [ %.pn36.pn, %307 ], [ %67, %66 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  br label %309

309:                                              ; preds = %308, %64
  %.pn36.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn, %308 ], [ %65, %64 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  br label %310

310:                                              ; preds = %309, %62
  %.pn36.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn.pn, %309 ], [ %63, %62 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %311

311:                                              ; preds = %310, %60
  %.pn36.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn.pn.pn, %310 ], [ %61, %60 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %312

312:                                              ; preds = %311, %58
  %.pn36.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn.pn.pn.pn, %311 ], [ %59, %58 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %313

313:                                              ; preds = %312, %56
  %.pn36.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn.pn.pn.pn.pn, %312 ], [ %57, %56 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  call void @_ZN5sc_dt9sc_signedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #6
  resume { ptr, i32 } %.pn36.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi4EEaSINS_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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 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 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_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

attributes #0 = { mustprogress noreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #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 = !{!"_ZTS9datatypes", !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, !9, i64 520, !9, i64 528, !9, i64 536, !9, i64 544, !9, i64 552, !9, i64 560, !9, i64 568, !9, i64 576, !9, i64 584, !9, i64 592}
!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 592}
!46 = !{!6, !9, i64 512}
!47 = !{!6, !9, i64 504}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = !{!6, !9, i64 424}
!51 = !{!6, !9, i64 432}
!52 = !{!6, !9, i64 440}
!53 = !{!22, !22, i64 0}
!54 = !{!6, !9, i64 448}
!55 = !{!31, !31, i64 0}
!56 = !{!6, !9, i64 456}
!57 = !{!58, !58, i64 0}
!58 = !{!"short", !10, i64 0}
!59 = !{!6, !9, i64 464}
!60 = !{!10, !10, i64 0}
!61 = !{!6, !9, i64 472}
!62 = !{!6, !9, i64 480}
!63 = !{!6, !9, i64 488}
!64 = !{!6, !9, i64 496}
!65 = !{!6, !9, i64 520}
!66 = !{!6, !9, i64 528}
!67 = !{!6, !9, i64 536}
!68 = !{!6, !9, i64 544}
!69 = !{!6, !9, i64 552}
!70 = !{!6, !9, i64 560}
!71 = !{!6, !9, i64 568}
!72 = !{!6, !9, i64 576}
!73 = !{!6, !9, i64 584}


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