; LLVM IR from gem5/gem5 :: src/systemc/tests/systemc/misc/cae_test/general/control/if_test/datatypes/da_c79f7a13 (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_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_value_base" = type { ptr }
%"class.sc_dt::sc_bigint" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_signed" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_lv" = type { %"class.sc_dt::sc_lv_base" }
%"class.sc_dt::sc_lv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy.0", i32, i32, ptr }
%"class.sc_dt::sc_proxy.0" = type { ptr }
%"class.sc_dt::sc_subref" = type { %"class.sc_dt::sc_subref_r.base", [4 x i8] }
%"class.sc_dt::sc_subref_r.base" = type <{ %"class.sc_dt::sc_proxy.18", ptr, i32, i32, i32 }>
%"class.sc_dt::sc_proxy.18" = type { ptr }
%"class.sc_dt::sc_subref_r.19" = type <{ %"class.sc_dt::sc_proxy.20", ptr, i32, i32, i32, [4 x i8] }>
%"class.sc_dt::sc_proxy.20" = type { ptr }
%struct.datatypes = type { %"class.sc_core::sc_module", %"class.sc_core::sc_in", 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 [4 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9datatypes5entryEv(ptr noundef nonnull align 8 dereferenceable(504) %0) #0 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.sc_dt::sc_biguint", 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_lv", align 8
  %8 = alloca %"class.sc_dt::sc_bv", align 8
  %9 = alloca %"class.sc_dt::sc_bv", align 8
  %10 = alloca %"class.sc_dt::sc_bv", align 8
  %11 = alloca %"class.sc_dt::sc_bv", align 8
  %12 = alloca %"class.sc_dt::sc_bv", align 8
  %13 = alloca i8, align 1
  %14 = alloca %"class.sc_dt::sc_unsigned", align 8
  %15 = alloca %"class.sc_dt::sc_bv", align 8
  %16 = alloca %"class.sc_dt::sc_unsigned", align 8
  %17 = alloca %"class.sc_dt::sc_bv", align 8
  %18 = alloca %"class.sc_dt::sc_bv", align 8
  %19 = alloca %"class.sc_dt::sc_bv", align 8
  %20 = alloca %"class.sc_dt::sc_bv", align 8
  %21 = alloca %"class.sc_dt::sc_bv", align 8
  %22 = alloca %"class.sc_dt::sc_subref", align 8
  %23 = alloca %"class.sc_dt::sc_subref", align 8
  %24 = alloca i1, align 1
  %25 = alloca i1, align 1
  %26 = alloca %"class.sc_dt::sc_subref", align 8
  %27 = alloca i1, align 1
  %28 = alloca i1, align 1
  %29 = alloca %"class.sc_dt::sc_subref", align 8
  %30 = alloca i1, align 1
  %31 = alloca i1, align 1
  %32 = alloca %"class.sc_dt::sc_subref", align 8
  %33 = alloca i1, align 1
  %34 = alloca i1, align 1
  %35 = alloca %"class.sc_dt::sc_bv", align 8
  %36 = alloca %"class.sc_dt::sc_bv", align 8
  %37 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %38 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %39 = alloca i1, align 1
  %40 = alloca i1, align 1
  %41 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %42 = alloca i1, align 1
  %43 = alloca i1, align 1
  %44 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %45 = alloca i1, align 1
  %46 = alloca i1, align 1
  %47 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %48 = alloca i1, align 1
  %49 = alloca i1, align 1
  %50 = alloca %"class.sc_dt::sc_bv", align 8
  %51 = alloca i8, align 1
  %52 = alloca i8, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %53 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %3) #5
  call void @_ZN5sc_dt10sc_biguintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3)
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #5
  invoke void @_ZN5sc_dt9sc_bigintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %54 unwind label %104

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

55:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %56 unwind label %112

56:                                               ; preds = %55
  %57 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 2
  %58 = load ptr, ptr %57, align 8, !tbaa !9
  %59 = load ptr, ptr %58, align 8, !tbaa !41
  %60 = getelementptr inbounds ptr, ptr %59, i64 7
  %61 = load ptr, ptr %60, align 8
  %62 = invoke noundef nonnull align 1 dereferenceable(1) ptr %61(ptr noundef nonnull align 8 dereferenceable(224) %58)
          to label %63 unwind label %116

63:                                               ; preds = %56
  %64 = load i8, ptr %62, align 1, !tbaa !43, !range !44, !noundef !45
  %65 = trunc i8 %64 to i1
  %66 = zext i1 %65 to i32
  %67 = icmp eq i32 %66, 1
  br i1 %67, label %68, label %160

68:                                               ; preds = %63
  %69 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 8
  %70 = load ptr, ptr %69, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %9, i32 noundef 0)
          to label %71 unwind label %120

71:                                               ; preds = %68
  %72 = load ptr, ptr %70, align 8, !tbaa !41
  %73 = getelementptr inbounds ptr, ptr %72, i64 9
  %74 = load ptr, ptr %73, align 8
  invoke void %74(ptr noundef nonnull align 8 dereferenceable(232) %70, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %75 unwind label %124

75:                                               ; preds = %71
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #5
  %76 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 9
  %77 = load ptr, ptr %76, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %10, i32 noundef 0)
          to label %78 unwind label %129

78:                                               ; preds = %75
  %79 = load ptr, ptr %77, align 8, !tbaa !41
  %80 = getelementptr inbounds ptr, ptr %79, i64 9
  %81 = load ptr, ptr %80, align 8
  invoke void %81(ptr noundef nonnull align 8 dereferenceable(232) %77, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %82 unwind label %133

82:                                               ; preds = %78
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #5
  %83 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 10
  %84 = load ptr, ptr %83, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %11, i32 noundef 0)
          to label %85 unwind label %138

85:                                               ; preds = %82
  %86 = load ptr, ptr %84, align 8, !tbaa !41
  %87 = getelementptr inbounds ptr, ptr %86, i64 9
  %88 = load ptr, ptr %87, align 8
  invoke void %88(ptr noundef nonnull align 8 dereferenceable(232) %84, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %89 unwind label %142

89:                                               ; preds = %85
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #5
  %90 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 11
  %91 = load ptr, ptr %90, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %12, i32 noundef 0)
          to label %92 unwind label %147

92:                                               ; preds = %89
  %93 = load ptr, ptr %91, align 8, !tbaa !41
  %94 = getelementptr inbounds ptr, ptr %93, i64 9
  %95 = load ptr, ptr %94, align 8
  invoke void %95(ptr noundef nonnull align 8 dereferenceable(232) %91, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %96 unwind label %151

96:                                               ; preds = %92
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #5
  %97 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 12
  %98 = load ptr, ptr %97, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #5
  store i8 0, ptr %13, align 1, !tbaa !43
  %99 = load ptr, ptr %98, align 8, !tbaa !41
  %100 = getelementptr inbounds ptr, ptr %99, i64 14
  %101 = load ptr, ptr %100, align 8
  invoke void %101(ptr noundef nonnull align 8 dereferenceable(224) %98, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %102 unwind label %156

102:                                              ; preds = %96
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %53)
          to label %103 unwind label %116

103:                                              ; preds = %102
  br label %162

104:                                              ; preds = %1
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %5, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %6, align 4
  br label %730

108:                                              ; preds = %54
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %5, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %6, align 4
  br label %729

112:                                              ; preds = %55
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %5, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %6, align 4
  br label %728

116:                                              ; preds = %711, %698, %361, %320, %318, %297, %295, %294, %210, %203, %201, %194, %192, %185, %183, %176, %167, %165, %160, %102, %56
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %5, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %6, align 4
  br label %727

120:                                              ; preds = %68
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %5, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %6, align 4
  br label %128

124:                                              ; preds = %71
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %5, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  br label %128

128:                                              ; preds = %124, %120
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #5
  br label %727

129:                                              ; preds = %75
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %5, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %6, align 4
  br label %137

133:                                              ; preds = %78
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %5, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #5
  br label %137

137:                                              ; preds = %133, %129
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #5
  br label %727

138:                                              ; preds = %82
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %5, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %6, align 4
  br label %146

142:                                              ; preds = %85
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %5, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #5
  br label %146

146:                                              ; preds = %142, %138
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #5
  br label %727

147:                                              ; preds = %89
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %5, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %6, align 4
  br label %155

151:                                              ; preds = %92
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %5, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #5
  br label %155

155:                                              ; preds = %151, %147
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #5
  br label %727

156:                                              ; preds = %96
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %5, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  br label %727

160:                                              ; preds = %63
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %53)
          to label %161 unwind label %116

161:                                              ; preds = %160
  br label %162

162:                                              ; preds = %161, %103
  br label %163

163:                                              ; preds = %718, %162
  br label %164

164:                                              ; preds = %163
  br label %165

165:                                              ; preds = %171, %164
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %53)
          to label %166 unwind label %116

166:                                              ; preds = %165
  br label %167

167:                                              ; preds = %166
  %168 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 7
  %169 = load ptr, ptr %168, align 8, !tbaa !51
  %170 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %169)
          to label %171 unwind label %116

