; LLVM IR from thepowersgang/mrustc :: src/mir/mir.ll (ZN3MIRlsERSoRKNS_9StatementE)

; 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.__gnu_cxx::__normal_iterator.91" = type { ptr }
%class.FmtEscaped = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.92" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.98" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.99" = type { ptr }
%"struct.MIR::Statement::Data_Assign" = type { %"struct.MIR::LValue", %"class.MIR::RValue" }
%"struct.MIR::LValue" = type { %"class.MIR::LValue::Storage", %"class.std::vector.16" }
%"class.MIR::LValue::Storage" = type { i64 }
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<MIR::LValue::Wrapper, std::allocator<MIR::LValue::Wrapper>>::_Vector_impl" }
%"struct.std::_Vector_base<MIR::LValue::Wrapper, std::allocator<MIR::LValue::Wrapper>>::_Vector_impl" = type { %"struct.std::_Vector_base<MIR::LValue::Wrapper, std::allocator<MIR::LValue::Wrapper>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MIR::LValue::Wrapper, std::allocator<MIR::LValue::Wrapper>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.MIR::RValue" = type { i32, %"union.MIR::RValue::DataUnion" }
%"union.MIR::RValue::DataUnion" = type { %"struct.MIR::RValue::Data_BinOp" }
%"struct.MIR::RValue::Data_BinOp" = type { %"class.MIR::Param", i32, %"class.MIR::Param" }
%"class.MIR::Param" = type { i32, %"union.MIR::Param::DataUnion" }
%"union.MIR::Param::DataUnion" = type { %"struct.MIR::Param::Data_Borrow" }
%"struct.MIR::Param::Data_Borrow" = type { i32, %"struct.MIR::LValue" }
%"struct.MIR::Statement::Data_Asm" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.76", %"class.std::vector.76", %"class.std::vector.49", %"class.std::vector.49" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.76" = type { %"struct.std::_Vector_base.77" }
%"struct.std::_Vector_base.77" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, MIR::LValue>, std::allocator<std::pair<std::__cxx11::basic_string<char>, MIR::LValue>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, MIR::LValue>, std::allocator<std::pair<std::__cxx11::basic_string<char>, MIR::LValue>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, MIR::LValue>, std::allocator<std::pair<std::__cxx11::basic_string<char>, MIR::LValue>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, MIR::LValue>, std::allocator<std::pair<std::__cxx11::basic_string<char>, MIR::LValue>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.49" = type { %"struct.std::_Vector_base.50" }
%"struct.std::_Vector_base.50" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { %"class.std::__cxx11::basic_string", %"struct.MIR::LValue" }
%"struct.MIR::Statement::Data_Asm2" = type { %"struct.AsmCommon::Options", %"class.std::vector.81", %"class.std::vector.86" }
%"struct.AsmCommon::Options" = type { i8, [3 x i8] }
%"class.std::vector.81" = type { %"struct.std::_Vector_base.82" }
%"struct.std::_Vector_base.82" = type { %"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl" }
%"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl" = type { %"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.86" = type { %"struct.std::_Vector_base.87" }
%"struct.std::_Vector_base.87" = type { %"struct.std::_Vector_base<MIR::AsmParam, std::allocator<MIR::AsmParam>>::_Vector_impl" }
%"struct.std::_Vector_base<MIR::AsmParam, std::allocator<MIR::AsmParam>>::_Vector_impl" = type { %"struct.std::_Vector_base<MIR::AsmParam, std::allocator<MIR::AsmParam>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MIR::AsmParam, std::allocator<MIR::AsmParam>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.MIR::AsmParam::Data_Reg" = type { i32, %"class.AsmCommon::RegisterSpec", %"class.std::unique_ptr.60", %"class.std::unique_ptr.68" }
%"class.AsmCommon::RegisterSpec" = type { i32, %"union.AsmCommon::RegisterSpec::DataUnion" }
%"union.AsmCommon::RegisterSpec::DataUnion" = type { %"class.std::__cxx11::basic_string" }
%"class.std::unique_ptr.60" = type { %"struct.std::__uniq_ptr_data.61" }
%"struct.std::__uniq_ptr_data.61" = type { %"class.std::__uniq_ptr_impl.62" }
%"class.std::__uniq_ptr_impl.62" = type { %"class.std::tuple.63" }
%"class.std::tuple.63" = type { %"struct.std::_Tuple_impl.64" }
%"struct.std::_Tuple_impl.64" = type { %"struct.std::_Head_base.67" }
%"struct.std::_Head_base.67" = type { ptr }
%"class.std::unique_ptr.68" = type { %"struct.std::__uniq_ptr_data.69" }
%"struct.std::__uniq_ptr_data.69" = type { %"class.std::__uniq_ptr_impl.70" }
%"class.std::__uniq_ptr_impl.70" = type { %"class.std::tuple.71" }
%"class.std::tuple.71" = type { %"struct.std::_Tuple_impl.72" }
%"struct.std::_Tuple_impl.72" = type { %"struct.std::_Head_base.75" }
%"struct.std::_Head_base.75" = type { ptr }
%"struct.MIR::Statement::Data_SetDropFlag" = type { i32, i8, i32 }
%"struct.MIR::Statement::Data_Drop" = type <{ i32, [4 x i8], %"struct.MIR::LValue", i32, [4 x i8] }>
%"struct.MIR::Statement::Data_ScopeEnd" = type { %"class.std::vector.34" }
%"class.std::vector.34" = type { %"struct.std::_Vector_base.35" }
%"struct.std::_Vector_base.35" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [4 x i8], align 1
@__PRETTY_FUNCTION__._ZN3MIRlsERSoRKNS_9StatementE = external hidden unnamed_addr constant [69 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [2 x i8], align 1

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #1

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

; 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) #3

; 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 noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #0 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK10FmtEscaped(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) #4

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(88)) #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3MIR8AsmParam3tagEv(ptr noundef nonnull align 8 dereferenceable(96)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK3MIR8AsmParam8as_ConstEv(ptr noundef nonnull align 8 dereferenceable(96)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZNK3MIR8AsmParam6as_SymEv(ptr noundef nonnull align 8 dereferenceable(96)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZNK3MIR8AsmParam6as_RegEv(ptr noundef nonnull align 8 dereferenceable(96)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt10unique_ptrIN3MIR5ParamESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8)) #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt10unique_ptrIN3MIR6LValueESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8)) #5 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_9StatementE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(152) %1) #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i8, align 1
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i8, align 1
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %15 = alloca ptr, align 8
  %16 = alloca %class.FmtEscaped, align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %20 = alloca ptr, align 8
  %21 = alloca i8, align 1
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.92", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.92", align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.98", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.98", align 8
  %30 = alloca ptr, align 8
  %31 = alloca i8, align 1
  %32 = alloca ptr, align 8
  %33 = alloca i8, align 1
  %34 = alloca ptr, align 8
  %35 = alloca i8, align 1
  %36 = alloca ptr, align 8
  %37 = alloca i8, align 1
  %38 = alloca ptr, align 8
  %39 = alloca i8, align 1
  %40 = alloca ptr, align 8
  %41 = alloca i8, align 1
  %42 = alloca ptr, align 8
  %43 = alloca i8, align 1
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.99", align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator.99", align 8
  %48 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %5) #7
  store i8 1, ptr %5, align 1, !tbaa !9
  br label %49

49:                                               ; preds = %516, %2
  %50 = load i8, ptr %5, align 1, !tbaa !9, !range !11, !noundef !12
  %51 = trunc i8 %50 to i1
  br i1 %51, label %53, label %52

52:                                               ; preds = %49
  store i32 2, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #7
  br label %517

53:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %54 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %54, ptr %7, align 8, !tbaa !5
  br label %55

55:                                               ; preds = %514, %53
  %56 = load i8, ptr %5, align 1, !tbaa !9, !range !11, !noundef !12
  %57 = trunc i8 %56 to i1
  br i1 %57, label %59, label %58

58:                                               ; preds = %55
  store i32 5, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  br label %515

59:                                               ; preds = %55
  %60 = load ptr, ptr %7, align 8, !tbaa !5
  %61 = call noundef i32 @_ZNK3MIR9Statement3tagEv(ptr noundef nonnull align 8 dereferenceable(152) %60)
  switch i32 %61, label %513 [
    i32 0, label %62
    i32 1, label %63
    i32 2, label %89
    i32 3, label %177
    i32 4, label %373
    i32 5, label %424
    i32 6, label %469
  ]

62:                                               ; preds = %59
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 580, ptr noundef @__PRETTY_FUNCTION__._ZN3MIRlsERSoRKNS_9StatementE) #8
  unreachable

