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

; 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_ostream" = type { ptr, %"class.std::basic_ios" }
%"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.std::locale" = type { ptr }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }
%struct.STIM = 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 }

@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.25 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [7 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: mustprogress uwtable
define dso_local void @_ZN4STIM5entryEv(ptr noundef nonnull align 8 dereferenceable(584) %0) #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.sc_dt::sc_bv", align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %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 i8, align 1
  %14 = alloca i8, align 1
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca %"class.sc_dt::sc_bv", align 8
  %18 = alloca %"class.sc_dt::sc_bv", align 8
  %19 = alloca %"class.sc_dt::sc_bv", align 8
  %20 = alloca %"class.sc_dt::sc_bv", align 8
  %21 = alloca %"class.sc_dt::sc_bv", align 8
  %22 = alloca %"class.sc_dt::sc_bv", align 8
  %23 = alloca %"class.sc_dt::sc_bv", align 8
  %24 = alloca %"class.sc_dt::sc_bv", align 8
  %25 = alloca i8, align 1
  %26 = alloca i8, align 1
  %27 = alloca i8, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %28 = load ptr, ptr %2, align 8
  %29 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 7
  %30 = load ptr, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %3) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 0)
  %31 = load ptr, ptr %30, align 8, !tbaa !41
  %32 = getelementptr inbounds ptr, ptr %31, i64 9
  %33 = load ptr, ptr %32, align 8
  invoke void %33(ptr noundef nonnull align 8 dereferenceable(232) %30, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %34 unwind label %338

34:                                               ; preds = %1
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #5
  %35 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 8
  %36 = load ptr, ptr %35, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 24, ptr %6) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %6, i32 noundef 0)
  %37 = load ptr, ptr %36, align 8, !tbaa !41
  %38 = getelementptr inbounds ptr, ptr %37, i64 9
  %39 = load ptr, ptr %38, align 8
  invoke void %39(ptr noundef nonnull align 8 dereferenceable(232) %36, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %40 unwind label %342

40:                                               ; preds = %34
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #5
  %41 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 9
  %42 = load ptr, ptr %41, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 24, ptr %7) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef 0)
  %43 = load ptr, ptr %42, align 8, !tbaa !41
  %44 = getelementptr inbounds ptr, ptr %43, i64 9
  %45 = load ptr, ptr %44, align 8
  invoke void %45(ptr noundef nonnull align 8 dereferenceable(232) %42, ptr noundef nonnull align 8 dereferenceable(24) %7)
          to label %46 unwind label %346

46:                                               ; preds = %40
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #5
  %47 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 10
  %48 = load ptr, ptr %47, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %8, i32 noundef 0)
  %49 = load ptr, ptr %48, align 8, !tbaa !41
  %50 = getelementptr inbounds ptr, ptr %49, i64 9
  %51 = load ptr, ptr %50, align 8
  invoke void %51(ptr noundef nonnull align 8 dereferenceable(232) %48, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %52 unwind label %350

52:                                               ; preds = %46
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #5
  %53 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 11
  %54 = load ptr, ptr %53, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %9, i32 noundef 0)
  %55 = load ptr, ptr %54, align 8, !tbaa !41
  %56 = getelementptr inbounds ptr, ptr %55, i64 9
  %57 = load ptr, ptr %56, align 8
  invoke void %57(ptr noundef nonnull align 8 dereferenceable(232) %54, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %58 unwind label %354

58:                                               ; preds = %52
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #5
  %59 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 12
  %60 = load ptr, ptr %59, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %10, i32 noundef 0)
  %61 = load ptr, ptr %60, align 8, !tbaa !41
  %62 = getelementptr inbounds ptr, ptr %61, i64 9
  %63 = load ptr, ptr %62, align 8
  invoke void %63(ptr noundef nonnull align 8 dereferenceable(232) %60, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %64 unwind label %358

64:                                               ; preds = %58
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #5
  %65 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 13
  %66 = load ptr, ptr %65, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %11, i32 noundef 0)
  %67 = load ptr, ptr %66, align 8, !tbaa !41
  %68 = getelementptr inbounds ptr, ptr %67, i64 9
  %69 = load ptr, ptr %68, align 8
  invoke void %69(ptr noundef nonnull align 8 dereferenceable(232) %66, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %70 unwind label %362

70:                                               ; preds = %64
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #5
  %71 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 14
  %72 = load ptr, ptr %71, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %12, i32 noundef 0)
  %73 = load ptr, ptr %72, align 8, !tbaa !41
  %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) %72, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %76 unwind label %366

76:                                               ; preds = %70
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #5
  %77 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 3
  %78 = load ptr, ptr %77, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #5
  store i8 0, ptr %13, align 1, !tbaa !51
  %79 = load ptr, ptr %78, align 8, !tbaa !41
  %80 = getelementptr inbounds ptr, ptr %79, i64 14
  %81 = load ptr, ptr %80, align 8
  call void %81(ptr noundef nonnull align 8 dereferenceable(224) %78, ptr noundef nonnull align 1 dereferenceable(1) %13)
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  %82 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 4
  %83 = load ptr, ptr %82, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #5
  store i8 0, ptr %14, align 1, !tbaa !51
  %84 = load ptr, ptr %83, align 8, !tbaa !41
  %85 = getelementptr inbounds ptr, ptr %84, i64 14
  %86 = load ptr, ptr %85, align 8
  call void %86(ptr noundef nonnull align 8 dereferenceable(224) %83, ptr noundef nonnull align 1 dereferenceable(1) %14)
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #5
  %87 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 2
  %88 = load ptr, ptr %87, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #5
  store i8 1, ptr %15, align 1, !tbaa !51
  %89 = load ptr, ptr %88, align 8, !tbaa !41
  %90 = getelementptr inbounds ptr, ptr %89, i64 14
  %91 = load ptr, ptr %90, align 8
  call void %91(ptr noundef nonnull align 8 dereferenceable(224) %88, ptr noundef nonnull align 1 dereferenceable(1) %15)
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @_ZN7sc_core9sc_module4waitEi(ptr noundef nonnull align 8 dereferenceable(232) %28, i32 noundef 2)
  %92 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 2
  %93 = load ptr, ptr %92, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #5
  store i8 0, ptr %16, align 1, !tbaa !51
  %94 = load ptr, ptr %93, align 8, !tbaa !41
  %95 = getelementptr inbounds ptr, ptr %94, i64 14
  %96 = load ptr, ptr %95, align 8
  call void %96(ptr noundef nonnull align 8 dereferenceable(224) %93, ptr noundef nonnull align 1 dereferenceable(1) %16)
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #5
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %28)
  br label %97

