; LLVM IR from thepowersgang/mrustc :: tools/dump_hirfile (main)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"struct.std::__detail::_Node_const_iterator.163" = type { %"struct.std::__detail::_Node_iterator_base.164" }
%"struct.std::__detail::_Node_iterator_base.164" = type { ptr }
%"struct.std::__detail::_Node_const_iterator.182" = type { %"struct.std::__detail::_Node_iterator_base.183" }
%"struct.std::__detail::_Node_iterator_base.183" = type { ptr }
%"struct.std::__detail::_Node_const_iterator.300" = type { %"struct.std::__detail::_Node_iterator_base.301" }
%"struct.std::__detail::_Node_iterator_base.301" = type { ptr }
%struct.Dumper = type { %"struct.Dumper::Filters" }
%"struct.Dumper::Filters" = type { %"struct.Dumper::Filters::Types", i8, i8 }
%"struct.Dumper::Filters::Types" = type { i8, i8, i8, i8, i8, i8 }
%"class.HIR::Module" = type { %"class.std::vector", %"class.std::unordered_map", %"class.std::unordered_map.8", %"class.std::unordered_map.22", %"class.std::vector.36" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::unordered_map.8" = type { %"class.std::_Hashtable.9" }
%"class.std::_Hashtable.9" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.22" = type { %"class.std::_Hashtable.23" }
%"class.std::_Hashtable.23" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.165" = type { %class.RcString, %"class.std::unique_ptr" }
%class.RcString = type { ptr }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.168" }
%"struct.std::_Head_base.168" = type { ptr }
%"struct.HIR::VisEnt" = type { %"class.HIR::Publicity", %"class.HIR::MacroItem" }
%"class.HIR::Publicity" = type { %"class.std::shared_ptr" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.HIR::MacroItem" = type { i32, %"union.HIR::MacroItem::DataUnion" }
%"union.HIR::MacroItem::DataUnion" = type { %"class.HIR::ProcMacro" }
%"class.HIR::ProcMacro" = type { i32, %class.RcString, %"struct.HIR::SimplePath", %"class.std::vector.144" }
%"struct.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%"class.std::vector.144" = type { %"struct.std::_Vector_base.145" }
%"struct.std::_Vector_base.145" = 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.HIR::MacroItem::Data_Import" = type { %"struct.HIR::SimplePath" }
%"struct.std::pair.184" = type { %class.RcString, %"class.std::unique_ptr.186" }
%"class.std::unique_ptr.186" = type { %"struct.std::__uniq_ptr_data.187" }
%"struct.std::__uniq_ptr_data.187" = type { %"class.std::__uniq_ptr_impl.188" }
%"class.std::__uniq_ptr_impl.188" = type { %"class.std::tuple.189" }
%"class.std::tuple.189" = type { %"struct.std::_Tuple_impl.190" }
%"struct.std::_Tuple_impl.190" = type { %"struct.std::_Head_base.193" }
%"struct.std::_Head_base.193" = type { ptr }
%"struct.HIR::VisEnt.194" = type { %"class.HIR::Publicity", %"class.HIR::TypeItem" }
%"class.HIR::TypeItem" = type { i32, %"union.HIR::TypeItem::DataUnion" }
%"union.HIR::TypeItem::DataUnion" = type { %"class.HIR::Trait" }
%"class.HIR::Trait" = type { %"class.HIR::GenericParams", %"struct.HIR::LifetimeRef", %"class.std::vector.215", i8, %"class.std::unordered_map.245", %"class.std::unordered_map.259", %"class.std::unordered_multimap", %"class.std::unordered_map.286", i32, %"class.std::vector.215", %"struct.HIR::SimplePath" }
%"class.HIR::GenericParams" = type { %"class.std::vector.195", %"class.std::vector.200", %"class.std::vector.205", %"class.std::vector.210" }
%"class.std::vector.195" = type { %"struct.std::_Vector_base.196" }
%"struct.std::_Vector_base.196" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.200" = type { %"struct.std::_Vector_base.201" }
%"struct.std::_Vector_base.201" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.205" = type { %"struct.std::_Vector_base.206" }
%"struct.std::_Vector_base.206" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.210" = type { %"struct.std::_Vector_base.211" }
%"struct.std::_Vector_base.211" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::LifetimeRef" = type { i32 }
%"class.std::unordered_map.245" = type { %"class.std::_Hashtable.246" }
%"class.std::_Hashtable.246" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.259" = type { %"class.std::_Hashtable.260" }
%"class.std::_Hashtable.260" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_multimap" = type { %"class.std::_Hashtable.273" }
%"class.std::_Hashtable.273" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.286" = type { %"class.std::_Hashtable.287" }
%"class.std::_Hashtable.287" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.215" = type { %"struct.std::_Vector_base.216" }
%"struct.std::_Vector_base.216" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.302" = type { %class.RcString, %"class.std::unique_ptr.304" }
%"class.std::unique_ptr.304" = type { %"struct.std::__uniq_ptr_data.305" }
%"struct.std::__uniq_ptr_data.305" = type { %"class.std::__uniq_ptr_impl.306" }
%"class.std::__uniq_ptr_impl.306" = type { %"class.std::tuple.307" }
%"class.std::tuple.307" = type { %"struct.std::_Tuple_impl.308" }
%"struct.std::_Tuple_impl.308" = type { %"struct.std::_Head_base.311" }
%"struct.std::_Head_base.311" = type { ptr }
%"struct.HIR::VisEnt.312" = type { %"class.HIR::Publicity", %"class.HIR::ValueItem" }
%"class.HIR::ValueItem" = type { i32, %"union.HIR::ValueItem::DataUnion" }
%"union.HIR::ValueItem::DataUnion" = type { %"class.HIR::Static" }
%"class.HIR::Static" = type { %"class.HIR::GenericParams", %"struct.HIR::Linkage", i8, %"class.HIR::TypeRef", %"class.HIR::ExprPtr", %struct.EncodedLiteral, i8, i8, i8, %"class.std::map.328" }
%"struct.HIR::Linkage" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"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.HIR::TypeRef" = type { ptr }
%"class.HIR::ExprPtr" = type { %"class.HIR::ExprPtrInner", %"class.std::vector.313", %"class.std::vector.313", %"class.MIR::FunctionPointer", %"class.HIR::ExprStatePtr" }
%"class.HIR::ExprPtrInner" = type { ptr }
%"class.std::vector.313" = type { %"struct.std::_Vector_base.314" }
%"struct.std::_Vector_base.314" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.MIR::FunctionPointer" = type { ptr }
%"class.HIR::ExprStatePtr" = type { ptr }
%struct.EncodedLiteral = type { %"class.std::vector.318", %"class.std::vector.323" }
%"class.std::vector.318" = type { %"struct.std::_Vector_base.319" }
%"struct.std::_Vector_base.319" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.323" = type { %"struct.std::_Vector_base.324" }
%"struct.std::_Vector_base.324" = type { %"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl" }
%"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl" = type { %"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.328" = type { %"class.std::_Rb_tree.329" }
%"class.std::_Rb_tree.329" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, EncodedLiteral>, std::_Select1st<std::pair<const HIR::Path, EncodedLiteral>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, EncodedLiteral>, std::_Select1st<std::pair<const HIR::Path, EncodedLiteral>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [82 x i8], align 1
@__PRETTY_FUNCTION__._ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi = external hidden unnamed_addr constant [102 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef byval(%"class.HIR::ItemPath") align 8 %1, ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull align 8 dereferenceable(216) %3, i32 noundef %4) #3 align 2 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca %"struct.std::__detail::_Node_const_iterator.163", align 8
  %12 = alloca %"struct.std::__detail::_Node_const_iterator.163", align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca %"class.HIR::ItemPath", align 8
  %16 = alloca i8, align 1
  %17 = alloca ptr, align 8
  %18 = alloca i8, align 1
  %19 = alloca ptr, align 8
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca i8, align 1
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %"struct.std::__detail::_Node_const_iterator.182", align 8
  %26 = alloca %"struct.std::__detail::_Node_const_iterator.182", align 8
  %27 = alloca ptr, align 8
  %28 = alloca %"class.HIR::ItemPath", align 8
  %29 = alloca i8, align 1
  %30 = alloca ptr, align 8
  %31 = alloca i8, align 1
  %32 = alloca ptr, align 8
  %33 = alloca %"class.HIR::ItemPath", align 8
  %34 = alloca i8, align 1
  %35 = alloca ptr, align 8
  %36 = alloca %"class.HIR::ItemPath", 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 i8, align 1
  %46 = alloca ptr, align 8
  %47 = alloca %"class.HIR::ItemPath", align 8
  %48 = alloca i8, align 1
  %49 = alloca ptr, align 8
  %50 = alloca i8, align 1
  %51 = alloca ptr, align 8
  %52 = alloca %"class.HIR::ItemPath", align 8
  %53 = alloca ptr, align 8
  %54 = alloca %"struct.std::__detail::_Node_const_iterator.300", align 8
  %55 = alloca %"struct.std::__detail::_Node_const_iterator.300", align 8
  %56 = alloca ptr, align 8
  %57 = alloca %"class.HIR::ItemPath", align 8
  %58 = alloca i8, align 1
  %59 = alloca ptr, align 8
  %60 = alloca i8, align 1
  %61 = alloca ptr, align 8
  %62 = alloca %"class.HIR::ItemPath", align 8
  %63 = alloca i8, align 1
  %64 = alloca ptr, align 8
  %65 = alloca %"class.HIR::ItemPath", align 8
  %66 = alloca i8, align 1
  %67 = alloca ptr, align 8
  %68 = alloca %"class.HIR::ItemPath", align 8
  %69 = alloca i8, align 1
  %70 = alloca ptr, align 8
  %71 = alloca i8, align 1
  %72 = alloca ptr, align 8
  %73 = alloca i8, align 1
  %74 = alloca ptr, align 8
  %75 = alloca %"class.HIR::ItemPath", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  store i32 %4, ptr %9, align 4, !tbaa !9
  %76 = load ptr, ptr %6, align 8
  %77 = getelementptr inbounds %struct.Dumper, ptr %76, i32 0, i32 0
  %78 = getelementptr inbounds %"struct.Dumper::Filters", ptr %77, i32 0, i32 1
  %79 = load i8, ptr %78, align 1, !tbaa !11, !range !16, !noundef !17
  %80 = trunc i8 %79 to i1
  br i1 %80, label %81, label %85

81:                                               ; preds = %5
  %82 = load ptr, ptr %7, align 8, !tbaa !5
  %83 = call noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %82)
  br i1 %83, label %85, label %84

84:                                               ; preds = %81
  br label %594

85:                                               ; preds = %81, %5
  %86 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.3)
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_8ItemPathE(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(56) %1)
  %88 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %89 = load ptr, ptr %8, align 8, !tbaa !5
  %90 = getelementptr inbounds %"class.HIR::Module", ptr %89, i32 0, i32 3
  store ptr %90, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %91 = load ptr, ptr %10, align 8, !tbaa !5
  %92 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %91) #7
  %93 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.163", ptr %11, i32 0, i32 0
  %94 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.164", ptr %93, i32 0, i32 0
  store ptr %92, ptr %94, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %95 = load ptr, ptr %10, align 8, !tbaa !5
  %96 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %95) #7
  %97 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.163", ptr %12, i32 0, i32 0
  %98 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.164", ptr %97, i32 0, i32 0
  store ptr %96, ptr %98, align 8
  br label %99