171:                                              ; preds = %167
  %172 = load i8, ptr %170, align 1, !tbaa !43, !range !44, !noundef !45
  %173 = trunc i8 %172 to i1
  %174 = zext i1 %173 to i32
  %175 = icmp eq i32 %174, 0
  br i1 %175, label %165, label %176, !llvm.loop !52

176:                                              ; preds = %171
  %177 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 3
  %178 = load ptr, ptr %177, align 8, !tbaa !54
  %179 = load ptr, ptr %178, align 8, !tbaa !41
  %180 = getelementptr inbounds ptr, ptr %179, i64 5
  %181 = load ptr, ptr %180, align 8
  %182 = invoke noundef nonnull align 8 dereferenceable(24) ptr %181(ptr noundef nonnull align 8 dereferenceable(232) %178)
          to label %183 unwind label %116

183:                                              ; preds = %176
  %184 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(24) %182)
          to label %185 unwind label %116

185:                                              ; preds = %183
  %186 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 4
  %187 = load ptr, ptr %186, align 8, !tbaa !55
  %188 = load ptr, ptr %187, align 8, !tbaa !41
  %189 = getelementptr inbounds ptr, ptr %188, i64 5
  %190 = load ptr, ptr %189, align 8
  %191 = invoke noundef nonnull align 8 dereferenceable(24) ptr %190(ptr noundef nonnull align 8 dereferenceable(232) %187)
          to label %192 unwind label %116

192:                                              ; preds = %185
  %193 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(24) %191)
          to label %194 unwind label %116

194:                                              ; preds = %192
  %195 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 5
  %196 = load ptr, ptr %195, align 8, !tbaa !56
  %197 = load ptr, ptr %196, align 8, !tbaa !41
  %198 = getelementptr inbounds ptr, ptr %197, i64 5
  %199 = load ptr, ptr %198, align 8
  %200 = invoke noundef nonnull align 8 dereferenceable(24) ptr %199(ptr noundef nonnull align 8 dereferenceable(232) %196)
          to label %201 unwind label %116

201:                                              ; preds = %194
  %202 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi4EEaSINS_10sc_bv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(8) %200)
          to label %203 unwind label %116

203:                                              ; preds = %201
  %204 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 6
  %205 = load ptr, ptr %204, align 8, !tbaa !57
  %206 = load ptr, ptr %205, align 8, !tbaa !41
  %207 = getelementptr inbounds ptr, ptr %206, i64 5
  %208 = load ptr, ptr %207, align 8
  %209 = invoke noundef nonnull align 8 dereferenceable(24) ptr %208(ptr noundef nonnull align 8 dereferenceable(232) %205)
          to label %210 unwind label %116

210:                                              ; preds = %203
  %211 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi4EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %209)
          to label %212 unwind label %116

212:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #5
  %213 = invoke noundef nonnull align 8 dereferenceable(28) ptr @_ZN5sc_dt11sc_unsigned5rangeEii(ptr noundef nonnull align 8 dereferenceable(32) %3, i32 noundef 1, i32 noundef 3)
          to label %214 unwind label %226

214:                                              ; preds = %212
  invoke void @_ZNK5sc_dt20sc_unsigned_subref_rcvNS_11sc_unsignedEEv(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8 %14, ptr noundef nonnull align 8 dereferenceable(28) %213)
          to label %215 unwind label %226

215:                                              ; preds = %214
  %216 = invoke noundef zeroext i1 @_ZN5sc_dteqERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %14, i32 noundef 4)
          to label %217 unwind label %230

217:                                              ; preds = %215
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br i1 %216, label %218, label %244

218:                                              ; preds = %217
  %219 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 8
  %220 = load ptr, ptr %219, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %15, i32 noundef 3)
          to label %221 unwind label %235

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

225:                                              ; preds = %221
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #5
  br label %294

226:                                              ; preds = %214, %212
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %5, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %6, align 4
  br label %234

230:                                              ; preds = %215
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %5, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %6, align 4
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %234

234:                                              ; preds = %230, %226
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %727

235:                                              ; preds = %218
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %5, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %6, align 4
  br label %243

239:                                              ; preds = %221
  %240 = landingpad { ptr, i32 }
          cleanup
  %241 = extractvalue { ptr, i32 } %240, 0
  store ptr %241, ptr %5, align 8
  %242 = extractvalue { ptr, i32 } %240, 1
  store i32 %242, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  br label %243

243:                                              ; preds = %239, %235
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #5
  br label %727

244:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #5
  %245 = invoke noundef nonnull align 8 dereferenceable(28) ptr @_ZN5sc_dt11sc_unsigned5rangeEii(ptr noundef nonnull align 8 dereferenceable(32) %3, i32 noundef 3, i32 noundef 1)
          to label %246 unwind label %258

246:                                              ; preds = %244
  invoke void @_ZNK5sc_dt20sc_unsigned_subref_rcvNS_11sc_unsignedEEv(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_unsigned") align 8 %16, ptr noundef nonnull align 8 dereferenceable(28) %245)
          to label %247 unwind label %258

247:                                              ; preds = %246
  %248 = invoke noundef zeroext i1 @_ZN5sc_dteqERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %16, i32 noundef 4)
          to label %249 unwind label %262

249:                                              ; preds = %247
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  br i1 %248, label %250, label %276

250:                                              ; preds = %249
  %251 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 8
  %252 = load ptr, ptr %251, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %17, i32 noundef 2)
          to label %253 unwind label %267

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

257:                                              ; preds = %253
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #5
  br label %293

258:                                              ; preds = %246, %244
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %5, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %6, align 4
  br label %266

262:                                              ; preds = %247
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %5, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %6, align 4
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %266

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

267:                                              ; preds = %250
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %5, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %6, align 4
  br label %275

271:                                              ; preds = %253
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %5, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  br label %275

275:                                              ; preds = %271, %267
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #5
  br label %727

276:                                              ; preds = %249
  %277 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 8
  %278 = load ptr, ptr %277, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %279 unwind label %284

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

283:                                              ; preds = %279
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #5
  br label %293

284:                                              ; preds = %276
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %5, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %6, align 4
  br label %292

288:                                              ; preds = %279
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %5, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  br label %292

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

293:                                              ; preds = %283, %257
  br label %294

294:                                              ; preds = %293, %225
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %53)
          to label %295 unwind label %116

295:                                              ; preds = %294
  %296 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt9sc_signedixEi(ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 2)
          to label %297 unwind label %116

297:                                              ; preds = %295
  %298 = invoke noundef i64 @_ZNK5sc_dt18sc_signed_bitref_rcvyEv(ptr noundef nonnull align 8 dereferenceable(24) %296)
          to label %299 unwind label %116

299:                                              ; preds = %297
  %300 = icmp ne i64 %298, 0
  br i1 %300, label %301, label %318

301:                                              ; preds = %299
  %302 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 9
  %303 = load ptr, ptr %302, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %19, i32 noundef 3)
          to label %304 unwind label %309

304:                                              ; preds = %301
  %305 = load ptr, ptr %303, 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(232) %303, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %308 unwind label %313

308:                                              ; preds = %304
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #5
  br label %361

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

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

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

318:                                              ; preds = %299
  %319 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt11sc_unsignedixEi(ptr noundef nonnull align 8 dereferenceable(32) %3, i32 noundef 1)
          to label %320 unwind label %116

320:                                              ; preds = %318
  %321 = invoke noundef i64 @_ZNK5sc_dt20sc_unsigned_bitref_rcvyEv(ptr noundef nonnull align 8 dereferenceable(24) %319)
          to label %322 unwind label %116

322:                                              ; preds = %320
  %323 = icmp ne i64 %321, 0
  %324 = zext i1 %323 to i32
  %325 = icmp eq i32 %324, 1
  br i1 %325, label %326, label %343

326:                                              ; preds = %322
  %327 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 9
  %328 = load ptr, ptr %327, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %20, i32 noundef 2)
          to label %329 unwind label %334

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

333:                                              ; preds = %329
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #5
  br label %360

334:                                              ; preds = %326
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %5, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %6, align 4
  br label %342

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

342:                                              ; preds = %338, %334
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #5
  br label %727

343:                                              ; preds = %322
  %344 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 9
  %345 = load ptr, ptr %344, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %346 unwind label %351

346:                                              ; preds = %343
  %347 = load ptr, ptr %345, align 8, !tbaa !41
  %348 = getelementptr inbounds ptr, ptr %347, i64 9
  %349 = load ptr, ptr %348, align 8
  invoke void %349(ptr noundef nonnull align 8 dereferenceable(232) %345, ptr noundef nonnull align 8 dereferenceable(24) %21)
          to label %350 unwind label %355

350:                                              ; preds = %346
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #5
  br label %360

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

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

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

360:                                              ; preds = %350, %333
  br label %361

361:                                              ; preds = %360, %308
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %53)
          to label %362 unwind label %116

362:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #5
  store i1 false, ptr %24, align 1
  store i1 false, ptr %25, align 1
  store i1 false, ptr %27, align 1
  store i1 false, ptr %28, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %31, align 1
  store i1 false, ptr %33, align 1
  store i1 false, ptr %34, align 1
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref") align 8 %22, ptr noundef nonnull align 8 dereferenceable(8) %7, i32 noundef 1, i32 noundef 3)
          to label %363 unwind label %422