97:                                               ; preds = %98, %76
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %28)
  br label %98

98:                                               ; preds = %97
  %99 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 5
  %100 = load ptr, ptr %99, align 8, !tbaa !54
  %101 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %100)
  %102 = load i8, ptr %101, align 1, !tbaa !51, !range !55, !noundef !56
  %103 = trunc i8 %102 to i1
  %104 = zext i1 %103 to i32
  %105 = icmp eq i32 %104, 0
  br i1 %105, label %97, label %106, !llvm.loop !57

106:                                              ; preds = %98
  %107 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 7
  %108 = load ptr, ptr %107, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %17, i32 noundef -76)
  %109 = load ptr, ptr %108, align 8, !tbaa !41
  %110 = getelementptr inbounds ptr, ptr %109, i64 9
  %111 = load ptr, ptr %110, align 8
  invoke void %111(ptr noundef nonnull align 8 dereferenceable(232) %108, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %112 unwind label %370

112:                                              ; preds = %106
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #5
  %113 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 8
  %114 = load ptr, ptr %113, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %18, i32 noundef 1)
  %115 = load ptr, ptr %114, align 8, !tbaa !41
  %116 = getelementptr inbounds ptr, ptr %115, i64 9
  %117 = load ptr, ptr %116, align 8
  invoke void %117(ptr noundef nonnull align 8 dereferenceable(232) %114, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %118 unwind label %374

118:                                              ; preds = %112
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #5
  %119 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 9
  %120 = load ptr, ptr %119, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %19, i32 noundef 12)
  %121 = load ptr, ptr %120, align 8, !tbaa !41
  %122 = getelementptr inbounds ptr, ptr %121, i64 9
  %123 = load ptr, ptr %122, align 8
  invoke void %123(ptr noundef nonnull align 8 dereferenceable(232) %120, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %124 unwind label %378

124:                                              ; preds = %118
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #5
  %125 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 10
  %126 = load ptr, ptr %125, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %20, i32 noundef 85)
  %127 = load ptr, ptr %126, align 8, !tbaa !41
  %128 = getelementptr inbounds ptr, ptr %127, i64 9
  %129 = load ptr, ptr %128, align 8
  invoke void %129(ptr noundef nonnull align 8 dereferenceable(232) %126, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %130 unwind label %382

130:                                              ; preds = %124
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #5
  %131 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 11
  %132 = load ptr, ptr %131, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %21, i32 noundef 15)
  %133 = load ptr, ptr %132, align 8, !tbaa !41
  %134 = getelementptr inbounds ptr, ptr %133, i64 9
  %135 = load ptr, ptr %134, align 8
  invoke void %135(ptr noundef nonnull align 8 dereferenceable(232) %132, ptr noundef nonnull align 8 dereferenceable(24) %21)
          to label %136 unwind label %386

136:                                              ; preds = %130
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #5
  %137 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 12
  %138 = load ptr, ptr %137, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %22, i32 noundef 103)
  %139 = load ptr, ptr %138, align 8, !tbaa !41
  %140 = getelementptr inbounds ptr, ptr %139, i64 9
  %141 = load ptr, ptr %140, align 8
  invoke void %141(ptr noundef nonnull align 8 dereferenceable(232) %138, ptr noundef nonnull align 8 dereferenceable(24) %22)
          to label %142 unwind label %390

142:                                              ; preds = %136
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  %143 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 13
  %144 = load ptr, ptr %143, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %23, i32 noundef -2)
  %145 = load ptr, ptr %144, align 8, !tbaa !41
  %146 = getelementptr inbounds ptr, ptr %145, i64 9
  %147 = load ptr, ptr %146, align 8
  invoke void %147(ptr noundef nonnull align 8 dereferenceable(232) %144, ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %148 unwind label %394

148:                                              ; preds = %142
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #5
  %149 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 14
  %150 = load ptr, ptr %149, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr %24) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %24, i32 noundef 3)
  %151 = load ptr, ptr %150, align 8, !tbaa !41
  %152 = getelementptr inbounds ptr, ptr %151, i64 9
  %153 = load ptr, ptr %152, align 8
  invoke void %153(ptr noundef nonnull align 8 dereferenceable(232) %150, ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %154 unwind label %398

154:                                              ; preds = %148
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #5
  %155 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 3
  %156 = load ptr, ptr %155, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #5
  store i8 1, ptr %25, align 1, !tbaa !51
  %157 = load ptr, ptr %156, align 8, !tbaa !41
  %158 = getelementptr inbounds ptr, ptr %157, i64 14
  %159 = load ptr, ptr %158, align 8
  call void %159(ptr noundef nonnull align 8 dereferenceable(224) %156, ptr noundef nonnull align 1 dereferenceable(1) %25)
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #5
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %28)
  br label %160

160:                                              ; preds = %161, %154
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %28)
  br label %161

161:                                              ; preds = %160
  %162 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 6
  %163 = load ptr, ptr %162, align 8, !tbaa !59
  %164 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %163)
  %165 = load i8, ptr %164, align 1, !tbaa !51, !range !55, !noundef !56
  %166 = trunc i8 %165 to i1
  %167 = zext i1 %166 to i32
  %168 = icmp eq i32 %167, 0
  br i1 %168, label %160, label %169, !llvm.loop !60