63:                                               ; preds = %59
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #7
  store i8 1, ptr %8, align 1, !tbaa !9
  br label %64

64:                                               ; preds = %87, %63
  %65 = load i8, ptr %8, align 1, !tbaa !9, !range !11, !noundef !12
  %66 = trunc i8 %65 to i1
  br i1 %66, label %68, label %67

67:                                               ; preds = %64
  store i32 9, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #7
  br label %88

68:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %69 = load ptr, ptr %7, align 8, !tbaa !5
  %70 = call noundef nonnull align 8 dereferenceable(144) ptr @_ZNK3MIR9Statement9as_AssignEv(ptr noundef nonnull align 8 dereferenceable(152) %69)
  store ptr %70, ptr %9, align 8, !tbaa !5
  br label %71

71:                                               ; preds = %85, %68
  %72 = load ptr, ptr %9, align 8, !tbaa !5
  %73 = load i8, ptr %8, align 1, !tbaa !9, !range !11, !noundef !12
  %74 = trunc i8 %73 to i1
  br i1 %74, label %76, label %75

75:                                               ; preds = %71
  store i32 12, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  br label %86

76:                                               ; preds = %71
  %77 = load ptr, ptr %3, align 8, !tbaa !5
  %78 = load ptr, ptr %9, align 8, !tbaa !5
  %79 = getelementptr inbounds %"struct.MIR::Statement::Data_Assign", ptr %78, i32 0, i32 0
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull align 8 dereferenceable(32) %79)
  %81 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef @.str.85)
  %82 = load ptr, ptr %9, align 8, !tbaa !5
  %83 = getelementptr inbounds %"struct.MIR::Statement::Data_Assign", ptr %82, i32 0, i32 1
  %84 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6RValueE(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(112) %83)
  br label %85

85:                                               ; preds = %76
  store i8 0, ptr %8, align 1, !tbaa !9
  br label %71, !llvm.loop !13

86:                                               ; preds = %75
  br label %87

87:                                               ; preds = %86
  store i8 0, ptr %8, align 1, !tbaa !9
  br label %64, !llvm.loop !15

88:                                               ; preds = %67
  br label %513

89:                                               ; preds = %59
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #7
  store i8 1, ptr %10, align 1, !tbaa !9
  br label %90

90:                                               ; preds = %175, %89
  %91 = load i8, ptr %10, align 1, !tbaa !9, !range !11, !noundef !12
  %92 = trunc i8 %91 to i1
  br i1 %92, label %94, label %93

93:                                               ; preds = %90
  store i32 15, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #7
  br label %176

94:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %95 = load ptr, ptr %7, align 8, !tbaa !5
  %96 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3MIR9Statement6as_AsmEv(ptr noundef nonnull align 8 dereferenceable(152) %95)
  store ptr %96, ptr %11, align 8, !tbaa !5
  br label %97

97:                                               ; preds = %173, %94
  %98 = load ptr, ptr %11, align 8, !tbaa !5
  %99 = load i8, ptr %10, align 1, !tbaa !9, !range !11, !noundef !12
  %100 = trunc i8 %99 to i1
  br i1 %100, label %102, label %101

101:                                              ; preds = %97
  store i32 18, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  br label %174

102:                                              ; preds = %97
  %103 = load ptr, ptr %3, align 8, !tbaa !5
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef @.str.21)
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %105 = load ptr, ptr %11, align 8, !tbaa !5
  %106 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm", ptr %105, i32 0, i32 1
  store ptr %106, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %107 = load ptr, ptr %12, align 8, !tbaa !5
  %108 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  %109 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.91", ptr %13, i32 0, i32 0
  store ptr %108, ptr %109, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %110 = load ptr, ptr %12, align 8, !tbaa !5
  %111 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %110) #7
  %112 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.91", ptr %14, i32 0, i32 0
  store ptr %111, ptr %112, align 8
  br label %113

113:                                              ; preds = %128, %102
  %114 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br i1 %114, label %116, label %115

115:                                              ; preds = %113
  store i32 21, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  br label %130

116:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %117 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  store ptr %117, ptr %15, align 8, !tbaa !5
  %118 = load ptr, ptr %3, align 8, !tbaa !5
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef @.str.12)
  %120 = load ptr, ptr %15, align 8, !tbaa !5
  %121 = getelementptr inbounds %"struct.std::pair", ptr %120, i32 0, i32 0
  %122 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(32) %121)
  %123 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef @.str.90)
  %124 = load ptr, ptr %15, align 8, !tbaa !5
  %125 = getelementptr inbounds %"struct.std::pair", ptr %124, i32 0, i32 1
  %126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(32) %125)
  %127 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef @.str.29)
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %128

128:                                              ; preds = %116
  %129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  br label %113

130:                                              ; preds = %115
  %131 = load ptr, ptr %3, align 8, !tbaa !5
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %131, ptr noundef @.str.91)
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #7
  %133 = load ptr, ptr %11, align 8, !tbaa !5
  %134 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm", ptr %133, i32 0, i32 0
  call void @_ZN10FmtEscapedC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(32) %134)
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK10FmtEscaped(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull align 8 dereferenceable(16) %16)
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef @.str.92)
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %137 = load ptr, ptr %11, align 8, !tbaa !5
  %138 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm", ptr %137, i32 0, i32 2
  store ptr %138, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %139 = load ptr, ptr %17, align 8, !tbaa !5
  %140 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %139) #7
  %141 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.91", ptr %18, i32 0, i32 0
  store ptr %140, ptr %141, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %142 = load ptr, ptr %17, align 8, !tbaa !5
  %143 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %142) #7
  %144 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.91", ptr %19, i32 0, i32 0
  store ptr %143, ptr %144, align 8
  br label %145

145:                                              ; preds = %160, %130
  %146 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br i1 %146, label %148, label %147

147:                                              ; preds = %145
  store i32 23, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %162

148:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %149 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  store ptr %149, ptr %20, align 8, !tbaa !5
  %150 = load ptr, ptr %3, align 8, !tbaa !5
  %151 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef @.str.12)
  %152 = load ptr, ptr %20, align 8, !tbaa !5
  %153 = getelementptr inbounds %"struct.std::pair", ptr %152, i32 0, i32 0
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef nonnull align 8 dereferenceable(32) %153)
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %154, ptr noundef @.str.90)
  %156 = load ptr, ptr %20, align 8, !tbaa !5
  %157 = getelementptr inbounds %"struct.std::pair", ptr %156, i32 0, i32 1
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull align 8 dereferenceable(32) %157)
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef @.str.29)
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %160

