; LLVM IR from gem5/gem5 :: src/systemc/tests/systemc/misc/cae_test/general/bitwise/xor/datatypes/dataty_e590e464 (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_dteoERKNS_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 = xor 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 = xor 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 = xor 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 = xor 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 = xor 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 = xor 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_dteoINS_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_dteoINS_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_dteoERKNS_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_dteoINS_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_dteoINS_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 %312

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

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

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

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

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

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

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

.loopexit.split-lp.loopexit:                      ; preds = %258, %248, %243, %238, %233, %228, %223, %218, %188, %178, %172, %170, %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, %269
  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 ptr, ptr %84, align 8, !tbaa !63
  %166 = load ptr, ptr %165, align 8, !tbaa !40
  %167 = getelementptr inbounds i8, ptr %166, i64 40
  %168 = load ptr, ptr %167, align 8
  %169 = invoke noundef nonnull align 8 dereferenceable(24) ptr %168(ptr noundef nonnull align 8 dereferenceable(232) %165)
          to label %170 unwind label %.loopexit.split-lp.loopexit

170:                                              ; preds = %164
  %171 = 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) %169)
          to label %172 unwind label %.loopexit.split-lp.loopexit

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

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

180:                                              ; preds = %178
  %181 = 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
  %182 = load ptr, ptr %181, align 8, !tbaa !40
  %183 = getelementptr inbounds i8, ptr %182, i64 112
  %184 = load ptr, ptr %183, align 8
  invoke void %184(ptr noundef nonnull align 8 dereferenceable(224) %181, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %185 unwind label %270

185:                                              ; preds = %180
  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_dteoERKNS_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 %186 unwind label %272

186:                                              ; preds = %185
  %187 = 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 %188 unwind label %274

188:                                              ; preds = %186
  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
  %189 = sext i8 %151 to i64
  %190 = xor i64 %130, %189
  %191 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi8EEaSEl(ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %190)
          to label %192 unwind label %.loopexit.split-lp.loopexit

192:                                              ; preds = %188
  %193 = sext i8 %151 to i32
  %194 = xor i32 %137, %193
  %195 = sext i32 %194 to i64
  store i64 %195, ptr %6, align 8, !tbaa !53
  %196 = sext i16 %144 to i32
  %197 = xor i32 %137, %196
  store i32 %197, ptr %7, align 4, !tbaa !55
  %198 = xor i16 %144, 5
  store i16 %198, ptr %8, align 2, !tbaa !57
  %199 = xor i8 %158, 127
  store i8 %199, ptr %9, align 1, !tbaa !60
  store i8 0, ptr %10, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #6
  invoke void @_ZN5sc_dteoINS_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 %200 unwind label %277

200:                                              ; preds = %192
  %201 = 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 %202 unwind label %279

202:                                              ; preds = %200
  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 %203 unwind label %282

203:                                              ; preds = %202
  invoke void @_ZN5sc_dteoINS_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 %204 unwind label %284

204:                                              ; preds = %203
  %205 = 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 %206 unwind label %286

206:                                              ; preds = %204
  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
  %207 = 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 %208 unwind label %290

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

212:                                              ; preds = %208
  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
  %213 = 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 %214 unwind label %295

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

218:                                              ; preds = %214
  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
  %219 = load ptr, ptr %89, align 8, !tbaa !67
  %220 = load ptr, ptr %219, align 8, !tbaa !40
  %221 = getelementptr inbounds i8, ptr %220, i64 72
  %222 = load ptr, ptr %221, align 8
  invoke void %222(ptr noundef nonnull align 8 dereferenceable(200) %219, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %223 unwind label %.loopexit.split-lp.loopexit

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

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

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

238:                                              ; preds = %233
  %239 = load ptr, ptr %93, align 8, !tbaa !71
  %240 = load ptr, ptr %239, align 8, !tbaa !40
  %241 = getelementptr inbounds i8, ptr %240, i64 112
  %242 = load ptr, ptr %241, align 8
  invoke void %242(ptr noundef nonnull align 8 dereferenceable(224) %239, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %243 unwind label %.loopexit.split-lp.loopexit

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

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

253:                                              ; preds = %248
  %254 = 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
  %255 = load ptr, ptr %254, align 8, !tbaa !40
  %256 = getelementptr inbounds i8, ptr %255, i64 112
  %257 = load ptr, ptr %256, align 8
  invoke void %257(ptr noundef nonnull align 8 dereferenceable(224) %254, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %258 unwind label %300

258:                                              ; preds = %253
  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 %259 unwind label %.loopexit.split-lp.loopexit

259:                                              ; preds = %258
  %260 = 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
  %261 = load ptr, ptr %260, align 8, !tbaa !40
  %262 = getelementptr inbounds i8, ptr %261, i64 112
  %263 = load ptr, ptr %262, align 8
  invoke void %263(ptr noundef nonnull align 8 dereferenceable(224) %260, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %264 unwind label %302

264:                                              ; preds = %259
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #6
  %265 = 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
  %266 = load ptr, ptr %265, align 8, !tbaa !40
  %267 = getelementptr inbounds i8, ptr %266, i64 112
  %268 = load ptr, ptr %267, align 8
  invoke void %268(ptr noundef nonnull align 8 dereferenceable(224) %265, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %269 unwind label %304

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

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

272:                                              ; preds = %185
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %276

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

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

277:                                              ; preds = %192
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %281

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

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

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

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

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

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

289:                                              ; preds = %288, %282
  %.pn29.pn = phi { ptr, i32 } [ %.pn29, %288 ], [ %283, %282 ]
  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

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

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

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

295:                                              ; preds = %212
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %299

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

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

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

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

304:                                              ; preds = %264
  %305 = 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, %304, %302, %300, %299, %294, %289, %281, %276, %270, %72, %70
  %.pn36 = phi { ptr, i32 } [ %305, %304 ], [ %303, %302 ], [ %301, %300 ], [ %.pn34, %299 ], [ %.pn32, %294 ], [ %.pn29.pn, %289 ], [ %.pn27, %281 ], [ %.pn, %276 ], [ %271, %270 ], [ %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 %306

306:                                              ; 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 %307

307:                                              ; preds = %306, %66
  %.pn36.pn.pn = phi { ptr, i32 } [ %.pn36.pn, %306 ], [ %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 %308

308:                                              ; preds = %307, %64
  %.pn36.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn, %307 ], [ %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 %309

309:                                              ; preds = %308, %62
  %.pn36.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn.pn, %308 ], [ %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 %310

310:                                              ; preds = %309, %60
  %.pn36.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn.pn.pn, %309 ], [ %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 %311

311:                                              ; preds = %310, %58
  %.pn36.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn.pn.pn.pn, %310 ], [ %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 %312

312:                                              ; preds = %311, %56
  %.pn36.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn.pn.pn.pn.pn, %311 ], [ %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_dteoERKNS_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_dteoINS_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_dteoINS_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