363:                                              ; preds = %362
  %364 = invoke noundef zeroext i1 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEEeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef @.str)
          to label %365 unwind label %426

365:                                              ; preds = %363
  br i1 %364, label %388, label %366

366:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #5
  store i1 true, ptr %24, align 1
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref") align 8 %23, ptr noundef nonnull align 8 dereferenceable(8) %7, i32 noundef 3, i32 noundef 1)
          to label %367 unwind label %430

367:                                              ; preds = %366
  store i1 true, ptr %25, align 1
  %368 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %369 unwind label %434

369:                                              ; preds = %367
  %370 = icmp ne i32 %368, 4
  br i1 %370, label %371, label %386

371:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #5
  store i1 true, ptr %27, align 1
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref") align 8 %26, ptr noundef nonnull align 8 dereferenceable(8) %7, i32 noundef 3, i32 noundef 1)
          to label %372 unwind label %438

372:                                              ; preds = %371
  store i1 true, ptr %28, align 1
  %373 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %374 unwind label %442

374:                                              ; preds = %372
  %375 = icmp ne i32 %373, 5
  br i1 %375, label %376, label %386

376:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #5
  store i1 true, ptr %30, align 1
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref") align 8 %29, ptr noundef nonnull align 8 dereferenceable(8) %7, i32 noundef 3, i32 noundef 1)
          to label %377 unwind label %446

377:                                              ; preds = %376
  store i1 true, ptr %31, align 1
  %378 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %379 unwind label %450

379:                                              ; preds = %377
  %380 = icmp ne i32 %378, 6
  br i1 %380, label %381, label %386

381:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #5
  store i1 true, ptr %33, align 1
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref") align 8 %32, ptr noundef nonnull align 8 dereferenceable(8) %7, i32 noundef 3, i32 noundef 1)
          to label %382 unwind label %454

382:                                              ; preds = %381
  store i1 true, ptr %34, align 1
  %383 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %384 unwind label %458

384:                                              ; preds = %382
  %385 = icmp ne i32 %383, 7
  br label %386

386:                                              ; preds = %384, %379, %374, %369
  %387 = phi i1 [ false, %379 ], [ false, %374 ], [ false, %369 ], [ %385, %384 ]
  br label %388

388:                                              ; preds = %386, %365
  %389 = phi i1 [ true, %365 ], [ %387, %386 ]
  %390 = load i1, ptr %34, align 1
  br i1 %390, label %391, label %392

391:                                              ; preds = %388
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %32) #5
  br label %392

392:                                              ; preds = %391, %388
  %393 = load i1, ptr %33, align 1
  br i1 %393, label %394, label %395

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

395:                                              ; preds = %394, %392
  %396 = load i1, ptr %31, align 1
  br i1 %396, label %397, label %398

397:                                              ; preds = %395
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %29) #5
  br label %398

398:                                              ; preds = %397, %395
  %399 = load i1, ptr %30, align 1
  br i1 %399, label %400, label %401

400:                                              ; preds = %398
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #5
  br label %401

401:                                              ; preds = %400, %398
  %402 = load i1, ptr %28, align 1
  br i1 %402, label %403, label %404

403:                                              ; preds = %401
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #5
  br label %404

404:                                              ; preds = %403, %401
  %405 = load i1, ptr %27, align 1
  br i1 %405, label %406, label %407

406:                                              ; preds = %404
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #5
  br label %407

407:                                              ; preds = %406, %404
  %408 = load i1, ptr %25, align 1
  br i1 %408, label %409, label %410

409:                                              ; preds = %407
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %23) #5
  br label %410

410:                                              ; preds = %409, %407
  %411 = load i1, ptr %24, align 1
  br i1 %411, label %412, label %413

412:                                              ; preds = %410
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #5
  br label %413

413:                                              ; preds = %412, %410
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %22) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  br i1 %389, label %414, label %504

414:                                              ; preds = %413
  %415 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 10
  %416 = load ptr, ptr %415, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %35, i32 noundef 1)
          to label %417 unwind label %495

417:                                              ; preds = %414
  %418 = load ptr, ptr %416, align 8, !tbaa !41
  %419 = getelementptr inbounds ptr, ptr %418, i64 9
  %420 = load ptr, ptr %419, align 8
  invoke void %420(ptr noundef nonnull align 8 dereferenceable(232) %416, ptr noundef nonnull align 8 dereferenceable(24) %35)
          to label %421 unwind label %499

421:                                              ; preds = %417
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #5
  br label %521

422:                                              ; preds = %362
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %5, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %6, align 4
  br label %494

426:                                              ; preds = %363
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %5, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %6, align 4
  br label %493

430:                                              ; preds = %366
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %5, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %6, align 4
  br label %489

434:                                              ; preds = %367
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %5, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %6, align 4
  br label %485

438:                                              ; preds = %371
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %5, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %6, align 4
  br label %481

442:                                              ; preds = %372
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %5, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %6, align 4
  br label %477

446:                                              ; preds = %376
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %5, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %6, align 4
  br label %473

450:                                              ; preds = %377
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %5, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %6, align 4
  br label %469

454:                                              ; preds = %381
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %5, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %6, align 4
  br label %465

458:                                              ; preds = %382
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %5, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %6, align 4
  %462 = load i1, ptr %34, align 1
  br i1 %462, label %463, label %464

463:                                              ; preds = %458
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %32) #5
  br label %464

464:                                              ; preds = %463, %458
  br label %465

465:                                              ; preds = %464, %454
  %466 = load i1, ptr %33, align 1
  br i1 %466, label %467, label %468

467:                                              ; preds = %465
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #5
  br label %468

468:                                              ; preds = %467, %465
  br label %469

469:                                              ; preds = %468, %450
  %470 = load i1, ptr %31, align 1
  br i1 %470, label %471, label %472

471:                                              ; preds = %469
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %29) #5
  br label %472

472:                                              ; preds = %471, %469
  br label %473

473:                                              ; preds = %472, %446
  %474 = load i1, ptr %30, align 1
  br i1 %474, label %475, label %476

475:                                              ; preds = %473
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #5
  br label %476

476:                                              ; preds = %475, %473
  br label %477

477:                                              ; preds = %476, %442
  %478 = load i1, ptr %28, align 1
  br i1 %478, label %479, label %480

479:                                              ; preds = %477
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #5
  br label %480

480:                                              ; preds = %479, %477
  br label %481

481:                                              ; preds = %480, %438
  %482 = load i1, ptr %27, align 1
  br i1 %482, label %483, label %484

483:                                              ; preds = %481
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #5
  br label %484

484:                                              ; preds = %483, %481
  br label %485

485:                                              ; preds = %484, %434
  %486 = load i1, ptr %25, align 1
  br i1 %486, label %487, label %488

487:                                              ; preds = %485
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %23) #5
  br label %488

488:                                              ; preds = %487, %485
  br label %489

489:                                              ; preds = %488, %430
  %490 = load i1, ptr %24, align 1
  br i1 %490, label %491, label %492

491:                                              ; preds = %489
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #5
  br label %492

492:                                              ; preds = %491, %489
  br label %493

493:                                              ; preds = %492, %426
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %22) #5
  br label %494

494:                                              ; preds = %493, %422
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  br label %727

495:                                              ; preds = %414
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %5, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %6, align 4
  br label %503

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

503:                                              ; preds = %499, %495
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #5
  br label %727

504:                                              ; preds = %413
  %505 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 10
  %506 = load ptr, ptr %505, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2INS_10sc_lv_baseEEERKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %507 unwind label %512

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

511:                                              ; preds = %507
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #5
  br label %521

512:                                              ; preds = %504
  %513 = landingpad { ptr, i32 }
          cleanup
  %514 = extractvalue { ptr, i32 } %513, 0
  store ptr %514, ptr %5, align 8
  %515 = extractvalue { ptr, i32 } %513, 1
  store i32 %515, ptr %6, align 4
  br label %520

516:                                              ; preds = %507
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %5, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %6, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #5
  br label %520

520:                                              ; preds = %516, %512
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #5
  br label %727

521:                                              ; preds = %511, %421
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #5
  %522 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 6
  %523 = load ptr, ptr %522, align 8, !tbaa !57
  %524 = load ptr, ptr %523, align 8, !tbaa !41
  %525 = getelementptr inbounds ptr, ptr %524, i64 5
  %526 = load ptr, ptr %525, align 8
  store i1 false, ptr %39, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %43, align 1
  store i1 false, ptr %45, align 1
  store i1 false, ptr %46, align 1
  store i1 false, ptr %48, align 1
  store i1 false, ptr %49, align 1
  %527 = invoke noundef nonnull align 8 dereferenceable(24) ptr %526(ptr noundef nonnull align 8 dereferenceable(232) %523)
          to label %528 unwind label %616

528:                                              ; preds = %521
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %37, ptr noundef nonnull align 8 dereferenceable(8) %527, i32 noundef 1, i32 noundef 3)
          to label %529 unwind label %616

529:                                              ; preds = %528
  %530 = invoke noundef zeroext i1 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEEeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef @.str)
          to label %531 unwind label %620