160:                                              ; preds = %148
  %161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  br label %145

162:                                              ; preds = %147
  %163 = load ptr, ptr %3, align 8, !tbaa !5
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef @.str.93)
  %165 = load ptr, ptr %11, align 8, !tbaa !5
  %166 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm", ptr %165, i32 0, i32 3
  %167 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEERSoS6_RKSt6vectorIT_SaIS8_EE(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull align 8 dereferenceable(24) %166)
  %168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef @.str.94)
  %169 = load ptr, ptr %11, align 8, !tbaa !5
  %170 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm", ptr %169, i32 0, i32 4
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEERSoS6_RKSt6vectorIT_SaIS8_EE(ptr noundef nonnull align 8 dereferenceable(8) %168, ptr noundef nonnull align 8 dereferenceable(24) %170)
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %171, ptr noundef @.str.95)
  br label %173

173:                                              ; preds = %162
  store i8 0, ptr %10, align 1, !tbaa !9
  br label %97, !llvm.loop !16

174:                                              ; preds = %101
  br label %175

175:                                              ; preds = %174
  store i8 0, ptr %10, align 1, !tbaa !9
  br label %90, !llvm.loop !17

176:                                              ; preds = %93
  br label %513

177:                                              ; preds = %59
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #7
  store i8 1, ptr %21, align 1, !tbaa !9
  br label %178

178:                                              ; preds = %371, %177
  %179 = load i8, ptr %21, align 1, !tbaa !9, !range !11, !noundef !12
  %180 = trunc i8 %179 to i1
  br i1 %180, label %182, label %181

181:                                              ; preds = %178
  store i32 25, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  br label %372

182:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %183 = load ptr, ptr %7, align 8, !tbaa !5
  %184 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK3MIR9Statement7as_Asm2Ev(ptr noundef nonnull align 8 dereferenceable(152) %183)
  store ptr %184, ptr %22, align 8, !tbaa !5
  br label %185

185:                                              ; preds = %369, %182
  %186 = load ptr, ptr %22, align 8, !tbaa !5
  %187 = load i8, ptr %21, align 1, !tbaa !9, !range !11, !noundef !12
  %188 = trunc i8 %187 to i1
  br i1 %188, label %190, label %189

189:                                              ; preds = %185
  store i32 28, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %370

190:                                              ; preds = %185
  %191 = load ptr, ptr %3, align 8, !tbaa !5
  %192 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef @.str.96)
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %193 = load ptr, ptr %22, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm2", ptr %193, i32 0, i32 1
  store ptr %194, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %195 = load ptr, ptr %23, align 8, !tbaa !5
  %196 = call ptr @_ZNKSt6vectorIN9AsmCommon4LineESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %195) #7
  %197 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.92", ptr %24, i32 0, i32 0
  store ptr %196, ptr %197, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %198 = load ptr, ptr %23, align 8, !tbaa !5
  %199 = call ptr @_ZNKSt6vectorIN9AsmCommon4LineESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %198) #7
  %200 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.92", ptr %25, i32 0, i32 0
  store ptr %199, ptr %200, align 8
  br label %201

201:                                              ; preds = %217, %190
  %202 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN9AsmCommon4LineESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  br i1 %202, label %204, label %203

203:                                              ; preds = %201
  store i32 31, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %219

204:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %205 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN9AsmCommon4LineESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  store ptr %205, ptr %26, align 8, !tbaa !5
  %206 = load ptr, ptr %26, align 8, !tbaa !5
  %207 = load ptr, ptr %22, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm2", ptr %207, i32 0, i32 1
  %209 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt6vectorIN9AsmCommon4LineESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %208) #7
  %210 = icmp ne ptr %206, %209
  br i1 %210, label %211, label %214

211:                                              ; preds = %204
  %212 = load ptr, ptr %3, align 8, !tbaa !5
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %212, ptr noundef @.str.4)
  br label %214

214:                                              ; preds = %211, %204
  %215 = load ptr, ptr %26, align 8, !tbaa !5
  %216 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZNK9AsmCommon4Line3fmtERSo(ptr noundef nonnull align 8 dereferenceable(56) %215, ptr noundef nonnull align 8 dereferenceable(8) %216)
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %217

217:                                              ; preds = %214
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN9AsmCommon4LineESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  br label %201

219:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %220 = load ptr, ptr %22, align 8, !tbaa !5
  %221 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm2", ptr %220, i32 0, i32 2
  store ptr %221, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %222 = load ptr, ptr %27, align 8, !tbaa !5
  %223 = call ptr @_ZNKSt6vectorIN3MIR8AsmParamESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %222) #7
  %224 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.98", ptr %28, i32 0, i32 0
  store ptr %223, ptr %224, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %225 = load ptr, ptr %27, align 8, !tbaa !5
  %226 = call ptr @_ZNKSt6vectorIN3MIR8AsmParamESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %225) #7
  %227 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.98", ptr %29, i32 0, i32 0
  store ptr %226, ptr %227, align 8
  br label %228

228:                                              ; preds = %354, %219
  %229 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3MIR8AsmParamESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  br i1 %229, label %231, label %230

230:                                              ; preds = %228
  store i32 33, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %356

231:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %232 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3MIR8AsmParamESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  store ptr %232, ptr %30, align 8, !tbaa !5
  %233 = load ptr, ptr %3, align 8, !tbaa !5
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %233, ptr noundef @.str.29)
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #7
  store i8 1, ptr %31, align 1, !tbaa !9
  br label %235

235:                                              ; preds = %352, %231
  %236 = load i8, ptr %31, align 1, !tbaa !9, !range !11, !noundef !12
  %237 = trunc i8 %236 to i1
  br i1 %237, label %239, label %238

238:                                              ; preds = %235
  store i32 35, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  br label %353

239:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %240 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %240, ptr %32, align 8, !tbaa !5
  br label %241

241:                                              ; preds = %350, %239
  %242 = load i8, ptr %31, align 1, !tbaa !9, !range !11, !noundef !12
  %243 = trunc i8 %242 to i1
  br i1 %243, label %245, label %244

244:                                              ; preds = %241
  store i32 38, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %351

245:                                              ; preds = %241
  %246 = load ptr, ptr %32, align 8, !tbaa !5
  %247 = call noundef i32 @_ZNK3MIR8AsmParam3tagEv(ptr noundef nonnull align 8 dereferenceable(96) %246)
  switch i32 %247, label %349 [
    i32 0, label %248
    i32 1, label %249
    i32 2, label %271
    i32 3, label %293
  ]

248:                                              ; preds = %245
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 603, ptr noundef @__PRETTY_FUNCTION__._ZN3MIRlsERSoRKNS_9StatementE) #8
  unreachable

249:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #7
  store i8 1, ptr %33, align 1, !tbaa !9
  br label %250

250:                                              ; preds = %269, %249
  %251 = load i8, ptr %33, align 1, !tbaa !9, !range !11, !noundef !12
  %252 = trunc i8 %251 to i1
  br i1 %252, label %254, label %253

253:                                              ; preds = %250
  store i32 42, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  br label %270

254:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %255 = load ptr, ptr %32, align 8, !tbaa !5
  %256 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK3MIR8AsmParam8as_ConstEv(ptr noundef nonnull align 8 dereferenceable(96) %255)
  store ptr %256, ptr %34, align 8, !tbaa !5
  br label %257

257:                                              ; preds = %267, %254
  %258 = load ptr, ptr %34, align 8, !tbaa !5
  %259 = load i8, ptr %33, align 1, !tbaa !9, !range !11, !noundef !12
  %260 = trunc i8 %259 to i1
  br i1 %260, label %262, label %261