169:                                              ; preds = %161
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.8)
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.25)
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
  %175 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 7
  %176 = load ptr, ptr %175, align 8, !tbaa !9
  %177 = load ptr, ptr %176, align 8, !tbaa !41
  %178 = getelementptr inbounds ptr, ptr %177, i64 5
  %179 = load ptr, ptr %178, align 8
  %180 = call noundef nonnull align 8 dereferenceable(24) ptr %179(ptr noundef nonnull align 8 dereferenceable(232) %176)
  %181 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %180)
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %174, i32 noundef %181)
  %183 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef @.str.27)
  %184 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 15
  %185 = load ptr, ptr %184, align 8, !tbaa !61
  %186 = load ptr, ptr %185, align 8, !tbaa !41
  %187 = getelementptr inbounds ptr, ptr %186, i64 5
  %188 = load ptr, ptr %187, align 8
  %189 = call noundef nonnull align 8 dereferenceable(24) ptr %188(ptr noundef nonnull align 8 dereferenceable(232) %185)
  %190 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %189)
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %183, i32 noundef %190)
  %192 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
  %194 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 8
  %195 = load ptr, ptr %194, align 8, !tbaa !43
  %196 = load ptr, ptr %195, align 8, !tbaa !41
  %197 = getelementptr inbounds ptr, ptr %196, i64 5
  %198 = load ptr, ptr %197, align 8
  %199 = call noundef nonnull align 8 dereferenceable(24) ptr %198(ptr noundef nonnull align 8 dereferenceable(232) %195)
  %200 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %199)
  %201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %193, i32 noundef %200)
  %202 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef @.str.27)
  %203 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 16
  %204 = load ptr, ptr %203, align 8, !tbaa !62
  %205 = load ptr, ptr %204, align 8, !tbaa !41
  %206 = getelementptr inbounds ptr, ptr %205, i64 5
  %207 = load ptr, ptr %206, align 8
  %208 = call noundef nonnull align 8 dereferenceable(24) ptr %207(ptr noundef nonnull align 8 dereferenceable(232) %204)
  %209 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %208)
  %210 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %202, i32 noundef %209)
  %211 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
  %213 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 9
  %214 = load ptr, ptr %213, align 8, !tbaa !44
  %215 = load ptr, ptr %214, align 8, !tbaa !41
  %216 = getelementptr inbounds ptr, ptr %215, i64 5
  %217 = load ptr, ptr %216, align 8
  %218 = call noundef nonnull align 8 dereferenceable(24) ptr %217(ptr noundef nonnull align 8 dereferenceable(232) %214)
  %219 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %218)
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %212, i32 noundef %219)
  %221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %220, ptr noundef @.str.27)
  %222 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 17
  %223 = load ptr, ptr %222, align 8, !tbaa !63
  %224 = load ptr, ptr %223, align 8, !tbaa !41
  %225 = getelementptr inbounds ptr, ptr %224, i64 5
  %226 = load ptr, ptr %225, align 8
  %227 = call noundef nonnull align 8 dereferenceable(24) ptr %226(ptr noundef nonnull align 8 dereferenceable(232) %223)
  %228 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %227)
  %229 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %221, i32 noundef %228)
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
  %232 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 10
  %233 = load ptr, ptr %232, align 8, !tbaa !45
  %234 = load ptr, ptr %233, align 8, !tbaa !41
  %235 = getelementptr inbounds ptr, ptr %234, i64 5
  %236 = load ptr, ptr %235, align 8
  %237 = call noundef nonnull align 8 dereferenceable(24) ptr %236(ptr noundef nonnull align 8 dereferenceable(232) %233)
  %238 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %237)
  %239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %231, i32 noundef %238)
  %240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %239, ptr noundef @.str.27)
  %241 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 18
  %242 = load ptr, ptr %241, align 8, !tbaa !64
  %243 = load ptr, ptr %242, align 8, !tbaa !41
  %244 = getelementptr inbounds ptr, ptr %243, i64 5
  %245 = load ptr, ptr %244, align 8
  %246 = call noundef nonnull align 8 dereferenceable(24) ptr %245(ptr noundef nonnull align 8 dereferenceable(232) %242)
  %247 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %246)
  %248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %240, i32 noundef %247)
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %248, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %250 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
  %251 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 11
  %252 = load ptr, ptr %251, align 8, !tbaa !46
  %253 = load ptr, ptr %252, align 8, !tbaa !41
  %254 = getelementptr inbounds ptr, ptr %253, i64 5
  %255 = load ptr, ptr %254, align 8
  %256 = call noundef nonnull align 8 dereferenceable(24) ptr %255(ptr noundef nonnull align 8 dereferenceable(232) %252)
  %257 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %256)
  %258 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %250, i32 noundef %257)
  %259 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef @.str.27)
  %260 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 19
  %261 = load ptr, ptr %260, align 8, !tbaa !65
  %262 = load ptr, ptr %261, align 8, !tbaa !41
  %263 = getelementptr inbounds ptr, ptr %262, i64 5
  %264 = load ptr, ptr %263, align 8
  %265 = call noundef nonnull align 8 dereferenceable(24) ptr %264(ptr noundef nonnull align 8 dereferenceable(232) %261)
  %266 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %265)
  %267 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %259, i32 noundef %266)
  %268 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %269 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
  %270 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 12
  %271 = load ptr, ptr %270, align 8, !tbaa !47
  %272 = load ptr, ptr %271, align 8, !tbaa !41
  %273 = getelementptr inbounds ptr, ptr %272, i64 5
  %274 = load ptr, ptr %273, align 8
  %275 = call noundef nonnull align 8 dereferenceable(24) ptr %274(ptr noundef nonnull align 8 dereferenceable(232) %271)
  %276 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %275)
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %269, i32 noundef %276)
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef @.str.27)
  %279 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 20
  %280 = load ptr, ptr %279, align 8, !tbaa !66
  %281 = load ptr, ptr %280, align 8, !tbaa !41
  %282 = getelementptr inbounds ptr, ptr %281, i64 5
  %283 = load ptr, ptr %282, align 8
  %284 = call noundef nonnull align 8 dereferenceable(24) ptr %283(ptr noundef nonnull align 8 dereferenceable(232) %280)
  %285 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %284)
  %286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %278, i32 noundef %285)
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %288 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
  %289 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 13
  %290 = load ptr, ptr %289, align 8, !tbaa !48
  %291 = load ptr, ptr %290, align 8, !tbaa !41
  %292 = getelementptr inbounds ptr, ptr %291, i64 5
  %293 = load ptr, ptr %292, align 8
  %294 = call noundef nonnull align 8 dereferenceable(24) ptr %293(ptr noundef nonnull align 8 dereferenceable(232) %290)
  %295 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %294)
  %296 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %288, i32 noundef %295)
  %297 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %296, ptr noundef @.str.27)
  %298 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 21
  %299 = load ptr, ptr %298, align 8, !tbaa !67
  %300 = load ptr, ptr %299, align 8, !tbaa !41
  %301 = getelementptr inbounds ptr, ptr %300, i64 5
  %302 = load ptr, ptr %301, align 8
  %303 = call noundef nonnull align 8 dereferenceable(24) ptr %302(ptr noundef nonnull align 8 dereferenceable(232) %299)
  %304 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %303)
  %305 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %297, i32 noundef %304)
  %306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
  %308 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 14
  %309 = load ptr, ptr %308, align 8, !tbaa !49
  %310 = load ptr, ptr %309, align 8, !tbaa !41
  %311 = getelementptr inbounds ptr, ptr %310, i64 5
  %312 = load ptr, ptr %311, align 8
  %313 = call noundef nonnull align 8 dereferenceable(24) ptr %312(ptr noundef nonnull align 8 dereferenceable(232) %309)
  %314 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %313)
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %307, i32 noundef %314)
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr noundef @.str.27)
  %317 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 22
  %318 = load ptr, ptr %317, align 8, !tbaa !68
  %319 = load ptr, ptr %318, align 8, !tbaa !41
  %320 = getelementptr inbounds ptr, ptr %319, i64 5
  %321 = load ptr, ptr %320, align 8
  %322 = call noundef nonnull align 8 dereferenceable(24) ptr %321(ptr noundef nonnull align 8 dereferenceable(232) %318)
  %323 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %322)
  %324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %316, i32 noundef %323)
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %324, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %326 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.8)
  %327 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %326, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %328 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 3
  %329 = load ptr, ptr %328, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #5
  store i8 0, ptr %26, align 1, !tbaa !51
  %330 = load ptr, ptr %329, align 8, !tbaa !41
  %331 = getelementptr inbounds ptr, ptr %330, i64 14
  %332 = load ptr, ptr %331, align 8
  call void %332(ptr noundef nonnull align 8 dereferenceable(224) %329, ptr noundef nonnull align 1 dereferenceable(1) %26)
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #5
  %333 = getelementptr inbounds %struct.STIM, ptr %28, i32 0, i32 4
  %334 = load ptr, ptr %333, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #5
  store i8 1, ptr %27, align 1, !tbaa !51
  %335 = load ptr, ptr %334, align 8, !tbaa !41
  %336 = getelementptr inbounds ptr, ptr %335, i64 14
  %337 = load ptr, ptr %336, align 8
  call void %337(ptr noundef nonnull align 8 dereferenceable(224) %334, ptr noundef nonnull align 1 dereferenceable(1) %27)
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %28)
  call void @_ZN7sc_core7sc_stopEv()
  ret void