531:                                              ; preds = %529
  br i1 %530, label %582, label %532

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #5
  store i1 true, ptr %39, align 1
  %533 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 6
  %534 = load ptr, ptr %533, align 8, !tbaa !57
  %535 = load ptr, ptr %534, align 8, !tbaa !41
  %536 = getelementptr inbounds ptr, ptr %535, i64 5
  %537 = load ptr, ptr %536, align 8
  %538 = invoke noundef nonnull align 8 dereferenceable(24) ptr %537(ptr noundef nonnull align 8 dereferenceable(232) %534)
          to label %539 unwind label %624

539:                                              ; preds = %532
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %38, ptr noundef nonnull align 8 dereferenceable(8) %538, i32 noundef 3, i32 noundef 1)
          to label %540 unwind label %624

540:                                              ; preds = %539
  store i1 true, ptr %40, align 1
  %541 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %542 unwind label %628

542:                                              ; preds = %540
  %543 = icmp ne i32 %541, 4
  br i1 %543, label %544, label %580

544:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #5
  store i1 true, ptr %42, align 1
  %545 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 6
  %546 = load ptr, ptr %545, align 8, !tbaa !57
  %547 = load ptr, ptr %546, align 8, !tbaa !41
  %548 = getelementptr inbounds ptr, ptr %547, i64 5
  %549 = load ptr, ptr %548, align 8
  %550 = invoke noundef nonnull align 8 dereferenceable(24) ptr %549(ptr noundef nonnull align 8 dereferenceable(232) %546)
          to label %551 unwind label %632

551:                                              ; preds = %544
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %41, ptr noundef nonnull align 8 dereferenceable(8) %550, i32 noundef 3, i32 noundef 1)
          to label %552 unwind label %632

552:                                              ; preds = %551
  store i1 true, ptr %43, align 1
  %553 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %554 unwind label %636

554:                                              ; preds = %552
  %555 = icmp ne i32 %553, 5
  br i1 %555, label %556, label %580

556:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #5
  store i1 true, ptr %45, align 1
  %557 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 6
  %558 = load ptr, ptr %557, align 8, !tbaa !57
  %559 = load ptr, ptr %558, align 8, !tbaa !41
  %560 = getelementptr inbounds ptr, ptr %559, i64 5
  %561 = load ptr, ptr %560, align 8
  %562 = invoke noundef nonnull align 8 dereferenceable(24) ptr %561(ptr noundef nonnull align 8 dereferenceable(232) %558)
          to label %563 unwind label %640

563:                                              ; preds = %556
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %44, ptr noundef nonnull align 8 dereferenceable(8) %562, i32 noundef 3, i32 noundef 1)
          to label %564 unwind label %640

564:                                              ; preds = %563
  store i1 true, ptr %46, align 1
  %565 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %566 unwind label %644

566:                                              ; preds = %564
  %567 = icmp ne i32 %565, 6
  br i1 %567, label %568, label %580

568:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #5
  store i1 true, ptr %48, align 1
  %569 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 6
  %570 = load ptr, ptr %569, align 8, !tbaa !57
  %571 = load ptr, ptr %570, align 8, !tbaa !41
  %572 = getelementptr inbounds ptr, ptr %571, i64 5
  %573 = load ptr, ptr %572, align 8
  %574 = invoke noundef nonnull align 8 dereferenceable(24) ptr %573(ptr noundef nonnull align 8 dereferenceable(232) %570)
          to label %575 unwind label %648

575:                                              ; preds = %568
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %47, ptr noundef nonnull align 8 dereferenceable(8) %574, i32 noundef 3, i32 noundef 1)
          to label %576 unwind label %648

576:                                              ; preds = %575
  store i1 true, ptr %49, align 1
  %577 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %578 unwind label %652

578:                                              ; preds = %576
  %579 = icmp ne i32 %577, 7
  br label %580

580:                                              ; preds = %578, %566, %554, %542
  %581 = phi i1 [ false, %566 ], [ false, %554 ], [ false, %542 ], [ %579, %578 ]
  br label %582

582:                                              ; preds = %580, %531
  %583 = phi i1 [ true, %531 ], [ %581, %580 ]
  %584 = load i1, ptr %49, align 1
  br i1 %584, label %585, label %586

585:                                              ; preds = %582
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %47) #5
  br label %586

586:                                              ; preds = %585, %582
  %587 = load i1, ptr %48, align 1
  br i1 %587, label %588, label %589

588:                                              ; preds = %586
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #5
  br label %589

589:                                              ; preds = %588, %586
  %590 = load i1, ptr %46, align 1
  br i1 %590, label %591, label %592

591:                                              ; preds = %589
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %44) #5
  br label %592

592:                                              ; preds = %591, %589
  %593 = load i1, ptr %45, align 1
  br i1 %593, label %594, label %595

594:                                              ; preds = %592
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #5
  br label %595

595:                                              ; preds = %594, %592
  %596 = load i1, ptr %43, align 1
  br i1 %596, label %597, label %598

597:                                              ; preds = %595
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %41) #5
  br label %598

598:                                              ; preds = %597, %595
  %599 = load i1, ptr %42, align 1
  br i1 %599, label %600, label %601

600:                                              ; preds = %598
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #5
  br label %601

601:                                              ; preds = %600, %598
  %602 = load i1, ptr %40, align 1
  br i1 %602, label %603, label %604

603:                                              ; preds = %601
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %38) #5
  br label %604

604:                                              ; preds = %603, %601
  %605 = load i1, ptr %39, align 1
  br i1 %605, label %606, label %607

606:                                              ; preds = %604
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #5
  br label %607

607:                                              ; preds = %606, %604
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %37) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #5
  br i1 %583, label %608, label %698

608:                                              ; preds = %607
  %609 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 11
  %610 = load ptr, ptr %609, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #5
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %50, i32 noundef 1)
          to label %611 unwind label %689

611:                                              ; preds = %608
  %612 = load ptr, ptr %610, align 8, !tbaa !41
  %613 = getelementptr inbounds ptr, ptr %612, i64 9
  %614 = load ptr, ptr %613, align 8
  invoke void %614(ptr noundef nonnull align 8 dereferenceable(232) %610, ptr noundef nonnull align 8 dereferenceable(24) %50)
          to label %615 unwind label %693

615:                                              ; preds = %611
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #5
  br label %705

616:                                              ; preds = %528, %521
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %5, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %6, align 4
  br label %688

620:                                              ; preds = %529
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %5, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %6, align 4
  br label %687

624:                                              ; preds = %539, %532
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %5, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %6, align 4
  br label %683

628:                                              ; preds = %540
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %5, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %6, align 4
  br label %679

632:                                              ; preds = %551, %544
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %5, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %6, align 4
  br label %675

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

640:                                              ; preds = %563, %556
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %5, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %6, align 4
  br label %667

644:                                              ; preds = %564
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %5, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %6, align 4
  br label %663

648:                                              ; preds = %575, %568
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %5, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %6, align 4
  br label %659

652:                                              ; preds = %576
  %653 = landingpad { ptr, i32 }
          cleanup
  %654 = extractvalue { ptr, i32 } %653, 0
  store ptr %654, ptr %5, align 8
  %655 = extractvalue { ptr, i32 } %653, 1
  store i32 %655, ptr %6, align 4
  %656 = load i1, ptr %49, align 1
  br i1 %656, label %657, label %658

657:                                              ; preds = %652
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %47) #5
  br label %658

658:                                              ; preds = %657, %652
  br label %659

659:                                              ; preds = %658, %648
  %660 = load i1, ptr %48, align 1
  br i1 %660, label %661, label %662

661:                                              ; preds = %659
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #5
  br label %662

662:                                              ; preds = %661, %659
  br label %663

663:                                              ; preds = %662, %644
  %664 = load i1, ptr %46, align 1
  br i1 %664, label %665, label %666

665:                                              ; preds = %663
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %44) #5
  br label %666

666:                                              ; preds = %665, %663
  br label %667

667:                                              ; preds = %666, %640
  %668 = load i1, ptr %45, align 1
  br i1 %668, label %669, label %670

669:                                              ; preds = %667
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #5
  br label %670

670:                                              ; preds = %669, %667
  br label %671

671:                                              ; preds = %670, %636
  %672 = load i1, ptr %43, align 1
  br i1 %672, label %673, label %674

673:                                              ; preds = %671
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %41) #5
  br label %674

674:                                              ; preds = %673, %671
  br label %675

675:                                              ; preds = %674, %632
  %676 = load i1, ptr %42, align 1
  br i1 %676, label %677, label %678

677:                                              ; preds = %675
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #5
  br label %678

678:                                              ; preds = %677, %675
  br label %679

679:                                              ; preds = %678, %628
  %680 = load i1, ptr %40, align 1
  br i1 %680, label %681, label %682

681:                                              ; preds = %679
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %38) #5
  br label %682

682:                                              ; preds = %681, %679
  br label %683

683:                                              ; preds = %682, %624
  %684 = load i1, ptr %39, align 1
  br i1 %684, label %685, label %686

685:                                              ; preds = %683
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #5
  br label %686

686:                                              ; preds = %685, %683
  br label %687