99:                                               ; preds = %198, %85
  %100 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  br i1 %100, label %102, label %101

101:                                              ; preds = %99
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  br label %200

102:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %103 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  store ptr %103, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %15) #7
  %104 = load ptr, ptr %14, align 8, !tbaa !5
  %105 = getelementptr inbounds %"struct.std::pair.165", ptr %104, i32 0, i32 0
  call void @_ZNK3HIR8ItemPathplERK8RcString(ptr dead_on_unwind writable sret(%"class.HIR::ItemPath") align 8 %15, ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(8) %105)
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #7
  store i8 1, ptr %16, align 1, !tbaa !18
  br label %106

106:                                              ; preds = %196, %102
  %107 = load i8, ptr %16, align 1, !tbaa !18, !range !16, !noundef !17
  %108 = trunc i8 %107 to i1
  br i1 %108, label %110, label %109

109:                                              ; preds = %106
  store i32 4, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  br label %197

110:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %111 = load ptr, ptr %14, align 8, !tbaa !5
  %112 = getelementptr inbounds %"struct.std::pair.165", ptr %111, i32 0, i32 1
  %113 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %112) #7
  %114 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %113, i32 0, i32 1
  store ptr %114, ptr %17, align 8, !tbaa !5
  br label %115

115:                                              ; preds = %194, %110
  %116 = load i8, ptr %16, align 1, !tbaa !18, !range !16, !noundef !17
  %117 = trunc i8 %116 to i1
  br i1 %117, label %119, label %118

118:                                              ; preds = %115
  store i32 7, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %195

119:                                              ; preds = %115
  %120 = load ptr, ptr %17, align 8, !tbaa !5
  %121 = call noundef i32 @_ZNK3HIR9MacroItem3tagEv(ptr noundef nonnull align 8 dereferenceable(56) %120)
  switch i32 %121, label %193 [
    i32 0, label %122
    i32 1, label %123
    i32 2, label %148
    i32 3, label %168
  ]

122:                                              ; preds = %119
  call void @__assert_fail(ptr noundef @.str.4, ptr noundef @.str.5, i32 noundef 154, ptr noundef @__PRETTY_FUNCTION__._ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi) #8
  unreachable

123:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #7
  store i8 1, ptr %18, align 1, !tbaa !18
  br label %124

124:                                              ; preds = %146, %123
  %125 = load i8, ptr %18, align 1, !tbaa !18, !range !16, !noundef !17
  %126 = trunc i8 %125 to i1
  br i1 %126, label %128, label %127

127:                                              ; preds = %124
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  br label %147

128:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %129 = load ptr, ptr %17, align 8, !tbaa !5
  %130 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %129)
  store ptr %130, ptr %19, align 8, !tbaa !5
  br label %131

131:                                              ; preds = %144, %128
  %132 = load ptr, ptr %19, align 8, !tbaa !5
  %133 = load i8, ptr %18, align 1, !tbaa !18, !range !16, !noundef !17
  %134 = trunc i8 %133 to i1
  br i1 %134, label %136, label %135

135:                                              ; preds = %131
  store i32 14, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %145

136:                                              ; preds = %131
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.6)
  %138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_8ItemPathE(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 8 dereferenceable(56) %15)
  %139 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef @.str.7)
  %140 = load ptr, ptr %19, align 8, !tbaa !5
  %141 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %140, i32 0, i32 0
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull align 8 dereferenceable(8) %141)
  %143 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef @.str.8)
  br label %144

144:                                              ; preds = %136
  store i8 0, ptr %18, align 1, !tbaa !18
  br label %131, !llvm.loop !19

145:                                              ; preds = %135
  br label %146

146:                                              ; preds = %145
  store i8 0, ptr %18, align 1, !tbaa !18
  br label %124, !llvm.loop !21

147:                                              ; preds = %127
  br label %193

148:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #7
  store i8 1, ptr %20, align 1, !tbaa !18
  br label %149

149:                                              ; preds = %166, %148
  %150 = load i8, ptr %20, align 1, !tbaa !18, !range !16, !noundef !17
  %151 = trunc i8 %150 to i1
  br i1 %151, label %153, label %152

152:                                              ; preds = %149
  store i32 17, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #7
  br label %167

153:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %154 = load ptr, ptr %17, align 8, !tbaa !5
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %154)
  store ptr %155, ptr %21, align 8, !tbaa !5
  br label %156

156:                                              ; preds = %164, %153
  %157 = load ptr, ptr %21, align 8, !tbaa !5
  %158 = load i8, ptr %20, align 1, !tbaa !18, !range !16, !noundef !17
  %159 = trunc i8 %158 to i1
  br i1 %159, label %161, label %160

160:                                              ; preds = %156
  store i32 20, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %165

161:                                              ; preds = %156
  %162 = load ptr, ptr %21, align 8, !tbaa !5
  %163 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %162)
  call void @_ZNK6Dumper15dump_macrorulesERKN3HIR8ItemPathERK10MacroRules(ptr noundef nonnull align 1 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(56) %15, ptr noundef nonnull align 8 dereferenceable(64) %163)
  br label %164

164:                                              ; preds = %161
  store i8 0, ptr %20, align 1, !tbaa !18
  br label %156, !llvm.loop !22

165:                                              ; preds = %160
  br label %166

166:                                              ; preds = %165
  store i8 0, ptr %20, align 1, !tbaa !18
  br label %149, !llvm.loop !23

167:                                              ; preds = %152
  br label %193

168:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #7
  store i8 1, ptr %22, align 1, !tbaa !18
  br label %169

169:                                              ; preds = %191, %168
  %170 = load i8, ptr %22, align 1, !tbaa !18, !range !16, !noundef !17
  %171 = trunc i8 %170 to i1
  br i1 %171, label %173, label %172

172:                                              ; preds = %169
  store i32 23, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #7
  br label %192

173:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %174 = load ptr, ptr %17, align 8, !tbaa !5
  %175 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN3HIR9MacroItem12as_ProcMacroEv(ptr noundef nonnull align 8 dereferenceable(56) %174)
  store ptr %175, ptr %23, align 8, !tbaa !5
  br label %176

176:                                              ; preds = %189, %173
  %177 = load ptr, ptr %23, align 8, !tbaa !5
  %178 = load i8, ptr %22, align 1, !tbaa !18, !range !16, !noundef !17
  %179 = trunc i8 %178 to i1
  br i1 %179, label %181, label %180

180:                                              ; preds = %176
  store i32 26, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %190

181:                                              ; preds = %176
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.9)
  %183 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_8ItemPathE(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull align 8 dereferenceable(56) %15)
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %183, ptr noundef @.str.7)
  %185 = load ptr, ptr %23, align 8, !tbaa !5
  %186 = getelementptr inbounds %"class.HIR::ProcMacro", ptr %185, i32 0, i32 2
  %187 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %184, ptr noundef nonnull align 8 dereferenceable(8) %186)
  %188 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %187, ptr noundef @.str.8)
  br label %189

