; LLVM IR from gem5/gem5 :: src/systemc/tests/systemc/misc/synth/bubble/bubble.ll (ZN6BUBBLE5entryEv)

; 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.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }
%struct.BUBBLE = type { %"class.sc_core::sc_module", %"class.sc_core::sc_in", ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.sc_core::sc_module" = type { %"class.sc_core::sc_object", %"class.sc_core::sc_process_host", %"class.sc_core::sc_sensitive", %"class.sc_core::sc_sensitive_pos", %"class.sc_core::sc_sensitive_neg", i8, ptr, i32, ptr, ptr }
%"class.sc_core::sc_object" = type { ptr, ptr, %"class.std::vector", %"class.std::vector.0", %"class.std::__cxx11::basic_string", ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.8 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.8 = 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.13" }
%"class.sc_core::sc_port_base" = type { %"class.sc_core::sc_object", ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = 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 }

@lout = external dso_local global %"class.std::basic_ofstream", align 8
@.str.28 = external hidden unnamed_addr constant [21 x i8], align 1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #0

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6BUBBLE5entryEv(ptr noundef nonnull align 8 dereferenceable(584) %0) #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca [9 x %"class.sc_dt::sc_bv"], align 16
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca [9 x %"class.sc_dt::sc_bv"], align 16
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca %"class.sc_dt::sc_bv", 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_bv", align 8
  %20 = alloca %"class.sc_dt::sc_bv", align 8
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca i8, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %25 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 216, ptr %3) #4
  %26 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i32 0, i32 0
  %27 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %26, i64 9
  br label %28

28:                                               ; preds = %30, %1
  %29 = phi ptr [ %26, %1 ], [ %31, %30 ]
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29)
          to label %30 unwind label %124

30:                                               ; preds = %28
  %31 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %29, i64 1
  %32 = icmp eq ptr %31, %27
  br i1 %32, label %33, label %28

33:                                               ; preds = %30
  call void @llvm.lifetime.start.p0(i64 216, ptr %6) #4
  %34 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i32 0, i32 0
  %35 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %34, i64 9
  br label %36

36:                                               ; preds = %38, %33
  %37 = phi ptr [ %34, %33 ], [ %39, %38 ]
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37)
          to label %38 unwind label %134

38:                                               ; preds = %36
  %39 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %37, i64 1
  %40 = icmp eq ptr %39, %35
  br i1 %40, label %41, label %36

41:                                               ; preds = %38
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  br label %42

42:                                               ; preds = %597, %41
  br label %43

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

49:                                               ; preds = %43
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #4
  %50 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 6
  %51 = load ptr, ptr %50, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #4
  store i8 0, ptr %12, align 1, !tbaa !41
  %52 = load ptr, ptr %51, align 8, !tbaa !42
  %53 = getelementptr inbounds ptr, ptr %52, i64 14
  %54 = load ptr, ptr %53, align 8
  invoke void %54(ptr noundef nonnull align 8 dereferenceable(224) %51, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %55 unwind label %148

55:                                               ; preds = %49
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #4
  store i32 -500, ptr %7, align 4, !tbaa !45
  store i32 0, ptr %8, align 4, !tbaa !45
  %56 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 15
  %57 = load ptr, ptr %56, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #4
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %13, i32 noundef 0)
          to label %58 unwind label %152

58:                                               ; preds = %55
  %59 = load ptr, ptr %57, align 8, !tbaa !42
  %60 = getelementptr inbounds ptr, ptr %59, i64 9
  %61 = load ptr, ptr %60, align 8
  invoke void %61(ptr noundef nonnull align 8 dereferenceable(232) %57, ptr noundef nonnull align 8 dereferenceable(24) %13)
          to label %62 unwind label %156

62:                                               ; preds = %58
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #4
  %63 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 16
  %64 = load ptr, ptr %63, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #4
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %14, i32 noundef 0)
          to label %65 unwind label %161

65:                                               ; preds = %62
  %66 = load ptr, ptr %64, align 8, !tbaa !42
  %67 = getelementptr inbounds ptr, ptr %66, i64 9
  %68 = load ptr, ptr %67, align 8
  invoke void %68(ptr noundef nonnull align 8 dereferenceable(232) %64, ptr noundef nonnull align 8 dereferenceable(24) %14)
          to label %69 unwind label %165

69:                                               ; preds = %65
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #4
  %70 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 17
  %71 = load ptr, ptr %70, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #4
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %15, i32 noundef 0)
          to label %72 unwind label %170

72:                                               ; preds = %69
  %73 = load ptr, ptr %71, align 8, !tbaa !42
  %74 = getelementptr inbounds ptr, ptr %73, i64 9
  %75 = load ptr, ptr %74, align 8
  invoke void %75(ptr noundef nonnull align 8 dereferenceable(232) %71, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %76 unwind label %174

76:                                               ; preds = %72
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #4
  %77 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 18
  %78 = load ptr, ptr %77, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #4
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %16, i32 noundef 0)
          to label %79 unwind label %179

79:                                               ; preds = %76
  %80 = load ptr, ptr %78, align 8, !tbaa !42
  %81 = getelementptr inbounds ptr, ptr %80, i64 9
  %82 = load ptr, ptr %81, align 8
  invoke void %82(ptr noundef nonnull align 8 dereferenceable(232) %78, ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %83 unwind label %183

83:                                               ; preds = %79
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #4
  %84 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 19
  %85 = load ptr, ptr %84, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #4
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %17, i32 noundef 0)
          to label %86 unwind label %188

86:                                               ; preds = %83
  %87 = load ptr, ptr %85, align 8, !tbaa !42
  %88 = getelementptr inbounds ptr, ptr %87, i64 9
  %89 = load ptr, ptr %88, align 8
  invoke void %89(ptr noundef nonnull align 8 dereferenceable(232) %85, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %90 unwind label %192

90:                                               ; preds = %86
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #4
  %91 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 20
  %92 = load ptr, ptr %91, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #4
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %18, i32 noundef 0)
          to label %93 unwind label %197

93:                                               ; preds = %90
  %94 = load ptr, ptr %92, align 8, !tbaa !42
  %95 = getelementptr inbounds ptr, ptr %94, i64 9
  %96 = load ptr, ptr %95, align 8
  invoke void %96(ptr noundef nonnull align 8 dereferenceable(232) %92, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %97 unwind label %201

97:                                               ; preds = %93
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #4
  %98 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 21
  %99 = load ptr, ptr %98, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #4
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %19, i32 noundef 0)
          to label %100 unwind label %206

100:                                              ; preds = %97
  %101 = load ptr, ptr %99, align 8, !tbaa !42
  %102 = getelementptr inbounds ptr, ptr %101, i64 9
  %103 = load ptr, ptr %102, align 8
  invoke void %103(ptr noundef nonnull align 8 dereferenceable(232) %99, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %104 unwind label %210

104:                                              ; preds = %100
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #4
  %105 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 22
  %106 = load ptr, ptr %105, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #4
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %20, i32 noundef 0)
          to label %107 unwind label %215

107:                                              ; preds = %104
  %108 = load ptr, ptr %106, align 8, !tbaa !42
  %109 = getelementptr inbounds ptr, ptr %108, i64 9
  %110 = load ptr, ptr %109, align 8
  invoke void %110(ptr noundef nonnull align 8 dereferenceable(232) %106, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %111 unwind label %219

111:                                              ; preds = %107
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #4
  store i32 1, ptr %9, align 4, !tbaa !45
  br label %112

112:                                              ; preds = %121, %111
  %113 = load i32, ptr %9, align 4, !tbaa !45
  %114 = icmp sle i32 %113, 8
  br i1 %114, label %115, label %228

115:                                              ; preds = %112
  %116 = load i32, ptr %9, align 4, !tbaa !45
  %117 = sext i32 %116 to i64
  %118 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %117
  %119 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %118, i32 noundef 0)
          to label %120 unwind label %224

120:                                              ; preds = %115
  br label %121

121:                                              ; preds = %120
  %122 = load i32, ptr %9, align 4, !tbaa !45
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr %9, align 4, !tbaa !45
  br label %112, !llvm.loop !54

124:                                              ; preds = %28
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %4, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %5, align 4
  %128 = icmp eq ptr %26, %29
  br i1 %128, label %133, label %129

129:                                              ; preds = %129, %124
  %130 = phi ptr [ %29, %124 ], [ %131, %129 ]
  %131 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %130, i64 -1
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %131) #4
  %132 = icmp eq ptr %131, %26
  br i1 %132, label %133, label %129

133:                                              ; preds = %129, %124
  br label %622

134:                                              ; preds = %36
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %4, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %5, align 4
  %138 = icmp eq ptr %34, %37
  br i1 %138, label %143, label %139

139:                                              ; preds = %139, %134
  %140 = phi ptr [ %37, %134 ], [ %141, %139 ]
  %141 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %140, i64 -1
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %141) #4
  %142 = icmp eq ptr %141, %34
  br i1 %142, label %143, label %139

143:                                              ; preds = %139, %134
  br label %614

144:                                              ; preds = %43
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %4, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #4
  br label %606

148:                                              ; preds = %49
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %4, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #4
  br label %606

152:                                              ; preds = %55
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %4, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %5, align 4
  br label %160

156:                                              ; preds = %58
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %4, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  br label %160

160:                                              ; preds = %156, %152
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #4
  br label %606

161:                                              ; preds = %62
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %4, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %5, align 4
  br label %169