687:                                              ; preds = %686, %620
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %37) #5
  br label %688

688:                                              ; preds = %687, %616
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #5
  br label %727

689:                                              ; preds = %608
  %690 = landingpad { ptr, i32 }
          cleanup
  %691 = extractvalue { ptr, i32 } %690, 0
  store ptr %691, ptr %5, align 8
  %692 = extractvalue { ptr, i32 } %690, 1
  store i32 %692, ptr %6, align 4
  br label %697

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

697:                                              ; preds = %693, %689
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #5
  br label %727

698:                                              ; preds = %607
  %699 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 11
  %700 = load ptr, ptr %699, align 8, !tbaa !49
  %701 = load ptr, ptr %700, align 8, !tbaa !41
  %702 = getelementptr inbounds ptr, ptr %701, i64 9
  %703 = load ptr, ptr %702, align 8
  invoke void %703(ptr noundef nonnull align 8 dereferenceable(232) %700, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %704 unwind label %116

704:                                              ; preds = %698
  br label %705

705:                                              ; preds = %704, %615
  %706 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 12
  %707 = load ptr, ptr %706, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #5
  store i8 1, ptr %51, align 1, !tbaa !43
  %708 = load ptr, ptr %707, align 8, !tbaa !41
  %709 = getelementptr inbounds ptr, ptr %708, i64 14
  %710 = load ptr, ptr %709, align 8
  invoke void %710(ptr noundef nonnull align 8 dereferenceable(224) %707, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %711 unwind label %719

711:                                              ; preds = %705
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %53)
          to label %712 unwind label %116

712:                                              ; preds = %711
  %713 = getelementptr inbounds %struct.datatypes, ptr %53, i32 0, i32 12
  %714 = load ptr, ptr %713, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #5
  store i8 0, ptr %52, align 1, !tbaa !43
  %715 = load ptr, ptr %714, align 8, !tbaa !41
  %716 = getelementptr inbounds ptr, ptr %715, i64 14
  %717 = load ptr, ptr %716, align 8
  invoke void %717(ptr noundef nonnull align 8 dereferenceable(224) %714, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %718 unwind label %723

718:                                              ; preds = %712
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  br label %163, !llvm.loop !58

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

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

727:                                              ; preds = %723, %719, %697, %688, %520, %503, %494, %359, %342, %317, %292, %275, %266, %243, %234, %156, %155, %146, %137, %128, %116
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  br label %728

728:                                              ; preds = %727, %112
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #5
  call void @_ZN5sc_dt10sc_lv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  br label %729

729:                                              ; preds = %728, %108
  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 %730

730:                                              ; preds = %729, %104
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #5
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #5
  br label %731

731:                                              ; preds = %730
  %732 = load ptr, ptr %5, align 8
  %733 = load i32, ptr %6, align 4
  %734 = insertvalue { ptr, i32 } poison, ptr %732, 0
  %735 = insertvalue { ptr, i32 } %734, i32 %733, 1
  resume { ptr, i32 } %735
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5sc_dt9sc_bigintILi4EEC2Ev(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_dt5sc_lvILi4EEC2Ev(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_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) 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 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224)) #0 align 2

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

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

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

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

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

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

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

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

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

declare noundef i64 @_ZNK5sc_dt18sc_signed_bitref_rcvyEv(ptr noundef nonnull align 8 dereferenceable(24)) #3

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

declare noundef i64 @_ZNK5sc_dt20sc_unsigned_bitref_rcvyEv(ptr noundef nonnull align 8 dereferenceable(24)) #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind noalias writable sret(%"class.sc_dt::sc_subref_r.19") align 8, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, i32 noundef) #0 align 2

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

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

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

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

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 416}
!10 = !{!"_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}
!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 464}
!47 = !{!10, !6, i64 472}
!48 = !{!10, !6, i64 480}
!49 = !{!10, !6, i64 488}
!50 = !{!10, !6, i64 496}
!51 = !{!10, !6, i64 456}
!52 = distinct !{!52, !53}
!53 = !{!"llvm.loop.mustprogress"}
!54 = !{!10, !6, i64 424}
!55 = !{!10, !6, i64 432}
!56 = !{!10, !6, i64 440}
!57 = !{!10, !6, i64 448}
!58 = distinct !{!58, !53}


; 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_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_value_base" = type { ptr }
%"class.sc_dt::sc_bigint" = type { %"class.sc_dt::sc_signed" }
%"class.sc_dt::sc_signed" = type { %"class.sc_dt::sc_value_base", i32, i32, i32, ptr }
%"class.sc_dt::sc_lv" = type { %"class.sc_dt::sc_lv_base" }
%"class.sc_dt::sc_lv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy.0", i32, i32, ptr }
%"class.sc_dt::sc_proxy.0" = type { ptr }
%"class.sc_dt::sc_subref" = type { %"class.sc_dt::sc_subref_r.base", [4 x i8] }
%"class.sc_dt::sc_subref_r.base" = type <{ %"class.sc_dt::sc_proxy.18", ptr, i32, i32, i32 }>
%"class.sc_dt::sc_proxy.18" = type { ptr }
%"class.sc_dt::sc_subref_r.19" = type <{ %"class.sc_dt::sc_proxy.20", ptr, i32, i32, i32, [4 x i8] }>
%"class.sc_dt::sc_proxy.20" = type { ptr }

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

; Function Attrs: mustprogress noreturn uwtable
define dso_local void @_ZN9datatypes5entryEv(ptr noundef nonnull align 8 dereferenceable(504) %0) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.sc_dt::sc_biguint", align 8
  %3 = alloca %"class.sc_dt::sc_bigint", align 8
  %4 = alloca %"class.sc_dt::sc_lv", align 8
  %5 = alloca %"class.sc_dt::sc_bv", align 8
  %6 = alloca %"class.sc_dt::sc_bv", align 8
  %7 = alloca %"class.sc_dt::sc_bv", align 8
  %8 = alloca %"class.sc_dt::sc_bv", align 8
  %9 = alloca %"class.sc_dt::sc_bv", align 8
  %10 = alloca i8, align 1
  %11 = alloca %"class.sc_dt::sc_unsigned", align 8
  %12 = alloca %"class.sc_dt::sc_bv", align 8
  %13 = alloca %"class.sc_dt::sc_unsigned", align 8
  %14 = alloca %"class.sc_dt::sc_bv", align 8
  %15 = alloca %"class.sc_dt::sc_bv", align 8
  %16 = alloca %"class.sc_dt::sc_bv", align 8
  %17 = alloca %"class.sc_dt::sc_bv", align 8
  %18 = alloca %"class.sc_dt::sc_bv", align 8
  %19 = alloca %"class.sc_dt::sc_subref", align 8
  %20 = alloca %"class.sc_dt::sc_subref", align 8
  %21 = alloca %"class.sc_dt::sc_subref", align 8
  %22 = alloca %"class.sc_dt::sc_subref", align 8
  %23 = alloca %"class.sc_dt::sc_subref", align 8
  %24 = alloca %"class.sc_dt::sc_bv", align 8
  %25 = alloca %"class.sc_dt::sc_bv", align 8
  %26 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %27 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %28 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %29 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %30 = alloca %"class.sc_dt::sc_subref_r.19", align 8
  %31 = alloca %"class.sc_dt::sc_bv", align 8
  %32 = alloca i8, align 1
  %33 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #6
  call void @_ZN5sc_dt10sc_biguintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  invoke void @_ZN5sc_dt9sc_bigintILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %34 unwind label %81

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

35:                                               ; preds = %34
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %36 unwind label %85

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

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

46:                                               ; preds = %43
  %47 = getelementptr inbounds i8, ptr %0, i64 464
  %48 = load ptr, ptr %47, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %6, i32 noundef 0)
          to label %49 unwind label %87

49:                                               ; preds = %46
  %50 = load ptr, ptr %48, align 8, !tbaa !40
  %51 = getelementptr inbounds i8, ptr %50, i64 72
  %52 = load ptr, ptr %51, align 8
  invoke void %52(ptr noundef nonnull align 8 dereferenceable(232) %48, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %53 unwind label %89

53:                                               ; preds = %49
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #6
  %54 = getelementptr inbounds i8, ptr %0, i64 472
  %55 = load ptr, ptr %54, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef 0)
          to label %56 unwind label %92

56:                                               ; preds = %53
  %57 = load ptr, ptr %55, align 8, !tbaa !40
  %58 = getelementptr inbounds i8, ptr %57, i64 72
  %59 = load ptr, ptr %58, align 8
  invoke void %59(ptr noundef nonnull align 8 dereferenceable(232) %55, ptr noundef nonnull align 8 dereferenceable(24) %7)
          to label %60 unwind label %94

60:                                               ; preds = %56
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #6
  %61 = getelementptr inbounds i8, ptr %0, i64 480
  %62 = load ptr, ptr %61, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %8, i32 noundef 0)
          to label %63 unwind label %97