261:                                              ; preds = %257
  store i32 45, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %268

262:                                              ; preds = %257
  %263 = load ptr, ptr %3, align 8, !tbaa !5
  %264 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef @.str.97)
  %265 = load ptr, ptr %34, align 8, !tbaa !5
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_8ConstantE(ptr noundef nonnull align 8 dereferenceable(8) %264, ptr noundef nonnull align 8 dereferenceable(40) %265)
  br label %267

267:                                              ; preds = %262
  store i8 0, ptr %33, align 1, !tbaa !9
  br label %257, !llvm.loop !18

268:                                              ; preds = %261
  br label %269

269:                                              ; preds = %268
  store i8 0, ptr %33, align 1, !tbaa !9
  br label %250, !llvm.loop !19

270:                                              ; preds = %253
  br label %349

271:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  store i8 1, ptr %35, align 1, !tbaa !9
  br label %272

272:                                              ; preds = %291, %271
  %273 = load i8, ptr %35, align 1, !tbaa !9, !range !11, !noundef !12
  %274 = trunc i8 %273 to i1
  br i1 %274, label %276, label %275

275:                                              ; preds = %272
  store i32 48, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  br label %292

276:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %277 = load ptr, ptr %32, align 8, !tbaa !5
  %278 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK3MIR8AsmParam6as_SymEv(ptr noundef nonnull align 8 dereferenceable(96) %277)
  store ptr %278, ptr %36, align 8, !tbaa !5
  br label %279

279:                                              ; preds = %289, %276
  %280 = load ptr, ptr %36, align 8, !tbaa !5
  %281 = load i8, ptr %35, align 1, !tbaa !9, !range !11, !noundef !12
  %282 = trunc i8 %281 to i1
  br i1 %282, label %284, label %283

283:                                              ; preds = %279
  store i32 51, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %290

284:                                              ; preds = %279
  %285 = load ptr, ptr %3, align 8, !tbaa !5
  %286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %285, ptr noundef @.str.98)
  %287 = load ptr, ptr %36, align 8, !tbaa !5
  %288 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef nonnull align 8 dereferenceable(88) %287)
  br label %289

289:                                              ; preds = %284
  store i8 0, ptr %35, align 1, !tbaa !9
  br label %279, !llvm.loop !20

290:                                              ; preds = %283
  br label %291

291:                                              ; preds = %290
  store i8 0, ptr %35, align 1, !tbaa !9
  br label %272, !llvm.loop !21

292:                                              ; preds = %275
  br label %349

293:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #7
  store i8 1, ptr %37, align 1, !tbaa !9
  br label %294

294:                                              ; preds = %347, %293
  %295 = load i8, ptr %37, align 1, !tbaa !9, !range !11, !noundef !12
  %296 = trunc i8 %295 to i1
  br i1 %296, label %298, label %297

297:                                              ; preds = %294
  store i32 54, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #7
  br label %348

298:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %299 = load ptr, ptr %32, align 8, !tbaa !5
  %300 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK3MIR8AsmParam6as_RegEv(ptr noundef nonnull align 8 dereferenceable(96) %299)
  store ptr %300, ptr %38, align 8, !tbaa !5
  br label %301

301:                                              ; preds = %345, %298
  %302 = load ptr, ptr %38, align 8, !tbaa !5
  %303 = load i8, ptr %37, align 1, !tbaa !9, !range !11, !noundef !12
  %304 = trunc i8 %303 to i1
  br i1 %304, label %306, label %305

305:                                              ; preds = %301
  store i32 57, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %346

306:                                              ; preds = %301
  %307 = load ptr, ptr %3, align 8, !tbaa !5
  %308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %307, ptr noundef @.str.99)
  %309 = load ptr, ptr %38, align 8, !tbaa !5
  %310 = getelementptr inbounds %"struct.MIR::AsmParam::Data_Reg", ptr %309, i32 0, i32 0
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9AsmCommonlsERSoRKNS_9DirectionE(ptr noundef nonnull align 8 dereferenceable(8) %308, ptr noundef nonnull align 4 dereferenceable(4) %310)
  %312 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %311, ptr noundef @.str.4)
  %313 = load ptr, ptr %38, align 8, !tbaa !5
  %314 = getelementptr inbounds %"struct.MIR::AsmParam::Data_Reg", ptr %313, i32 0, i32 1
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9AsmCommonlsERSoRKNS_12RegisterSpecE(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef nonnull align 8 dereferenceable(40) %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.4)
  %317 = load ptr, ptr %38, align 8, !tbaa !5
  %318 = getelementptr inbounds %"struct.MIR::AsmParam::Data_Reg", ptr %317, i32 0, i32 2
  %319 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN3MIR5ParamESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %318) #7
  br i1 %319, label %320, label %326

320:                                              ; preds = %306
  %321 = load ptr, ptr %3, align 8, !tbaa !5
  %322 = load ptr, ptr %38, align 8, !tbaa !5
  %323 = getelementptr inbounds %"struct.MIR::AsmParam::Data_Reg", ptr %322, i32 0, i32 2
  %324 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt10unique_ptrIN3MIR5ParamESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %323) #7
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_5ParamE(ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef nonnull align 8 dereferenceable(48) %324)
  br label %329

326:                                              ; preds = %306
  %327 = load ptr, ptr %3, align 8, !tbaa !5
  %328 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %327, ptr noundef @.str.20)
  br label %329

329:                                              ; preds = %326, %320
  %330 = load ptr, ptr %3, align 8, !tbaa !5
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %330, ptr noundef @.str.100)
  %332 = load ptr, ptr %38, align 8, !tbaa !5
  %333 = getelementptr inbounds %"struct.MIR::AsmParam::Data_Reg", ptr %332, i32 0, i32 3
  %334 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN3MIR6LValueESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %333) #7
  br i1 %334, label %335, label %341

335:                                              ; preds = %329
  %336 = load ptr, ptr %3, align 8, !tbaa !5
  %337 = load ptr, ptr %38, align 8, !tbaa !5
  %338 = getelementptr inbounds %"struct.MIR::AsmParam::Data_Reg", ptr %337, i32 0, i32 3
  %339 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt10unique_ptrIN3MIR6LValueESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %338) #7
  %340 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %336, ptr noundef nonnull align 8 dereferenceable(32) %339)
  br label %344

341:                                              ; preds = %329
  %342 = load ptr, ptr %3, align 8, !tbaa !5
  %343 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %342, ptr noundef @.str.20)
  br label %344

344:                                              ; preds = %341, %335
  br label %345

345:                                              ; preds = %344
  store i8 0, ptr %37, align 1, !tbaa !9
  br label %301, !llvm.loop !22

346:                                              ; preds = %305
  br label %347

347:                                              ; preds = %346
  store i8 0, ptr %37, align 1, !tbaa !9
  br label %294, !llvm.loop !23

348:                                              ; preds = %297
  br label %349

349:                                              ; preds = %348, %292, %270, %245
  br label %350

350:                                              ; preds = %349
  store i8 0, ptr %31, align 1, !tbaa !9
  br label %241, !llvm.loop !24

351:                                              ; preds = %244
  br label %352

352:                                              ; preds = %351
  store i8 0, ptr %31, align 1, !tbaa !9
  br label %235, !llvm.loop !25

353:                                              ; preds = %238
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  br label %354

354:                                              ; preds = %353
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3MIR8AsmParamESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br label %228