338:                                              ; preds = %1
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %4, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #5
  br label %402

342:                                              ; preds = %34
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %4, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #5
  br label %402

346:                                              ; preds = %40
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %4, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #5
  br label %402

350:                                              ; preds = %46
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %4, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #5
  br label %402

354:                                              ; preds = %52
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %4, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #5
  br label %402

358:                                              ; preds = %58
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %4, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #5
  br label %402

362:                                              ; preds = %64
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %4, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #5
  br label %402

366:                                              ; preds = %70
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %4, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #5
  br label %402

370:                                              ; preds = %106
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %4, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #5
  br label %402

374:                                              ; preds = %112
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %4, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #5
  br label %402

378:                                              ; preds = %118
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %4, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #5
  br label %402

382:                                              ; preds = %124
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %4, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #5
  br label %402

386:                                              ; preds = %130
  %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 @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #5
  br label %402

390:                                              ; preds = %136
  %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 @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #5
  br label %402

394:                                              ; preds = %142
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %4, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #5
  br label %402

398:                                              ; preds = %148
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %4, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %5, align 4
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #5
  br label %402

402:                                              ; preds = %398, %394, %390, %386, %382, %378, %374, %370, %366, %362, %358, %354, %350, %346, %342, %338
  %403 = load ptr, ptr %4, align 8
  %404 = load i32, ptr %5, align 4
  %405 = insertvalue { ptr, i32 } poison, ptr %403, 0
  %406 = insertvalue { ptr, i32 } %405, i32 %404, 1
  resume { ptr, i32 } %406
}

; 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_module4waitEi(ptr noundef nonnull align 8 dereferenceable(232), i32 noundef) #1 align 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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #3

; 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