189:                                              ; preds = %181
  store i8 0, ptr %22, align 1, !tbaa !18
  br label %176, !llvm.loop !24

190:                                              ; preds = %180
  br label %191

191:                                              ; preds = %190
  store i8 0, ptr %22, align 1, !tbaa !18
  br label %169, !llvm.loop !25

192:                                              ; preds = %172
  br label %193

193:                                              ; preds = %192, %167, %147, %119
  br label %194

194:                                              ; preds = %193
  store i8 0, ptr %16, align 1, !tbaa !18
  br label %115, !llvm.loop !26

195:                                              ; preds = %118
  br label %196

196:                                              ; preds = %195
  store i8 0, ptr %16, align 1, !tbaa !18
  br label %106, !llvm.loop !27

197:                                              ; preds = %109
  call void @llvm.lifetime.end.p0(i64 56, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  br label %198

198:                                              ; preds = %197
  %199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  br label %99

200:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %201 = load ptr, ptr %8, align 8, !tbaa !5
  %202 = getelementptr inbounds %"class.HIR::Module", ptr %201, i32 0, i32 2
  store ptr %202, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %203 = load ptr, ptr %24, align 8, !tbaa !5
  %204 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %203) #7
  %205 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.182", ptr %25, i32 0, i32 0
  %206 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.183", ptr %205, i32 0, i32 0
  store ptr %204, ptr %206, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %207 = load ptr, ptr %24, align 8, !tbaa !5
  %208 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %207) #7
  %209 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.182", ptr %26, i32 0, i32 0
  %210 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.183", ptr %209, i32 0, i32 0
  store ptr %208, ptr %210, align 8
  br label %211

211:                                              ; preds = %422, %200
  %212 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br i1 %212, label %214, label %213

213:                                              ; preds = %211
  store i32 29, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %424

214:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %215 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  store ptr %215, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %28) #7
  %216 = load ptr, ptr %27, align 8, !tbaa !5
  %217 = getelementptr inbounds %"struct.std::pair.184", ptr %216, i32 0, i32 0
  call void @_ZNK3HIR8ItemPathplERK8RcString(ptr dead_on_unwind writable sret(%"class.HIR::ItemPath") align 8 %28, ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(8) %217)
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #7
  store i8 1, ptr %29, align 1, !tbaa !18
  br label %218

218:                                              ; preds = %420, %214
  %219 = load i8, ptr %29, align 1, !tbaa !18, !range !16, !noundef !17
  %220 = trunc i8 %219 to i1
  br i1 %220, label %222, label %221

221:                                              ; preds = %218
  store i32 31, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  br label %421

222:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %223 = load ptr, ptr %27, align 8, !tbaa !5
  %224 = getelementptr inbounds %"struct.std::pair.184", ptr %223, i32 0, i32 1
  %225 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %224) #7
  %226 = getelementptr inbounds %"struct.HIR::VisEnt.194", ptr %225, i32 0, i32 1
  store ptr %226, ptr %30, align 8, !tbaa !5
  br label %227

227:                                              ; preds = %418, %222
  %228 = load i8, ptr %29, align 1, !tbaa !18, !range !16, !noundef !17
  %229 = trunc i8 %228 to i1
  br i1 %229, label %231, label %230

230:                                              ; preds = %227
  store i32 34, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  br label %419

231:                                              ; preds = %227
  %232 = load ptr, ptr %30, align 8, !tbaa !5
  %233 = call noundef i32 @_ZNK3HIR8TypeItem3tagEv(ptr noundef nonnull align 8 dereferenceable(408) %232)
  switch i32 %233, label %417 [
    i32 0, label %234
    i32 2, label %235
    i32 1, label %258
    i32 4, label %281
    i32 3, label %299
    i32 5, label %317
    i32 6, label %335
    i32 7, label %353
    i32 8, label %376
    i32 9, label %394
  ]

234:                                              ; preds = %231
  call void @__assert_fail(ptr noundef @.str.4, ptr noundef @.str.5, i32 noundef 171, ptr noundef @__PRETTY_FUNCTION__._ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi) #8
  unreachable

235:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #7
  store i8 1, ptr %31, align 1, !tbaa !18
  br label %236

236:                                              ; preds = %256, %235
  %237 = load i8, ptr %31, align 1, !tbaa !18, !range !16, !noundef !17
  %238 = trunc i8 %237 to i1
  br i1 %238, label %240, label %239

239:                                              ; preds = %236
  store i32 38, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  br label %257

240:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %241 = load ptr, ptr %30, align 8, !tbaa !5
  %242 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %241)
  store ptr %242, ptr %32, align 8, !tbaa !5
  br label %243

243:                                              ; preds = %254, %240
  %244 = load ptr, ptr %32, align 8, !tbaa !5
  %245 = load i8, ptr %31, align 1, !tbaa !18, !range !16, !noundef !17
  %246 = trunc i8 %245 to i1
  br i1 %246, label %248, label %247

247:                                              ; preds = %243
  store i32 41, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %255

248:                                              ; preds = %243
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %33, ptr align 8 %28, i64 56, i1 false), !tbaa.struct !28
  %249 = load ptr, ptr %27, align 8, !tbaa !5
  %250 = getelementptr inbounds %"struct.std::pair.184", ptr %249, i32 0, i32 1
  %251 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %250) #7
  %252 = getelementptr inbounds %"struct.HIR::VisEnt.194", ptr %251, i32 0, i32 0
  %253 = load ptr, ptr %32, align 8, !tbaa !5
  call void @_ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi(ptr noundef nonnull align 1 dereferenceable(8) %76, ptr noundef byval(%"class.HIR::ItemPath") align 8 %33, ptr noundef nonnull align 8 dereferenceable(16) %252, ptr noundef nonnull align 8 dereferenceable(216) %253, i32 noundef 0)
  br label %254

254:                                              ; preds = %248
  store i8 0, ptr %31, align 1, !tbaa !18
  br label %243, !llvm.loop !29

255:                                              ; preds = %247
  br label %256

256:                                              ; preds = %255
  store i8 0, ptr %31, align 1, !tbaa !18
  br label %236, !llvm.loop !30

257:                                              ; preds = %239
  br label %417

258:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #7
  store i8 1, ptr %34, align 1, !tbaa !18
  br label %259

259:                                              ; preds = %279, %258
  %260 = load i8, ptr %34, align 1, !tbaa !18, !range !16, !noundef !17
  %261 = trunc i8 %260 to i1
  br i1 %261, label %263, label %262

262:                                              ; preds = %259
  store i32 44, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  br label %280

263:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %264 = load ptr, ptr %30, align 8, !tbaa !5
  %265 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %264)
  store ptr %265, ptr %35, align 8, !tbaa !5
  br label %266

266:                                              ; preds = %277, %263
  %267 = load ptr, ptr %35, align 8, !tbaa !5
  %268 = load i8, ptr %34, align 1, !tbaa !18, !range !16, !noundef !17
  %269 = trunc i8 %268 to i1
  br i1 %269, label %271, label %270

270:                                              ; preds = %266
  store i32 47, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  br label %278

271:                                              ; preds = %266
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %36, ptr align 8 %28, i64 56, i1 false), !tbaa.struct !28
  %272 = load ptr, ptr %27, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.std::pair.184", ptr %272, i32 0, i32 1
  %274 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %273) #7
  %275 = getelementptr inbounds %"struct.HIR::VisEnt.194", ptr %274, i32 0, i32 0
  %276 = load ptr, ptr %35, align 8, !tbaa !5
  call void @_ZNK6Dumper15dump_mod_importEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8TypeItem11Data_ImportEi(ptr noundef nonnull align 1 dereferenceable(8) %76, ptr noundef byval(%"class.HIR::ItemPath") align 8 %36, ptr noundef nonnull align 8 dereferenceable(16) %275, ptr noundef nonnull align 8 dereferenceable(16) %276, i32 noundef 0)
  br label %277

277:                                              ; preds = %271
  store i8 0, ptr %34, align 1, !tbaa !18
  br label %266, !llvm.loop !31

278:                                              ; preds = %270
  br label %279

279:                                              ; preds = %278
  store i8 0, ptr %34, align 1, !tbaa !18
  br label %259, !llvm.loop !32

280:                                              ; preds = %262
  br label %417

281:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #7
  store i8 1, ptr %37, align 1, !tbaa !18
  br label %282

282:                                              ; preds = %297, %281
  %283 = load i8, ptr %37, align 1, !tbaa !18, !range !16, !noundef !17
  %284 = trunc i8 %283 to i1
  br i1 %284, label %286, label %285

285:                                              ; preds = %282
  store i32 50, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #7
  br label %298

286:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %287 = load ptr, ptr %30, align 8, !tbaa !5
  %288 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZN3HIR8TypeItem13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %287)
  store ptr %288, ptr %38, align 8, !tbaa !5
  br label %289