356:                                              ; preds = %230
  %357 = load ptr, ptr %22, align 8, !tbaa !5
  %358 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm2", ptr %357, i32 0, i32 0
  %359 = call noundef zeroext i1 @_ZNK9AsmCommon7Options3anyEv(ptr noundef nonnull align 4 dereferenceable(1) %358)
  br i1 %359, label %360, label %366

360:                                              ; preds = %356
  %361 = load ptr, ptr %3, align 8, !tbaa !5
  %362 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %361, ptr noundef @.str.29)
  %363 = load ptr, ptr %22, align 8, !tbaa !5
  %364 = getelementptr inbounds %"struct.MIR::Statement::Data_Asm2", ptr %363, i32 0, i32 0
  %365 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZNK9AsmCommon7Options3fmtERSo(ptr noundef nonnull align 4 dereferenceable(1) %364, ptr noundef nonnull align 8 dereferenceable(8) %365)
  br label %366

366:                                              ; preds = %360, %356
  %367 = load ptr, ptr %3, align 8, !tbaa !5
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %367, ptr noundef @.str.22)
  br label %369

369:                                              ; preds = %366
  store i8 0, ptr %21, align 1, !tbaa !9
  br label %185, !llvm.loop !26

370:                                              ; preds = %189
  br label %371

371:                                              ; preds = %370
  store i8 0, ptr %21, align 1, !tbaa !9
  br label %178, !llvm.loop !27

372:                                              ; preds = %181
  br label %513

373:                                              ; preds = %59
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  store i8 1, ptr %39, align 1, !tbaa !9
  br label %374

374:                                              ; preds = %422, %373
  %375 = load i8, ptr %39, align 1, !tbaa !9, !range !11, !noundef !12
  %376 = trunc i8 %375 to i1
  br i1 %376, label %378, label %377

377:                                              ; preds = %374
  store i32 60, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  br label %423

378:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %379 = load ptr, ptr %7, align 8, !tbaa !5
  %380 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNK3MIR9Statement14as_SetDropFlagEv(ptr noundef nonnull align 8 dereferenceable(152) %379)
  store ptr %380, ptr %40, align 8, !tbaa !5
  br label %381

381:                                              ; preds = %420, %378
  %382 = load ptr, ptr %40, align 8, !tbaa !5
  %383 = load i8, ptr %39, align 1, !tbaa !9, !range !11, !noundef !12
  %384 = trunc i8 %383 to i1
  br i1 %384, label %386, label %385

385:                                              ; preds = %381
  store i32 63, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %421

386:                                              ; preds = %381
  %387 = load ptr, ptr %3, align 8, !tbaa !5
  %388 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef @.str.101)
  %389 = load ptr, ptr %40, align 8, !tbaa !5
  %390 = getelementptr inbounds %"struct.MIR::Statement::Data_SetDropFlag", ptr %389, i32 0, i32 0
  %391 = load i32, ptr %390, align 4, !tbaa !28
  %392 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %388, i32 noundef %391)
  %393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %392, ptr noundef @.str.85)
  %394 = load ptr, ptr %40, align 8, !tbaa !5
  %395 = getelementptr inbounds %"struct.MIR::Statement::Data_SetDropFlag", ptr %394, i32 0, i32 2
  %396 = load i32, ptr %395, align 4, !tbaa !31
  %397 = icmp eq i32 %396, -1
  br i1 %397, label %398, label %405

398:                                              ; preds = %386
  %399 = load ptr, ptr %3, align 8, !tbaa !5
  %400 = load ptr, ptr %40, align 8, !tbaa !5
  %401 = getelementptr inbounds %"struct.MIR::Statement::Data_SetDropFlag", ptr %400, i32 0, i32 1
  %402 = load i8, ptr %401, align 4, !tbaa !32, !range !11, !noundef !12
  %403 = trunc i8 %402 to i1
  %404 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %399, i1 noundef zeroext %403)
  br label %419

405:                                              ; preds = %386
  %406 = load ptr, ptr %3, align 8, !tbaa !5
  %407 = load ptr, ptr %40, align 8, !tbaa !5
  %408 = getelementptr inbounds %"struct.MIR::Statement::Data_SetDropFlag", ptr %407, i32 0, i32 1
  %409 = load i8, ptr %408, align 4, !tbaa !32, !range !11, !noundef !12
  %410 = trunc i8 %409 to i1
  %411 = zext i1 %410 to i64
  %412 = select i1 %410, ptr @.str.102, ptr @.str.17
  %413 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %406, ptr noundef %412)
  %414 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %413, ptr noundef @.str.101)
  %415 = load ptr, ptr %40, align 8, !tbaa !5
  %416 = getelementptr inbounds %"struct.MIR::Statement::Data_SetDropFlag", ptr %415, i32 0, i32 2
  %417 = load i32, ptr %416, align 4, !tbaa !31
  %418 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %414, i32 noundef %417)
  br label %419

419:                                              ; preds = %405, %398
  br label %420

420:                                              ; preds = %419
  store i8 0, ptr %39, align 1, !tbaa !9
  br label %381, !llvm.loop !33

421:                                              ; preds = %385
  br label %422

422:                                              ; preds = %421
  store i8 0, ptr %39, align 1, !tbaa !9
  br label %374, !llvm.loop !34

423:                                              ; preds = %377
  br label %513

424:                                              ; preds = %59
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #7
  store i8 1, ptr %41, align 1, !tbaa !9
  br label %425

425:                                              ; preds = %467, %424
  %426 = load i8, ptr %41, align 1, !tbaa !9, !range !11, !noundef !12
  %427 = trunc i8 %426 to i1
  br i1 %427, label %429, label %428

428:                                              ; preds = %425
  store i32 66, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  br label %468

429:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %430 = load ptr, ptr %7, align 8, !tbaa !5
  %431 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZNK3MIR9Statement7as_DropEv(ptr noundef nonnull align 8 dereferenceable(152) %430)
  store ptr %431, ptr %42, align 8, !tbaa !5
  br label %432

432:                                              ; preds = %465, %429
  %433 = load ptr, ptr %42, align 8, !tbaa !5
  %434 = load i8, ptr %41, align 1, !tbaa !9, !range !11, !noundef !12
  %435 = trunc i8 %434 to i1
  br i1 %435, label %437, label %436

436:                                              ; preds = %432
  store i32 69, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  br label %466

437:                                              ; preds = %432
  %438 = load ptr, ptr %3, align 8, !tbaa !5
  %439 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %438, ptr noundef @.str.103)
  %440 = load ptr, ptr %42, align 8, !tbaa !5
  %441 = getelementptr inbounds %"struct.MIR::Statement::Data_Drop", ptr %440, i32 0, i32 2
  %442 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %439, ptr noundef nonnull align 8 dereferenceable(32) %441)
  %443 = load ptr, ptr %42, align 8, !tbaa !5
  %444 = getelementptr inbounds %"struct.MIR::Statement::Data_Drop", ptr %443, i32 0, i32 0
  %445 = load i32, ptr %444, align 8, !tbaa !35
  %446 = icmp eq i32 %445, 0
  br i1 %446, label %447, label %450

447:                                              ; preds = %437
  %448 = load ptr, ptr %3, align 8, !tbaa !5
  %449 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef @.str.104)
  br label %450

450:                                              ; preds = %447, %437
  %451 = load ptr, ptr %42, align 8, !tbaa !5
  %452 = getelementptr inbounds %"struct.MIR::Statement::Data_Drop", ptr %451, i32 0, i32 3
  %453 = load i32, ptr %452, align 8, !tbaa !45
  %454 = icmp ne i32 %453, -1
  br i1 %454, label %455, label %462