declare void @_ZN7sc_core7sc_stopEv() #3

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 456}
!10 = !{!"_ZTS4STIM", !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 = !{!42, !42, i64 0}
!42 = !{!"vtable pointer", !8, i64 0}
!43 = !{!10, !6, i64 464}
!44 = !{!10, !6, i64 472}
!45 = !{!10, !6, i64 480}
!46 = !{!10, !6, i64 488}
!47 = !{!10, !6, i64 496}
!48 = !{!10, !6, i64 504}
!49 = !{!10, !6, i64 512}
!50 = !{!10, !6, i64 424}
!51 = !{!31, !31, i64 0}
!52 = !{!10, !6, i64 432}
!53 = !{!10, !6, i64 416}
!54 = !{!10, !6, i64 440}
!55 = !{i8 0, i8 2}
!56 = !{}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = !{!10, !6, i64 448}
!60 = distinct !{!60, !58}
!61 = !{!10, !6, i64 520}
!62 = !{!10, !6, i64 528}
!63 = !{!10, !6, i64 536}
!64 = !{!10, !6, i64 544}
!65 = !{!10, !6, i64 552}
!66 = !{!10, !6, i64 560}
!67 = !{!10, !6, i64 568}
!68 = !{!10, !6, i64 576}


; 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_ostream" = type { ptr, %"class.std::basic_ios" }
%"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.std::locale" = type { ptr }
%"class.sc_dt::sc_bv" = type { %"class.sc_dt::sc_bv_base" }
%"class.sc_dt::sc_bv_base" = type { %"class.sc_dt::sc_proxy", i32, i32, ptr }
%"class.sc_dt::sc_proxy" = type { ptr }

@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.25 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [7 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 uwtable
define dso_local void @_ZN4STIM5entryEv(ptr noundef nonnull align 8 dereferenceable(584) %0) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.sc_dt::sc_bv", align 8
  %3 = alloca %"class.sc_dt::sc_bv", align 8
  %4 = alloca %"class.sc_dt::sc_bv", align 8
  %5 = alloca %"class.sc_dt::sc_bv", align 8
  %6 = alloca %"class.sc_dt::sc_bv", align 8
  %7 = alloca %"class.sc_dt::sc_bv", align 8
  %8 = alloca %"class.sc_dt::sc_bv", align 8
  %9 = alloca %"class.sc_dt::sc_bv", align 8
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca i8, align 1
  %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 %"class.sc_dt::sc_bv", align 8
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca i8, align 1
  %25 = getelementptr inbounds i8, ptr %0, i64 456
  %26 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %2, i32 noundef 0)
  %27 = load ptr, ptr %26, align 8, !tbaa !40
  %28 = getelementptr inbounds i8, ptr %27, i64 72
  %29 = load ptr, ptr %28, align 8
  invoke void %29(ptr noundef nonnull align 8 dereferenceable(232) %26, ptr noundef nonnull align 8 dereferenceable(24) %2)
          to label %30 unwind label %308

30:                                               ; preds = %1
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #5
  %31 = getelementptr inbounds i8, ptr %0, i64 464
  %32 = load ptr, ptr %31, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 0)
  %33 = load ptr, ptr %32, align 8, !tbaa !40
  %34 = getelementptr inbounds i8, ptr %33, i64 72
  %35 = load ptr, ptr %34, align 8
  invoke void %35(ptr noundef nonnull align 8 dereferenceable(232) %32, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %36 unwind label %310

36:                                               ; preds = %30
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #5
  %37 = getelementptr inbounds i8, ptr %0, i64 472
  %38 = load ptr, ptr %37, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef 0)
  %39 = load ptr, ptr %38, align 8, !tbaa !40
  %40 = getelementptr inbounds i8, ptr %39, i64 72
  %41 = load ptr, ptr %40, align 8
  invoke void %41(ptr noundef nonnull align 8 dereferenceable(232) %38, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %42 unwind label %312

42:                                               ; preds = %36
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #5
  %43 = getelementptr inbounds i8, ptr %0, i64 480
  %44 = load ptr, ptr %43, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %5, i32 noundef 0)
  %45 = load ptr, ptr %44, align 8, !tbaa !40
  %46 = getelementptr inbounds i8, ptr %45, i64 72
  %47 = load ptr, ptr %46, align 8
  invoke void %47(ptr noundef nonnull align 8 dereferenceable(232) %44, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %48 unwind label %314

48:                                               ; preds = %42
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #5
  %49 = getelementptr inbounds i8, ptr %0, i64 488
  %50 = load ptr, ptr %49, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %6, i32 noundef 0)
  %51 = load ptr, ptr %50, align 8, !tbaa !40
  %52 = getelementptr inbounds i8, ptr %51, i64 72
  %53 = load ptr, ptr %52, align 8
  invoke void %53(ptr noundef nonnull align 8 dereferenceable(232) %50, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %54 unwind label %316

54:                                               ; preds = %48
  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
  %55 = getelementptr inbounds i8, ptr %0, i64 496
  %56 = load ptr, ptr %55, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef 0)
  %57 = load ptr, ptr %56, align 8, !tbaa !40
  %58 = getelementptr inbounds i8, ptr %57, i64 72
  %59 = load ptr, ptr %58, align 8
  invoke void %59(ptr noundef nonnull align 8 dereferenceable(232) %56, ptr noundef nonnull align 8 dereferenceable(24) %7)
          to label %60 unwind label %318

60:                                               ; preds = %54
  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
  %61 = getelementptr inbounds i8, ptr %0, i64 504
  %62 = load ptr, ptr %61, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %8, i32 noundef 0)
  %63 = load ptr, ptr %62, align 8, !tbaa !40
  %64 = getelementptr inbounds i8, ptr %63, i64 72
  %65 = load ptr, ptr %64, align 8
  invoke void %65(ptr noundef nonnull align 8 dereferenceable(232) %62, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %66 unwind label %320

66:                                               ; preds = %60
  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
  %67 = getelementptr inbounds i8, ptr %0, i64 512
  %68 = load ptr, ptr %67, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %9, i32 noundef 0)
  %69 = load ptr, ptr %68, align 8, !tbaa !40
  %70 = getelementptr inbounds i8, ptr %69, i64 72
  %71 = load ptr, ptr %70, align 8
  invoke void %71(ptr noundef nonnull align 8 dereferenceable(232) %68, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %72 unwind label %322

72:                                               ; preds = %66
  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
  %73 = getelementptr inbounds i8, ptr %0, i64 424
  %74 = load ptr, ptr %73, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #5
  store i8 0, ptr %10, align 1, !tbaa !50
  %75 = load ptr, ptr %74, align 8, !tbaa !40
  %76 = getelementptr inbounds i8, ptr %75, i64 112
  %77 = load ptr, ptr %76, align 8
  call void %77(ptr noundef nonnull align 8 dereferenceable(224) %74, ptr noundef nonnull align 1 dereferenceable(1) %10)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  %78 = getelementptr inbounds i8, ptr %0, i64 432
  %79 = load ptr, ptr %78, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #5
  store i8 0, ptr %11, align 1, !tbaa !50
  %80 = load ptr, ptr %79, align 8, !tbaa !40
  %81 = getelementptr inbounds i8, ptr %80, i64 112
  %82 = load ptr, ptr %81, align 8
  call void %82(ptr noundef nonnull align 8 dereferenceable(224) %79, ptr noundef nonnull align 1 dereferenceable(1) %11)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #5
  %83 = getelementptr inbounds i8, ptr %0, i64 416
  %84 = load ptr, ptr %83, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #5
  store i8 1, ptr %12, align 1, !tbaa !50
  %85 = load ptr, ptr %84, align 8, !tbaa !40
  %86 = getelementptr inbounds i8, ptr %85, i64 112
  %87 = load ptr, ptr %86, align 8
  call void %87(ptr noundef nonnull align 8 dereferenceable(224) %84, ptr noundef nonnull align 1 dereferenceable(1) %12)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #5
  call void @_ZN7sc_core9sc_module4waitEi(ptr noundef nonnull align 8 dereferenceable(232) %0, i32 noundef 2)
  %88 = load ptr, ptr %83, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #5
  store i8 0, ptr %13, align 1, !tbaa !50
  %89 = load ptr, ptr %88, align 8, !tbaa !40
  %90 = getelementptr inbounds i8, ptr %89, i64 112
  %91 = load ptr, ptr %90, align 8
  call void %91(ptr noundef nonnull align 8 dereferenceable(224) %88, ptr noundef nonnull align 1 dereferenceable(1) %13)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #5
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
  %92 = getelementptr inbounds i8, ptr %0, i64 440
  br label %93

93:                                               ; preds = %93, %72
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
  %94 = load ptr, ptr %92, align 8, !tbaa !53
  %95 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %94)
  %96 = load i8, ptr %95, align 1, !tbaa !50, !range !54, !noundef !55
  %97 = icmp eq i8 %96, 0
  br i1 %97, label %93, label %98, !llvm.loop !56

98:                                               ; preds = %93
  %99 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %14, i32 noundef -76)
  %100 = load ptr, ptr %99, align 8, !tbaa !40
  %101 = getelementptr inbounds i8, ptr %100, i64 72
  %102 = load ptr, ptr %101, align 8
  invoke void %102(ptr noundef nonnull align 8 dereferenceable(232) %99, ptr noundef nonnull align 8 dereferenceable(24) %14)
          to label %103 unwind label %324

103:                                              ; preds = %98
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #5
  %104 = load ptr, ptr %31, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %15, i32 noundef 1)
  %105 = load ptr, ptr %104, align 8, !tbaa !40
  %106 = getelementptr inbounds i8, ptr %105, i64 72
  %107 = load ptr, ptr %106, align 8
  invoke void %107(ptr noundef nonnull align 8 dereferenceable(232) %104, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %108 unwind label %326

108:                                              ; preds = %103
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #5
  %109 = load ptr, ptr %37, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %16, i32 noundef 12)
  %110 = load ptr, ptr %109, align 8, !tbaa !40
  %111 = getelementptr inbounds i8, ptr %110, i64 72
  %112 = load ptr, ptr %111, align 8
  invoke void %112(ptr noundef nonnull align 8 dereferenceable(232) %109, ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %113 unwind label %328

113:                                              ; preds = %108
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #5
  %114 = load ptr, ptr %43, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %17, i32 noundef 85)
  %115 = load ptr, ptr %114, align 8, !tbaa !40
  %116 = getelementptr inbounds i8, ptr %115, i64 72
  %117 = load ptr, ptr %116, align 8
  invoke void %117(ptr noundef nonnull align 8 dereferenceable(232) %114, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %118 unwind label %330

118:                                              ; preds = %113
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #5
  %119 = load ptr, ptr %49, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %18, i32 noundef 15)
  %120 = load ptr, ptr %119, align 8, !tbaa !40
  %121 = getelementptr inbounds i8, ptr %120, i64 72
  %122 = load ptr, ptr %121, align 8
  invoke void %122(ptr noundef nonnull align 8 dereferenceable(232) %119, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %123 unwind label %332

123:                                              ; preds = %118
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #5
  %124 = load ptr, ptr %55, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %19, i32 noundef 103)
  %125 = load ptr, ptr %124, align 8, !tbaa !40
  %126 = getelementptr inbounds i8, ptr %125, i64 72
  %127 = load ptr, ptr %126, align 8
  invoke void %127(ptr noundef nonnull align 8 dereferenceable(232) %124, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %128 unwind label %334

128:                                              ; preds = %123
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #5
  %129 = load ptr, ptr %61, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %20, i32 noundef -2)
  %130 = load ptr, ptr %129, align 8, !tbaa !40
  %131 = getelementptr inbounds i8, ptr %130, i64 72
  %132 = load ptr, ptr %131, align 8
  invoke void %132(ptr noundef nonnull align 8 dereferenceable(232) %129, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %133 unwind label %336

133:                                              ; preds = %128
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #5
  %134 = load ptr, ptr %67, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #5
  call void @_ZN5sc_dt5sc_bvILi8EEC2Ei(ptr noundef nonnull align 8 dereferenceable(24) %21, i32 noundef 3)
  %135 = load ptr, ptr %134, align 8, !tbaa !40
  %136 = getelementptr inbounds i8, ptr %135, i64 72
  %137 = load ptr, ptr %136, align 8
  invoke void %137(ptr noundef nonnull align 8 dereferenceable(232) %134, ptr noundef nonnull align 8 dereferenceable(24) %21)
          to label %138 unwind label %338

138:                                              ; preds = %133
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #5
  %139 = load ptr, ptr %73, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #5
  store i8 1, ptr %22, align 1, !tbaa !50
  %140 = load ptr, ptr %139, align 8, !tbaa !40
  %141 = getelementptr inbounds i8, ptr %140, i64 112
  %142 = load ptr, ptr %141, align 8
  call void %142(ptr noundef nonnull align 8 dereferenceable(224) %139, ptr noundef nonnull align 1 dereferenceable(1) %22)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #5
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
  %143 = getelementptr inbounds i8, ptr %0, i64 448
  br label %144

144:                                              ; preds = %144, %138
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
  %145 = load ptr, ptr %143, align 8, !tbaa !58
  %146 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEcvRKbEv(ptr noundef nonnull align 8 dereferenceable(224) %145)
  %147 = load i8, ptr %146, align 1, !tbaa !50, !range !54, !noundef !55
  %148 = icmp eq i8 %147, 0
  br i1 %148, label %144, label %149, !llvm.loop !59

149:                                              ; preds = %144
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.8)
  %151 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %152 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.25)
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
  %155 = load ptr, ptr %25, align 8, !tbaa !5
  %156 = load ptr, ptr %155, align 8, !tbaa !40
  %157 = getelementptr inbounds i8, ptr %156, i64 40
  %158 = load ptr, ptr %157, align 8
  %159 = call noundef nonnull align 8 dereferenceable(24) ptr %158(ptr noundef nonnull align 8 dereferenceable(232) %155)
  %160 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %159)
  %161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %154, i32 noundef %160)
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %161, ptr noundef nonnull @.str.27)
  %163 = getelementptr inbounds i8, ptr %0, i64 520
  %164 = load ptr, ptr %163, align 8, !tbaa !60
  %165 = load ptr, ptr %164, align 8, !tbaa !40
  %166 = getelementptr inbounds i8, ptr %165, i64 40
  %167 = load ptr, ptr %166, align 8
  %168 = call noundef nonnull align 8 dereferenceable(24) ptr %167(ptr noundef nonnull align 8 dereferenceable(232) %164)
  %169 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %168)
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %162, i32 noundef %169)
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
  %173 = load ptr, ptr %31, align 8, !tbaa !42
  %174 = load ptr, ptr %173, align 8, !tbaa !40
  %175 = getelementptr inbounds i8, ptr %174, i64 40
  %176 = load ptr, ptr %175, align 8
  %177 = call noundef nonnull align 8 dereferenceable(24) ptr %176(ptr noundef nonnull align 8 dereferenceable(232) %173)
  %178 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %177)
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %172, i32 noundef %178)
  %180 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %179, ptr noundef nonnull @.str.27)
  %181 = getelementptr inbounds i8, ptr %0, i64 528
  %182 = load ptr, ptr %181, align 8, !tbaa !61
  %183 = load ptr, ptr %182, align 8, !tbaa !40
  %184 = getelementptr inbounds i8, ptr %183, i64 40
  %185 = load ptr, ptr %184, align 8
  %186 = call noundef nonnull align 8 dereferenceable(24) ptr %185(ptr noundef nonnull align 8 dereferenceable(232) %182)
  %187 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %186)
  %188 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %180, i32 noundef %187)
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
  %191 = load ptr, ptr %37, align 8, !tbaa !43
  %192 = load ptr, ptr %191, align 8, !tbaa !40
  %193 = getelementptr inbounds i8, ptr %192, i64 40
  %194 = load ptr, ptr %193, align 8
  %195 = call noundef nonnull align 8 dereferenceable(24) ptr %194(ptr noundef nonnull align 8 dereferenceable(232) %191)
  %196 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %195)
  %197 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %190, i32 noundef %196)
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull @.str.27)
  %199 = getelementptr inbounds i8, ptr %0, i64 536
  %200 = load ptr, ptr %199, align 8, !tbaa !62
  %201 = load ptr, ptr %200, align 8, !tbaa !40
  %202 = getelementptr inbounds i8, ptr %201, i64 40
  %203 = load ptr, ptr %202, align 8
  %204 = call noundef nonnull align 8 dereferenceable(24) ptr %203(ptr noundef nonnull align 8 dereferenceable(232) %200)
  %205 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %204)
  %206 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %198, i32 noundef %205)
  %207 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %206, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
  %209 = load ptr, ptr %43, align 8, !tbaa !44
  %210 = load ptr, ptr %209, align 8, !tbaa !40
  %211 = getelementptr inbounds i8, ptr %210, i64 40
  %212 = load ptr, ptr %211, align 8
  %213 = call noundef nonnull align 8 dereferenceable(24) ptr %212(ptr noundef nonnull align 8 dereferenceable(232) %209)
  %214 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %213)
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %208, i32 noundef %214)
  %216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull @.str.27)
  %217 = getelementptr inbounds i8, ptr %0, i64 544
  %218 = load ptr, ptr %217, align 8, !tbaa !63
  %219 = load ptr, ptr %218, align 8, !tbaa !40
  %220 = getelementptr inbounds i8, ptr %219, i64 40
  %221 = load ptr, ptr %220, align 8
  %222 = call noundef nonnull align 8 dereferenceable(24) ptr %221(ptr noundef nonnull align 8 dereferenceable(232) %218)
  %223 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %222)
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %216, i32 noundef %223)
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %224, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
  %227 = load ptr, ptr %49, align 8, !tbaa !45
  %228 = load ptr, ptr %227, align 8, !tbaa !40
  %229 = getelementptr inbounds i8, ptr %228, i64 40
  %230 = load ptr, ptr %229, align 8
  %231 = call noundef nonnull align 8 dereferenceable(24) ptr %230(ptr noundef nonnull align 8 dereferenceable(232) %227)
  %232 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %231)
  %233 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %226, i32 noundef %232)
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %233, ptr noundef nonnull @.str.27)
  %235 = getelementptr inbounds i8, ptr %0, i64 552
  %236 = load ptr, ptr %235, align 8, !tbaa !64
  %237 = load ptr, ptr %236, align 8, !tbaa !40
  %238 = getelementptr inbounds i8, ptr %237, i64 40
  %239 = load ptr, ptr %238, align 8
  %240 = call noundef nonnull align 8 dereferenceable(24) ptr %239(ptr noundef nonnull align 8 dereferenceable(232) %236)
  %241 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %240)
  %242 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %234, i32 noundef %241)
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
  %245 = load ptr, ptr %55, align 8, !tbaa !46
  %246 = load ptr, ptr %245, align 8, !tbaa !40
  %247 = getelementptr inbounds i8, ptr %246, i64 40
  %248 = load ptr, ptr %247, align 8
  %249 = call noundef nonnull align 8 dereferenceable(24) ptr %248(ptr noundef nonnull align 8 dereferenceable(232) %245)
  %250 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %249)
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %244, i32 noundef %250)
  %252 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %251, ptr noundef nonnull @.str.27)
  %253 = getelementptr inbounds i8, ptr %0, i64 560
  %254 = load ptr, ptr %253, align 8, !tbaa !65
  %255 = load ptr, ptr %254, align 8, !tbaa !40
  %256 = getelementptr inbounds i8, ptr %255, i64 40
  %257 = load ptr, ptr %256, align 8
  %258 = call noundef nonnull align 8 dereferenceable(24) ptr %257(ptr noundef nonnull align 8 dereferenceable(232) %254)
  %259 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %258)
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %252, i32 noundef %259)
  %261 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %260, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
  %263 = load ptr, ptr %61, align 8, !tbaa !47
  %264 = load ptr, ptr %263, align 8, !tbaa !40
  %265 = getelementptr inbounds i8, ptr %264, i64 40
  %266 = load ptr, ptr %265, align 8
  %267 = call noundef nonnull align 8 dereferenceable(24) ptr %266(ptr noundef nonnull align 8 dereferenceable(232) %263)
  %268 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %267)
  %269 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %262, i32 noundef %268)
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %269, ptr noundef nonnull @.str.27)
  %271 = getelementptr inbounds i8, ptr %0, i64 568
  %272 = load ptr, ptr %271, align 8, !tbaa !66
  %273 = load ptr, ptr %272, align 8, !tbaa !40
  %274 = getelementptr inbounds i8, ptr %273, i64 40
  %275 = load ptr, ptr %274, align 8
  %276 = call noundef nonnull align 8 dereferenceable(24) ptr %275(ptr noundef nonnull align 8 dereferenceable(232) %272)
  %277 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %276)
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %270, i32 noundef %277)
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %278, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %280 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
  %281 = load ptr, ptr %67, align 8, !tbaa !48
  %282 = load ptr, ptr %281, align 8, !tbaa !40
  %283 = getelementptr inbounds i8, ptr %282, i64 40
  %284 = load ptr, ptr %283, align 8
  %285 = call noundef nonnull align 8 dereferenceable(24) ptr %284(ptr noundef nonnull align 8 dereferenceable(232) %281)
  %286 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %285)
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %280, i32 noundef %286)
  %288 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %287, ptr noundef nonnull @.str.27)
  %289 = getelementptr inbounds i8, ptr %0, i64 576
  %290 = load ptr, ptr %289, align 8, !tbaa !67
  %291 = load ptr, ptr %290, align 8, !tbaa !40
  %292 = getelementptr inbounds i8, ptr %291, i64 40
  %293 = load ptr, ptr %292, align 8
  %294 = call noundef nonnull align 8 dereferenceable(24) ptr %293(ptr noundef nonnull align 8 dereferenceable(232) %290)
  %295 = call noundef i32 @_ZNK5sc_dt8sc_proxyINS_10sc_bv_baseEE6to_intEv(ptr noundef nonnull align 8 dereferenceable(8) %294)
  %296 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %288, i32 noundef %295)
  %297 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %296, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.8)
  %299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %300 = load ptr, ptr %73, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #5
  store i8 0, ptr %23, align 1, !tbaa !50
  %301 = load ptr, ptr %300, align 8, !tbaa !40
  %302 = getelementptr inbounds i8, ptr %301, i64 112
  %303 = load ptr, ptr %302, align 8
  call void %303(ptr noundef nonnull align 8 dereferenceable(224) %300, ptr noundef nonnull align 1 dereferenceable(1) %23)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #5
  %304 = load ptr, ptr %78, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #5
  store i8 1, ptr %24, align 1, !tbaa !50
  %305 = load ptr, ptr %304, align 8, !tbaa !40
  %306 = getelementptr inbounds i8, ptr %305, i64 112
  %307 = load ptr, ptr %306, align 8
  call void %307(ptr noundef nonnull align 8 dereferenceable(224) %304, ptr noundef nonnull align 1 dereferenceable(1) %24)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #5
  call void @_ZN7sc_core9sc_module4waitEv(ptr noundef nonnull align 8 dereferenceable(232) %0)
  call void @_ZN7sc_core7sc_stopEv()
  ret void

308:                                              ; preds = %1
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #5
  br label %340

310:                                              ; preds = %30
  %311 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #5
  br label %340

312:                                              ; preds = %36
  %313 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #5
  br label %340

314:                                              ; preds = %42
  %315 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #5
  br label %340

316:                                              ; preds = %48
  %317 = landingpad { ptr, i32 }
          cleanup
  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
  br label %340

318:                                              ; preds = %54
  %319 = landingpad { ptr, i32 }
          cleanup
  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
  br label %340

320:                                              ; preds = %60
  %321 = landingpad { ptr, i32 }
          cleanup
  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
  br label %340

322:                                              ; preds = %66
  %323 = landingpad { ptr, i32 }
          cleanup
  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
  br label %340

324:                                              ; preds = %98
  %325 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #5
  br label %340

326:                                              ; preds = %103
  %327 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #5
  br label %340

328:                                              ; preds = %108
  %329 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #5
  br label %340

330:                                              ; preds = %113
  %331 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #5
  br label %340

332:                                              ; preds = %118
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #5
  br label %340

334:                                              ; preds = %123
  %335 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #5
  br label %340

336:                                              ; preds = %128
  %337 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #5
  br label %340

338:                                              ; preds = %133
  %339 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5sc_dt10sc_bv_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #5
  br label %340