289:                                              ; preds = %295, %286
  %290 = load ptr, ptr %38, align 8, !tbaa !5
  %291 = load i8, ptr %37, align 1, !tbaa !18, !range !16, !noundef !17
  %292 = trunc i8 %291 to i1
  br i1 %292, label %294, label %293

293:                                              ; preds = %289
  store i32 53, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %296

294:                                              ; preds = %289
  br label %295

295:                                              ; preds = %294
  store i8 0, ptr %37, align 1, !tbaa !18
  br label %289, !llvm.loop !33

296:                                              ; preds = %293
  br label %297

297:                                              ; preds = %296
  store i8 0, ptr %37, align 1, !tbaa !18
  br label %282, !llvm.loop !34

298:                                              ; preds = %285
  br label %417

299:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  store i8 1, ptr %39, align 1, !tbaa !18
  br label %300

300:                                              ; preds = %315, %299
  %301 = load i8, ptr %39, align 1, !tbaa !18, !range !16, !noundef !17
  %302 = trunc i8 %301 to i1
  br i1 %302, label %304, label %303

303:                                              ; preds = %300
  store i32 56, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  br label %316

304:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %305 = load ptr, ptr %30, align 8, !tbaa !5
  %306 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZN3HIR8TypeItem12as_TypeAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %305)
  store ptr %306, ptr %40, align 8, !tbaa !5
  br label %307

307:                                              ; preds = %313, %304
  %308 = load ptr, ptr %40, align 8, !tbaa !5
  %309 = load i8, ptr %39, align 1, !tbaa !18, !range !16, !noundef !17
  %310 = trunc i8 %309 to i1
  br i1 %310, label %312, label %311

311:                                              ; preds = %307
  store i32 59, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %314

312:                                              ; preds = %307
  br label %313

313:                                              ; preds = %312
  store i8 0, ptr %39, align 1, !tbaa !18
  br label %307, !llvm.loop !35

314:                                              ; preds = %311
  br label %315

315:                                              ; preds = %314
  store i8 0, ptr %39, align 1, !tbaa !18
  br label %300, !llvm.loop !36

316:                                              ; preds = %303
  br label %417

317:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #7
  store i8 1, ptr %41, align 1, !tbaa !18
  br label %318

318:                                              ; preds = %333, %317
  %319 = load i8, ptr %41, align 1, !tbaa !18, !range !16, !noundef !17
  %320 = trunc i8 %319 to i1
  br i1 %320, label %322, label %321

321:                                              ; preds = %318
  store i32 62, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  br label %334

322:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %323 = load ptr, ptr %30, align 8, !tbaa !5
  %324 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN3HIR8TypeItem13as_ExternTypeEv(ptr noundef nonnull align 8 dereferenceable(408) %323)
  store ptr %324, ptr %42, align 8, !tbaa !5
  br label %325

325:                                              ; preds = %331, %322
  %326 = load ptr, ptr %42, align 8, !tbaa !5
  %327 = load i8, ptr %41, align 1, !tbaa !18, !range !16, !noundef !17
  %328 = trunc i8 %327 to i1
  br i1 %328, label %330, label %329

329:                                              ; preds = %325
  store i32 65, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  br label %332

330:                                              ; preds = %325
  br label %331

331:                                              ; preds = %330
  store i8 0, ptr %41, align 1, !tbaa !18
  br label %325, !llvm.loop !37

332:                                              ; preds = %329
  br label %333

333:                                              ; preds = %332
  store i8 0, ptr %41, align 1, !tbaa !18
  br label %318, !llvm.loop !38

334:                                              ; preds = %321
  br label %417

335:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  store i8 1, ptr %43, align 1, !tbaa !18
  br label %336

336:                                              ; preds = %351, %335
  %337 = load i8, ptr %43, align 1, !tbaa !18, !range !16, !noundef !17
  %338 = trunc i8 %337 to i1
  br i1 %338, label %340, label %339

339:                                              ; preds = %336
  store i32 68, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  br label %352

340:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %341 = load ptr, ptr %30, align 8, !tbaa !5
  %342 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %341)
  store ptr %342, ptr %44, align 8, !tbaa !5
  br label %343

343:                                              ; preds = %349, %340
  %344 = load ptr, ptr %44, align 8, !tbaa !5
  %345 = load i8, ptr %43, align 1, !tbaa !18, !range !16, !noundef !17
  %346 = trunc i8 %345 to i1
  br i1 %346, label %348, label %347

347:                                              ; preds = %343
  store i32 71, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  br label %350

348:                                              ; preds = %343
  br label %349

349:                                              ; preds = %348
  store i8 0, ptr %43, align 1, !tbaa !18
  br label %343, !llvm.loop !39

350:                                              ; preds = %347
  br label %351

351:                                              ; preds = %350
  store i8 0, ptr %43, align 1, !tbaa !18
  br label %336, !llvm.loop !40

352:                                              ; preds = %339
  br label %417

353:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #7
  store i8 1, ptr %45, align 1, !tbaa !18
  br label %354

354:                                              ; preds = %374, %353
  %355 = load i8, ptr %45, align 1, !tbaa !18, !range !16, !noundef !17
  %356 = trunc i8 %355 to i1
  br i1 %356, label %358, label %357

357:                                              ; preds = %354
  store i32 74, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #7
  br label %375

358:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %359 = load ptr, ptr %30, align 8, !tbaa !5
  %360 = call noundef nonnull align 8 dereferenceable(252) ptr @_ZN3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %359)
  store ptr %360, ptr %46, align 8, !tbaa !5
  br label %361

361:                                              ; preds = %372, %358
  %362 = load ptr, ptr %46, align 8, !tbaa !5
  %363 = load i8, ptr %45, align 1, !tbaa !18, !range !16, !noundef !17
  %364 = trunc i8 %363 to i1
  br i1 %364, label %366, label %365

365:                                              ; preds = %361
  store i32 77, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %373

366:                                              ; preds = %361
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %47, ptr align 8 %28, i64 56, i1 false), !tbaa.struct !28
  %367 = load ptr, ptr %27, align 8, !tbaa !5
  %368 = getelementptr inbounds %"struct.std::pair.184", ptr %367, i32 0, i32 1
  %369 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %368) #7
  %370 = getelementptr inbounds %"struct.HIR::VisEnt.194", ptr %369, i32 0, i32 0
  %371 = load ptr, ptr %46, align 8, !tbaa !5
  call void @_ZNK6Dumper11dump_structEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6StructEi(ptr noundef nonnull align 1 dereferenceable(8) %76, ptr noundef byval(%"class.HIR::ItemPath") align 8 %47, ptr noundef nonnull align 8 dereferenceable(16) %370, ptr noundef nonnull align 8 dereferenceable(252) %371, i32 noundef 0)
  br label %372

372:                                              ; preds = %366
  store i8 0, ptr %45, align 1, !tbaa !18
  br label %361, !llvm.loop !41

373:                                              ; preds = %365
  br label %374

374:                                              ; preds = %373
  store i8 0, ptr %45, align 1, !tbaa !18
  br label %354, !llvm.loop !42

375:                                              ; preds = %357
  br label %417

376:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #7
  store i8 1, ptr %48, align 1, !tbaa !18
  br label %377

377:                                              ; preds = %392, %376
  %378 = load i8, ptr %48, align 1, !tbaa !18, !range !16, !noundef !17
  %379 = trunc i8 %378 to i1
  br i1 %379, label %381, label %380

380:                                              ; preds = %377
  store i32 80, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #7
  br label %393

381:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %382 = load ptr, ptr %30, align 8, !tbaa !5
  %383 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZN3HIR8TypeItem8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(408) %382)
  store ptr %383, ptr %49, align 8, !tbaa !5
  br label %384

384:                                              ; preds = %390, %381
  %385 = load ptr, ptr %49, align 8, !tbaa !5
  %386 = load i8, ptr %48, align 1, !tbaa !18, !range !16, !noundef !17
  %387 = trunc i8 %386 to i1
  br i1 %387, label %389, label %388

388:                                              ; preds = %384
  store i32 83, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br label %391

389:                                              ; preds = %384
  br label %390

390:                                              ; preds = %389
  store i8 0, ptr %48, align 1, !tbaa !18
  br label %384, !llvm.loop !43

391:                                              ; preds = %388
  br label %392

392:                                              ; preds = %391
  store i8 0, ptr %48, align 1, !tbaa !18
  br label %377, !llvm.loop !44

393:                                              ; preds = %380
  br label %417

394:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #7
  store i8 1, ptr %50, align 1, !tbaa !18
  br label %395

395:                                              ; preds = %415, %394
  %396 = load i8, ptr %50, align 1, !tbaa !18, !range !16, !noundef !17
  %397 = trunc i8 %396 to i1
  br i1 %397, label %399, label %398

398:                                              ; preds = %395
  store i32 86, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #7
  br label %416

399:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %400 = load ptr, ptr %30, align 8, !tbaa !5
  %401 = call noundef nonnull align 8 dereferenceable(400) ptr @_ZN3HIR8TypeItem8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(408) %400)
  store ptr %401, ptr %51, align 8, !tbaa !5
  br label %402

402:                                              ; preds = %413, %399
  %403 = load ptr, ptr %51, align 8, !tbaa !5
  %404 = load i8, ptr %50, align 1, !tbaa !18, !range !16, !noundef !17
  %405 = trunc i8 %404 to i1
  br i1 %405, label %407, label %406

406:                                              ; preds = %402
  store i32 89, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %414

407:                                              ; preds = %402
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %52, ptr align 8 %28, i64 56, i1 false), !tbaa.struct !28
  %408 = load ptr, ptr %27, align 8, !tbaa !5
  %409 = getelementptr inbounds %"struct.std::pair.184", ptr %408, i32 0, i32 1
  %410 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %409) #7
  %411 = getelementptr inbounds %"struct.HIR::VisEnt.194", ptr %410, i32 0, i32 0
  %412 = load ptr, ptr %51, align 8, !tbaa !5
  call void @_ZNK6Dumper10dump_traitEN3HIR8ItemPathERKNS0_9PublicityERKNS0_5TraitEi(ptr noundef nonnull align 1 dereferenceable(8) %76, ptr noundef byval(%"class.HIR::ItemPath") align 8 %52, ptr noundef nonnull align 8 dereferenceable(16) %411, ptr noundef nonnull align 8 dereferenceable(400) %412, i32 noundef 0)
  br label %413

413:                                              ; preds = %407
  store i8 0, ptr %50, align 1, !tbaa !18
  br label %402, !llvm.loop !45

414:                                              ; preds = %406
  br label %415

415:                                              ; preds = %414
  store i8 0, ptr %50, align 1, !tbaa !18
  br label %395, !llvm.loop !46

416:                                              ; preds = %398
  br label %417

417:                                              ; preds = %416, %393, %375, %352, %334, %316, %298, %280, %257, %231
  br label %418

418:                                              ; preds = %417
  store i8 0, ptr %29, align 1, !tbaa !18
  br label %227, !llvm.loop !47

419:                                              ; preds = %230
  br label %420

420:                                              ; preds = %419
  store i8 0, ptr %29, align 1, !tbaa !18
  br label %218, !llvm.loop !48

421:                                              ; preds = %221
  call void @llvm.lifetime.end.p0(i64 56, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %422

422:                                              ; preds = %421
  %423 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  br label %211

424:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  %425 = load ptr, ptr %8, align 8, !tbaa !5
  %426 = getelementptr inbounds %"class.HIR::Module", ptr %425, i32 0, i32 1
  store ptr %426, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %427 = load ptr, ptr %53, align 8, !tbaa !5
  %428 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %427) #7
  %429 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.300", ptr %54, i32 0, i32 0
  %430 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.301", ptr %429, i32 0, i32 0
  store ptr %428, ptr %430, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %431 = load ptr, ptr %53, align 8, !tbaa !5
  %432 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %431) #7
  %433 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.300", ptr %55, i32 0, i32 0
  %434 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.301", ptr %433, i32 0, i32 0
  store ptr %432, ptr %434, align 8
  br label %435

435:                                              ; preds = %592, %424
  %436 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %55) #7
  br i1 %436, label %438, label %437

437:                                              ; preds = %435
  store i32 92, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  br label %594

438:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %439 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #7
  store ptr %439, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %57) #7
  %440 = load ptr, ptr %56, align 8, !tbaa !5
  %441 = getelementptr inbounds %"struct.std::pair.302", ptr %440, i32 0, i32 0
  call void @_ZNK3HIR8ItemPathplERK8RcString(ptr dead_on_unwind writable sret(%"class.HIR::ItemPath") align 8 %57, ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(8) %441)
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #7
  store i8 1, ptr %58, align 1, !tbaa !18
  br label %442

442:                                              ; preds = %590, %438
  %443 = load i8, ptr %58, align 1, !tbaa !18, !range !16, !noundef !17
  %444 = trunc i8 %443 to i1
  br i1 %444, label %446, label %445

445:                                              ; preds = %442
  store i32 94, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  br label %591

446:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  %447 = load ptr, ptr %56, align 8, !tbaa !5
  %448 = getelementptr inbounds %"struct.std::pair.302", ptr %447, i32 0, i32 1
  %449 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %448) #7
  %450 = getelementptr inbounds %"struct.HIR::VisEnt.312", ptr %449, i32 0, i32 1
  store ptr %450, ptr %59, align 8, !tbaa !5
  br label %451

451:                                              ; preds = %588, %446
  %452 = load i8, ptr %58, align 1, !tbaa !18, !range !16, !noundef !17
  %453 = trunc i8 %452 to i1
  br i1 %453, label %455, label %454

454:                                              ; preds = %451
  store i32 97, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  br label %589

455:                                              ; preds = %451
  %456 = load ptr, ptr %59, align 8, !tbaa !5
  %457 = call noundef i32 @_ZNK3HIR9ValueItem3tagEv(ptr noundef nonnull align 8 dereferenceable(368) %456)
  switch i32 %457, label %587 [
    i32 0, label %458
    i32 1, label %459
    i32 2, label %482
    i32 3, label %505
    i32 4, label %528
    i32 6, label %546
    i32 5, label %564
  ]

458:                                              ; preds = %455
  call void @__assert_fail(ptr noundef @.str.4, ptr noundef @.str.5, i32 noundef 205, ptr noundef @__PRETTY_FUNCTION__._ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi) #8
  unreachable

459:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #7
  store i8 1, ptr %60, align 1, !tbaa !18
  br label %460

460:                                              ; preds = %480, %459
  %461 = load i8, ptr %60, align 1, !tbaa !18, !range !16, !noundef !17
  %462 = trunc i8 %461 to i1
  br i1 %462, label %464, label %463

463:                                              ; preds = %460
  store i32 101, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  br label %481

464:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  %465 = load ptr, ptr %59, align 8, !tbaa !5
  %466 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %465)
  store ptr %466, ptr %61, align 8, !tbaa !5
  br label %467

467:                                              ; preds = %478, %464
  %468 = load ptr, ptr %61, align 8, !tbaa !5
  %469 = load i8, ptr %60, align 1, !tbaa !18, !range !16, !noundef !17
  %470 = trunc i8 %469 to i1
  br i1 %470, label %472, label %471

471:                                              ; preds = %467
  store i32 104, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  br label %479

472:                                              ; preds = %467
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %62, ptr align 8 %57, i64 56, i1 false), !tbaa.struct !28
  %473 = load ptr, ptr %56, align 8, !tbaa !5
  %474 = getelementptr inbounds %"struct.std::pair.302", ptr %473, i32 0, i32 1
  %475 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %474) #7
  %476 = getelementptr inbounds %"struct.HIR::VisEnt.312", ptr %475, i32 0, i32 0
  %477 = load ptr, ptr %61, align 8, !tbaa !5
  call void @_ZNK6Dumper17dump_value_importEN3HIR8ItemPathERKNS0_9PublicityERKNS0_9ValueItem11Data_ImportEi(ptr noundef nonnull align 1 dereferenceable(8) %76, ptr noundef byval(%"class.HIR::ItemPath") align 8 %62, ptr noundef nonnull align 8 dereferenceable(16) %476, ptr noundef nonnull align 8 dereferenceable(16) %477, i32 noundef 0)
  br label %478

478:                                              ; preds = %472
  store i8 0, ptr %60, align 1, !tbaa !18
  br label %467, !llvm.loop !49

479:                                              ; preds = %471
  br label %480

480:                                              ; preds = %479
  store i8 0, ptr %60, align 1, !tbaa !18
  br label %460, !llvm.loop !50

481:                                              ; preds = %463
  br label %587

482:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #7
  store i8 1, ptr %63, align 1, !tbaa !18
  br label %483

483:                                              ; preds = %503, %482
  %484 = load i8, ptr %63, align 1, !tbaa !18, !range !16, !noundef !17
  %485 = trunc i8 %484 to i1
  br i1 %485, label %487, label %486

486:                                              ; preds = %483
  store i32 107, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  br label %504

487:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  %488 = load ptr, ptr %59, align 8, !tbaa !5
  %489 = call noundef nonnull align 8 dereferenceable(280) ptr @_ZN3HIR9ValueItem11as_ConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %488)
  store ptr %489, ptr %64, align 8, !tbaa !5
  br label %490

490:                                              ; preds = %501, %487
  %491 = load ptr, ptr %64, align 8, !tbaa !5
  %492 = load i8, ptr %63, align 1, !tbaa !18, !range !16, !noundef !17
  %493 = trunc i8 %492 to i1
  br i1 %493, label %495, label %494

494:                                              ; preds = %490
  store i32 110, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  br label %502

495:                                              ; preds = %490
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 %57, i64 56, i1 false), !tbaa.struct !28
  %496 = load ptr, ptr %56, align 8, !tbaa !5
  %497 = getelementptr inbounds %"struct.std::pair.302", ptr %496, i32 0, i32 1
  %498 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %497) #7
  %499 = getelementptr inbounds %"struct.HIR::VisEnt.312", ptr %498, i32 0, i32 0
  %500 = load ptr, ptr %64, align 8, !tbaa !5
  call void @_ZNK6Dumper13dump_constantEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8ConstantEi(ptr noundef nonnull align 1 dereferenceable(8) %76, ptr noundef byval(%"class.HIR::ItemPath") align 8 %65, ptr noundef nonnull align 8 dereferenceable(16) %499, ptr noundef nonnull align 8 dereferenceable(280) %500, i32 noundef 0)
  br label %501

501:                                              ; preds = %495
  store i8 0, ptr %63, align 1, !tbaa !18
  br label %490, !llvm.loop !51

502:                                              ; preds = %494
  br label %503

503:                                              ; preds = %502
  store i8 0, ptr %63, align 1, !tbaa !18
  br label %483, !llvm.loop !52

504:                                              ; preds = %486
  br label %587

505:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #7
  store i8 1, ptr %66, align 1, !tbaa !18
  br label %506

506:                                              ; preds = %526, %505
  %507 = load i8, ptr %66, align 1, !tbaa !18, !range !16, !noundef !17
  %508 = trunc i8 %507 to i1
  br i1 %508, label %510, label %509

509:                                              ; preds = %506
  store i32 113, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #7
  br label %527

510:                                              ; preds = %506
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  %511 = load ptr, ptr %59, align 8, !tbaa !5
  %512 = call noundef nonnull align 8 dereferenceable(360) ptr @_ZN3HIR9ValueItem9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(368) %511)
  store ptr %512, ptr %67, align 8, !tbaa !5
  br label %513

513:                                              ; preds = %524, %510
  %514 = load ptr, ptr %67, align 8, !tbaa !5
  %515 = load i8, ptr %66, align 1, !tbaa !18, !range !16, !noundef !17
  %516 = trunc i8 %515 to i1
  br i1 %516, label %518, label %517

517:                                              ; preds = %513
  store i32 116, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  br label %525

518:                                              ; preds = %513
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %68, ptr align 8 %57, i64 56, i1 false), !tbaa.struct !28
  %519 = load ptr, ptr %56, align 8, !tbaa !5
  %520 = getelementptr inbounds %"struct.std::pair.302", ptr %519, i32 0, i32 1
  %521 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %520) #7
  %522 = getelementptr inbounds %"struct.HIR::VisEnt.312", ptr %521, i32 0, i32 0
  %523 = load ptr, ptr %67, align 8, !tbaa !5
  call void @_ZNK6Dumper11dump_staticEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6StaticEi(ptr noundef nonnull align 1 dereferenceable(8) %76, ptr noundef byval(%"class.HIR::ItemPath") align 8 %68, ptr noundef nonnull align 8 dereferenceable(16) %522, ptr noundef nonnull align 8 dereferenceable(360) %523, i32 noundef 0)
  br label %524

524:                                              ; preds = %518
  store i8 0, ptr %66, align 1, !tbaa !18
  br label %513, !llvm.loop !53

525:                                              ; preds = %517
  br label %526

526:                                              ; preds = %525
  store i8 0, ptr %66, align 1, !tbaa !18
  br label %506, !llvm.loop !54

527:                                              ; preds = %509
  br label %587

528:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #7
  store i8 1, ptr %69, align 1, !tbaa !18
  br label %529

529:                                              ; preds = %544, %528
  %530 = load i8, ptr %69, align 1, !tbaa !18, !range !16, !noundef !17
  %531 = trunc i8 %530 to i1
  br i1 %531, label %533, label %532

532:                                              ; preds = %529
  store i32 119, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #7
  br label %545

533:                                              ; preds = %529
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  %534 = load ptr, ptr %59, align 8, !tbaa !5
  %535 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9ValueItem17as_StructConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %534)
  store ptr %535, ptr %70, align 8, !tbaa !5
  br label %536

536:                                              ; preds = %542, %533
  %537 = load ptr, ptr %70, align 8, !tbaa !5
  %538 = load i8, ptr %69, align 1, !tbaa !18, !range !16, !noundef !17
  %539 = trunc i8 %538 to i1
  br i1 %539, label %541, label %540

540:                                              ; preds = %536
  store i32 122, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  br label %543

541:                                              ; preds = %536
  br label %542

542:                                              ; preds = %541
  store i8 0, ptr %69, align 1, !tbaa !18
  br label %536, !llvm.loop !55

543:                                              ; preds = %540
  br label %544

544:                                              ; preds = %543
  store i8 0, ptr %69, align 1, !tbaa !18
  br label %529, !llvm.loop !56

545:                                              ; preds = %532
  br label %587

546:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #7
  store i8 1, ptr %71, align 1, !tbaa !18
  br label %547

547:                                              ; preds = %562, %546
  %548 = load i8, ptr %71, align 1, !tbaa !18, !range !16, !noundef !17
  %549 = trunc i8 %548 to i1
  br i1 %549, label %551, label %550

550:                                              ; preds = %547
  store i32 125, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  br label %563

551:                                              ; preds = %547
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %552 = load ptr, ptr %59, align 8, !tbaa !5
  %553 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9ValueItem20as_StructConstructorEv(ptr noundef nonnull align 8 dereferenceable(368) %552)
  store ptr %553, ptr %72, align 8, !tbaa !5
  br label %554

554:                                              ; preds = %560, %551
  %555 = load ptr, ptr %72, align 8, !tbaa !5
  %556 = load i8, ptr %71, align 1, !tbaa !18, !range !16, !noundef !17
  %557 = trunc i8 %556 to i1
  br i1 %557, label %559, label %558

558:                                              ; preds = %554
  store i32 128, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  br label %561

559:                                              ; preds = %554
  br label %560

560:                                              ; preds = %559
  store i8 0, ptr %71, align 1, !tbaa !18
  br label %554, !llvm.loop !57

561:                                              ; preds = %558
  br label %562

562:                                              ; preds = %561
  store i8 0, ptr %71, align 1, !tbaa !18
  br label %547, !llvm.loop !58

563:                                              ; preds = %550
  br label %587

564:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #7
  store i8 1, ptr %73, align 1, !tbaa !18
  br label %565

565:                                              ; preds = %585, %564
  %566 = load i8, ptr %73, align 1, !tbaa !18, !range !16, !noundef !17
  %567 = trunc i8 %566 to i1
  br i1 %567, label %569, label %568

568:                                              ; preds = %565
  store i32 131, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #7
  br label %586

569:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  %570 = load ptr, ptr %59, align 8, !tbaa !5
  %571 = call noundef nonnull align 8 dereferenceable(352) ptr @_ZN3HIR9ValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %570)
  store ptr %571, ptr %74, align 8, !tbaa !5
  br label %572

572:                                              ; preds = %583, %569
  %573 = load ptr, ptr %74, align 8, !tbaa !5
  %574 = load i8, ptr %73, align 1, !tbaa !18, !range !16, !noundef !17
  %575 = trunc i8 %574 to i1
  br i1 %575, label %577, label %576

576:                                              ; preds = %572
  store i32 134, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  br label %584

577:                                              ; preds = %572
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %75, ptr align 8 %57, i64 56, i1 false), !tbaa.struct !28
  %578 = load ptr, ptr %56, align 8, !tbaa !5
  %579 = getelementptr inbounds %"struct.std::pair.302", ptr %578, i32 0, i32 1
  %580 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %579) #7
  %581 = getelementptr inbounds %"struct.HIR::VisEnt.312", ptr %580, i32 0, i32 0
  %582 = load ptr, ptr %74, align 8, !tbaa !5
  call void @_ZNK6Dumper13dump_functionEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8FunctionEi(ptr noundef nonnull align 1 dereferenceable(8) %76, ptr noundef byval(%"class.HIR::ItemPath") align 8 %75, ptr noundef nonnull align 8 dereferenceable(16) %581, ptr noundef nonnull align 8 dereferenceable(352) %582, i32 noundef 0)
  br label %583

583:                                              ; preds = %577
  store i8 0, ptr %73, align 1, !tbaa !18
  br label %572, !llvm.loop !59

584:                                              ; preds = %576
  br label %585

585:                                              ; preds = %584
  store i8 0, ptr %73, align 1, !tbaa !18
  br label %565, !llvm.loop !60

586:                                              ; preds = %568
  br label %587

587:                                              ; preds = %586, %563, %545, %527, %504, %481, %455
  br label %588

588:                                              ; preds = %587
  store i8 0, ptr %58, align 1, !tbaa !18
  br label %451, !llvm.loop !61

589:                                              ; preds = %454
  br label %590

590:                                              ; preds = %589
  store i8 0, ptr %58, align 1, !tbaa !18
  br label %442, !llvm.loop !62

591:                                              ; preds = %445
  call void @llvm.lifetime.end.p0(i64 56, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %592

592:                                              ; preds = %591
  %593 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #7
  br label %435

594:                                              ; preds = %437, %84
  ret void
}

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3HIR8ItemPathplERK8RcString(ptr dead_on_unwind noalias writable sret(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper15dump_macrorulesERKN3HIR8ItemPathERK10MacroRules(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(64)) #3 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper15dump_mod_importEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8TypeItem11Data_ImportEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper11dump_structEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6StructEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(252), i32 noundef) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper10dump_traitEN3HIR8ItemPathERKNS0_9PublicityERKNS0_5TraitEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(400), i32 noundef) #3 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper17dump_value_importEN3HIR8ItemPathERKNS0_9PublicityERKNS0_9ValueItem11Data_ImportEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper13dump_constantEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8ConstantEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(280), i32 noundef) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper11dump_staticEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6StaticEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(360), i32 noundef) #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper13dump_functionEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8FunctionEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) #3 align 2

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
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 = !{!"int", !7, i64 0}
!11 = !{!12, !15, i64 6}
!12 = !{!"_ZTS6Dumper", !13, i64 0}
!13 = !{!"_ZTSN6Dumper7FiltersE", !14, i64 0, !15, i64 6, !15, i64 7}
!14 = !{!"_ZTSN6Dumper7Filters5TypesE", !15, i64 0, !15, i64 1, !15, i64 2, !15, i64 3, !15, i64 4, !15, i64 5}
!15 = !{!"bool", !7, i64 0}
!16 = !{i8 0, i8 2}
!17 = !{}
!18 = !{!15, !15, i64 0}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = distinct !{!21, !20}
!22 = distinct !{!22, !20}
!23 = distinct !{!23, !20}
!24 = distinct !{!24, !20}
!25 = distinct !{!25, !20}
!26 = distinct !{!26, !20}
!27 = distinct !{!27, !20}
!28 = !{i64 0, i64 8, !5, i64 8, i64 8, !5, i64 16, i64 8, !5, i64 24, i64 8, !5, i64 32, i64 8, !5, i64 40, i64 8, !5, i64 48, i64 8, !5}
!29 = distinct !{!29, !20}
!30 = distinct !{!30, !20}
!31 = distinct !{!31, !20}
!32 = distinct !{!32, !20}
!33 = distinct !{!33, !20}
!34 = distinct !{!34, !20}
!35 = distinct !{!35, !20}
!36 = distinct !{!36, !20}
!37 = distinct !{!37, !20}
!38 = distinct !{!38, !20}
!39 = distinct !{!39, !20}
!40 = distinct !{!40, !20}
!41 = distinct !{!41, !20}
!42 = distinct !{!42, !20}
!43 = distinct !{!43, !20}
!44 = distinct !{!44, !20}
!45 = distinct !{!45, !20}
!46 = distinct !{!46, !20}
!47 = distinct !{!47, !20}
!48 = distinct !{!48, !20}
!49 = distinct !{!49, !20}
!50 = distinct !{!50, !20}
!51 = distinct !{!51, !20}
!52 = distinct !{!52, !20}
!53 = distinct !{!53, !20}
!54 = distinct !{!54, !20}
!55 = distinct !{!55, !20}
!56 = distinct !{!56, !20}
!57 = distinct !{!57, !20}
!58 = distinct !{!58, !20}
!59 = distinct !{!59, !20}
!60 = distinct !{!60, !20}
!61 = distinct !{!61, !20}
!62 = distinct !{!62, !20}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"struct.std::__detail::_Node_const_iterator.163" = type { %"struct.std::__detail::_Node_iterator_base.164" }
%"struct.std::__detail::_Node_iterator_base.164" = type { ptr }
%"struct.std::__detail::_Node_const_iterator.182" = type { %"struct.std::__detail::_Node_iterator_base.183" }
%"struct.std::__detail::_Node_iterator_base.183" = type { ptr }
%"struct.std::__detail::_Node_const_iterator.300" = type { %"struct.std::__detail::_Node_iterator_base.301" }
%"struct.std::__detail::_Node_iterator_base.301" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [82 x i8], align 1
@__PRETTY_FUNCTION__._ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi = external hidden unnamed_addr constant [102 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef byval(%"class.HIR::ItemPath") align 8 %1, ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull align 8 dereferenceable(216) %3, i32 %4) local_unnamed_addr #3 align 2 {
  %6 = alloca %"struct.std::__detail::_Node_const_iterator.163", align 8
  %7 = alloca %"struct.std::__detail::_Node_const_iterator.163", align 8
  %8 = alloca %"class.HIR::ItemPath", align 8
  %9 = alloca %"struct.std::__detail::_Node_const_iterator.182", align 8
  %10 = alloca %"struct.std::__detail::_Node_const_iterator.182", align 8
  %11 = alloca %"class.HIR::ItemPath", align 8
  %12 = alloca %"class.HIR::ItemPath", align 8
  %13 = alloca %"class.HIR::ItemPath", align 8
  %14 = alloca %"class.HIR::ItemPath", align 8
  %15 = alloca %"class.HIR::ItemPath", align 8
  %16 = alloca %"struct.std::__detail::_Node_const_iterator.300", align 8
  %17 = alloca %"struct.std::__detail::_Node_const_iterator.300", align 8
  %18 = alloca %"class.HIR::ItemPath", align 8
  %19 = alloca %"class.HIR::ItemPath", align 8
  %20 = alloca %"class.HIR::ItemPath", align 8
  %21 = alloca %"class.HIR::ItemPath", align 8
  %22 = alloca %"class.HIR::ItemPath", align 8
  %23 = getelementptr inbounds i8, ptr %0, i64 6
  %24 = load i8, ptr %23, align 1, !tbaa !5, !range !12, !noundef !13
  %25 = trunc nuw i8 %24 to i1
  br i1 %25, label %26, label %.split244

26:                                               ; preds = %5
  %27 = tail call noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  br i1 %27, label %.split244, label %104

.split244:                                        ; preds = %26, %5
  %28 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.3)
  %29 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_8ItemPathE(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(56) %1)
  %30 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %31 = getelementptr inbounds i8, ptr %3, i64 136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  %32 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %31) #7
  store ptr %32, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  %33 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %31) #7
  store ptr %33, ptr %7, align 8
  %34 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  br i1 %34, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %.loopexit210, %.split244
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  %35 = getelementptr inbounds i8, ptr %3, i64 80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %36 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %35) #7
  store ptr %36, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %37 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %35) #7
  store ptr %37, ptr %10, align 8
  %38 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br i1 %38, label %.lr.ph404, label %._crit_edge408

.loopexit210:                                     ; preds = %.lr.ph, %.preheader204, %.preheader206, %.preheader208
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #7
  %39 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  %40 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  br i1 %40, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.split244, %.loopexit210
  %41 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8) #7
  call void @_ZNK3HIR8ItemPathplERK8RcString(ptr dead_on_unwind nonnull writable sret(%"class.HIR::ItemPath") align 8 %8, ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(8) %41)
  %42 = getelementptr inbounds i8, ptr %41, i64 8
  %43 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #7
  %44 = getelementptr inbounds i8, ptr %43, i64 16
  %45 = call noundef i32 @_ZNK3HIR9MacroItem3tagEv(ptr noundef nonnull align 8 dereferenceable(56) %44)
  switch i32 %45, label %.loopexit210 [
    i32 0, label %.split234
    i32 1, label %.preheader204
    i32 2, label %.preheader206
    i32 3, label %.preheader208
  ]

.preheader208:                                    ; preds = %.lr.ph
  %46 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN3HIR9MacroItem12as_ProcMacroEv(ptr noundef nonnull align 8 dereferenceable(56) %44)
  %47 = getelementptr inbounds i8, ptr %46, i64 16
  %48 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.9)
  %49 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_8ItemPathE(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(56) %8)
  %50 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull @.str.7)
  %51 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %47)
  %52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull @.str.8)
  br label %.loopexit210

.preheader206:                                    ; preds = %.lr.ph
  %53 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %44)
  %54 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  call void @_ZNK6Dumper15dump_macrorulesERKN3HIR8ItemPathERK10MacroRules(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(56) %8, ptr noundef nonnull align 8 dereferenceable(64) %54)
  br label %.loopexit210

.preheader204:                                    ; preds = %.lr.ph
  %55 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %44)
  %56 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.6)
  %57 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_8ItemPathE(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(56) %8)
  %58 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull @.str.7)
  %59 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %55)
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull @.str.8)
  br label %.loopexit210

.split234:                                        ; preds = %.lr.ph
  call void @__assert_fail(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, i32 noundef 154, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi) #8
  unreachable

._crit_edge408:                                   ; preds = %.loopexit200, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  %61 = getelementptr inbounds i8, ptr %3, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %62 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %61) #7
  store ptr %62, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  %63 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %61) #7
  store ptr %63, ptr %17, align 8
  %64 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br i1 %64, label %.lr.ph521, label %._crit_edge525

.loopexit200:                                     ; preds = %.preheader196, %.preheader192, %.preheader190, %.preheader188, %.preheader186, %.lr.ph404, %.preheader182, %.preheader184, %.preheader194, %.preheader198
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %11) #7
  %65 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %66 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br i1 %66, label %.lr.ph404, label %._crit_edge408

.lr.ph404:                                        ; preds = %._crit_edge, %.loopexit200
  %67 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %11) #7
  call void @_ZNK3HIR8ItemPathplERK8RcString(ptr dead_on_unwind nonnull writable sret(%"class.HIR::ItemPath") align 8 %11, ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(8) %67)
  %68 = getelementptr inbounds i8, ptr %67, i64 8
  %69 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #7
  %70 = getelementptr inbounds i8, ptr %69, i64 16
  %71 = call noundef i32 @_ZNK3HIR8TypeItem3tagEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  switch i32 %71, label %.loopexit200 [
    i32 0, label %85
    i32 2, label %.preheader182
    i32 1, label %.preheader184
    i32 4, label %.preheader186
    i32 3, label %.preheader188
    i32 5, label %.preheader190
    i32 6, label %.preheader192
    i32 7, label %.preheader194
    i32 8, label %.preheader196
    i32 9, label %.preheader198
  ]

.preheader198:                                    ; preds = %.lr.ph404
  %72 = call noundef nonnull align 8 dereferenceable(400) ptr @_ZN3HIR8TypeItem8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %15, ptr noundef nonnull align 8 dereferenceable(56) %11, i64 56, i1 false), !tbaa.struct !14
  %73 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #7
  call void @_ZNK6Dumper10dump_traitEN3HIR8ItemPathERKNS0_9PublicityERKNS0_5TraitEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %15, ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 8 dereferenceable(400) %72, i32 noundef 0)
  br label %.loopexit200

.preheader196:                                    ; preds = %.lr.ph404
  %74 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZN3HIR8TypeItem8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  br label %.loopexit200

.preheader194:                                    ; preds = %.lr.ph404
  %75 = call noundef nonnull align 8 dereferenceable(252) ptr @_ZN3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %14, ptr noundef nonnull align 8 dereferenceable(56) %11, i64 56, i1 false), !tbaa.struct !14
  %76 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #7
  call void @_ZNK6Dumper11dump_structEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6StructEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %14, ptr noundef nonnull align 8 dereferenceable(16) %76, ptr noundef nonnull align 8 dereferenceable(252) %75, i32 noundef 0)
  br label %.loopexit200

.preheader192:                                    ; preds = %.lr.ph404
  %77 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  br label %.loopexit200

.preheader190:                                    ; preds = %.lr.ph404
  %78 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN3HIR8TypeItem13as_ExternTypeEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  br label %.loopexit200

.preheader188:                                    ; preds = %.lr.ph404
  %79 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZN3HIR8TypeItem12as_TypeAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  br label %.loopexit200

.preheader186:                                    ; preds = %.lr.ph404
  %80 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZN3HIR8TypeItem13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  br label %.loopexit200

.preheader184:                                    ; preds = %.lr.ph404
  %81 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %13, ptr noundef nonnull align 8 dereferenceable(56) %11, i64 56, i1 false), !tbaa.struct !14
  %82 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #7
  call void @_ZNK6Dumper15dump_mod_importEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8TypeItem11Data_ImportEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %13, ptr noundef nonnull align 8 dereferenceable(16) %82, ptr noundef nonnull align 8 dereferenceable(16) %81, i32 noundef 0)
  br label %.loopexit200

.preheader182:                                    ; preds = %.lr.ph404
  %83 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %70)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %12, ptr noundef nonnull align 8 dereferenceable(56) %11, i64 56, i1 false), !tbaa.struct !14
  %84 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #7
  call void @_ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %12, ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 8 dereferenceable(216) %83, i32 poison)
  br label %.loopexit200

85:                                               ; preds = %.lr.ph404
  call void @__assert_fail(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, i32 noundef 171, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi) #8
  unreachable

._crit_edge525:                                   ; preds = %.loopexit172, %._crit_edge408
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  br label %104

.loopexit172:                                     ; preds = %.preheader168, %.preheader166, %.lr.ph521, %.preheader, %.preheader162, %.preheader164, %.preheader170
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %18) #7
  %86 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  %87 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br i1 %87, label %.lr.ph521, label %._crit_edge525

.lr.ph521:                                        ; preds = %._crit_edge408, %.loopexit172
  %88 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %18) #7
  call void @_ZNK3HIR8ItemPathplERK8RcString(ptr dead_on_unwind nonnull writable sret(%"class.HIR::ItemPath") align 8 %18, ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(8) %88)
  %89 = getelementptr inbounds i8, ptr %88, i64 8
  %90 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %89) #7
  %91 = getelementptr inbounds i8, ptr %90, i64 16
  %92 = call noundef i32 @_ZNK3HIR9ValueItem3tagEv(ptr noundef nonnull align 8 dereferenceable(368) %91)
  switch i32 %92, label %.loopexit172 [
    i32 0, label %103
    i32 1, label %.preheader
    i32 2, label %.preheader162
    i32 3, label %.preheader164
    i32 4, label %.preheader166
    i32 6, label %.preheader168
    i32 5, label %.preheader170
  ]

.preheader170:                                    ; preds = %.lr.ph521
  %93 = call noundef nonnull align 8 dereferenceable(352) ptr @_ZN3HIR9ValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %91)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %22, ptr noundef nonnull align 8 dereferenceable(56) %18, i64 56, i1 false), !tbaa.struct !14
  %94 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %89) #7
  call void @_ZNK6Dumper13dump_functionEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8FunctionEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %22, ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef nonnull align 8 dereferenceable(352) %93, i32 noundef 0)
  br label %.loopexit172

.preheader168:                                    ; preds = %.lr.ph521
  %95 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9ValueItem20as_StructConstructorEv(ptr noundef nonnull align 8 dereferenceable(368) %91)
  br label %.loopexit172

.preheader166:                                    ; preds = %.lr.ph521
  %96 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9ValueItem17as_StructConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %91)
  br label %.loopexit172

.preheader164:                                    ; preds = %.lr.ph521
  %97 = call noundef nonnull align 8 dereferenceable(360) ptr @_ZN3HIR9ValueItem9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(368) %91)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %21, ptr noundef nonnull align 8 dereferenceable(56) %18, i64 56, i1 false), !tbaa.struct !14
  %98 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %89) #7
  call void @_ZNK6Dumper11dump_staticEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6StaticEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %21, ptr noundef nonnull align 8 dereferenceable(16) %98, ptr noundef nonnull align 8 dereferenceable(360) %97, i32 noundef 0)
  br label %.loopexit172

.preheader162:                                    ; preds = %.lr.ph521
  %99 = call noundef nonnull align 8 dereferenceable(280) ptr @_ZN3HIR9ValueItem11as_ConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %91)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %20, ptr noundef nonnull align 8 dereferenceable(56) %18, i64 56, i1 false), !tbaa.struct !14
  %100 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %89) #7
  call void @_ZNK6Dumper13dump_constantEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8ConstantEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %20, ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 8 dereferenceable(280) %99, i32 noundef 0)
  br label %.loopexit172

.preheader:                                       ; preds = %.lr.ph521
  %101 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %91)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %19, ptr noundef nonnull align 8 dereferenceable(56) %18, i64 56, i1 false), !tbaa.struct !14
  %102 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %89) #7
  call void @_ZNK6Dumper17dump_value_importEN3HIR8ItemPathERKNS0_9PublicityERKNS0_9ValueItem11Data_ImportEi(ptr noundef nonnull align 1 dereferenceable(8) %0, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %19, ptr noundef nonnull align 8 dereferenceable(16) %102, ptr noundef nonnull align 8 dereferenceable(16) %101, i32 noundef 0)
  br label %.loopexit172

103:                                              ; preds = %.lr.ph521
  call void @__assert_fail(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, i32 noundef 205, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK6Dumper11dump_moduleEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6ModuleEi) #8
  unreachable

104:                                              ; preds = %26, %._crit_edge525
  ret void
}

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3HIR8ItemPathplERK8RcString(ptr dead_on_unwind noalias writable sret(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper15dump_macrorulesERKN3HIR8ItemPathERK10MacroRules(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper15dump_mod_importEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8TypeItem11Data_ImportEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper11dump_structEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6StructEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(252), i32 noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper10dump_traitEN3HIR8ItemPathERKNS0_9PublicityERKNS0_5TraitEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(400), i32 noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper17dump_value_importEN3HIR8ItemPathERKNS0_9PublicityERKNS0_9ValueItem11Data_ImportEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper13dump_constantEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8ConstantEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(280), i32 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper11dump_staticEN3HIR8ItemPathERKNS0_9PublicityERKNS0_6StaticEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(360), i32 noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Dumper13dump_functionEN3HIR8ItemPathERKNS0_9PublicityERKNS0_8FunctionEi(ptr noundef nonnull align 1 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) local_unnamed_addr #3 align 2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
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, !9, i64 6}
!6 = !{!"_ZTS6Dumper", !7, i64 0}
!7 = !{!"_ZTSN6Dumper7FiltersE", !8, i64 0, !9, i64 6, !9, i64 7}
!8 = !{!"_ZTSN6Dumper7Filters5TypesE", !9, i64 0, !9, i64 1, !9, i64 2, !9, i64 3, !9, i64 4, !9, i64 5}
!9 = !{!"bool", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{i8 0, i8 2}
!13 = !{}
!14 = !{i64 0, i64 8, !15, i64 8, i64 8, !15, i64 16, i64 8, !15, i64 24, i64 8, !15, i64 32, i64 8, !15, i64 40, i64 8, !15, i64 48, i64 8, !15}
!15 = !{!16, !16, i64 0}
!16 = !{!"any pointer", !10, i64 0}


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