455:                                              ; preds = %450
  %456 = load ptr, ptr %3, align 8, !tbaa !5
  %457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %456, ptr noundef @.str.105)
  %458 = load ptr, ptr %42, align 8, !tbaa !5
  %459 = getelementptr inbounds %"struct.MIR::Statement::Data_Drop", ptr %458, i32 0, i32 3
  %460 = load i32, ptr %459, align 8, !tbaa !45
  %461 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %457, i32 noundef %460)
  br label %462

462:                                              ; preds = %455, %450
  %463 = load ptr, ptr %3, align 8, !tbaa !5
  %464 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %463, ptr noundef @.str.22)
  br label %465

465:                                              ; preds = %462
  store i8 0, ptr %41, align 1, !tbaa !9
  br label %432, !llvm.loop !46

466:                                              ; preds = %436
  br label %467

467:                                              ; preds = %466
  store i8 0, ptr %41, align 1, !tbaa !9
  br label %425, !llvm.loop !47

468:                                              ; preds = %428
  br label %513

469:                                              ; preds = %59
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  store i8 1, ptr %43, align 1, !tbaa !9
  br label %470

470:                                              ; preds = %511, %469
  %471 = load i8, ptr %43, align 1, !tbaa !9, !range !11, !noundef !12
  %472 = trunc i8 %471 to i1
  br i1 %472, label %474, label %473

473:                                              ; preds = %470
  store i32 72, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  br label %512

474:                                              ; preds = %470
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %475 = load ptr, ptr %7, align 8, !tbaa !5
  %476 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3MIR9Statement11as_ScopeEndEv(ptr noundef nonnull align 8 dereferenceable(152) %475)
  store ptr %476, ptr %44, align 8, !tbaa !5
  br label %477

477:                                              ; preds = %509, %474
  %478 = load ptr, ptr %44, align 8, !tbaa !5
  %479 = load i8, ptr %43, align 1, !tbaa !9, !range !11, !noundef !12
  %480 = trunc i8 %479 to i1
  br i1 %480, label %482, label %481

481:                                              ; preds = %477
  store i32 75, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  br label %510

482:                                              ; preds = %477
  %483 = load ptr, ptr %3, align 8, !tbaa !5
  %484 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %483, ptr noundef @.str.106)
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %485 = load ptr, ptr %44, align 8, !tbaa !5
  %486 = getelementptr inbounds %"struct.MIR::Statement::Data_ScopeEnd", ptr %485, i32 0, i32 0
  store ptr %486, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %487 = load ptr, ptr %45, align 8, !tbaa !5
  %488 = call ptr @_ZNKSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %487) #7
  %489 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.99", ptr %46, i32 0, i32 0
  store ptr %488, ptr %489, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  %490 = load ptr, ptr %45, align 8, !tbaa !5
  %491 = call ptr @_ZNKSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %490) #7
  %492 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.99", ptr %47, i32 0, i32 0
  store ptr %491, ptr %492, align 8
  br label %493

493:                                              ; preds = %504, %482
  %494 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %47) #7
  br i1 %494, label %496, label %495

495:                                              ; preds = %493
  store i32 78, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %506

496:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  %497 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #7
  %498 = load i32, ptr %497, align 4, !tbaa !48
  store i32 %498, ptr %48, align 4, !tbaa !48
  %499 = load ptr, ptr %3, align 8, !tbaa !5
  %500 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %499, ptr noundef @.str.107)
  %501 = load i32, ptr %48, align 4, !tbaa !48
  %502 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %500, i32 noundef %501)
  %503 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %502, ptr noundef @.str.108)
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %504

504:                                              ; preds = %496
  %505 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #7
  br label %493

506:                                              ; preds = %495
  %507 = load ptr, ptr %3, align 8, !tbaa !5
  %508 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %507, ptr noundef @.str.22)
  br label %509

509:                                              ; preds = %506
  store i8 0, ptr %43, align 1, !tbaa !9
  br label %477, !llvm.loop !49

510:                                              ; preds = %481
  br label %511

511:                                              ; preds = %510
  store i8 0, ptr %43, align 1, !tbaa !9
  br label %470, !llvm.loop !50

512:                                              ; preds = %473
  br label %513

513:                                              ; preds = %512, %468, %423, %372, %176, %88, %59
  br label %514

514:                                              ; preds = %513
  store i8 0, ptr %5, align 1, !tbaa !9
  br label %55, !llvm.loop !51

515:                                              ; preds = %58
  br label %516

516:                                              ; preds = %515
  store i8 0, ptr %5, align 1, !tbaa !9
  br label %49, !llvm.loop !52