63:                                               ; preds = %60
  %64 = load ptr, ptr %62, align 8, !tbaa !40
  %65 = getelementptr inbounds i8, ptr %64, i64 72
  %66 = load ptr, ptr %65, align 8
  invoke void %66(ptr noundef nonnull align 8 dereferenceable(232) %62, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %67 unwind label %99

67:                                               ; preds = %63
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  %68 = getelementptr inbounds i8, ptr %0, i64 488
  %69 = load ptr, ptr %68, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %9, i32 noundef 0)
          to label %70 unwind label %102

70:                                               ; preds = %67
  %71 = load ptr, ptr %69, align 8, !tbaa !40
  %72 = getelementptr inbounds i8, ptr %71, i64 72
  %73 = load ptr, ptr %72, align 8
  invoke void %73(ptr noundef nonnull align 8 dereferenceable(232) %69, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %74 unwind label %104

74:                                               ; preds = %70
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #6
  %75 = getelementptr inbounds i8, ptr %0, i64 496
  %76 = load ptr, ptr %75, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #6
  store i8 0, ptr %10, align 1, !tbaa !42
  %77 = load ptr, ptr %76, align 8, !tbaa !40
  %78 = getelementptr inbounds i8, ptr %77, i64 112
  %79 = load ptr, ptr %78, align 8
  invoke void %79(ptr noundef nonnull align 8 dereferenceable(224) %76, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %80 unwind label %107

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

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

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

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

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

.loopexit.split-lp.loopexit:                      ; preds = %435, %425, %262, %236, %234, %219, %217, %216, %157, %151, %149, %143, %141, %135, %133, %127
  %lpad.loopexit209 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

87:                                               ; preds = %46
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %91

89:                                               ; preds = %49
  %90 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #6
  br label %91

91:                                               ; preds = %89, %87
  %.pn = phi { ptr, i32 } [ %90, %89 ], [ %88, %87 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #6
  br label %.loopexit.split-lp

92:                                               ; preds = %53
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %96

94:                                               ; preds = %56
  %95 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #6
  br label %96

96:                                               ; preds = %94, %92
  %.pn88 = phi { ptr, i32 } [ %95, %94 ], [ %93, %92 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #6
  br label %.loopexit.split-lp

97:                                               ; preds = %60
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %101

99:                                               ; preds = %63
  %100 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  br label %101

101:                                              ; preds = %99, %97
  %.pn90 = phi { ptr, i32 } [ %100, %99 ], [ %98, %97 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  br label %.loopexit.split-lp

102:                                              ; preds = %67
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %106

104:                                              ; preds = %70
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  br label %106

106:                                              ; preds = %104, %102
  %.pn92 = phi { ptr, i32 } [ %105, %104 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #6
  br label %.loopexit.split-lp

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

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

109:                                              ; preds = %.invoke
  %110 = getelementptr inbounds i8, ptr %0, i64 456
  %111 = getelementptr inbounds i8, ptr %0, i64 424
  %112 = getelementptr inbounds i8, ptr %0, i64 432
  %113 = getelementptr inbounds i8, ptr %0, i64 440
  %114 = getelementptr inbounds i8, ptr %0, i64 448
  %115 = getelementptr inbounds i8, ptr %0, i64 464
  %116 = getelementptr inbounds i8, ptr %0, i64 472
  %117 = getelementptr inbounds i8, ptr %0, i64 480
  %118 = getelementptr inbounds i8, ptr %0, i64 488
  %119 = getelementptr inbounds i8, ptr %0, i64 496
  br label %120

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

121:                                              ; preds = %120
  %122 = load ptr, ptr %110, align 8, !tbaa !50
  %123 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %122)
          to label %124 unwind label %.loopexit

124:                                              ; preds = %121
  %125 = load i8, ptr %123, align 1, !tbaa !42, !range !43, !noundef !44
  %126 = icmp eq i8 %125, 0
  br i1 %126, label %.backedge, label %127

.backedge:                                        ; preds = %124, %441
  br label %120, !llvm.loop !51

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

133:                                              ; preds = %127
  %134 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt10sc_biguintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(24) %132)
          to label %135 unwind label %.loopexit.split-lp.loopexit

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

141:                                              ; preds = %135
  %142 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt9sc_bigintILi4EEaSERKNS_10sc_bv_baseE(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(24) %140)
          to label %143 unwind label %.loopexit.split-lp.loopexit

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

149:                                              ; preds = %143
  %150 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5sc_dt5sc_lvILi4EEaSINS_10sc_bv_baseEEERS1_RKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(8) %148)
          to label %151 unwind label %.loopexit.split-lp.loopexit

151:                                              ; preds = %149
  %152 = load ptr, ptr %114, align 8, !tbaa !56
  %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 8 dereferenceable(24) ptr %155(ptr noundef nonnull align 8 dereferenceable(232) %152)
          to label %157 unwind label %.loopexit.split-lp.loopexit

157:                                              ; preds = %151
  %158 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi4EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %156)
          to label %159 unwind label %.loopexit.split-lp.loopexit

159:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  %160 = invoke noundef nonnull align 8 dereferenceable(28) ptr @_ZN5sc_dt11sc_unsigned5rangeEii(ptr noundef nonnull align 8 dereferenceable(32) %2, i32 noundef 1, i32 noundef 3)
          to label %161 unwind label %172

161:                                              ; preds = %159
  invoke void @_ZNK5sc_dt20sc_unsigned_subref_rcvNS_11sc_unsignedEEv(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_unsigned") align 8 %11, ptr noundef nonnull align 8 dereferenceable(28) %160)
          to label %162 unwind label %172

162:                                              ; preds = %161
  %163 = invoke noundef zeroext i1 @_ZN5sc_dteqERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %11, i32 noundef 4)
          to label %164 unwind label %174

164:                                              ; preds = %162
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br i1 %163, label %165, label %182

165:                                              ; preds = %164
  %166 = load ptr, ptr %115, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %12, i32 noundef 3)
          to label %167 unwind label %177

167:                                              ; preds = %165
  %168 = load ptr, ptr %166, align 8, !tbaa !40
  %169 = getelementptr inbounds i8, ptr %168, i64 72
  %170 = load ptr, ptr %169, align 8
  invoke void %170(ptr noundef nonnull align 8 dereferenceable(232) %166, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %171 unwind label %179

171:                                              ; preds = %167
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  br label %216

172:                                              ; preds = %161, %159
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %176

174:                                              ; preds = %162
  %175 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %176

176:                                              ; preds = %174, %172
  %.pn94 = phi { ptr, i32 } [ %175, %174 ], [ %173, %172 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %.loopexit.split-lp

177:                                              ; preds = %165
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %181

179:                                              ; preds = %167
  %180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  br label %181

181:                                              ; preds = %179, %177
  %.pn102 = phi { ptr, i32 } [ %180, %179 ], [ %178, %177 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  br label %.loopexit.split-lp

182:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  %183 = invoke noundef nonnull align 8 dereferenceable(28) ptr @_ZN5sc_dt11sc_unsigned5rangeEii(ptr noundef nonnull align 8 dereferenceable(32) %2, i32 noundef 3, i32 noundef 1)
          to label %184 unwind label %195

184:                                              ; preds = %182
  invoke void @_ZNK5sc_dt20sc_unsigned_subref_rcvNS_11sc_unsignedEEv(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_unsigned") align 8 %13, ptr noundef nonnull align 8 dereferenceable(28) %183)
          to label %185 unwind label %195

185:                                              ; preds = %184
  %186 = invoke noundef zeroext i1 @_ZN5sc_dteqERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32) %13, i32 noundef 4)
          to label %187 unwind label %197

187:                                              ; preds = %185
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  %188 = load ptr, ptr %115, align 8, !tbaa !45
  br i1 %186, label %189, label %205

189:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %14, i32 noundef 2)
          to label %190 unwind label %200

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

194:                                              ; preds = %190
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #6
  br label %216

195:                                              ; preds = %184, %182
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %199

197:                                              ; preds = %185
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt11sc_unsignedD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %199

199:                                              ; preds = %197, %195
  %.pn96 = phi { ptr, i32 } [ %198, %197 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  br label %.loopexit.split-lp

200:                                              ; preds = %189
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %204

202:                                              ; preds = %190
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #6
  br label %204

204:                                              ; preds = %202, %200
  %.pn100 = phi { ptr, i32 } [ %203, %202 ], [ %201, %200 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #6
  br label %.loopexit.split-lp

205:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_11sc_unsignedE(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %206 unwind label %211

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

210:                                              ; preds = %206
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #6
  br label %216

211:                                              ; preds = %205
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %215

213:                                              ; preds = %206
  %214 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #6
  br label %215

215:                                              ; preds = %213, %211
  %.pn98 = phi { ptr, i32 } [ %214, %213 ], [ %212, %211 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #6
  br label %.loopexit.split-lp

216:                                              ; preds = %194, %210, %171
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %217 unwind label %.loopexit.split-lp.loopexit

217:                                              ; preds = %216
  %218 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt9sc_signedixEi(ptr noundef nonnull align 8 dereferenceable(32) %3, i32 noundef 2)
          to label %219 unwind label %.loopexit.split-lp.loopexit

219:                                              ; preds = %217
  %220 = invoke noundef i64 @_ZNK5sc_dt18sc_signed_bitref_rcvyEv(ptr noundef nonnull align 8 dereferenceable(24) %218)
          to label %221 unwind label %.loopexit.split-lp.loopexit

221:                                              ; preds = %219
  %.not = icmp eq i64 %220, 0
  br i1 %.not, label %234, label %222

222:                                              ; preds = %221
  %223 = load ptr, ptr %116, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %16, i32 noundef 3)
          to label %224 unwind label %229

224:                                              ; preds = %222
  %225 = load ptr, ptr %223, 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(232) %223, ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %228 unwind label %231

228:                                              ; preds = %224
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #6
  br label %262

229:                                              ; preds = %222
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %233

231:                                              ; preds = %224
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  br label %233

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

234:                                              ; preds = %221
  %235 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt11sc_unsignedixEi(ptr noundef nonnull align 8 dereferenceable(32) %2, i32 noundef 1)
          to label %236 unwind label %.loopexit.split-lp.loopexit

236:                                              ; preds = %234
  %237 = invoke noundef i64 @_ZNK5sc_dt20sc_unsigned_bitref_rcvyEv(ptr noundef nonnull align 8 dereferenceable(24) %235)
          to label %238 unwind label %.loopexit.split-lp.loopexit

238:                                              ; preds = %236
  %.not104 = icmp eq i64 %237, 0
  %239 = load ptr, ptr %116, align 8, !tbaa !46
  br i1 %.not104, label %251, label %240

240:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %17, i32 noundef 2)
          to label %241 unwind label %246

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

245:                                              ; preds = %241
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #6
  br label %262

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

248:                                              ; preds = %241
  %249 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  br label %250

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

251:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2ERKNS_9sc_signedE(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %252 unwind label %257

252:                                              ; preds = %251
  %253 = load ptr, ptr %239, align 8, !tbaa !40
  %254 = getelementptr inbounds i8, ptr %253, i64 72
  %255 = load ptr, ptr %254, align 8
  invoke void %255(ptr noundef nonnull align 8 dereferenceable(232) %239, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %256 unwind label %259

256:                                              ; preds = %252
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #6
  br label %262

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

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

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

262:                                              ; preds = %245, %256, %228
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %263 unwind label %.loopexit.split-lp.loopexit

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #6
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref") align 8 %19, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef 1, i32 noundef 3)
          to label %264 unwind label %289

264:                                              ; preds = %263
  %265 = invoke noundef zeroext i1 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEEeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull @.str)
          to label %266 unwind label %291

266:                                              ; preds = %264
  br i1 %265, label %.critedge153.thread, label %267

.critedge153.thread:                              ; preds = %266
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %282

267:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref") align 8 %20, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef 3, i32 noundef 1)
          to label %268 unwind label %293

268:                                              ; preds = %267
  %269 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %270 unwind label %295

270:                                              ; preds = %268
  %.not111 = icmp eq i32 %269, 4
  br i1 %.not111, label %.critedge, label %271

271:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #6
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref") align 8 %21, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef 3, i32 noundef 1)
          to label %272 unwind label %297

272:                                              ; preds = %271
  %273 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %274 unwind label %299

274:                                              ; preds = %272
  %.not112 = icmp eq i32 %273, 5
  br i1 %.not112, label %.critedge203, label %275

275:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #6
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref") align 8 %22, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef 3, i32 noundef 1)
          to label %276 unwind label %301

276:                                              ; preds = %275
  %277 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %278 unwind label %303

278:                                              ; preds = %276
  %.not113 = icmp eq i32 %277, 6
  br i1 %.not113, label %.critedge205, label %279

279:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #6
  invoke void @_ZN5sc_dt8sc_proxyINS_10sc_lv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref") align 8 %23, ptr noundef nonnull align 8 dereferenceable(8) %4, i32 noundef 3, i32 noundef 1)
          to label %280 unwind label %305

280:                                              ; preds = %279
  %281 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %.critedge.thread unwind label %307

.critedge.thread:                                 ; preds = %280
  %.not207 = icmp eq i32 %281, 7
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br i1 %.not207, label %323, label %282

282:                                              ; preds = %.critedge153.thread, %.critedge.thread
  %283 = load ptr, ptr %117, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %24, i32 noundef 1)
          to label %284 unwind label %318

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

288:                                              ; preds = %284
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #6
  br label %335

289:                                              ; preds = %263
  %290 = landingpad { ptr, i32 }
          cleanup
  br label %317

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

293:                                              ; preds = %267
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %315

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

297:                                              ; preds = %271
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %313

299:                                              ; preds = %272
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %312

301:                                              ; preds = %275
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %311

303:                                              ; preds = %276
  %304 = landingpad { ptr, i32 }
          cleanup
  br label %310

305:                                              ; preds = %279
  %306 = landingpad { ptr, i32 }
          cleanup
  br label %309

307:                                              ; preds = %280
  %308 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %23) #6
  br label %309

309:                                              ; preds = %305, %307
  %.pn114 = phi { ptr, i32 } [ %308, %307 ], [ %306, %305 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  br label %310

310:                                              ; preds = %303, %309
  %.pn114.pn = phi { ptr, i32 } [ %.pn114, %309 ], [ %304, %303 ]
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %22) #6
  br label %311

311:                                              ; preds = %301, %310
  %.pn114.pn.pn = phi { ptr, i32 } [ %.pn114.pn, %310 ], [ %302, %301 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  br label %312

312:                                              ; preds = %299, %311
  %.pn114.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn, %311 ], [ %300, %299 ]
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %21) #6
  br label %313

313:                                              ; preds = %297, %312
  %.pn114.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn.pn, %312 ], [ %298, %297 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  br label %314

314:                                              ; preds = %295, %313
  %.pn114.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn.pn.pn, %313 ], [ %296, %295 ]
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %20) #6
  br label %315

315:                                              ; preds = %293, %314
  %.pn114.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn.pn.pn.pn, %314 ], [ %294, %293 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  br label %316

316:                                              ; preds = %315, %291
  %.pn114.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn.pn.pn.pn.pn, %315 ], [ %292, %291 ]
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %19) #6
  br label %317

317:                                              ; preds = %316, %289
  %.pn114.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn.pn.pn.pn.pn.pn, %316 ], [ %290, %289 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %.loopexit.split-lp

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

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

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

.critedge:                                        ; preds = %270
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %323

.critedge203:                                     ; preds = %274
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %323

.critedge205:                                     ; preds = %278
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_lv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %323

323:                                              ; preds = %.critedge205, %.critedge203, %.critedge, %.critedge.thread
  %324 = load ptr, ptr %117, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2INS_10sc_lv_baseEEERKNS_8sc_proxyIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %325 unwind label %330

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

329:                                              ; preds = %325
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #6
  br label %335

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

332:                                              ; preds = %325
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #6
  br label %334

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

335:                                              ; preds = %329, %288
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #6
  %336 = load ptr, ptr %114, align 8, !tbaa !56
  %337 = load ptr, ptr %336, align 8, !tbaa !40
  %338 = getelementptr inbounds i8, ptr %337, i64 40
  %339 = load ptr, ptr %338, align 8
  %340 = invoke noundef nonnull align 8 dereferenceable(24) ptr %339(ptr noundef nonnull align 8 dereferenceable(232) %336)
          to label %341 unwind label %391

341:                                              ; preds = %335
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %26, ptr noundef nonnull align 8 dereferenceable(8) %340, i32 noundef 1, i32 noundef 3)
          to label %342 unwind label %391

342:                                              ; preds = %341
  %343 = invoke noundef zeroext i1 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEEeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull @.str)
          to label %344 unwind label %393

344:                                              ; preds = %342
  br i1 %343, label %.critedge161.thread, label %345

.critedge161.thread:                              ; preds = %344
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br label %384

345:                                              ; preds = %344
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #6
  %346 = load ptr, ptr %114, align 8, !tbaa !56
  %347 = load ptr, ptr %346, align 8, !tbaa !40
  %348 = getelementptr inbounds i8, ptr %347, i64 40
  %349 = load ptr, ptr %348, align 8
  %350 = invoke noundef nonnull align 8 dereferenceable(24) ptr %349(ptr noundef nonnull align 8 dereferenceable(232) %346)
          to label %351 unwind label %395

351:                                              ; preds = %345
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %27, ptr noundef nonnull align 8 dereferenceable(8) %350, i32 noundef 3, i32 noundef 1)
          to label %352 unwind label %395

352:                                              ; preds = %351
  %353 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %354 unwind label %397

354:                                              ; preds = %352
  %.not128 = icmp eq i32 %353, 4
  br i1 %.not128, label %.critedge202, label %355

355:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #6
  %356 = load ptr, ptr %114, align 8, !tbaa !56
  %357 = load ptr, ptr %356, align 8, !tbaa !40
  %358 = getelementptr inbounds i8, ptr %357, i64 40
  %359 = load ptr, ptr %358, align 8
  %360 = invoke noundef nonnull align 8 dereferenceable(24) ptr %359(ptr noundef nonnull align 8 dereferenceable(232) %356)
          to label %361 unwind label %399

361:                                              ; preds = %355
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %28, ptr noundef nonnull align 8 dereferenceable(8) %360, i32 noundef 3, i32 noundef 1)
          to label %362 unwind label %399

362:                                              ; preds = %361
  %363 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %364 unwind label %401

364:                                              ; preds = %362
  %.not129 = icmp eq i32 %363, 5
  br i1 %.not129, label %.critedge204, label %365

365:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #6
  %366 = load ptr, ptr %114, align 8, !tbaa !56
  %367 = load ptr, ptr %366, align 8, !tbaa !40
  %368 = getelementptr inbounds i8, ptr %367, i64 40
  %369 = load ptr, ptr %368, align 8
  %370 = invoke noundef nonnull align 8 dereferenceable(24) ptr %369(ptr noundef nonnull align 8 dereferenceable(232) %366)
          to label %371 unwind label %403

371:                                              ; preds = %365
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %29, ptr noundef nonnull align 8 dereferenceable(8) %370, i32 noundef 3, i32 noundef 1)
          to label %372 unwind label %403

372:                                              ; preds = %371
  %373 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %374 unwind label %405

374:                                              ; preds = %372
  %.not130 = icmp eq i32 %373, 6
  br i1 %.not130, label %.critedge206, label %375

375:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #6
  %376 = load ptr, ptr %114, align 8, !tbaa !56
  %377 = load ptr, ptr %376, align 8, !tbaa !40
  %378 = getelementptr inbounds i8, ptr %377, i64 40
  %379 = load ptr, ptr %378, align 8
  %380 = invoke noundef nonnull align 8 dereferenceable(24) ptr %379(ptr noundef nonnull align 8 dereferenceable(232) %376)
          to label %381 unwind label %407

381:                                              ; preds = %375
  invoke void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind nonnull writable sret(%"class.sc_dt::sc_subref_r.19") align 8 %30, ptr noundef nonnull align 8 dereferenceable(8) %380, i32 noundef 3, i32 noundef 1)
          to label %382 unwind label %407

382:                                              ; preds = %381
  %383 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEE7to_uintEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %.critedge155.thread unwind label %409

.critedge155.thread:                              ; preds = %382
  %.not208 = icmp eq i32 %383, 7
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %29) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br i1 %.not208, label %425, label %384

384:                                              ; preds = %.critedge161.thread, %.critedge155.thread
  %385 = load ptr, ptr %118, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #6
  invoke void @_ZN5sc_dt5sc_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %31, i32 noundef 1)
          to label %386 unwind label %420

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

390:                                              ; preds = %386
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #6
  br label %430

391:                                              ; preds = %341, %335
  %392 = landingpad { ptr, i32 }
          cleanup
  br label %419

393:                                              ; preds = %342
  %394 = landingpad { ptr, i32 }
          cleanup
  br label %418

395:                                              ; preds = %351, %345
  %396 = landingpad { ptr, i32 }
          cleanup
  br label %417

397:                                              ; preds = %352
  %398 = landingpad { ptr, i32 }
          cleanup
  br label %416

399:                                              ; preds = %361, %355
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %415

401:                                              ; preds = %362
  %402 = landingpad { ptr, i32 }
          cleanup
  br label %414

403:                                              ; preds = %371, %365
  %404 = landingpad { ptr, i32 }
          cleanup
  br label %413

405:                                              ; preds = %372
  %406 = landingpad { ptr, i32 }
          cleanup
  br label %412

407:                                              ; preds = %381, %375
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %411

409:                                              ; preds = %382
  %410 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %30) #6
  br label %411

411:                                              ; preds = %407, %409
  %.pn131 = phi { ptr, i32 } [ %410, %409 ], [ %408, %407 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  br label %412

412:                                              ; preds = %405, %411
  %.pn131.pn = phi { ptr, i32 } [ %.pn131, %411 ], [ %406, %405 ]
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %29) #6
  br label %413

413:                                              ; preds = %403, %412
  %.pn131.pn.pn = phi { ptr, i32 } [ %.pn131.pn, %412 ], [ %404, %403 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #6
  br label %414

414:                                              ; preds = %401, %413
  %.pn131.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn, %413 ], [ %402, %401 ]
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %28) #6
  br label %415

415:                                              ; preds = %399, %414
  %.pn131.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn.pn, %414 ], [ %400, %399 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  br label %416

416:                                              ; preds = %397, %415
  %.pn131.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn.pn.pn, %415 ], [ %398, %397 ]
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %27) #6
  br label %417

417:                                              ; preds = %395, %416
  %.pn131.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn.pn.pn.pn, %416 ], [ %396, %395 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  br label %418

418:                                              ; preds = %417, %393
  %.pn131.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn.pn.pn.pn.pn, %417 ], [ %394, %393 ]
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #6
  br label %419

419:                                              ; preds = %418, %391
  %.pn131.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn.pn.pn.pn.pn.pn, %418 ], [ %392, %391 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br label %.loopexit.split-lp

420:                                              ; preds = %384
  %421 = landingpad { ptr, i32 }
          cleanup
  br label %424

422:                                              ; preds = %386
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #6
  br label %424

424:                                              ; preds = %422, %420
  %.pn141 = phi { ptr, i32 } [ %423, %422 ], [ %421, %420 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #6
  br label %.loopexit.split-lp

.critedge202:                                     ; preds = %354
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br label %425

.critedge204:                                     ; preds = %364
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br label %425

.critedge206:                                     ; preds = %374
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %29) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  call void @_ZN5sc_dt8sc_proxyINS_11sc_subref_rINS_10sc_bv_baseEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br label %425

425:                                              ; preds = %.critedge206, %.critedge204, %.critedge202, %.critedge155.thread
  %426 = load ptr, ptr %118, align 8, !tbaa !48
  %427 = load ptr, ptr %426, align 8, !tbaa !40
  %428 = getelementptr inbounds i8, ptr %427, i64 72
  %429 = load ptr, ptr %428, align 8
  invoke void %429(ptr noundef nonnull align 8 dereferenceable(232) %426, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %430 unwind label %.loopexit.split-lp.loopexit

430:                                              ; preds = %425, %390
  %431 = load ptr, ptr %119, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #6
  store i8 1, ptr %32, align 1, !tbaa !42
  %432 = load ptr, ptr %431, align 8, !tbaa !40
  %433 = getelementptr inbounds i8, ptr %432, i64 112
  %434 = load ptr, ptr %433, align 8
  invoke void %434(ptr noundef nonnull align 8 dereferenceable(224) %431, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %435 unwind label %442

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

436:                                              ; preds = %435
  %437 = load ptr, ptr %119, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #6
  store i8 0, ptr %33, align 1, !tbaa !42
  %438 = load ptr, ptr %437, align 8, !tbaa !40
  %439 = getelementptr inbounds i8, ptr %438, i64 112
  %440 = load ptr, ptr %439, align 8
  invoke void %440(ptr noundef nonnull align 8 dereferenceable(224) %437, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %441 unwind label %444

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

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

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

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %444, %442, %424, %419, %334, %322, %317, %261, %250, %233, %215, %204, %199, %181, %176, %107, %106, %101, %96, %91
  %.pn143 = phi { ptr, i32 } [ %445, %444 ], [ %443, %442 ], [ %.pn141, %424 ], [ %.pn131.pn.pn.pn.pn.pn.pn.pn.pn, %419 ], [ %.pn126, %322 ], [ %.pn124, %334 ], [ %.pn114.pn.pn.pn.pn.pn.pn.pn.pn, %317 ], [ %.pn109, %233 ], [ %.pn107, %250 ], [ %.pn105, %261 ], [ %.pn102, %181 ], [ %.pn100, %204 ], [ %.pn98, %215 ], [ %.pn96, %199 ], [ %.pn94, %176 ], [ %108, %107 ], [ %.pn92, %106 ], [ %.pn90, %101 ], [ %.pn88, %96 ], [ %.pn, %91 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit209, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp210, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  br label %446

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

447:                                              ; preds = %446, %83
  %.pn143.pn.pn = phi { ptr, i32 } [ %.pn143.pn, %446 ], [ %84, %83 ]
  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 %448

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5sc_dt9sc_bigintILi4EEC2Ev(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_dt5sc_lvILi4EEC2Ev(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_bvILi4EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) 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 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224)) local_unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(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: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5sc_dteqERKNS_11sc_unsignedEi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #3

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

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

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

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

declare noundef i64 @_ZNK5sc_dt18sc_signed_bitref_rcvyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

declare noundef i64 @_ZNK5sc_dt20sc_unsigned_bitref_rcvyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE5rangeEii(ptr dead_on_unwind noalias writable sret(%"class.sc_dt::sc_subref_r.19") align 8, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, i32 noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

attributes #0 = { mustprogress noreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !9, i64 416}
!6 = !{!"_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}
!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 464}
!46 = !{!6, !9, i64 472}
!47 = !{!6, !9, i64 480}
!48 = !{!6, !9, i64 488}
!49 = !{!6, !9, i64 496}
!50 = !{!6, !9, i64 456}
!51 = distinct !{!51, !52}
!52 = !{!"llvm.loop.mustprogress"}
!53 = !{!6, !9, i64 424}
!54 = !{!6, !9, i64 432}
!55 = !{!6, !9, i64 440}
!56 = !{!6, !9, i64 448}


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