165:                                              ; preds = %65
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %4, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #4
  br label %169

169:                                              ; preds = %165, %161
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #4
  br label %606

170:                                              ; preds = %69
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %4, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %5, align 4
  br label %178

174:                                              ; preds = %72
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %4, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #4
  br label %178

178:                                              ; preds = %174, %170
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #4
  br label %606

179:                                              ; preds = %76
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %4, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %5, align 4
  br label %187

183:                                              ; preds = %79
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %4, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #4
  br label %187

187:                                              ; preds = %183, %179
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #4
  br label %606

188:                                              ; preds = %83
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %4, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %5, align 4
  br label %196

192:                                              ; preds = %86
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %4, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #4
  br label %196

196:                                              ; preds = %192, %188
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #4
  br label %606

197:                                              ; preds = %90
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %4, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %5, align 4
  br label %205

201:                                              ; preds = %93
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %4, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #4
  br label %205

205:                                              ; preds = %201, %197
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #4
  br label %606

206:                                              ; preds = %97
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %4, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %5, align 4
  br label %214

210:                                              ; preds = %100
  %211 = landingpad { ptr, i32 }
          cleanup
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %4, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #4
  br label %214

214:                                              ; preds = %210, %206
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #4
  br label %606

215:                                              ; preds = %104
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %4, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %5, align 4
  br label %223

219:                                              ; preds = %107
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %4, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #4
  br label %223

223:                                              ; preds = %219, %215
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #4
  br label %606

224:                                              ; preds = %596, %582, %580, %578, %565, %558, %551, %544, %537, %530, %523, %516, %515, %493, %480, %471, %459, %446, %441, %421, %412, %403, %394, %374, %362, %357, %351, %349, %348, %345, %338, %335, %328, %325, %318, %315, %308, %305, %298, %295, %288, %285, %278, %275, %268, %267, %253, %251, %249, %242, %241, %232, %115
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %4, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %5, align 4
  br label %606

228:                                              ; preds = %112
  store i32 1, ptr %9, align 4, !tbaa !45
  br label %229

229:                                              ; preds = %238, %228
  %230 = load i32, ptr %9, align 4, !tbaa !45
  %231 = icmp sle i32 %230, 8
  br i1 %231, label %232, label %241

232:                                              ; preds = %229
  %233 = load i32, ptr %9, align 4, !tbaa !45
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 %234
  %236 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %235, i32 noundef 0)
          to label %237 unwind label %224

237:                                              ; preds = %232
  br label %238

238:                                              ; preds = %237
  %239 = load i32, ptr %9, align 4, !tbaa !45
  %240 = add nsw i32 %239, 1
  store i32 %240, ptr %9, align 4, !tbaa !45
  br label %229, !llvm.loop !56

241:                                              ; preds = %229
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %25)
          to label %242 unwind label %224

242:                                              ; preds = %241
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %25)
          to label %243 unwind label %224

243:                                              ; preds = %242
  %244 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 5
  %245 = load ptr, ptr %244, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #4
  store i8 1, ptr %21, align 1, !tbaa !41
  %246 = load ptr, ptr %245, align 8, !tbaa !42
  %247 = getelementptr inbounds ptr, ptr %246, i64 14
  %248 = load ptr, ptr %247, align 8
  invoke void %248(ptr noundef nonnull align 8 dereferenceable(224) %245, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %249 unwind label %386

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

250:                                              ; preds = %249
  br label %251

251:                                              ; preds = %257, %250
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %25)
          to label %252 unwind label %224

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  %254 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 3
  %255 = load ptr, ptr %254, align 8, !tbaa !57
  %256 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %255)
          to label %257 unwind label %224

257:                                              ; preds = %253
  %258 = load i8, ptr %256, align 1, !tbaa !41, !range !58, !noundef !59
  %259 = trunc i8 %258 to i1
  %260 = xor i1 %259, true
  br i1 %260, label %251, label %261, !llvm.loop !60

261:                                              ; preds = %257
  %262 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 5
  %263 = load ptr, ptr %262, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #4
  store i8 0, ptr %22, align 1, !tbaa !41
  %264 = load ptr, ptr %263, align 8, !tbaa !42
  %265 = getelementptr inbounds ptr, ptr %264, i64 14
  %266 = load ptr, ptr %265, align 8
  invoke void %266(ptr noundef nonnull align 8 dereferenceable(224) %263, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %267 unwind label %390

267:                                              ; preds = %261
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %25)
          to label %268 unwind label %224

268:                                              ; preds = %267
  %269 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 7
  %270 = load ptr, ptr %269, align 8, !tbaa !61
  %271 = load ptr, ptr %270, align 8, !tbaa !42
  %272 = getelementptr inbounds ptr, ptr %271, i64 5
  %273 = load ptr, ptr %272, align 8
  %274 = invoke noundef nonnull align 8 dereferenceable(24) ptr %273(ptr noundef nonnull align 8 dereferenceable(232) %270)
          to label %275 unwind label %224

275:                                              ; preds = %268
  %276 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 1
  %277 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %276, ptr noundef nonnull align 8 dereferenceable(24) %274)
          to label %278 unwind label %224

278:                                              ; preds = %275
  %279 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 8
  %280 = load ptr, ptr %279, align 8, !tbaa !62
  %281 = load ptr, ptr %280, align 8, !tbaa !42
  %282 = getelementptr inbounds ptr, ptr %281, i64 5
  %283 = load ptr, ptr %282, align 8
  %284 = invoke noundef nonnull align 8 dereferenceable(24) ptr %283(ptr noundef nonnull align 8 dereferenceable(232) %280)
          to label %285 unwind label %224

285:                                              ; preds = %278
  %286 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 2
  %287 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %286, ptr noundef nonnull align 8 dereferenceable(24) %284)
          to label %288 unwind label %224

288:                                              ; preds = %285
  %289 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 9
  %290 = load ptr, ptr %289, align 8, !tbaa !63
  %291 = load ptr, ptr %290, align 8, !tbaa !42
  %292 = getelementptr inbounds ptr, ptr %291, i64 5
  %293 = load ptr, ptr %292, align 8
  %294 = invoke noundef nonnull align 8 dereferenceable(24) ptr %293(ptr noundef nonnull align 8 dereferenceable(232) %290)
          to label %295 unwind label %224

295:                                              ; preds = %288
  %296 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 3
  %297 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %296, ptr noundef nonnull align 8 dereferenceable(24) %294)
          to label %298 unwind label %224

298:                                              ; preds = %295
  %299 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 10
  %300 = load ptr, ptr %299, align 8, !tbaa !64
  %301 = load ptr, ptr %300, align 8, !tbaa !42
  %302 = getelementptr inbounds ptr, ptr %301, i64 5
  %303 = load ptr, ptr %302, align 8
  %304 = invoke noundef nonnull align 8 dereferenceable(24) ptr %303(ptr noundef nonnull align 8 dereferenceable(232) %300)
          to label %305 unwind label %224

305:                                              ; preds = %298
  %306 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 4
  %307 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %306, ptr noundef nonnull align 8 dereferenceable(24) %304)
          to label %308 unwind label %224

308:                                              ; preds = %305
  %309 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 11
  %310 = load ptr, ptr %309, align 8, !tbaa !65
  %311 = load ptr, ptr %310, align 8, !tbaa !42
  %312 = getelementptr inbounds ptr, ptr %311, i64 5
  %313 = load ptr, ptr %312, align 8
  %314 = invoke noundef nonnull align 8 dereferenceable(24) ptr %313(ptr noundef nonnull align 8 dereferenceable(232) %310)
          to label %315 unwind label %224

315:                                              ; preds = %308
  %316 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 5
  %317 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %316, ptr noundef nonnull align 8 dereferenceable(24) %314)
          to label %318 unwind label %224

318:                                              ; preds = %315
  %319 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 12
  %320 = load ptr, ptr %319, align 8, !tbaa !66
  %321 = load ptr, ptr %320, align 8, !tbaa !42
  %322 = getelementptr inbounds ptr, ptr %321, i64 5
  %323 = load ptr, ptr %322, align 8
  %324 = invoke noundef nonnull align 8 dereferenceable(24) ptr %323(ptr noundef nonnull align 8 dereferenceable(232) %320)
          to label %325 unwind label %224

325:                                              ; preds = %318
  %326 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 6
  %327 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %326, ptr noundef nonnull align 8 dereferenceable(24) %324)
          to label %328 unwind label %224

328:                                              ; preds = %325
  %329 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 13
  %330 = load ptr, ptr %329, align 8, !tbaa !67
  %331 = load ptr, ptr %330, align 8, !tbaa !42
  %332 = getelementptr inbounds ptr, ptr %331, i64 5
  %333 = load ptr, ptr %332, align 8
  %334 = invoke noundef nonnull align 8 dereferenceable(24) ptr %333(ptr noundef nonnull align 8 dereferenceable(232) %330)
          to label %335 unwind label %224

335:                                              ; preds = %328
  %336 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 7
  %337 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %336, ptr noundef nonnull align 8 dereferenceable(24) %334)
          to label %338 unwind label %224

338:                                              ; preds = %335
  %339 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 14
  %340 = load ptr, ptr %339, align 8, !tbaa !68
  %341 = load ptr, ptr %340, align 8, !tbaa !42
  %342 = getelementptr inbounds ptr, ptr %341, i64 5
  %343 = load ptr, ptr %342, align 8
  %344 = invoke noundef nonnull align 8 dereferenceable(24) ptr %343(ptr noundef nonnull align 8 dereferenceable(232) %340)
          to label %345 unwind label %224

345:                                              ; preds = %338
  %346 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 8
  %347 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %346, ptr noundef nonnull align 8 dereferenceable(24) %344)
          to label %348 unwind label %224

348:                                              ; preds = %345
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %25)
          to label %349 unwind label %224

349:                                              ; preds = %348
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @lout, ptr noundef @.str.28)
          to label %351 unwind label %224

351:                                              ; preds = %349
  %352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %353 unwind label %224

353:                                              ; preds = %351
  store i32 1, ptr %9, align 4, !tbaa !45
  br label %354

354:                                              ; preds = %512, %353
  %355 = load i32, ptr %9, align 4, !tbaa !45
  %356 = icmp sle i32 %355, 7
  br i1 %356, label %357, label %515

357:                                              ; preds = %354
  %358 = load i32, ptr %9, align 4, !tbaa !45
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %359
  %361 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %360)
          to label %362 unwind label %224

362:                                              ; preds = %357
  %363 = load i32, ptr %9, align 4, !tbaa !45
  %364 = add nsw i32 %363, 1
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %365
  %367 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %366)
          to label %368 unwind label %224

368:                                              ; preds = %362
  %369 = icmp sgt i32 %361, %367
  br i1 %369, label %370, label %511

370:                                              ; preds = %368
  store i32 1, ptr %10, align 4, !tbaa !45
  br label %371

371:                                              ; preds = %383, %370
  %372 = load i32, ptr %10, align 4, !tbaa !45
  %373 = icmp sle i32 %372, 8
  br i1 %373, label %374, label %394

374:                                              ; preds = %371
  %375 = load i32, ptr %10, align 4, !tbaa !45
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %376
  %378 = load i32, ptr %10, align 4, !tbaa !45
  %379 = sext i32 %378 to i64
  %380 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 %379
  %381 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %380, ptr noundef nonnull align 8 dereferenceable(24) %377)
          to label %382 unwind label %224

382:                                              ; preds = %374
  br label %383

383:                                              ; preds = %382
  %384 = load i32, ptr %10, align 4, !tbaa !45
  %385 = add nsw i32 %384, 1
  store i32 %385, ptr %10, align 4, !tbaa !45
  br label %371, !llvm.loop !69

386:                                              ; preds = %243
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %4, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #4
  br label %606

390:                                              ; preds = %261
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %4, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #4
  br label %606

394:                                              ; preds = %371
  %395 = load i32, ptr %9, align 4, !tbaa !45
  %396 = add nsw i32 %395, 1
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %397
  %399 = load i32, ptr %9, align 4, !tbaa !45
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %400
  %402 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %401, ptr noundef nonnull align 8 dereferenceable(24) %398)
          to label %403 unwind label %224

403:                                              ; preds = %394
  %404 = load i32, ptr %9, align 4, !tbaa !45
  %405 = sext i32 %404 to i64
  %406 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 %405
  %407 = load i32, ptr %9, align 4, !tbaa !45
  %408 = add nsw i32 %407, 1
  %409 = sext i32 %408 to i64
  %410 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %409
  %411 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %410, ptr noundef nonnull align 8 dereferenceable(24) %406)
          to label %412 unwind label %224

412:                                              ; preds = %403
  %413 = load i32, ptr %9, align 4, !tbaa !45
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 %414
  %416 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %415)
          to label %417 unwind label %224

417:                                              ; preds = %412
  store i32 %416, ptr %7, align 4, !tbaa !45
  store i32 1, ptr %10, align 4, !tbaa !45
  br label %418

418:                                              ; preds = %430, %417
  %419 = load i32, ptr %10, align 4, !tbaa !45
  %420 = icmp sle i32 %419, 8
  br i1 %420, label %421, label %433

421:                                              ; preds = %418
  %422 = load i32, ptr %10, align 4, !tbaa !45
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %423
  %425 = load i32, ptr %10, align 4, !tbaa !45
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 %426
  %428 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %427, ptr noundef nonnull align 8 dereferenceable(24) %424)
          to label %429 unwind label %224

429:                                              ; preds = %421
  br label %430

430:                                              ; preds = %429
  %431 = load i32, ptr %10, align 4, !tbaa !45
  %432 = add nsw i32 %431, 1
  store i32 %432, ptr %10, align 4, !tbaa !45
  br label %418, !llvm.loop !70

433:                                              ; preds = %418
  %434 = load i32, ptr %9, align 4, !tbaa !45
  %435 = icmp sge i32 %434, 2
  br i1 %435, label %436, label %510

436:                                              ; preds = %433
  %437 = load i32, ptr %9, align 4, !tbaa !45
  store i32 %437, ptr %8, align 4, !tbaa !45
  br label %438

438:                                              ; preds = %506, %436
  %439 = load i32, ptr %8, align 4, !tbaa !45
  %440 = icmp sgt i32 %439, 1
  br i1 %440, label %441, label %509

441:                                              ; preds = %438
  %442 = load i32, ptr %8, align 4, !tbaa !45
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %443
  %445 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %444)
          to label %446 unwind label %224

446:                                              ; preds = %441
  %447 = load i32, ptr %8, align 4, !tbaa !45
  %448 = sub nsw i32 %447, 1
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %449
  %451 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %450)
          to label %452 unwind label %224

452:                                              ; preds = %446
  %453 = icmp sgt i32 %445, %451
  br i1 %453, label %454, label %455

454:                                              ; preds = %452
  br label %509

455:                                              ; preds = %452
  store i32 1, ptr %10, align 4, !tbaa !45
  br label %456

456:                                              ; preds = %468, %455
  %457 = load i32, ptr %10, align 4, !tbaa !45
  %458 = icmp sle i32 %457, 8
  br i1 %458, label %459, label %471

459:                                              ; preds = %456
  %460 = load i32, ptr %10, align 4, !tbaa !45
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %461
  %463 = load i32, ptr %10, align 4, !tbaa !45
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 %464
  %466 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %465, ptr noundef nonnull align 8 dereferenceable(24) %462)
          to label %467 unwind label %224

467:                                              ; preds = %459
  br label %468

468:                                              ; preds = %467
  %469 = load i32, ptr %10, align 4, !tbaa !45
  %470 = add nsw i32 %469, 1
  store i32 %470, ptr %10, align 4, !tbaa !45
  br label %456, !llvm.loop !71

471:                                              ; preds = %456
  %472 = load i32, ptr %8, align 4, !tbaa !45
  %473 = sub nsw i32 %472, 1
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %474
  %476 = load i32, ptr %8, align 4, !tbaa !45
  %477 = sext i32 %476 to i64
  %478 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %477
  %479 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %478, ptr noundef nonnull align 8 dereferenceable(24) %475)
          to label %480 unwind label %224

480:                                              ; preds = %471
  %481 = load i32, ptr %8, align 4, !tbaa !45
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 %482
  %484 = load i32, ptr %8, align 4, !tbaa !45
  %485 = sub nsw i32 %484, 1
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %486
  %488 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %487, ptr noundef nonnull align 8 dereferenceable(24) %483)
          to label %489 unwind label %224

489:                                              ; preds = %480
  store i32 1, ptr %10, align 4, !tbaa !45
  br label %490

490:                                              ; preds = %502, %489
  %491 = load i32, ptr %10, align 4, !tbaa !45
  %492 = icmp sle i32 %491, 8
  br i1 %492, label %493, label %505

493:                                              ; preds = %490
  %494 = load i32, ptr %10, align 4, !tbaa !45
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %495
  %497 = load i32, ptr %10, align 4, !tbaa !45
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 %498
  %500 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %499, ptr noundef nonnull align 8 dereferenceable(24) %496)
          to label %501 unwind label %224

501:                                              ; preds = %493
  br label %502

502:                                              ; preds = %501
  %503 = load i32, ptr %10, align 4, !tbaa !45
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr %10, align 4, !tbaa !45
  br label %490, !llvm.loop !72

505:                                              ; preds = %490
  br label %506

506:                                              ; preds = %505
  %507 = load i32, ptr %8, align 4, !tbaa !45
  %508 = sub nsw i32 %507, 1
  store i32 %508, ptr %8, align 4, !tbaa !45
  br label %438, !llvm.loop !73

509:                                              ; preds = %454, %438
  br label %510

510:                                              ; preds = %509, %433
  br label %511

511:                                              ; preds = %510, %368
  br label %512

512:                                              ; preds = %511
  %513 = load i32, ptr %9, align 4, !tbaa !45
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr %9, align 4, !tbaa !45
  br label %354, !llvm.loop !74

515:                                              ; preds = %354
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %25)
          to label %516 unwind label %224

516:                                              ; preds = %515
  %517 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 15
  %518 = load ptr, ptr %517, align 8, !tbaa !46
  %519 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 1
  %520 = load ptr, ptr %518, align 8, !tbaa !42
  %521 = getelementptr inbounds ptr, ptr %520, i64 9
  %522 = load ptr, ptr %521, align 8
  invoke void %522(ptr noundef nonnull align 8 dereferenceable(232) %518, ptr noundef nonnull align 8 dereferenceable(24) %519)
          to label %523 unwind label %224

523:                                              ; preds = %516
  %524 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 16
  %525 = load ptr, ptr %524, align 8, !tbaa !47
  %526 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 2
  %527 = load ptr, ptr %525, align 8, !tbaa !42
  %528 = getelementptr inbounds ptr, ptr %527, i64 9
  %529 = load ptr, ptr %528, align 8
  invoke void %529(ptr noundef nonnull align 8 dereferenceable(232) %525, ptr noundef nonnull align 8 dereferenceable(24) %526)
          to label %530 unwind label %224

530:                                              ; preds = %523
  %531 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 17
  %532 = load ptr, ptr %531, align 8, !tbaa !48
  %533 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 3
  %534 = load ptr, ptr %532, align 8, !tbaa !42
  %535 = getelementptr inbounds ptr, ptr %534, i64 9
  %536 = load ptr, ptr %535, align 8
  invoke void %536(ptr noundef nonnull align 8 dereferenceable(232) %532, ptr noundef nonnull align 8 dereferenceable(24) %533)
          to label %537 unwind label %224

537:                                              ; preds = %530
  %538 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 18
  %539 = load ptr, ptr %538, align 8, !tbaa !49
  %540 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 4
  %541 = load ptr, ptr %539, align 8, !tbaa !42
  %542 = getelementptr inbounds ptr, ptr %541, i64 9
  %543 = load ptr, ptr %542, align 8
  invoke void %543(ptr noundef nonnull align 8 dereferenceable(232) %539, ptr noundef nonnull align 8 dereferenceable(24) %540)
          to label %544 unwind label %224

544:                                              ; preds = %537
  %545 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 19
  %546 = load ptr, ptr %545, align 8, !tbaa !50
  %547 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 5
  %548 = load ptr, ptr %546, align 8, !tbaa !42
  %549 = getelementptr inbounds ptr, ptr %548, i64 9
  %550 = load ptr, ptr %549, align 8
  invoke void %550(ptr noundef nonnull align 8 dereferenceable(232) %546, ptr noundef nonnull align 8 dereferenceable(24) %547)
          to label %551 unwind label %224

551:                                              ; preds = %544
  %552 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 20
  %553 = load ptr, ptr %552, align 8, !tbaa !51
  %554 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 6
  %555 = load ptr, ptr %553, align 8, !tbaa !42
  %556 = getelementptr inbounds ptr, ptr %555, i64 9
  %557 = load ptr, ptr %556, align 8
  invoke void %557(ptr noundef nonnull align 8 dereferenceable(232) %553, ptr noundef nonnull align 8 dereferenceable(24) %554)
          to label %558 unwind label %224

558:                                              ; preds = %551
  %559 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 21
  %560 = load ptr, ptr %559, align 8, !tbaa !52
  %561 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 7
  %562 = load ptr, ptr %560, align 8, !tbaa !42
  %563 = getelementptr inbounds ptr, ptr %562, i64 9
  %564 = load ptr, ptr %563, align 8
  invoke void %564(ptr noundef nonnull align 8 dereferenceable(232) %560, ptr noundef nonnull align 8 dereferenceable(24) %561)
          to label %565 unwind label %224

565:                                              ; preds = %558
  %566 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 22
  %567 = load ptr, ptr %566, align 8, !tbaa !53
  %568 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i64 0, i64 8
  %569 = load ptr, ptr %567, align 8, !tbaa !42
  %570 = getelementptr inbounds ptr, ptr %569, i64 9
  %571 = load ptr, ptr %570, align 8
  invoke void %571(ptr noundef nonnull align 8 dereferenceable(232) %567, ptr noundef nonnull align 8 dereferenceable(24) %568)
          to label %572 unwind label %224

572:                                              ; preds = %565
  %573 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 6
  %574 = load ptr, ptr %573, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #4
  store i8 1, ptr %23, align 1, !tbaa !41
  %575 = load ptr, ptr %574, align 8, !tbaa !42
  %576 = getelementptr inbounds ptr, ptr %575, i64 14
  %577 = load ptr, ptr %576, align 8
  invoke void %577(ptr noundef nonnull align 8 dereferenceable(224) %574, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %578 unwind label %598

578:                                              ; preds = %572
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %25)
          to label %579 unwind label %224

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %586, %579
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %25)
          to label %581 unwind label %224

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  %583 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 4
  %584 = load ptr, ptr %583, align 8, !tbaa !75
  %585 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %584)
          to label %586 unwind label %224

586:                                              ; preds = %582
  %587 = load i8, ptr %585, align 1, !tbaa !41, !range !58, !noundef !59
  %588 = trunc i8 %587 to i1
  %589 = xor i1 %588, true
  br i1 %589, label %580, label %590, !llvm.loop !76

590:                                              ; preds = %586
  %591 = getelementptr inbounds %struct.BUBBLE, ptr %25, i32 0, i32 6
  %592 = load ptr, ptr %591, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #4
  store i8 0, ptr %24, align 1, !tbaa !41
  %593 = load ptr, ptr %592, align 8, !tbaa !42
  %594 = getelementptr inbounds ptr, ptr %593, i64 14
  %595 = load ptr, ptr %594, align 8
  invoke void %595(ptr noundef nonnull align 8 dereferenceable(224) %592, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %596 unwind label %602

596:                                              ; preds = %590
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #4
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %25)
          to label %597 unwind label %224

597:                                              ; preds = %596
  br label %42, !llvm.loop !77

598:                                              ; preds = %572
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %4, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #4
  br label %606

602:                                              ; preds = %590
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %4, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #4
  br label %606

606:                                              ; preds = %602, %598, %390, %386, %224, %223, %214, %205, %196, %187, %178, %169, %160, %148, %144
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  %607 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %6, i32 0, i32 0
  %608 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %607, i64 9
  br label %609

609:                                              ; preds = %609, %606
  %610 = phi ptr [ %608, %606 ], [ %611, %609 ]
  %611 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %610, i64 -1
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %611) #4
  %612 = icmp eq ptr %611, %607
  br i1 %612, label %613, label %609

613:                                              ; preds = %609
  br label %614

614:                                              ; preds = %613, %143
  call void @llvm.lifetime.end.p0(i64 216, ptr %6) #4
  %615 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i32 0, i32 0
  %616 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %615, i64 9
  br label %617

617:                                              ; preds = %617, %614
  %618 = phi ptr [ %616, %614 ], [ %619, %617 ]
  %619 = getelementptr inbounds %"class.sc_dt::sc_bv", ptr %618, i64 -1
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %619) #4
  %620 = icmp eq ptr %619, %615
  br i1 %620, label %621, label %617

621:                                              ; preds = %617
  br label %622

622:                                              ; preds = %621, %133
  call void @llvm.lifetime.end.p0(i64 216, ptr %3) #4
  br label %623

623:                                              ; preds = %622
  %624 = load ptr, ptr %4, align 8
  %625 = load i32, ptr %5, align 4
  %626 = insertvalue { ptr, i32 } poison, ptr %624, 0
  %627 = insertvalue { ptr, i32 } %626, i32 %625, 1
  resume { ptr, i32 } %627
}

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

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

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

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

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


; 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.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }

@lout = external dso_local global %"class.std::basic_ofstream", align 8
@.str.28 = external hidden unnamed_addr constant [21 x i8], align 1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #0

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232)) local_unnamed_addr #1 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 #1 align 2

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

; Function Attrs: mustprogress noreturn uwtable
define dso_local void @_ZN6BUBBLE5entryEv(ptr noundef nonnull align 8 dereferenceable(584) %0) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca [9 x %"class.sc_dt::sc_bv"], align 16
  %3 = alloca [9 x %"class.sc_dt::sc_bv"], align 16
  %4 = alloca i8, align 1
  %5 = alloca i8, align 1
  %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 %"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 %"class.sc_dt::sc_bv", align 8
  %14 = alloca i8, align 1
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 216, ptr nonnull %2) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2)
  %.ptr.1 = getelementptr inbounds i8, ptr %2, i64 24
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1)
          to label %18 unwind label %.preheader130.preheader

18:                                               ; preds = %1
  %.ptr.2 = getelementptr inbounds i8, ptr %2, i64 48
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.2)
          to label %19 unwind label %.preheader130.preheader

19:                                               ; preds = %18
  %.ptr.3 = getelementptr inbounds i8, ptr %2, i64 72
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.3)
          to label %20 unwind label %.preheader130.preheader

20:                                               ; preds = %19
  %.ptr.4 = getelementptr inbounds i8, ptr %2, i64 96
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.4)
          to label %21 unwind label %.preheader130.preheader

21:                                               ; preds = %20
  %.ptr.5 = getelementptr inbounds i8, ptr %2, i64 120
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.5)
          to label %22 unwind label %.preheader130.preheader

22:                                               ; preds = %21
  %.ptr.6 = getelementptr inbounds i8, ptr %2, i64 144
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.6)
          to label %23 unwind label %.preheader130.preheader

23:                                               ; preds = %22
  %.ptr.7 = getelementptr inbounds i8, ptr %2, i64 168
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.7)
          to label %24 unwind label %.preheader130.preheader

24:                                               ; preds = %23
  %.ptr.8 = getelementptr inbounds i8, ptr %2, i64 192
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.8)
          to label %25 unwind label %.preheader130.preheader

25:                                               ; preds = %24
  call void @llvm.lifetime.start.p0(i64 216, ptr nonnull %3) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %26 unwind label %132

26:                                               ; preds = %25
  %.ptr71.1 = getelementptr inbounds i8, ptr %3, i64 24
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.1)
          to label %27 unwind label %.preheader128.preheader

27:                                               ; preds = %26
  %.ptr71.2 = getelementptr inbounds i8, ptr %3, i64 48
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.2)
          to label %28 unwind label %.preheader128.preheader

28:                                               ; preds = %27
  %.ptr71.3 = getelementptr inbounds i8, ptr %3, i64 72
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.3)
          to label %29 unwind label %.preheader128.preheader

29:                                               ; preds = %28
  %.ptr71.4 = getelementptr inbounds i8, ptr %3, i64 96
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.4)
          to label %30 unwind label %.preheader128.preheader

30:                                               ; preds = %29
  %.ptr71.5 = getelementptr inbounds i8, ptr %3, i64 120
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.5)
          to label %31 unwind label %.preheader128.preheader

31:                                               ; preds = %30
  %.ptr71.6 = getelementptr inbounds i8, ptr %3, i64 144
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.6)
          to label %32 unwind label %.preheader128.preheader

32:                                               ; preds = %31
  %.ptr71.7 = getelementptr inbounds i8, ptr %3, i64 168
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.7)
          to label %33 unwind label %.preheader128.preheader

33:                                               ; preds = %32
  %.ptr71.8 = getelementptr inbounds i8, ptr %3, i64 192
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.8)
          to label %.preheader127 unwind label %.preheader128.preheader

.preheader127:                                    ; preds = %33
  %34 = getelementptr inbounds i8, ptr %0, i64 440
  %35 = getelementptr inbounds i8, ptr %0, i64 448
  %36 = getelementptr inbounds i8, ptr %0, i64 520
  %37 = getelementptr inbounds i8, ptr %0, i64 528
  %38 = getelementptr inbounds i8, ptr %0, i64 536
  %39 = getelementptr inbounds i8, ptr %0, i64 544
  %40 = getelementptr inbounds i8, ptr %0, i64 552
  %41 = getelementptr inbounds i8, ptr %0, i64 560
  %42 = getelementptr inbounds i8, ptr %0, i64 568
  %43 = getelementptr inbounds i8, ptr %0, i64 576
  %44 = getelementptr inbounds i8, ptr %0, i64 424
  %45 = getelementptr inbounds i8, ptr %0, i64 456
  %46 = getelementptr inbounds i8, ptr %0, i64 464
  %47 = getelementptr inbounds i8, ptr %0, i64 472
  %48 = getelementptr inbounds i8, ptr %0, i64 480
  %49 = getelementptr inbounds i8, ptr %0, i64 488
  %50 = getelementptr inbounds i8, ptr %0, i64 496
  %51 = getelementptr inbounds i8, ptr %0, i64 504
  %52 = getelementptr inbounds i8, ptr %0, i64 512
  %53 = getelementptr inbounds i8, ptr %0, i64 432
  br label %54

54:                                               ; preds = %.preheader127, %400
  %55 = load ptr, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #5
  store i8 0, ptr %4, align 1, !tbaa !40
  %56 = load ptr, ptr %55, align 8, !tbaa !41
  %57 = getelementptr inbounds i8, ptr %56, i64 112
  %58 = load ptr, ptr %57, align 8
  invoke void %58(ptr noundef nonnull align 8 dereferenceable(224) %55, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %59 unwind label %136

59:                                               ; preds = %54
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  %60 = load ptr, ptr %35, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #5
  store i8 0, ptr %5, align 1, !tbaa !40
  %61 = load ptr, ptr %60, align 8, !tbaa !41
  %62 = getelementptr inbounds i8, ptr %61, i64 112
  %63 = load ptr, ptr %62, align 8
  invoke void %63(ptr noundef nonnull align 8 dereferenceable(224) %60, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %64 unwind label %138

64:                                               ; preds = %59
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #5
  %65 = load ptr, ptr %36, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %6, i32 noundef 0)
          to label %66 unwind label %140

66:                                               ; preds = %64
  %67 = load ptr, ptr %65, align 8, !tbaa !41
  %68 = getelementptr inbounds i8, ptr %67, i64 72
  %69 = load ptr, ptr %68, align 8
  invoke void %69(ptr noundef nonnull align 8 dereferenceable(232) %65, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %70 unwind label %142

70:                                               ; preds = %66
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #5
  %71 = load ptr, ptr %37, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef 0)
          to label %72 unwind label %145

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

76:                                               ; preds = %72
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #5
  %77 = load ptr, ptr %38, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %8, i32 noundef 0)
          to label %78 unwind label %150

78:                                               ; preds = %76
  %79 = load ptr, ptr %77, align 8, !tbaa !41
  %80 = getelementptr inbounds i8, ptr %79, i64 72
  %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) %8)
          to label %82 unwind label %152

82:                                               ; preds = %78
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #5
  %83 = load ptr, ptr %39, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %9, i32 noundef 0)
          to label %84 unwind label %155

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

88:                                               ; preds = %84
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #5
  %89 = load ptr, ptr %40, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %10, i32 noundef 0)
          to label %90 unwind label %160

90:                                               ; preds = %88
  %91 = load ptr, ptr %89, align 8, !tbaa !41
  %92 = getelementptr inbounds i8, ptr %91, i64 72
  %93 = load ptr, ptr %92, align 8
  invoke void %93(ptr noundef nonnull align 8 dereferenceable(232) %89, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %94 unwind label %162

94:                                               ; preds = %90
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #5
  %95 = load ptr, ptr %41, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %11, i32 noundef 0)
          to label %96 unwind label %165

96:                                               ; preds = %94
  %97 = load ptr, ptr %95, align 8, !tbaa !41
  %98 = getelementptr inbounds i8, ptr %97, i64 72
  %99 = load ptr, ptr %98, align 8
  invoke void %99(ptr noundef nonnull align 8 dereferenceable(232) %95, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %100 unwind label %167

100:                                              ; preds = %96
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #5
  %101 = load ptr, ptr %42, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %12, i32 noundef 0)
          to label %102 unwind label %170

102:                                              ; preds = %100
  %103 = load ptr, ptr %101, align 8, !tbaa !41
  %104 = getelementptr inbounds i8, ptr %103, i64 72
  %105 = load ptr, ptr %104, align 8
  invoke void %105(ptr noundef nonnull align 8 dereferenceable(232) %101, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %106 unwind label %172

106:                                              ; preds = %102
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #5
  %107 = load ptr, ptr %43, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #5
  invoke void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %13, i32 noundef 0)
          to label %108 unwind label %175

108:                                              ; preds = %106
  %109 = load ptr, ptr %107, align 8, !tbaa !41
  %110 = getelementptr inbounds i8, ptr %109, i64 72
  %111 = load ptr, ptr %110, align 8
  invoke void %111(ptr noundef nonnull align 8 dereferenceable(232) %107, ptr noundef nonnull align 8 dereferenceable(24) %13)
          to label %112 unwind label %177

112:                                              ; preds = %108
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #5
  %113 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1, i32 noundef 0)
          to label %114 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

114:                                              ; preds = %112
  %115 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.2, i32 noundef 0)
          to label %116 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

116:                                              ; preds = %114
  %117 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.3, i32 noundef 0)
          to label %118 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

118:                                              ; preds = %116
  %119 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.4, i32 noundef 0)
          to label %120 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

120:                                              ; preds = %118
  %121 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.5, i32 noundef 0)
          to label %122 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

122:                                              ; preds = %120
  %123 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.6, i32 noundef 0)
          to label %124 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

124:                                              ; preds = %122
  %125 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.7, i32 noundef 0)
          to label %126 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

126:                                              ; preds = %124
  %127 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.8, i32 noundef 0)
          to label %.preheader121.preheader unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader121.preheader:                          ; preds = %126
  %128 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.1, i32 noundef 0)
          to label %.preheader121.1 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader130.preheader:                          ; preds = %1, %18, %19, %20, %21, %22, %23, %24
  %.ptr.lcssa.ph = phi ptr [ %.ptr.8, %24 ], [ %.ptr.7, %23 ], [ %.ptr.6, %22 ], [ %.ptr.5, %21 ], [ %.ptr.4, %20 ], [ %.ptr.3, %19 ], [ %.ptr.2, %18 ], [ %.ptr.1, %1 ]
  %lpad.thr_comm = landingpad { ptr, i32 }
          cleanup
  br label %.preheader130

.preheader130:                                    ; preds = %.preheader130.preheader, %.preheader130
  %129 = phi ptr [ %130, %.preheader130 ], [ %.ptr.lcssa.ph, %.preheader130.preheader ]
  %130 = getelementptr inbounds i8, ptr %129, i64 -24
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %130) #5
  %131 = icmp eq ptr %130, %2
  br i1 %131, label %.loopexit, label %.preheader130

132:                                              ; preds = %25
  %lpad.thr_comm.split-lp169 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit92

.preheader128.preheader:                          ; preds = %26, %27, %28, %29, %30, %31, %32, %33
  %.ptr71.lcssa.ph = phi ptr [ %.ptr71.8, %33 ], [ %.ptr71.7, %32 ], [ %.ptr71.6, %31 ], [ %.ptr71.5, %30 ], [ %.ptr71.4, %29 ], [ %.ptr71.3, %28 ], [ %.ptr71.2, %27 ], [ %.ptr71.1, %26 ]
  %lpad.thr_comm168 = landingpad { ptr, i32 }
          cleanup
  br label %.preheader128

.preheader128:                                    ; preds = %.preheader128.preheader, %.preheader128
  %133 = phi ptr [ %134, %.preheader128 ], [ %.ptr71.lcssa.ph, %.preheader128.preheader ]
  %134 = getelementptr inbounds i8, ptr %133, i64 -24
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %134) #5
  %135 = icmp eq ptr %134, %3
  br i1 %135, label %.loopexit92, label %.preheader128

136:                                              ; preds = %54
  %137 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  br label %.loopexit.split-lp

138:                                              ; preds = %59
  %139 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #5
  br label %.loopexit.split-lp

140:                                              ; preds = %64
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %144

142:                                              ; preds = %66
  %143 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #5
  br label %144

144:                                              ; preds = %142, %140
  %.pn = phi { ptr, i32 } [ %143, %142 ], [ %141, %140 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #5
  br label %.loopexit.split-lp

145:                                              ; preds = %70
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %149

147:                                              ; preds = %72
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  br label %149

149:                                              ; preds = %147, %145
  %.pn74 = phi { ptr, i32 } [ %148, %147 ], [ %146, %145 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #5
  br label %.loopexit.split-lp

150:                                              ; preds = %76
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %154

152:                                              ; preds = %78
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  br label %154

154:                                              ; preds = %152, %150
  %.pn76 = phi { ptr, i32 } [ %153, %152 ], [ %151, %150 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #5
  br label %.loopexit.split-lp

155:                                              ; preds = %82
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %159

157:                                              ; preds = %84
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  br label %159

159:                                              ; preds = %157, %155
  %.pn78 = phi { ptr, i32 } [ %158, %157 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #5
  br label %.loopexit.split-lp

160:                                              ; preds = %88
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %164

162:                                              ; preds = %90
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #5
  br label %164

164:                                              ; preds = %162, %160
  %.pn80 = phi { ptr, i32 } [ %163, %162 ], [ %161, %160 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #5
  br label %.loopexit.split-lp

165:                                              ; preds = %94
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %169

167:                                              ; preds = %96
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #5
  br label %169

169:                                              ; preds = %167, %165
  %.pn82 = phi { ptr, i32 } [ %168, %167 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #5
  br label %.loopexit.split-lp

170:                                              ; preds = %100
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %174

172:                                              ; preds = %102
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #5
  br label %174

174:                                              ; preds = %172, %170
  %.pn84 = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #5
  br label %.loopexit.split-lp

175:                                              ; preds = %106
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %179

177:                                              ; preds = %108
  %178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #5
  br label %179

179:                                              ; preds = %177, %175
  %.pn86 = phi { ptr, i32 } [ %178, %177 ], [ %176, %175 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #5
  br label %.loopexit.split-lp

.loopexit94:                                      ; preds = %.preheader.7, %.preheader.6, %.preheader.5, %.preheader.4, %.preheader.3, %.preheader.2, %.preheader.1, %.preheader.preheader
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit:                      ; preds = %.preheader95.7, %.preheader95.6, %.preheader95.5, %.preheader95.4, %.preheader95.3, %.preheader95.2, %.preheader95.1, %.preheader95.preheader
  %lpad.loopexit96 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit:    ; preds = %.lr.ph, %314, %328, %330
  %lpad.loopexit101 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader103.7, %.preheader103.6, %.preheader103.5, %.preheader103.4, %.preheader103.3, %.preheader103.2, %.preheader103.1, %.preheader103.preheader
  %lpad.loopexit104 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader107.7, %.preheader107.6, %.preheader107.5, %.preheader107.4, %.preheader107.3, %.preheader107.2, %.preheader107.1, %.preheader107.preheader
  %lpad.loopexit108 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader114, %278, %291, %297, %300
  %lpad.loopexit115 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader121.7, %.preheader121.6, %.preheader121.5, %.preheader121.4, %.preheader121.3, %.preheader121.2, %.preheader121.1, %.preheader121.preheader
  %lpad.loopexit122 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %126, %124, %122, %120, %118, %116, %114, %112
  %lpad.loopexit124 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %400, %388, %378, %373, %368, %363, %358, %353, %348, %343, %342, %274, %272, %271, %269, %263, %261, %255, %253, %247, %245, %239, %237, %231, %229, %223, %221, %215, %213, %207, %206, %194, %188, %187
  %lpad.loopexit.split-lp125 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.preheader121.1:                                  ; preds = %.preheader121.preheader
  %180 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.2, i32 noundef 0)
          to label %.preheader121.2 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader121.2:                                  ; preds = %.preheader121.1
  %181 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.3, i32 noundef 0)
          to label %.preheader121.3 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader121.3:                                  ; preds = %.preheader121.2
  %182 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.4, i32 noundef 0)
          to label %.preheader121.4 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader121.4:                                  ; preds = %.preheader121.3
  %183 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.5, i32 noundef 0)
          to label %.preheader121.5 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader121.5:                                  ; preds = %.preheader121.4
  %184 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.6, i32 noundef 0)
          to label %.preheader121.6 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader121.6:                                  ; preds = %.preheader121.5
  %185 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.7, i32 noundef 0)
          to label %.preheader121.7 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader121.7:                                  ; preds = %.preheader121.6
  %186 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSEi(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.8, i32 noundef 0)
          to label %187 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

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

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

189:                                              ; preds = %188
  %190 = load ptr, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #5
  store i8 1, ptr %14, align 1, !tbaa !40
  %191 = load ptr, ptr %190, align 8, !tbaa !41
  %192 = getelementptr inbounds i8, ptr %191, i64 112
  %193 = load ptr, ptr %192, align 8
  invoke void %193(ptr noundef nonnull align 8 dereferenceable(224) %190, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %194 unwind label %293

194:                                              ; preds = %189
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %.preheader117 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

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

195:                                              ; preds = %.preheader117
  %196 = load ptr, ptr %44, align 8, !tbaa !52
  %197 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %196)
          to label %198 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

198:                                              ; preds = %195
  %199 = load i8, ptr %197, align 1, !tbaa !40, !range !53, !noundef !54
  %200 = trunc nuw i8 %199 to i1
  br i1 %200, label %201, label %.preheader117, !llvm.loop !55

201:                                              ; preds = %198
  %202 = load ptr, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #5
  store i8 0, ptr %15, align 1, !tbaa !40
  %203 = load ptr, ptr %202, align 8, !tbaa !41
  %204 = getelementptr inbounds i8, ptr %203, i64 112
  %205 = load ptr, ptr %204, align 8
  invoke void %205(ptr noundef nonnull align 8 dereferenceable(224) %202, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %206 unwind label %295

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

207:                                              ; preds = %206
  %208 = load ptr, ptr %45, align 8, !tbaa !57
  %209 = load ptr, ptr %208, align 8, !tbaa !41
  %210 = getelementptr inbounds i8, ptr %209, i64 40
  %211 = load ptr, ptr %210, align 8
  %212 = invoke noundef nonnull align 8 dereferenceable(24) ptr %211(ptr noundef nonnull align 8 dereferenceable(232) %208)
          to label %213 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

213:                                              ; preds = %207
  %214 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1, ptr noundef nonnull align 8 dereferenceable(24) %212)
          to label %215 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

215:                                              ; preds = %213
  %216 = load ptr, ptr %46, align 8, !tbaa !58
  %217 = load ptr, ptr %216, align 8, !tbaa !41
  %218 = getelementptr inbounds i8, ptr %217, i64 40
  %219 = load ptr, ptr %218, align 8
  %220 = invoke noundef nonnull align 8 dereferenceable(24) ptr %219(ptr noundef nonnull align 8 dereferenceable(232) %216)
          to label %221 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

221:                                              ; preds = %215
  %222 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.2, ptr noundef nonnull align 8 dereferenceable(24) %220)
          to label %223 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

223:                                              ; preds = %221
  %224 = load ptr, ptr %47, align 8, !tbaa !59
  %225 = load ptr, ptr %224, align 8, !tbaa !41
  %226 = getelementptr inbounds i8, ptr %225, i64 40
  %227 = load ptr, ptr %226, align 8
  %228 = invoke noundef nonnull align 8 dereferenceable(24) ptr %227(ptr noundef nonnull align 8 dereferenceable(232) %224)
          to label %229 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

229:                                              ; preds = %223
  %230 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.3, ptr noundef nonnull align 8 dereferenceable(24) %228)
          to label %231 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

231:                                              ; preds = %229
  %232 = load ptr, ptr %48, align 8, !tbaa !60
  %233 = load ptr, ptr %232, align 8, !tbaa !41
  %234 = getelementptr inbounds i8, ptr %233, i64 40
  %235 = load ptr, ptr %234, align 8
  %236 = invoke noundef nonnull align 8 dereferenceable(24) ptr %235(ptr noundef nonnull align 8 dereferenceable(232) %232)
          to label %237 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

237:                                              ; preds = %231
  %238 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.4, ptr noundef nonnull align 8 dereferenceable(24) %236)
          to label %239 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

239:                                              ; preds = %237
  %240 = load ptr, ptr %49, align 8, !tbaa !61
  %241 = load ptr, ptr %240, align 8, !tbaa !41
  %242 = getelementptr inbounds i8, ptr %241, i64 40
  %243 = load ptr, ptr %242, align 8
  %244 = invoke noundef nonnull align 8 dereferenceable(24) ptr %243(ptr noundef nonnull align 8 dereferenceable(232) %240)
          to label %245 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

245:                                              ; preds = %239
  %246 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.5, ptr noundef nonnull align 8 dereferenceable(24) %244)
          to label %247 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

247:                                              ; preds = %245
  %248 = load ptr, ptr %50, align 8, !tbaa !62
  %249 = load ptr, ptr %248, align 8, !tbaa !41
  %250 = getelementptr inbounds i8, ptr %249, i64 40
  %251 = load ptr, ptr %250, align 8
  %252 = invoke noundef nonnull align 8 dereferenceable(24) ptr %251(ptr noundef nonnull align 8 dereferenceable(232) %248)
          to label %253 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

253:                                              ; preds = %247
  %254 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.6, ptr noundef nonnull align 8 dereferenceable(24) %252)
          to label %255 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

255:                                              ; preds = %253
  %256 = load ptr, ptr %51, align 8, !tbaa !63
  %257 = load ptr, ptr %256, align 8, !tbaa !41
  %258 = getelementptr inbounds i8, ptr %257, i64 40
  %259 = load ptr, ptr %258, align 8
  %260 = invoke noundef nonnull align 8 dereferenceable(24) ptr %259(ptr noundef nonnull align 8 dereferenceable(232) %256)
          to label %261 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

261:                                              ; preds = %255
  %262 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.7, ptr noundef nonnull align 8 dereferenceable(24) %260)
          to label %263 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

263:                                              ; preds = %261
  %264 = load ptr, ptr %52, align 8, !tbaa !64
  %265 = load ptr, ptr %264, align 8, !tbaa !41
  %266 = getelementptr inbounds i8, ptr %265, i64 40
  %267 = load ptr, ptr %266, align 8
  %268 = invoke noundef nonnull align 8 dereferenceable(24) ptr %267(ptr noundef nonnull align 8 dereferenceable(232) %264)
          to label %269 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

269:                                              ; preds = %263
  %270 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.8, ptr noundef nonnull align 8 dereferenceable(24) %268)
          to label %271 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

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

272:                                              ; preds = %271
  %273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @lout, ptr noundef nonnull @.str.28)
          to label %274 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

274:                                              ; preds = %272
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader114 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.preheader114:                                    ; preds = %274, %.loopexit100
  %indvars.iv = phi i64 [ %indvars.iv.next, %.loopexit100 ], [ 1, %274 ]
  %276 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %2, i64 0, i64 %indvars.iv
  %277 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %276)
          to label %278 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

278:                                              ; preds = %.preheader114
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %279 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %2, i64 0, i64 %indvars.iv.next
  %280 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %279)
          to label %281 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

281:                                              ; preds = %278
  %282 = icmp sgt i32 %277, %280
  br i1 %282, label %.preheader107.preheader, label %.loopexit100

.preheader107.preheader:                          ; preds = %281
  %283 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.1, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1)
          to label %.preheader107.1 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader107.1:                                  ; preds = %.preheader107.preheader
  %284 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.2, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.2)
          to label %.preheader107.2 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader107.2:                                  ; preds = %.preheader107.1
  %285 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.3, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.3)
          to label %.preheader107.3 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader107.3:                                  ; preds = %.preheader107.2
  %286 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.4, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.4)
          to label %.preheader107.4 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader107.4:                                  ; preds = %.preheader107.3
  %287 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.5, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.5)
          to label %.preheader107.5 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader107.5:                                  ; preds = %.preheader107.4
  %288 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.6, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.6)
          to label %.preheader107.6 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader107.6:                                  ; preds = %.preheader107.5
  %289 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.7, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.7)
          to label %.preheader107.7 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader107.7:                                  ; preds = %.preheader107.6
  %290 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.8, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.8)
          to label %291 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

291:                                              ; preds = %.preheader107.7
  %292 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %276, ptr noundef nonnull align 8 dereferenceable(24) %279)
          to label %297 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

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

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

297:                                              ; preds = %291
  %298 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %indvars.iv
  %299 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %279, ptr noundef nonnull align 8 dereferenceable(24) %298)
          to label %300 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

300:                                              ; preds = %297
  %301 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %298)
          to label %.preheader103.preheader unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader103.preheader:                          ; preds = %300
  %302 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.1, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1)
          to label %.preheader103.1 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader103.1:                                  ; preds = %.preheader103.preheader
  %303 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.2, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.2)
          to label %.preheader103.2 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader103.2:                                  ; preds = %.preheader103.1
  %304 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.3, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.3)
          to label %.preheader103.3 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader103.3:                                  ; preds = %.preheader103.2
  %305 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.4, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.4)
          to label %.preheader103.4 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader103.4:                                  ; preds = %.preheader103.3
  %306 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.5, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.5)
          to label %.preheader103.5 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader103.5:                                  ; preds = %.preheader103.4
  %307 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.6, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.6)
          to label %.preheader103.6 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader103.6:                                  ; preds = %.preheader103.5
  %308 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.7, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.7)
          to label %.preheader103.7 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader103.7:                                  ; preds = %.preheader103.6
  %309 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.8, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.8)
          to label %310 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

310:                                              ; preds = %.preheader103.7
  %311 = icmp ugt i64 %indvars.iv, 1
  br i1 %311, label %.lr.ph, label %.loopexit100

.lr.ph:                                           ; preds = %310, %.loopexit93
  %indvars.iv157 = phi i64 [ %indvars.iv.next158, %.loopexit93 ], [ %indvars.iv, %310 ]
  %312 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %2, i64 0, i64 %indvars.iv157
  %313 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %312)
          to label %314 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

314:                                              ; preds = %.lr.ph
  %indvars.iv.next158 = add nsw i64 %indvars.iv157, -1
  %315 = and i64 %indvars.iv.next158, 4294967295
  %316 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %2, i64 0, i64 %315
  %317 = invoke noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %316)
          to label %318 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

318:                                              ; preds = %314
  %319 = icmp sgt i32 %313, %317
  br i1 %319, label %.loopexit100, label %.preheader95.preheader

.preheader95.preheader:                           ; preds = %318
  %320 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.1, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1)
          to label %.preheader95.1 unwind label %.loopexit.split-lp.loopexit

.preheader95.1:                                   ; preds = %.preheader95.preheader
  %321 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.2, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.2)
          to label %.preheader95.2 unwind label %.loopexit.split-lp.loopexit

.preheader95.2:                                   ; preds = %.preheader95.1
  %322 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.3, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.3)
          to label %.preheader95.3 unwind label %.loopexit.split-lp.loopexit

.preheader95.3:                                   ; preds = %.preheader95.2
  %323 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.4, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.4)
          to label %.preheader95.4 unwind label %.loopexit.split-lp.loopexit

.preheader95.4:                                   ; preds = %.preheader95.3
  %324 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.5, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.5)
          to label %.preheader95.5 unwind label %.loopexit.split-lp.loopexit

.preheader95.5:                                   ; preds = %.preheader95.4
  %325 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.6, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.6)
          to label %.preheader95.6 unwind label %.loopexit.split-lp.loopexit

.preheader95.6:                                   ; preds = %.preheader95.5
  %326 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.7, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.7)
          to label %.preheader95.7 unwind label %.loopexit.split-lp.loopexit

.preheader95.7:                                   ; preds = %.preheader95.6
  %327 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.8, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.8)
          to label %328 unwind label %.loopexit.split-lp.loopexit

328:                                              ; preds = %.preheader95.7
  %329 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %312, ptr noundef nonnull align 8 dereferenceable(24) %316)
          to label %330 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

330:                                              ; preds = %328
  %331 = getelementptr inbounds [9 x %"class.sc_dt::sc_bv"], ptr %3, i64 0, i64 %indvars.iv157
  %332 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %316, ptr noundef nonnull align 8 dereferenceable(24) %331)
          to label %.preheader.preheader unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader.preheader:                             ; preds = %330
  %333 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.1, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1)
          to label %.preheader.1 unwind label %.loopexit94

.preheader.1:                                     ; preds = %.preheader.preheader
  %334 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.2, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.2)
          to label %.preheader.2 unwind label %.loopexit94

.preheader.2:                                     ; preds = %.preheader.1
  %335 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.3, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.3)
          to label %.preheader.3 unwind label %.loopexit94

.preheader.3:                                     ; preds = %.preheader.2
  %336 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.4, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.4)
          to label %.preheader.4 unwind label %.loopexit94

.preheader.4:                                     ; preds = %.preheader.3
  %337 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.5, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.5)
          to label %.preheader.5 unwind label %.loopexit94

.preheader.5:                                     ; preds = %.preheader.4
  %338 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.6, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.6)
          to label %.preheader.6 unwind label %.loopexit94

.preheader.6:                                     ; preds = %.preheader.5
  %339 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.7, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.7)
          to label %.preheader.7 unwind label %.loopexit94

.preheader.7:                                     ; preds = %.preheader.6
  %340 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5sc_dt5sc_bvILi8EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.8, ptr noundef nonnull align 8 dereferenceable(24) %.ptr.8)
          to label %.loopexit93 unwind label %.loopexit94

.loopexit93:                                      ; preds = %.preheader.7
  %341 = icmp sgt i64 %indvars.iv157, 2
  br i1 %341, label %.lr.ph, label %.loopexit100, !llvm.loop !65

.loopexit100:                                     ; preds = %318, %.loopexit93, %281, %310
  %exitcond.not = icmp eq i64 %indvars.iv.next, 8
  br i1 %exitcond.not, label %342, label %.preheader114, !llvm.loop !66

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

343:                                              ; preds = %342
  %344 = load ptr, ptr %36, align 8, !tbaa !44
  %345 = load ptr, ptr %344, align 8, !tbaa !41
  %346 = getelementptr inbounds i8, ptr %345, i64 72
  %347 = load ptr, ptr %346, align 8
  invoke void %347(ptr noundef nonnull align 8 dereferenceable(232) %344, ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.1)
          to label %348 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

348:                                              ; preds = %343
  %349 = load ptr, ptr %37, align 8, !tbaa !45
  %350 = load ptr, ptr %349, align 8, !tbaa !41
  %351 = getelementptr inbounds i8, ptr %350, i64 72
  %352 = load ptr, ptr %351, align 8
  invoke void %352(ptr noundef nonnull align 8 dereferenceable(232) %349, ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.2)
          to label %353 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

353:                                              ; preds = %348
  %354 = load ptr, ptr %38, align 8, !tbaa !46
  %355 = load ptr, ptr %354, align 8, !tbaa !41
  %356 = getelementptr inbounds i8, ptr %355, i64 72
  %357 = load ptr, ptr %356, align 8
  invoke void %357(ptr noundef nonnull align 8 dereferenceable(232) %354, ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.3)
          to label %358 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

358:                                              ; preds = %353
  %359 = load ptr, ptr %39, align 8, !tbaa !47
  %360 = load ptr, ptr %359, align 8, !tbaa !41
  %361 = getelementptr inbounds i8, ptr %360, i64 72
  %362 = load ptr, ptr %361, align 8
  invoke void %362(ptr noundef nonnull align 8 dereferenceable(232) %359, ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.4)
          to label %363 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

363:                                              ; preds = %358
  %364 = load ptr, ptr %40, align 8, !tbaa !48
  %365 = load ptr, ptr %364, align 8, !tbaa !41
  %366 = getelementptr inbounds i8, ptr %365, i64 72
  %367 = load ptr, ptr %366, align 8
  invoke void %367(ptr noundef nonnull align 8 dereferenceable(232) %364, ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.5)
          to label %368 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

368:                                              ; preds = %363
  %369 = load ptr, ptr %41, align 8, !tbaa !49
  %370 = load ptr, ptr %369, align 8, !tbaa !41
  %371 = getelementptr inbounds i8, ptr %370, i64 72
  %372 = load ptr, ptr %371, align 8
  invoke void %372(ptr noundef nonnull align 8 dereferenceable(232) %369, ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.6)
          to label %373 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

373:                                              ; preds = %368
  %374 = load ptr, ptr %42, align 8, !tbaa !50
  %375 = load ptr, ptr %374, align 8, !tbaa !41
  %376 = getelementptr inbounds i8, ptr %375, i64 72
  %377 = load ptr, ptr %376, align 8
  invoke void %377(ptr noundef nonnull align 8 dereferenceable(232) %374, ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.7)
          to label %378 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

378:                                              ; preds = %373
  %379 = load ptr, ptr %43, align 8, !tbaa !51
  %380 = load ptr, ptr %379, align 8, !tbaa !41
  %381 = getelementptr inbounds i8, ptr %380, i64 72
  %382 = load ptr, ptr %381, align 8
  invoke void %382(ptr noundef nonnull align 8 dereferenceable(232) %379, ptr noundef nonnull align 8 dereferenceable(24) %.ptr71.8)
          to label %383 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

383:                                              ; preds = %378
  %384 = load ptr, ptr %35, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #5
  store i8 1, ptr %16, align 1, !tbaa !40
  %385 = load ptr, ptr %384, align 8, !tbaa !41
  %386 = getelementptr inbounds i8, ptr %385, i64 112
  %387 = load ptr, ptr %386, align 8
  invoke void %387(ptr noundef nonnull align 8 dereferenceable(224) %384, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %388 unwind label %401

388:                                              ; preds = %383
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %.preheader110 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

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

389:                                              ; preds = %.preheader110
  %390 = load ptr, ptr %53, align 8, !tbaa !67
  %391 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %390)
          to label %392 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

392:                                              ; preds = %389
  %393 = load i8, ptr %391, align 1, !tbaa !40, !range !53, !noundef !54
  %394 = trunc nuw i8 %393 to i1
  br i1 %394, label %395, label %.preheader110, !llvm.loop !68

395:                                              ; preds = %392
  %396 = load ptr, ptr %35, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #5
  store i8 0, ptr %17, align 1, !tbaa !40
  %397 = load ptr, ptr %396, align 8, !tbaa !41
  %398 = getelementptr inbounds i8, ptr %397, i64 112
  %399 = load ptr, ptr %398, align 8
  invoke void %399(ptr noundef nonnull align 8 dereferenceable(224) %396, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %400 unwind label %403

400:                                              ; preds = %395
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #5
  invoke void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
          to label %54 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, !llvm.loop !69

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

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

.loopexit.split-lp:                               ; preds = %.loopexit94, %.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit, %403, %401, %295, %293, %179, %174, %169, %164, %159, %154, %149, %144, %138, %136
  %.pn88 = phi { ptr, i32 } [ %404, %403 ], [ %402, %401 ], [ %296, %295 ], [ %294, %293 ], [ %.pn86, %179 ], [ %.pn84, %174 ], [ %.pn82, %169 ], [ %.pn80, %164 ], [ %.pn78, %159 ], [ %.pn76, %154 ], [ %.pn74, %149 ], [ %.pn, %144 ], [ %139, %138 ], [ %137, %136 ], [ %lpad.loopexit, %.loopexit94 ], [ %lpad.loopexit96, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit101, %.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit104, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit108, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit111, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit115, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit118, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit122, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit124, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp125, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  %405 = getelementptr inbounds i8, ptr %3, i64 192
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %405) #5
  %406 = getelementptr inbounds i8, ptr %3, i64 168
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %406) #5
  %407 = getelementptr inbounds i8, ptr %3, i64 144
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %407) #5
  %408 = getelementptr inbounds i8, ptr %3, i64 120
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %408) #5
  %409 = getelementptr inbounds i8, ptr %3, i64 96
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %409) #5
  %410 = getelementptr inbounds i8, ptr %3, i64 72
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %410) #5
  %411 = getelementptr inbounds i8, ptr %3, i64 48
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %411) #5
  %412 = getelementptr inbounds i8, ptr %3, i64 24
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %412) #5
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #5
  br label %.loopexit92

.loopexit92:                                      ; preds = %.preheader128, %132, %.loopexit.split-lp
  %.pn88.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp169, %132 ], [ %.pn88, %.loopexit.split-lp ], [ %lpad.thr_comm168, %.preheader128 ]
  call void @llvm.lifetime.end.p0(i64 216, ptr nonnull %3) #5
  %413 = getelementptr inbounds i8, ptr %2, i64 192
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %413) #5
  %414 = getelementptr inbounds i8, ptr %2, i64 168
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %414) #5
  %415 = getelementptr inbounds i8, ptr %2, i64 144
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %415) #5
  %416 = getelementptr inbounds i8, ptr %2, i64 120
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %416) #5
  %417 = getelementptr inbounds i8, ptr %2, i64 96
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %417) #5
  %418 = getelementptr inbounds i8, ptr %2, i64 72
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %418) #5
  %419 = getelementptr inbounds i8, ptr %2, i64 48
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %419) #5
  %420 = getelementptr inbounds i8, ptr %2, i64 24
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %420) #5
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader130, %.loopexit92
  %.pn88.pn.pn = phi { ptr, i32 } [ %.pn88.pn, %.loopexit92 ], [ %lpad.thr_comm, %.preheader130 ]
  call void @llvm.lifetime.end.p0(i64 216, ptr nonnull %2) #5
  resume { ptr, i32 } %.pn88.pn.pn
}

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

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

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

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

attributes #0 = { 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 #1 = { 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 #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #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, !9, i64 440}
!6 = !{!"_ZTS6BUBBLE", !7, i64 0, !32, i64 232, !9, i64 416, !9, i64 424, !9, i64 432, !9, i64 440, !9, i64 448, !9, i64 456, !9, i64 464, !9, i64 472, !9, i64 480, !9, i64 488, !9, i64 496, !9, i64 504, !9, i64 512, !9, i64 520, !9, i64 528, !9, i64 536, !9, i64 544, !9, i64 552, !9, i64 560, !9, i64 568, !9, i64 576}
!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 = !{!30, !30, i64 0}
!41 = !{!42, !42, i64 0}
!42 = !{!"vtable pointer", !11, i64 0}
!43 = !{!6, !9, i64 448}
!44 = !{!6, !9, i64 520}
!45 = !{!6, !9, i64 528}
!46 = !{!6, !9, i64 536}
!47 = !{!6, !9, i64 544}
!48 = !{!6, !9, i64 552}
!49 = !{!6, !9, i64 560}
!50 = !{!6, !9, i64 568}
!51 = !{!6, !9, i64 576}
!52 = !{!6, !9, i64 424}
!53 = !{i8 0, i8 2}
!54 = !{}
!55 = distinct !{!55, !56}
!56 = !{!"llvm.loop.mustprogress"}
!57 = !{!6, !9, i64 456}
!58 = !{!6, !9, i64 464}
!59 = !{!6, !9, i64 472}
!60 = !{!6, !9, i64 480}
!61 = !{!6, !9, i64 488}
!62 = !{!6, !9, i64 496}
!63 = !{!6, !9, i64 504}
!64 = !{!6, !9, i64 512}
!65 = distinct !{!65, !56}
!66 = distinct !{!66, !56}
!67 = !{!6, !9, i64 432}
!68 = distinct !{!68, !56}
!69 = distinct !{!69, !56}


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