517:                                              ; preds = %52
  %518 = load ptr, ptr %3, align 8, !tbaa !5
  ret ptr %518
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3MIR9Statement3tagEv(ptr noundef nonnull align 8 dereferenceable(152)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(144) ptr @_ZNK3MIR9Statement9as_AssignEv(ptr noundef nonnull align 8 dereferenceable(152)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3MIR9Statement6as_AsmEv(ptr noundef nonnull align 8 dereferenceable(152)) #5 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEERSoS6_RKSt6vectorIT_SaIS8_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZNK3MIR9Statement7as_Asm2Ev(ptr noundef nonnull align 8 dereferenceable(152)) #5 align 2

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

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

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

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

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

declare void @_ZNK9AsmCommon4Line3fmtERSo(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) #4

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN9AsmCommonlsERSoRKNS_12RegisterSpecE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(40)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN9AsmCommonlsERSoRKNS_9DirectionE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9AsmCommon7Options3anyEv(ptr noundef nonnull align 4 dereferenceable(1)) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9AsmCommon7Options3fmtERSo(ptr noundef nonnull align 4 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZNK3MIR9Statement14as_SetDropFlagEv(ptr noundef nonnull align 8 dereferenceable(152)) #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZNK3MIR9Statement7as_DropEv(ptr noundef nonnull align 8 dereferenceable(152)) #5 align 2

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

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

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

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { noreturn nounwind "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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint 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 #7 = { nounwind }
attributes #8 = { noreturn 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, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = !{!29, !30, i64 0}
!29 = !{!"_ZTSN3MIR9Statement16Data_SetDropFlagE", !30, i64 0, !10, i64 4, !30, i64 8}
!30 = !{!"int", !7, i64 0}
!31 = !{!29, !30, i64 8}
!32 = !{!29, !10, i64 4}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = !{!36, !37, i64 0}
!36 = !{!"_ZTSN3MIR9Statement9Data_DropE", !37, i64 0, !38, i64 8, !30, i64 40}
!37 = !{!"_ZTSN3MIR9eDropKindE", !7, i64 0}
!38 = !{!"_ZTSN3MIR6LValueE", !39, i64 0, !41, i64 8}
!39 = !{!"_ZTSN3MIR6LValue7StorageE", !40, i64 0}
!40 = !{!"long", !7, i64 0}
!41 = !{!"_ZTSSt6vectorIN3MIR6LValue7WrapperESaIS2_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!45 = !{!36, !30, i64 40}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = !{!30, !30, i64 0}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}


; 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.__gnu_cxx::__normal_iterator.91" = type { ptr }
%class.FmtEscaped = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.92" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.98" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.99" = type { ptr }

@.str = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [4 x i8], align 1
@__PRETTY_FUNCTION__._ZN3MIRlsERSoRKNS_9StatementE = external hidden unnamed_addr constant [69 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [2 x i8], align 1

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

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

; 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 #3

; 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 noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #0 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK10FmtEscaped(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #4

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK3MIR8AsmParam8as_ConstEv(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZNK3MIR8AsmParam6as_SymEv(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZNK3MIR8AsmParam6as_RegEv(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt10unique_ptrIN3MIR5ParamESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt10unique_ptrIN3MIR5ParamESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt10unique_ptrIN3MIR6LValueESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_9StatementE(ptr noundef nonnull returned align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(152) %1) local_unnamed_addr #0 {
.lr.ph248:
  %2 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %3 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %4 = alloca %class.FmtEscaped, align 8
  %5 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.92", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.92", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.98", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.98", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.99", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.99", align 8
  %13 = tail call noundef i32 @_ZNK3MIR9Statement3tagEv(ptr noundef nonnull align 8 dereferenceable(152) %1)
  switch i32 %13, label %.loopexit171 [
    i32 0, label %42
    i32 1, label %.preheader158
    i32 2, label %.lr.ph240
    i32 3, label %.lr.ph231
    i32 4, label %.preheader164
    i32 5, label %.preheader166
    i32 6, label %.preheader168
  ]

.loopexit171:                                     ; preds = %.lr.ph248, %.preheader158, %..loopexit156_crit_edge, %..loopexit157_crit_edge, %137, %139, %..loopexit153_crit_edge, %..loopexit154_crit_edge
  ret ptr %0

.preheader168:                                    ; preds = %.lr.ph248
  %14 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3MIR9Statement11as_ScopeEndEv(ptr noundef nonnull align 8 dereferenceable(152) %1)
  %15 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.106)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  %16 = tail call ptr @_ZNKSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  store ptr %16, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %17 = tail call ptr @_ZNKSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  store ptr %17, ptr %12, align 8
  %18 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  br i1 %18, label %.lr.ph, label %..loopexit157_crit_edge

.preheader166:                                    ; preds = %.lr.ph248
  %19 = tail call noundef nonnull align 8 dereferenceable(44) ptr @_ZNK3MIR9Statement7as_DropEv(ptr noundef nonnull align 8 dereferenceable(152) %1)
  %20 = getelementptr inbounds i8, ptr %19, i64 8
  %21 = getelementptr inbounds i8, ptr %19, i64 40
  %22 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.103)
  %23 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(32) %20)
  %24 = load i32, ptr %19, align 8, !tbaa !5
  %25 = icmp eq i32 %24, 0
  br i1 %25, label %145, label %147

.preheader164:                                    ; preds = %.lr.ph248
  %26 = tail call noundef nonnull align 4 dereferenceable(12) ptr @_ZNK3MIR9Statement14as_SetDropFlagEv(ptr noundef nonnull align 8 dereferenceable(152) %1)
  %27 = getelementptr inbounds i8, ptr %26, i64 8
  %28 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.101)
  %29 = load i32, ptr %26, align 4, !tbaa !19
  %30 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %28, i32 noundef %29)
  %31 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull @.str.85)
  %32 = load i32, ptr %27, align 4, !tbaa !22
  %33 = icmp eq i32 %32, -1
  %34 = getelementptr inbounds i8, ptr %26, i64 4
  %35 = load i8, ptr %34, align 4, !tbaa !23, !range !24, !noundef !25
  %36 = trunc nuw i8 %35 to i1
  br i1 %33, label %137, label %139

.preheader158:                                    ; preds = %.lr.ph248
  %37 = tail call noundef nonnull align 8 dereferenceable(144) ptr @_ZNK3MIR9Statement9as_AssignEv(ptr noundef nonnull align 8 dereferenceable(152) %1)
  %38 = getelementptr inbounds i8, ptr %37, i64 32
  %39 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(32) %37)
  %40 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull @.str.85)
  %41 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6RValueE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(112) %38)
  br label %.loopexit171

42:                                               ; preds = %.lr.ph248
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 580, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN3MIRlsERSoRKNS_9StatementE) #8
  unreachable

.lr.ph240:                                        ; preds = %.lr.ph248
  %43 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3MIR9Statement6as_AsmEv(ptr noundef nonnull align 8 dereferenceable(152) %1)
  %44 = getelementptr inbounds i8, ptr %43, i64 32
  %45 = getelementptr inbounds i8, ptr %43, i64 56
  %46 = getelementptr inbounds i8, ptr %43, i64 80
  %47 = getelementptr inbounds i8, ptr %43, i64 104
  %48 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.21)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #7
  %49 = tail call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  store ptr %49, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #7
  %50 = tail call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  store ptr %50, ptr %3, align 8
  %51 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #7
  br i1 %51, label %.lr.ph234, label %._crit_edge235

._crit_edge235:                                   ; preds = %.lr.ph234, %.lr.ph240
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #7
  %52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.91)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #7
  call void @_ZN10FmtEscapedC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %43)
  %53 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK10FmtEscaped(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(16) %4)
  %54 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull @.str.92)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  %55 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  store ptr %55, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  %56 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  store ptr %56, ptr %6, align 8
  %57 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  br i1 %57, label %.lr.ph237, label %..loopexit153_crit_edge

.lr.ph234:                                        ; preds = %.lr.ph240, %.lr.ph234
  %58 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #7
  %59 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.12)
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(32) %58)
  %61 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull @.str.90)
  %62 = getelementptr inbounds i8, ptr %58, i64 32
  %63 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(32) %62)
  %64 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull @.str.29)
  %65 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #7
  %66 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #7
  br i1 %66, label %.lr.ph234, label %._crit_edge235

..loopexit153_crit_edge:                          ; preds = %.lr.ph237, %._crit_edge235
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  %67 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.93)
  %68 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEERSoS6_RKSt6vectorIT_SaIS8_EE(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(24) %46)
  %69 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull @.str.94)
  %70 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEERSoS6_RKSt6vectorIT_SaIS8_EE(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(24) %47)
  %71 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull @.str.95)
  br label %.loopexit171

.lr.ph237:                                        ; preds = %._crit_edge235, %.lr.ph237
  %72 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  %73 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.12)
  %74 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(32) %72)
  %75 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull @.str.90)
  %76 = getelementptr inbounds i8, ptr %72, i64 32
  %77 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(32) %76)
  %78 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull @.str.29)
  %79 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  %80 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  br i1 %80, label %.lr.ph237, label %..loopexit153_crit_edge

.lr.ph231:                                        ; preds = %.lr.ph248
  %81 = tail call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK3MIR9Statement7as_Asm2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1)
  %82 = getelementptr inbounds i8, ptr %81, i64 8
  %83 = getelementptr inbounds i8, ptr %81, i64 32
  %84 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.96)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  %85 = tail call ptr @_ZNKSt6vectorIN9AsmCommon4LineESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %82) #7
  store ptr %85, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  %86 = tail call ptr @_ZNKSt6vectorIN9AsmCommon4LineESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %82) #7
  store ptr %86, ptr %8, align 8
  %87 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN9AsmCommon4LineESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  br i1 %87, label %.lr.ph194, label %.split228

.split228:                                        ; preds = %95, %.lr.ph231
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %88 = call ptr @_ZNKSt6vectorIN3MIR8AsmParamESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %83) #7
  store ptr %88, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %89 = call ptr @_ZNKSt6vectorIN3MIR8AsmParamESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %83) #7
  store ptr %89, ptr %10, align 8
  %90 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3MIR8AsmParamESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br i1 %90, label %.lr.ph226, label %._crit_edge229

.lr.ph194:                                        ; preds = %.lr.ph231, %95
  %91 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN9AsmCommon4LineESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  %92 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt6vectorIN9AsmCommon4LineESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %82) #7
  %.not142 = icmp eq ptr %91, %92
  br i1 %.not142, label %95, label %93

93:                                               ; preds = %.lr.ph194
  %94 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.4)
  br label %95