340:                                              ; preds = %338, %336, %334, %332, %330, %328, %326, %324, %322, %320, %318, %316, %314, %312, %310, %308
  %.pn = phi { ptr, i32 } [ %339, %338 ], [ %337, %336 ], [ %335, %334 ], [ %333, %332 ], [ %331, %330 ], [ %329, %328 ], [ %327, %326 ], [ %325, %324 ], [ %323, %322 ], [ %321, %320 ], [ %319, %318 ], [ %317, %316 ], [ %315, %314 ], [ %313, %312 ], [ %311, %310 ], [ %309, %308 ]
  resume { ptr, i32 } %.pn
}

; 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_module4waitEi(ptr noundef nonnull align 8 dereferenceable(232), i32 noundef) local_unnamed_addr #1 align 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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #3

; 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

declare void @_ZN7sc_core7sc_stopEv() local_unnamed_addr #3

; 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 = { "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 456}
!6 = !{!"_ZTS4STIM", !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 = !{!41, !41, i64 0}
!41 = !{!"vtable pointer", !11, i64 0}
!42 = !{!6, !9, i64 464}
!43 = !{!6, !9, i64 472}
!44 = !{!6, !9, i64 480}
!45 = !{!6, !9, i64 488}
!46 = !{!6, !9, i64 496}
!47 = !{!6, !9, i64 504}
!48 = !{!6, !9, i64 512}
!49 = !{!6, !9, i64 424}
!50 = !{!30, !30, i64 0}
!51 = !{!6, !9, i64 432}
!52 = !{!6, !9, i64 416}
!53 = !{!6, !9, i64 440}
!54 = !{i8 0, i8 2}
!55 = !{}
!56 = distinct !{!56, !57}
!57 = !{!"llvm.loop.mustprogress"}
!58 = !{!6, !9, i64 448}
!59 = distinct !{!59, !57}
!60 = !{!6, !9, i64 520}
!61 = !{!6, !9, i64 528}
!62 = !{!6, !9, i64 536}
!63 = !{!6, !9, i64 544}
!64 = !{!6, !9, i64 552}
!65 = !{!6, !9, i64 560}
!66 = !{!6, !9, i64 568}
!67 = !{!6, !9, i64 576}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,SROAPass,SimplifyCFGPass