95:                                               ; preds = %93, %.lr.ph194
  call void @_ZNK9AsmCommon4Line3fmtERSo(ptr noundef nonnull align 8 dereferenceable(56) %91, ptr noundef nonnull align 8 dereferenceable(8) %0)
  %96 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN9AsmCommon4LineESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  %97 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN9AsmCommon4LineESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  br i1 %97, label %.lr.ph194, label %.split228

._crit_edge229:                                   ; preds = %.loopexit151, %.split228
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  %98 = call noundef zeroext i1 @_ZNK9AsmCommon7Options3anyEv(ptr noundef nonnull align 4 dereferenceable(1) %81)
  br i1 %98, label %134, label %..loopexit154_crit_edge

.loopexit151:                                     ; preds = %.lr.ph226, %.preheader, %.preheader146, %129, %132
  %99 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3MIR8AsmParamESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %100 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3MIR8AsmParamESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br i1 %100, label %.lr.ph226, label %._crit_edge229

.lr.ph226:                                        ; preds = %.split228, %.loopexit151
  %101 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3MIR8AsmParamESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %102 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.29)
  %103 = call noundef i32 @_ZNK3MIR8AsmParam3tagEv(ptr noundef nonnull align 8 dereferenceable(96) %101)
  switch i32 %103, label %.loopexit151 [
    i32 0, label %120
    i32 1, label %.preheader
    i32 2, label %.preheader146
    i32 3, label %.preheader148
  ]

.preheader148:                                    ; preds = %.lr.ph226
  %104 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK3MIR8AsmParam6as_RegEv(ptr noundef nonnull align 8 dereferenceable(96) %101)
  %105 = getelementptr inbounds i8, ptr %104, i64 8
  %106 = getelementptr inbounds i8, ptr %104, i64 48
  %107 = getelementptr inbounds i8, ptr %104, i64 56
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.99)
  %109 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9AsmCommonlsERSoRKNS_9DirectionE(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull align 4 dereferenceable(4) %104)
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull @.str.4)
  %111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9AsmCommonlsERSoRKNS_12RegisterSpecE(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull align 8 dereferenceable(40) %105)
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull @.str.4)
  %113 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN3MIR5ParamESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %106) #7
  br i1 %113, label %121, label %124

.preheader146:                                    ; preds = %.lr.ph226
  %114 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK3MIR8AsmParam6as_SymEv(ptr noundef nonnull align 8 dereferenceable(96) %101)
  %115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.98)
  %116 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(88) %114)
  br label %.loopexit151

.preheader:                                       ; preds = %.lr.ph226
  %117 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK3MIR8AsmParam8as_ConstEv(ptr noundef nonnull align 8 dereferenceable(96) %101)
  %118 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.97)
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_8ConstantE(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef nonnull align 8 dereferenceable(40) %117)
  br label %.loopexit151

120:                                              ; preds = %.lr.ph226
  call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 603, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN3MIRlsERSoRKNS_9StatementE) #8
  unreachable

121:                                              ; preds = %.preheader148
  %122 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt10unique_ptrIN3MIR5ParamESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %106) #7
  %123 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_5ParamE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(48) %122)
  br label %126

124:                                              ; preds = %.preheader148
  %125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.20)
  br label %126

126:                                              ; preds = %124, %121
  %127 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.100)
  %128 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN3MIR6LValueESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %107) #7
  br i1 %128, label %129, label %132

129:                                              ; preds = %126
  %130 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt10unique_ptrIN3MIR6LValueESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %107) #7
  %131 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(32) %130)
  br label %.loopexit151

132:                                              ; preds = %126
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.20)
  br label %.loopexit151

134:                                              ; preds = %._crit_edge229
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.29)
  call void @_ZNK9AsmCommon7Options3fmtERSo(ptr noundef nonnull align 4 dereferenceable(1) %81, ptr noundef nonnull align 8 dereferenceable(8) %0)
  br label %..loopexit154_crit_edge

..loopexit154_crit_edge:                          ; preds = %134, %._crit_edge229
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.22)
  br label %.loopexit171

137:                                              ; preds = %.preheader164
  %138 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %0, i1 noundef zeroext %36)
  br label %.loopexit171

139:                                              ; preds = %.preheader164
  %140 = select i1 %36, ptr @.str.102, ptr @.str.17
  %141 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %140)
  %142 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull @.str.101)
  %143 = load i32, ptr %27, align 4, !tbaa !22
  %144 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %142, i32 noundef %143)
  br label %.loopexit171

145:                                              ; preds = %.preheader166
  %146 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.104)
  br label %147

147:                                              ; preds = %145, %.preheader166
  %148 = load i32, ptr %21, align 8, !tbaa !26
  %.not = icmp eq i32 %148, -1
  br i1 %.not, label %..loopexit156_crit_edge, label %149

149:                                              ; preds = %147
  %150 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.105)
  %151 = load i32, ptr %21, align 8, !tbaa !26
  %152 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %150, i32 noundef %151)
  br label %..loopexit156_crit_edge

..loopexit156_crit_edge:                          ; preds = %149, %147
  %153 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.22)
  br label %.loopexit171

..loopexit157_crit_edge:                          ; preds = %.lr.ph, %.preheader168
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.22)
  br label %.loopexit171

.lr.ph:                                           ; preds = %.preheader168, %.lr.ph
  %155 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  %156 = load i32, ptr %155, align 4, !tbaa !27
  %157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.107)
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %157, i32 noundef %156)
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef nonnull @.str.108)
  %160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  %161 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  br i1 %161, label %.lr.ph, label %..loopexit157_crit_edge
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(144) ptr @_ZNK3MIR9Statement9as_AssignEv(ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3MIR9Statement6as_AsmEv(ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3MIR6LValueEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZNK3MIR9Statement7as_Asm2Ev(ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN9AsmCommon4LineESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN9AsmCommon4LineESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt6vectorIN9AsmCommon4LineESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5 align 2

declare void @_ZNK9AsmCommon4Line3fmtERSo(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3MIR8AsmParamESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(96) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3MIR8AsmParamESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN9AsmCommonlsERSoRKNS_12RegisterSpecE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN9AsmCommonlsERSoRKNS_9DirectionE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9AsmCommon7Options3anyEv(ptr noundef nonnull align 4 dereferenceable(1)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9AsmCommon7Options3fmtERSo(ptr noundef nonnull align 4 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZNK3MIR9Statement14as_SetDropFlagEv(ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZNK3MIR9Statement7as_DropEv(ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3MIR9Statement11as_ScopeEndEv(ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { noreturn nounwind "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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint 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 #7 = { nounwind }
attributes #8 = { noreturn 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, !7, i64 0}
!6 = !{!"_ZTSN3MIR9Statement9Data_DropE", !7, i64 0, !10, i64 8, !18, i64 40}
!7 = !{!"_ZTSN3MIR9eDropKindE", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN3MIR6LValueE", !11, i64 0, !13, i64 8}
!11 = !{!"_ZTSN3MIR6LValue7StorageE", !12, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{!"_ZTSSt6vectorIN3MIR6LValue7WrapperESaIS2_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!17 = !{!"any pointer", !8, i64 0}
!18 = !{!"int", !8, i64 0}
!19 = !{!20, !18, i64 0}
!20 = !{!"_ZTSN3MIR9Statement16Data_SetDropFlagE", !18, i64 0, !21, i64 4, !18, i64 8}
!21 = !{!"bool", !8, i64 0}
!22 = !{!20, !18, i64 8}
!23 = !{!20, !21, i64 4}
!24 = !{i8 0, i8 2}
!25 = !{}
!26 = !{!6, !18, i64 40}
!27 = !{!18, !18, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass